Subversion Repository Public Repository

litesoft

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package org.litesoft.prioritizer.client.boviews;

import java.util.*;

import org.litesoft.security.*;
import org.litesoft.uispecification.*;

public class UserViewAccessControlFactory
{
    private static ViewDefSecuredSet[] sViewDefSecuritySets;

    public static void setViewDefSecuritySets( ViewDefSecuredSet[] pViewDefSecuritySets )
    {
        sViewDefSecuritySets = pViewDefSecuritySets;
    }

    private static final Map<AccessKey, ViewAccessControlManager> CACHE = new HashMap<AccessKey, ViewAccessControlManager>();

    public static synchronized ViewAccessControlManager get( UserView pUser )
    {
        AccessKey zKey = pUser.getAccessKey();
        ViewAccessControlManager zManager = CACHE.get( zKey );
        if ( zManager == null )
        {
            CACHE.put( zKey, zManager = createManager( zKey ) );
        }
        return zManager;
    }

    private static ViewAccessControlManager createManager( AccessKey pKey )
    {
        List<ViewDef[]> zSections = new ArrayList<ViewDef[]>();
        for ( ViewDefSecuredSet zSet : sViewDefSecuritySets )
        {
            if ( zSet.isAllowed( pKey ) )
            {
                zSections.add( zSet.getViewDefs() );
            }
        }
        return new ViewAccessControlManager.Only( zSections );
    }
}

Commits for litesoft/trunk/GWT_Sandbox/Prioritizer/src/org/litesoft/prioritizer/client/boviews/UserViewAccessControlFactory.java

Diff revisions: vs.
Revision Author Commited Message
479 Diff Diff GeorgeS picture GeorgeS Sat 03 Sep, 2011 17:23:17 +0000
478 Diff Diff GeorgeS picture GeorgeS Sat 03 Sep, 2011 16:30:53 +0000
398 GeorgeS picture GeorgeS Mon 15 Aug, 2011 19:57:47 +0000