org.apache.wiki.auth.permissions
Class WikiPermission

java.lang.Object
  extended by java.security.Permission
      extended by org.apache.wiki.auth.permissions.WikiPermission
All Implemented Interfaces:
Serializable, Guard

public final class WikiPermission
extends Permission
implements Serializable

Permission to perform an global wiki operation, such as self-registering or creating new pages. Permission actions include: createGroups, createPages, editPreferences, editProfile and login.

The target is a given wiki. The syntax for the target is the wiki name. "All wikis" can be specified using a wildcard (*). Page collections may also be specified using a wildcard. For pages, the wildcard may be a prefix, suffix, or all by itself.

Certain permissions imply others. Currently, createGroups implies createPages.

Since:
2.3
See Also:
Serialized Form

Field Summary
static WikiPermission CREATE_GROUPS
          A static instance of the createGroups permission.
static String CREATE_GROUPS_ACTION
          Name of the action for createGroups permission.
protected static int CREATE_GROUPS_MASK
           
static WikiPermission CREATE_PAGES
          A static instance of the createPages permission.
static String CREATE_PAGES_ACTION
          Name of the action for createPages permission.
protected static int CREATE_PAGES_MASK
           
static WikiPermission EDIT_PREFERENCES
          A static instance of the editPreferences permission.
static String EDIT_PREFERENCES_ACTION
          Name of the action for editPreferences permission.
protected static int EDIT_PREFERENCES_MASK
           
static WikiPermission EDIT_PROFILE
          A static instance of the editProfile permission.
static String EDIT_PROFILE_ACTION
          Name of the action for editProfile permission.
protected static int EDIT_PROFILE_MASK
           
static WikiPermission LOGIN
          A static instance of the login permission.
static String LOGIN_ACTION
          Name of the action for login permission.
protected static int LOGIN_MASK
           
static String WILDCARD
          Value for a generic wildcard.
 
Constructor Summary
WikiPermission(String wiki, String actions)
          Creates a new WikiPermission for a specified set of actions.
 
Method Summary
protected static int createMask(String actions)
          Private method that creates a binary mask based on the actions specified.
 boolean equals(Object obj)
          Two WikiPermission objects are considered equal if their wikis and actions (after normalization) are equal.
 String getActions()
          Returns the actions for this permission: "createGroups", "createPages", "editPreferences", "editProfile", or "login".
 String getWiki()
          Returns the name of the wiki containing the page represented by this permission; may return the wildcard string.
 int hashCode()
          Returns the hash code for this WikiPermission.
protected static int impliedMask(int mask)
          Creates an "implied mask" based on the actions originally assigned: for example, createGroups implies createPages.
 boolean implies(Permission permission)
          WikiPermission can only imply other WikiPermissions; no other permission types are implied.
 PermissionCollection newPermissionCollection()
          Returns a new AllPermissionCollection.
 String toString()
          Prints a human-readable representation of this permission.
 
Methods inherited from class java.security.Permission
checkGuard, getName
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

CREATE_GROUPS_ACTION

public static final String CREATE_GROUPS_ACTION
Name of the action for createGroups permission.

See Also:
Constant Field Values

CREATE_PAGES_ACTION

public static final String CREATE_PAGES_ACTION
Name of the action for createPages permission.

See Also:
Constant Field Values

LOGIN_ACTION

public static final String LOGIN_ACTION
Name of the action for login permission.

See Also:
Constant Field Values

EDIT_PREFERENCES_ACTION

public static final String EDIT_PREFERENCES_ACTION
Name of the action for editPreferences permission.

See Also:
Constant Field Values

EDIT_PROFILE_ACTION

public static final String EDIT_PROFILE_ACTION
Name of the action for editProfile permission.

See Also:
Constant Field Values

WILDCARD

public static final String WILDCARD
Value for a generic wildcard.

See Also:
Constant Field Values

CREATE_GROUPS_MASK

protected static final int CREATE_GROUPS_MASK
See Also:
Constant Field Values

CREATE_PAGES_MASK

protected static final int CREATE_PAGES_MASK
See Also:
Constant Field Values

EDIT_PREFERENCES_MASK

protected static final int EDIT_PREFERENCES_MASK
See Also:
Constant Field Values

EDIT_PROFILE_MASK

protected static final int EDIT_PROFILE_MASK
See Also:
Constant Field Values

LOGIN_MASK

protected static final int LOGIN_MASK
See Also:
Constant Field Values

CREATE_GROUPS

public static final WikiPermission CREATE_GROUPS
A static instance of the createGroups permission.


CREATE_PAGES

public static final WikiPermission CREATE_PAGES
A static instance of the createPages permission.


LOGIN

public static final WikiPermission LOGIN
A static instance of the login permission.


EDIT_PREFERENCES

public static final WikiPermission EDIT_PREFERENCES
A static instance of the editPreferences permission.


EDIT_PROFILE

public static final WikiPermission EDIT_PROFILE
A static instance of the editProfile permission.

Constructor Detail

WikiPermission

public WikiPermission(String wiki,
                      String actions)
Creates a new WikiPermission for a specified set of actions.

Parameters:
actions - the actions for this permission
wiki - The name of the wiki the permission belongs to.
Method Detail

equals

public boolean equals(Object obj)
Two WikiPermission objects are considered equal if their wikis and actions (after normalization) are equal.

Specified by:
equals in class Permission
Parameters:
obj - the object to test
Returns:
the result
See Also:
Object.equals(java.lang.Object)

getActions

public String getActions()
Returns the actions for this permission: "createGroups", "createPages", "editPreferences", "editProfile", or "login". The actions will always be sorted in alphabetic order, and will always appear in lower case.

Specified by:
getActions in class Permission
Returns:
the actions
See Also:
Permission.getActions()

getWiki

public String getWiki()
Returns the name of the wiki containing the page represented by this permission; may return the wildcard string.

Returns:
the wiki

hashCode

public int hashCode()
Returns the hash code for this WikiPermission.

Specified by:
hashCode in class Permission
Returns:

implies

public boolean implies(Permission permission)
WikiPermission can only imply other WikiPermissions; no other permission types are implied. One WikiPermission implies another if all of the other WikiPermission's actions are equal to, or a subset of, those for this permission.

Specified by:
implies in class Permission
Parameters:
permission - the permission which may (or may not) be implied by this instance
Returns:
true if the permission is implied, false otherwise
See Also:
Permission.implies(java.security.Permission)

newPermissionCollection

public PermissionCollection newPermissionCollection()
Returns a new AllPermissionCollection.

Overrides:
newPermissionCollection in class Permission
Returns:

toString

public String toString()
Prints a human-readable representation of this permission.

Overrides:
toString in class Permission
Returns:

impliedMask

protected static int impliedMask(int mask)
Creates an "implied mask" based on the actions originally assigned: for example, createGroups implies createPages.

Parameters:
mask - the initial mask
Returns:
the implied mask

createMask

protected static int createMask(String actions)
Private method that creates a binary mask based on the actions specified. This is used by implies(Permission).

Parameters:
actions - the permission actions, separated by commas
Returns:
binary mask representing the permissions


Copyright © {inceptionYear}-2014 The Apache Software Foundation. All rights reserved.