org.fao.geonet.kernel
Class AccessManager

java.lang.Object
  extended by org.fao.geonet.kernel.AccessManager

public class AccessManager
extends java.lang.Object

Handles the access to a metadata depending on the metadata/group


Field Summary
static java.lang.String OPER_DOWNLOAD
           
static java.lang.String OPER_DYNAMIC
           
static java.lang.String OPER_FEATURED
           
static java.lang.String OPER_NOTIFY
           
static java.lang.String OPER_VIEW
           
 
Constructor Summary
AccessManager(jeeves.resources.dbms.Dbms dbms, SettingManager sm)
          Loads all permissions from database and caches them
 
Method Summary
 boolean canEdit(jeeves.server.context.ServiceContext context, java.lang.String id)
          Returns true if, and only if, at least one of these conditions is satisfied - The user is the metadata owner - The user is an Administrator - The user is a Reviewer and the metadata groupOwner is one of his groups
 java.util.HashSet<java.lang.String> getOperations(jeeves.server.context.ServiceContext context, java.lang.String mdId, java.lang.String ip)
          Given a user(session) a list of groups and a metadata returns all operations that user can perform on that metadata (an set of OPER_XXX as keys) If the user is authenticated the permissions are taken from the groups the user belong If the user is not authenticated, a dynamic group is assigned depending on user location (0 for internal and 1 for external)
 int getPrivilegeId(java.lang.String descr)
           
 java.lang.String getPrivilegeName(int id)
           
 java.util.Set<java.lang.String> getUserGroups(jeeves.resources.dbms.Dbms dbms, jeeves.server.UserSession usrSess, java.lang.String ip)
          Returns all groups accessible by the user (a set of ids)
 java.util.Set<java.lang.String> getVisibleGroups(jeeves.resources.dbms.Dbms dbms, int userId)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

OPER_VIEW

public static final java.lang.String OPER_VIEW
See Also:
Constant Field Values

OPER_DOWNLOAD

public static final java.lang.String OPER_DOWNLOAD
See Also:
Constant Field Values

OPER_NOTIFY

public static final java.lang.String OPER_NOTIFY
See Also:
Constant Field Values

OPER_DYNAMIC

public static final java.lang.String OPER_DYNAMIC
See Also:
Constant Field Values

OPER_FEATURED

public static final java.lang.String OPER_FEATURED
See Also:
Constant Field Values
Constructor Detail

AccessManager

public AccessManager(jeeves.resources.dbms.Dbms dbms,
                     SettingManager sm)
              throws java.sql.SQLException
Loads all permissions from database and caches them

Throws:
java.sql.SQLException
Method Detail

getOperations

public java.util.HashSet<java.lang.String> getOperations(jeeves.server.context.ServiceContext context,
                                                         java.lang.String mdId,
                                                         java.lang.String ip)
                                                  throws java.lang.Exception
Given a user(session) a list of groups and a metadata returns all operations that user can perform on that metadata (an set of OPER_XXX as keys) If the user is authenticated the permissions are taken from the groups the user belong If the user is not authenticated, a dynamic group is assigned depending on user location (0 for internal and 1 for external)

Throws:
java.lang.Exception

getUserGroups

public java.util.Set<java.lang.String> getUserGroups(jeeves.resources.dbms.Dbms dbms,
                                                     jeeves.server.UserSession usrSess,
                                                     java.lang.String ip)
                                              throws java.lang.Exception
Returns all groups accessible by the user (a set of ids)

Throws:
java.lang.Exception

getVisibleGroups

public java.util.Set<java.lang.String> getVisibleGroups(jeeves.resources.dbms.Dbms dbms,
                                                        int userId)
                                                 throws java.lang.Exception
Throws:
java.lang.Exception

canEdit

public boolean canEdit(jeeves.server.context.ServiceContext context,
                       java.lang.String id)
                throws java.lang.Exception
Returns true if, and only if, at least one of these conditions is satisfied - The user is the metadata owner - The user is an Administrator - The user is a Reviewer and the metadata groupOwner is one of his groups

Throws:
java.lang.Exception

getPrivilegeId

public int getPrivilegeId(java.lang.String descr)

getPrivilegeName

public java.lang.String getPrivilegeName(int id)