public final class AccessLevel extends Object implements Serializable
AccessLevel can be viewed as a set of boolean permission flags for up to 64 standard access levels, and an unrestricted number of extendedPermissions. The standard access levels currently defined are:
The Strings used to identify these permissions are by default the English strings used in the descriptions above. Localized translations of these Strings can be used, and accessed using the static string keys,such as ACCESSLEVEL_DISCOVER_KEY.
This class has methods to set and clear the various permission flags, as well as methods to test whether a permission flag is set.
Note: A PermissionBundle can return an AccessLevel which has a few null ExtendedPermissions associated with it. This can happen, in at least the following two ways:
1. The PermissionBundle could have an AccessLevel set, on which enableExtendedPermissions() is called with an array containing nulls elements.
2. The referenced ExtendedPermission objects could have existed properly at the time the PermissionBundle was created, but subsequently freed. This will result in the ExtendedPermission array having null elements.
The developer's code should handle null elements in the ExtendedPermission[] array returned from getExtendedPermissions().getSystemObjectArray().
AccessControlList
,
Serialized FormModifier and Type | Field and Description |
---|---|
static long |
ACCESSLEVEL_ADDITEM
Numeric value that designates permission to add an item to a Folder (bit 14).
|
static long |
ACCESSLEVEL_ADDMEMBER
Numeric value that designates permission to add a DirectoryObject to a DirectoryGroup (bit 12).
|
static long |
ACCESSLEVEL_ADDRELATIONSHIP
Numeric value that designates permission to relate a PublicObject to another PublicObject (bit 16).
|
static long |
ACCESSLEVEL_ADDVERSION
Numeric value that designates permission to add a new version to a VersionSeries (bit 20).
|
static long |
ACCESSLEVEL_ADDVERSIONSERIES
Numeric value that designates permission to add a VersionSeries to a Family (bit 18).
|
static long |
ACCESSLEVEL_ALL
Numeric value that designates "all permissions".
|
static long |
ACCESSLEVEL_APPLICATION0
Application-specific permission 0 (bit 48).
|
static long |
ACCESSLEVEL_APPLICATION1
Application-specific permission 1 (bit 49).
|
static long |
ACCESSLEVEL_APPLICATION10
Application-specific permission 10 (bit 58).
|
static long |
ACCESSLEVEL_APPLICATION11
Application-specific permission 11 (bit 59).
|
static long |
ACCESSLEVEL_APPLICATION12
Application-specific permission 12 (bit 60).
|
static long |
ACCESSLEVEL_APPLICATION13
Application-specific permission 13 (bit 61).
|
static long |
ACCESSLEVEL_APPLICATION14
Application-specific permission 14 (bit 62).
|
static long |
ACCESSLEVEL_APPLICATION15
Application-specific permission 15 (bit 63).
|
static long |
ACCESSLEVEL_APPLICATION2
Application-specific permission 2 (bit 50).
|
static long |
ACCESSLEVEL_APPLICATION3
Application-specific permission 3 (bit 51).
|
static long |
ACCESSLEVEL_APPLICATION4
Application-specific permission 4 (bit 52).
|
static long |
ACCESSLEVEL_APPLICATION5
Application-specific permission 5 (bit 53).
|
static long |
ACCESSLEVEL_APPLICATION6
Application-specific permission 6 (bit 54).
|
static long |
ACCESSLEVEL_APPLICATION7
Application-specific permission 7 (bit 55).
|
static long |
ACCESSLEVEL_APPLICATION8
Application-specific permission 8 (bit 56).
|
static long |
ACCESSLEVEL_APPLICATION9
Application-specific permission 9 (bit 57).
|
static long |
ACCESSLEVEL_COPY
Numeric value that designates permission to Copy a PublicObject (bit 59).
|
static long |
ACCESSLEVEL_CREATE
Numeric value that designates permission to create an instance of a Class (bit 7).
|
static long |
ACCESSLEVEL_DELETE
Numeric value that designates permission to free an object (bit 4).
|
static long |
ACCESSLEVEL_DEQUEUE
Numeric value that designates permission to dequeue messages from a queue (bit 25).
|
static long |
ACCESSLEVEL_DISCOVER
Numeric value that designates Discover permission (bit 0)
|
static long |
ACCESSLEVEL_ENQUEUE
Numeric value that designates permission to enqueue messages on to a queue (bit 24).
|
static long |
ACCESSLEVEL_GET_CONTENT
Numeric value that designates permission to get content of a Document (bit 2).
|
static long |
ACCESSLEVEL_GRANT
Numeric value that designates permission to change a Publicobject's Owner, ACL
to another user (bit 6).
|
static long |
ACCESSLEVEL_LOCK
Numeric value that designates permission to lock or unlock PublicObjects (bit 5).
|
static long |
ACCESSLEVEL_MOVE
Numeric value that designates permission to Move a PublicObject (bit 59).
|
static long |
ACCESSLEVEL_NONE
Numeric value that designates "no permissions".
|
static long |
ACCESSLEVEL_REMOVEITEM
Numeric value that designates permission to remove an item from a Folder (bit 15).
|
static long |
ACCESSLEVEL_REMOVEMEMBER
Numeric value that designates permission to remove a DirectoryObject from a DirectoryGroup (bit 13).
|
static long |
ACCESSLEVEL_REMOVERELATIONSHIP
Numeric value that designates permission to remove a Relationship between a PublicObject (bit 17).
|
static long |
ACCESSLEVEL_REMOVEVERSION
Numeric value that designates permission to remove a version from a VersionSeries (bit 21).
|
static long |
ACCESSLEVEL_REMOVEVERSIONSERIES
Numeric value that designates permission to remove a VersionSeries from a Family (bit 19).
|
static long |
ACCESSLEVEL_RESERVED10
Reserved for future use (bit 10).
|
static long |
ACCESSLEVEL_RESERVED11
Reserved for future use (bit 11).
|
static long |
ACCESSLEVEL_RESERVED27
Reserved for future use (bit 27).
|
static long |
ACCESSLEVEL_RESERVED28
Reserved for future use (bit 28).
|
static long |
ACCESSLEVEL_RESERVED29
Reserved for future use (bit 29).
|
static long |
ACCESSLEVEL_RESERVED30
Reserved for future use (bit 30).
|
static long |
ACCESSLEVEL_RESERVED31
Reserved for future use (bit 31).
|
static long |
ACCESSLEVEL_RESERVED32
Reserved for future use (bit 32).
|
static long |
ACCESSLEVEL_RESERVED33
Reserved for future use (bit 33).
|
static long |
ACCESSLEVEL_RESERVED34
Reserved for future use (bit 34).
|
static long |
ACCESSLEVEL_RESERVED35
Reserved for future use (bit 35).
|
static long |
ACCESSLEVEL_RESERVED36
Reserved for future use (bit 36).
|
static long |
ACCESSLEVEL_RESERVED37
Reserved for future use (bit 37).
|
static long |
ACCESSLEVEL_RESERVED38
Reserved for future use (bit 38).
|
static long |
ACCESSLEVEL_RESERVED39
Reserved for future use (bit 39).
|
static long |
ACCESSLEVEL_RESERVED40
Reserved for future use (bit 40).
|
static long |
ACCESSLEVEL_RESERVED41
Reserved for future use (bit 41).
|
static long |
ACCESSLEVEL_RESERVED42
Reserved for future use (bit 42).
|
static long |
ACCESSLEVEL_RESERVED43
Reserved for future use (bit 43).
|
static long |
ACCESSLEVEL_RESERVED44
Reserved for future use (bit 44).
|
static long |
ACCESSLEVEL_RESERVED45
Reserved for future use (bit 45).
|
static long |
ACCESSLEVEL_RESERVED46
Reserved for future use (bit 46).
|
static long |
ACCESSLEVEL_RESERVED47
Reserved for future use (bit 47).
|
static long |
ACCESSLEVEL_RESERVED9
Reserved for future use (bit 9).
|
static long |
ACCESSLEVEL_SELECTORACCESS
Numeric value that designates permission to search a Class in a Selector or a Search (bit 8).
|
static long |
ACCESSLEVEL_SET_ATTR
Numeric value that designates permission to update an object
attribute (bit 1)
|
static long |
ACCESSLEVEL_SET_CONTENT
Numeric value that designates permission to update content of a Document (bit 3).
|
static long |
ACCESSLEVEL_SETDEFAULTVERSION
Numeric value that designates permission to change the default version or VersionSeries
of a Family or VersionSeries (bit 22).
|
static long |
ACCESSLEVEL_SETPOLICY
Numeric value that designates permission to change the PolicyPropertyBundle
associated with a PublicObject (bit 23).
|
static String |
ACCESSLEVEL_TOSTRING_DELIMITER_KEY
resourceBundle key used to get the permission delimiter for a String representation for
an AccessLevel.
|
static String |
ACCESSLEVEL_TOSTRING_PREFIX_KEY
resourceBundle key used to get the prefix for a String representation for
an AccessLevel.
|
static String |
ACCESSLEVEL_TOSTRING_SUFFIX_KEY
resourceBundle key used to get the suffix for a String representation for
an AccessLevel.
|
static long |
ACCESSLEVEL_UNLOCK
Numeric value that designates permission to unlock PublicObjects (bit 26).
|
protected AttributeValue |
m_ExtendedPermissions
the set of ExtendedPermissions enabled - kept as an AttributeValue (of
type MVA-SystemObject)
|
protected Hashtable |
m_ExtendedPermissionTable
the set of ExtendedPermissions enabled - kept as a hashtable,
keyed by ExtendedPermission name; value is a Long (the EP's id).
|
protected long |
m_Level
the internal bit mask representing the set of standard permission
flags set.
|
Constructor and Description |
---|
AccessLevel()
default Constructor for an AccessLevel.
|
AccessLevel(AccessLevel level)
Clone an AccessLevel
|
AccessLevel(long accessLevel)
Construct an AccessLevel, with a long accesslevel value.
|
AccessLevel(String[] stringLevels)
constructor to initialize set of permissions, specified
by an array of Strings.
|
AccessLevel(String[] stringLevels,
LibrarySessionInterface session)
constructor to initialize set of permissions, specified
by an array of Strings and a specific LibrarySessionInterface.
|
AccessLevel(String[] stringLevels,
Localizer localizer)
constructor to initialize set of permissions, specified
by an array of Strings and a specific Localizer.
|
Modifier and Type | Method and Description |
---|---|
void |
add(AccessLevel level,
LibrarySessionInterface sess)
Add permissions specified in another AccessLevel
to this AccessLevel
|
void |
clearAllExtendedPermissions()
Clear all extended permission flags.
|
void |
clearAllPermissions()
Clear all permission flags - standard and extended.
|
void |
clearAllStandardPermissions()
Clear all standard permission flags.
|
void |
disableExtendedPermission(AttributeValue av,
LibrarySessionInterface sess)
Disable an extended perrmission, specified as an AttributeValue
|
void |
disableExtendedPermission(ExtendedPermissionInterface perm)
Disable an extended perrmission.
|
void |
disableExtendedPermission(ExtendedPermissionInterface[] perms)
Disable a set of extended perrmissions.
|
void |
disableStandardPermission(long permission)
Disable a standard perrmission.
|
void |
enableAllStandardPermissions()
Set all standard permission flags.
|
void |
enableExtendedPermission(AttributeValue av,
LibrarySessionInterface sess)
Enable an extended perrmission, specified as an AttributeValue
|
void |
enableExtendedPermission(ExtendedPermissionInterface perm)
Enable an extended perrmission
|
void |
enableExtendedPermission(ExtendedPermissionInterface[] perms)
Enable a set of extended perrmissions.
|
void |
enableStandardPermission(long permission)
Enable a standard perrmission.
|
boolean |
equals(AccessLevel level)
Check if the specified accesslevel is equal
to this AccessLevel
|
static String[] |
getAllDefinedStandardPermissionNames(LibrarySessionInterface session)
return the array of all defined standard permission localized
labels.
|
static String[] |
getAllDefinedStandardPermissionNames(Localizer localizer)
return the array of all defined standard permission localized
labels.
|
static long[] |
getAllDefinedStandardPermissions()
return the array of all defined standard permission numeric
values.
|
String[] |
getEnabledStandardPermissionNames(LibrarySessionInterface session)
return the array of the names of all standard permission
enabled in this instance.
|
String[] |
getEnabledStandardPermissionNames(Localizer localizer)
return the array of the names of all standard permission
enabled in this instance.
|
long[] |
getEnabledStandardPermissions()
return the array of all enabled standard permissions, using the
numeric values (defined as static long constants in this class)
to represent each permission.
|
AttributeValue |
getExtendedPermissions()
Get all ExtendedPermissions, as an AttributeValue of type
SystemObjectArray.
|
boolean |
hasExtendedPermissions()
Returns true is this AccessLevel has (or may have) ExtendedPermissions
defined.
|
boolean |
isExtendedPermissionEnabled(ExtendedPermissionInterface perm)
Is a extended permission enabled?
|
boolean |
isStandardPermissionEnabled(long permission)
Is a standard perrmission enabled?
|
boolean |
isSufficientlyEnabled(AccessLevel level,
LibrarySessionInterface sess)
check to see if specified permissions are enabled on the
target AccessLevel.
|
void |
subtract(AccessLevel level,
LibrarySessionInterface sess)
Remove permissions specified in another AccessLevel
to this AccessLevel.
|
long |
toLong()
toLong - return the long representation of the
access level.
|
String |
toString()
convert AccessLevel to a String, representing
the set of permissions; for example "{Discover,GetContent}".
|
String |
toString(Localizer localizer)
convert AccessLevel to a String, representing
the set of permissions for a specified Localizer; for example "{Discover,GetContent}".
|
public static final long ACCESSLEVEL_NONE
public static final long ACCESSLEVEL_ALL
public static final long ACCESSLEVEL_DISCOVER
public static final long ACCESSLEVEL_SET_ATTR
public static final long ACCESSLEVEL_GET_CONTENT
public static final long ACCESSLEVEL_SET_CONTENT
public static final long ACCESSLEVEL_DELETE
public static final long ACCESSLEVEL_LOCK
public static final long ACCESSLEVEL_GRANT
public static final long ACCESSLEVEL_CREATE
public static final long ACCESSLEVEL_SELECTORACCESS
public static final long ACCESSLEVEL_RESERVED9
public static final long ACCESSLEVEL_RESERVED10
public static final long ACCESSLEVEL_RESERVED11
public static final long ACCESSLEVEL_ADDMEMBER
public static final long ACCESSLEVEL_REMOVEMEMBER
public static final long ACCESSLEVEL_ADDITEM
public static final long ACCESSLEVEL_REMOVEITEM
public static final long ACCESSLEVEL_ADDRELATIONSHIP
public static final long ACCESSLEVEL_REMOVERELATIONSHIP
public static final long ACCESSLEVEL_ADDVERSIONSERIES
public static final long ACCESSLEVEL_REMOVEVERSIONSERIES
public static final long ACCESSLEVEL_ADDVERSION
public static final long ACCESSLEVEL_REMOVEVERSION
public static final long ACCESSLEVEL_SETDEFAULTVERSION
public static final long ACCESSLEVEL_SETPOLICY
public static final long ACCESSLEVEL_ENQUEUE
public static final long ACCESSLEVEL_DEQUEUE
public static final long ACCESSLEVEL_UNLOCK
public static final long ACCESSLEVEL_RESERVED27
public static final long ACCESSLEVEL_RESERVED28
public static final long ACCESSLEVEL_RESERVED29
public static final long ACCESSLEVEL_RESERVED30
public static final long ACCESSLEVEL_RESERVED31
public static final long ACCESSLEVEL_RESERVED32
public static final long ACCESSLEVEL_RESERVED33
public static final long ACCESSLEVEL_RESERVED34
public static final long ACCESSLEVEL_RESERVED35
public static final long ACCESSLEVEL_RESERVED36
public static final long ACCESSLEVEL_RESERVED37
public static final long ACCESSLEVEL_RESERVED38
public static final long ACCESSLEVEL_RESERVED39
public static final long ACCESSLEVEL_RESERVED40
public static final long ACCESSLEVEL_RESERVED41
public static final long ACCESSLEVEL_RESERVED42
public static final long ACCESSLEVEL_RESERVED43
public static final long ACCESSLEVEL_RESERVED44
public static final long ACCESSLEVEL_RESERVED45
public static final long ACCESSLEVEL_RESERVED46
public static final long ACCESSLEVEL_RESERVED47
public static final long ACCESSLEVEL_APPLICATION0
public static final long ACCESSLEVEL_APPLICATION1
public static final long ACCESSLEVEL_APPLICATION2
public static final long ACCESSLEVEL_APPLICATION3
public static final long ACCESSLEVEL_APPLICATION4
public static final long ACCESSLEVEL_APPLICATION5
public static final long ACCESSLEVEL_APPLICATION6
public static final long ACCESSLEVEL_APPLICATION7
public static final long ACCESSLEVEL_APPLICATION8
public static final long ACCESSLEVEL_APPLICATION9
public static final long ACCESSLEVEL_APPLICATION10
public static final long ACCESSLEVEL_MOVE
public static final long ACCESSLEVEL_APPLICATION11
Obsolete constant (used for MOVE now).
public static final long ACCESSLEVEL_APPLICATION12
public static final long ACCESSLEVEL_APPLICATION13
public static final long ACCESSLEVEL_COPY
public static final long ACCESSLEVEL_APPLICATION14
Obsolete constant (used for MOVE now).
public static final long ACCESSLEVEL_APPLICATION15
public static final String ACCESSLEVEL_TOSTRING_PREFIX_KEY
public static final String ACCESSLEVEL_TOSTRING_SUFFIX_KEY
public static final String ACCESSLEVEL_TOSTRING_DELIMITER_KEY
protected long m_Level
protected transient Hashtable m_ExtendedPermissionTable
protected AttributeValue m_ExtendedPermissions
public AccessLevel() throws IfsException
IfsException
- if operation fails.public AccessLevel(long accessLevel)
accessLevel
- The long access level.public AccessLevel(String[] stringLevels) throws IfsException
stringLevels
- - array of permission Strings.IfsException
- if operation fails.public AccessLevel(String[] stringLevels, LibrarySessionInterface session) throws IfsException
stringLevels
- - array of permission Strings.session
- - LibrarySession used to determine the Localizer
to be used to translate the specified Strings into standard permissions.IfsException
- if operation fails.public AccessLevel(String[] stringLevels, Localizer localizer) throws IfsException
stringLevels
- - array of permission Strings.localizer
- - Localizer to be used to translate the specified Strings into standard permissions.IfsException
- if operation fails.public AccessLevel(AccessLevel level) throws IfsException
level
- the level to cloneIfsException
- if operation fails.public long toLong() throws IfsException
IfsException
- if operation fails.public long[] getEnabledStandardPermissions() throws IfsException
IfsException
- if operation fails.public static long[] getAllDefinedStandardPermissions() throws IfsException
IfsException
- if operation fails.public String[] getEnabledStandardPermissionNames(LibrarySessionInterface session) throws IfsException
session
- a LibrarySession, used to determine the LocalizerIfsException
- if operation fails.public String[] getEnabledStandardPermissionNames(Localizer localizer) throws IfsException
localizer
- Localizer used to get the localized Permission names.IfsException
- if operation fails.public static String[] getAllDefinedStandardPermissionNames(LibrarySessionInterface session) throws IfsException
session
- a LibrarySession, used to determine the LocalizerIfsException
- if operation fails.public static String[] getAllDefinedStandardPermissionNames(Localizer localizer) throws IfsException
localizer
- a Localizer, used to returned localized String values.
If null, the default Localizer is used.IfsException
- if operation fails.public void add(AccessLevel level, LibrarySessionInterface sess) throws IfsException
level
- AccessLevel to add (union) to this instance.sess
- the Session.IfsException
- if operation fails.public void subtract(AccessLevel level, LibrarySessionInterface sess) throws IfsException
level
- AccessLevel to remove (union) from this instance.sess
- the Session.IfsException
- if operation fails.public boolean equals(AccessLevel level) throws IfsException
level
- AccessLevel to compare to this instance.IfsException
- if operation fails.public boolean isSufficientlyEnabled(AccessLevel level, LibrarySessionInterface sess) throws IfsException
level
- AccessLevel that holds permissions to check.sess
- the Session.IfsException
- if operation fails.public void enableAllStandardPermissions() throws IfsException
IfsException
- if operation fails.public void clearAllStandardPermissions() throws IfsException
IfsException
- if operation fails.public void clearAllExtendedPermissions()
public void clearAllPermissions() throws IfsException
IfsException
- if operation fails.public void enableStandardPermission(long permission) throws IfsException
permission
- the standard permission to enable.IfsException
- if operation fails.public void disableStandardPermission(long permission) throws IfsException
permission
- the standard permission to disable.IfsException
- if operation fails.public boolean isStandardPermissionEnabled(long permission) throws IfsException
permission
- the standard permission to check.IfsException
- if operation fails.public void enableExtendedPermission(ExtendedPermissionInterface perm) throws IfsException
perm
- ExtendedPermission to enable.IfsException
- if operation fails.public void enableExtendedPermission(ExtendedPermissionInterface[] perms) throws IfsException
perms
- ExtendedPermissions to enable.IfsException
- if operation fails.public void enableExtendedPermission(AttributeValue av, LibrarySessionInterface sess) throws IfsException
av
- ExtendedPermission, represented as an AttributeValue.sess
- the session contextIfsException
- if operation fails.public void disableExtendedPermission(ExtendedPermissionInterface perm) throws IfsException
perm
- ExtendedPermission to disable.IfsException
- if operation fails.public void disableExtendedPermission(ExtendedPermissionInterface[] perms) throws IfsException
perms
- array of ExtendedPermissions to disable.IfsException
- if operation fails.public void disableExtendedPermission(AttributeValue av, LibrarySessionInterface sess) throws IfsException
av
- ExtendedPermission, represented as an AttributeValue.sess
- SessionIfsException
- if operation fails.public boolean isExtendedPermissionEnabled(ExtendedPermissionInterface perm) throws IfsException
perm
- ExtendedPermission to check.IfsException
- if operation fails.public boolean hasExtendedPermissions() throws IfsException
IfsException
- if operation fails.public AttributeValue getExtendedPermissions() throws IfsException
IfsException
- if operation fails.public String toString()
public String toString(Localizer localizer) throws IfsException
localizer
- the localizer contextIfsException
- if operation fails.Copyright © 2023. All rights reserved.