Class PagePermission
- All Implemented Interfaces:
Serializable,Guard
public final class PagePermission extends Permission implements Serializable
Permission to perform an operation on a single page or collection of pages in
a given wiki. Permission actions include: view,
edit (edit the text of a wiki page), comment,
upload, modify (edit text and upload
attachments), delete
and rename.
The target of a permission is a single page or collection in a given wiki. The syntax for the target is the wiki name, followed by a colon (:) and the name of the page. "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. Examples of targets include:
*:*
*:JanneJalkanen
*:Jalkanen
*:Janne*
mywiki:JanneJalkanen
mywiki:*Jalkanen
mywiki:Janne*
For a given target, certain permissions imply others:
deleteandrenameimplyeditmodifyimplieseditanduploadeditimpliescommentandviewcommentanduploadimplyview
Targets that do not include a wiki prefix never imply others.
- Since:
- 2.3
- See Also:
- Serialized Form
-
Field Summary
Fields Modifier and Type Field Description static PagePermissionCOMMENTA static instance of the comment permission.static StringCOMMENT_ACTIONAction name for the comment permission.protected static intCOMMENT_MASKstatic PagePermissionDELETEA static instance of the delete permission.static StringDELETE_ACTIONAction name for the delete permission.protected static intDELETE_MASKstatic PagePermissionEDITA static instance of the edit permission.static StringEDIT_ACTIONAction name for the edit permission.protected static intEDIT_MASKstatic PagePermissionMODIFYA static instance of the modify permission.static StringMODIFY_ACTIONAction name for the modify permission.protected static intMODIFY_MASKstatic PagePermissionRENAMEA static instance of the rename permission.static StringRENAME_ACTIONAction name for the rename permission.protected static intRENAME_MASKstatic PagePermissionUPLOADA static instance of the upload permission.static StringUPLOAD_ACTIONAction name for the upload permission.protected static intUPLOAD_MASKstatic PagePermissionVIEWA static instance of the view permission.static StringVIEW_ACTIONAction name for the view permission.protected static intVIEW_MASK -
Constructor Summary
Constructors Modifier Constructor Description protectedPagePermission()For serialization purposes.PagePermission(String page, String actions)Creates a new PagePermission for a specified page name and set of actions.PagePermission(Page page, String actions)Creates a new PagePermission for a specified page and set of actions. -
Method Summary
Modifier and Type Method Description protected static intcreateMask(String actions)Private method that creates a binary mask based on the actions specified.booleanequals(Object obj)Two PagePermission objects are considered equal if their actions (after normalization), wiki and target are equal.StringgetActions()Returns the actions for this permission: "view", "edit", "comment", "modify", "upload" or "delete".StringgetPage()Returns the name of the wiki page represented by this permission.StringgetWiki()Returns the name of the wiki containing the page represented by this permission; may return the wildcard string.inthashCode()Returns the hash code for this PagePermission.protected static intimpliedMask(int mask)Creates an "implied mask" based on the actions originally assigned: for example, delete implies modify, comment, upload and view.booleanimplies(Permission permission)PagePermission can only imply other PagePermissions; no other permission types are implied.protected static booleanisSubset(String superSet, String subSet)Determines whether one target string is a logical subset of the other.PermissionCollectionnewPermissionCollection()Returns a newAllPermissionCollection.StringtoString()Prints a human-readable representation of this permission.Methods inherited from class java.security.Permission
checkGuard, getName
-
Field Details
-
COMMENT_ACTION
Action name for the comment permission.- See Also:
- Constant Field Values
-
DELETE_ACTION
Action name for the delete permission.- See Also:
- Constant Field Values
-
EDIT_ACTION
Action name for the edit permission.- See Also:
- Constant Field Values
-
MODIFY_ACTION
Action name for the modify permission.- See Also:
- Constant Field Values
-
RENAME_ACTION
Action name for the rename permission.- See Also:
- Constant Field Values
-
UPLOAD_ACTION
Action name for the upload permission.- See Also:
- Constant Field Values
-
VIEW_ACTION
Action name for the view permission.- See Also:
- Constant Field Values
-
COMMENT_MASK
- See Also:
- Constant Field Values
-
DELETE_MASK
- See Also:
- Constant Field Values
-
EDIT_MASK
- See Also:
- Constant Field Values
-
MODIFY_MASK
- See Also:
- Constant Field Values
-
RENAME_MASK
- See Also:
- Constant Field Values
-
UPLOAD_MASK
- See Also:
- Constant Field Values
-
VIEW_MASK
- See Also:
- Constant Field Values
-
COMMENT
A static instance of the comment permission. -
DELETE
A static instance of the delete permission. -
EDIT
A static instance of the edit permission. -
RENAME
A static instance of the rename permission. -
MODIFY
A static instance of the modify permission. -
UPLOAD
A static instance of the upload permission. -
VIEW
A static instance of the view permission.
-
-
Constructor Details
-
PagePermission
protected PagePermission()For serialization purposes. -
PagePermission
Creates a new PagePermission for a specified page name and set of actions. Page should include a prepended wiki name followed by a colon (:). If the wiki name is not supplied or starts with a colon, the page refers to no wiki in particular, and will never imply any other PagePermission.- Parameters:
page- the wiki pageactions- the allowed actions for this page
-
PagePermission
Creates a new PagePermission for a specified page and set of actions.- Parameters:
page- The wikipage.actions- A set of actions; a comma-separated list of actions.
-
-
Method Details
-
equals
Two PagePermission objects are considered equal if their actions (after normalization), wiki and target are equal.- Specified by:
equalsin classPermission- Parameters:
obj-- Returns:
-
getActions
Returns the actions for this permission: "view", "edit", "comment", "modify", "upload" or "delete". The actions will always be sorted in alphabetic order, and will always appear in lower case.- Specified by:
getActionsin classPermission- Returns:
-
getPage
Returns the name of the wiki page represented by this permission.- Returns:
- the page name
-
getWiki
Returns the name of the wiki containing the page represented by this permission; may return the wildcard string.- Returns:
- the wiki
-
hashCode
Returns the hash code for this PagePermission.- Specified by:
hashCodein classPermission- Returns:
-
implies
PagePermission can only imply other PagePermissions; no other permission types are implied. One PagePermission implies another if its actions if three conditions are met:
- The other PagePermission's wiki is equal to, or a subset of, that of this permission. This permission's wiki is considered a superset of the other if it contains a matching prefix plus a wildcard, or a wildcard followed by a matching suffix.
- The other PagePermission's target is equal to, or a subset of, the target specified by this permission. This permission's target is considered a superset of the other if it contains a matching prefix plus a wildcard, or a wildcard followed by a matching suffix.
- All of other PagePermission's actions are equal to, or a subset of, those of this permission
- Specified by:
impliesin classPermission- Parameters:
permission-- Returns:
- See Also:
Permission.implies(java.security.Permission)
-
newPermissionCollection
Returns a newAllPermissionCollection.- Overrides:
newPermissionCollectionin classPermission- Returns:
- See Also:
Permission.newPermissionCollection()
-
toString
Prints a human-readable representation of this permission.- Overrides:
toStringin classPermission- Returns:
- Something human-readable
- See Also:
Object.toString()
-
impliedMask
Creates an "implied mask" based on the actions originally assigned: for example, delete implies modify, comment, upload and view.- Parameters:
mask- binary mask for actions- Returns:
- binary mask for implied actions
-
isSubset
Determines whether one target string is a logical subset of the other.- Parameters:
superSet- the prospective supersetsubSet- the prospective subset- Returns:
- the results of the test, where
trueindicates thatsubSetis a subset ofsuperSet
-
createMask
Private method that creates a binary mask based on the actions specified. This is used byimplies(Permission).- Parameters:
actions- the actions for this permission, separated by commas- Returns:
- the binary actions mask
-