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
43
44
45
package org.litesoft.prioritizer.client.boviews;

import java.util.*;

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

public class UserViewAccessControlFactory
{
    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 void addSection( List<ViewDef[]> pSections, boolean pFlag, ViewDef[] pViewDefs )
    {
        if ( pFlag && (pViewDefs != null) )
        {
            pSections.add( pViewDefs );
        }
    }

    private static ViewAccessControlManager createManager( AccessKey pKey )
    {
        List<ViewDef[]> zSections = new ArrayList<ViewDef[]>();
        zSections.add( ViewDefs.ANY_USER );

        // addSection( zSections, Permissions.isNonGuest( pKey ), ViewDefs.ANY_NON_GUEST );
        addSection( zSections, Permissions.isAdminFlag( pKey ), ViewDefs.CAN_RESTRICTED_RESOURCE_ADMIN );
        addSection( zSections, Permissions.isHelpDeskFlag( pKey ), ViewDefs.CAN_HELP_DESK );
        addSection( zSections, Permissions.isRestrictedResourceMgrFlag( pKey ), ViewDefs.CAN_MANAGE_RESTRICTED_RESOURCES );
        addSection( zSections, Permissions.isSprAdminFlag( pKey ), ViewDefs.CAN_SUPER_ADMIN );

        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
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