Class PagePermission
- java.lang.Object
-
- java.security.Permission
-
- org.apache.wiki.auth.permissions.PagePermission
-
- All Implemented Interfaces:
java.io.Serializable
,java.security.Guard
public final class PagePermission extends java.security.Permission implements java.io.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
andrename
.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:
delete
andrename
implyedit
modify
impliesedit
andupload
edit
impliescomment
andview
comment
andupload
implyview
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 PagePermission
COMMENT
A static instance of the comment permission.static java.lang.String
COMMENT_ACTION
Action name for the comment permission.static PagePermission
DELETE
A static instance of the delete permission.static java.lang.String
DELETE_ACTION
Action name for the delete permission.static PagePermission
EDIT
A static instance of the edit permission.static java.lang.String
EDIT_ACTION
Action name for the edit permission.static PagePermission
MODIFY
A static instance of the modify permission.static java.lang.String
MODIFY_ACTION
Action name for the modify permission.static PagePermission
RENAME
A static instance of the rename permission.static java.lang.String
RENAME_ACTION
Action name for the rename permission.static PagePermission
UPLOAD
A static instance of the upload permission.static java.lang.String
UPLOAD_ACTION
Action name for the upload permission.static PagePermission
VIEW
A static instance of the view permission.static java.lang.String
VIEW_ACTION
Action name for the view permission.
-
Constructor Summary
Constructors Constructor Description PagePermission(java.lang.String page, java.lang.String actions)
Creates a new PagePermission for a specified page name and set of actions.PagePermission(Page page, java.lang.String actions)
Creates a new PagePermission for a specified page and set of actions.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(java.lang.Object obj)
Two PagePermission objects are considered equal if their actions (after normalization), wiki and target are equal.java.lang.String
getActions()
Returns the actions for this permission: "view", "edit", "comment", "modify", "upload" or "delete".java.lang.String
getPage()
Returns the name of the wiki page represented by this permission.java.lang.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 PagePermission.boolean
implies(java.security.Permission permission)
PagePermission can only imply other PagePermissions; no other permission types are implied.java.security.PermissionCollection
newPermissionCollection()
Returns a newAllPermissionCollection
.java.lang.String
toString()
Prints a human-readable representation of this permission.
-
-
-
Field Detail
-
COMMENT_ACTION
public static final java.lang.String COMMENT_ACTION
Action name for the comment permission.- See Also:
- Constant Field Values
-
DELETE_ACTION
public static final java.lang.String DELETE_ACTION
Action name for the delete permission.- See Also:
- Constant Field Values
-
EDIT_ACTION
public static final java.lang.String EDIT_ACTION
Action name for the edit permission.- See Also:
- Constant Field Values
-
MODIFY_ACTION
public static final java.lang.String MODIFY_ACTION
Action name for the modify permission.- See Also:
- Constant Field Values
-
RENAME_ACTION
public static final java.lang.String RENAME_ACTION
Action name for the rename permission.- See Also:
- Constant Field Values
-
UPLOAD_ACTION
public static final java.lang.String UPLOAD_ACTION
Action name for the upload permission.- See Also:
- Constant Field Values
-
VIEW_ACTION
public static final java.lang.String VIEW_ACTION
Action name for the view permission.- See Also:
- Constant Field Values
-
COMMENT
public static final PagePermission COMMENT
A static instance of the comment permission.
-
DELETE
public static final PagePermission DELETE
A static instance of the delete permission.
-
EDIT
public static final PagePermission EDIT
A static instance of the edit permission.
-
RENAME
public static final PagePermission RENAME
A static instance of the rename permission.
-
MODIFY
public static final PagePermission MODIFY
A static instance of the modify permission.
-
UPLOAD
public static final PagePermission UPLOAD
A static instance of the upload permission.
-
VIEW
public static final PagePermission VIEW
A static instance of the view permission.
-
-
Constructor Detail
-
PagePermission
public PagePermission(java.lang.String page, java.lang.String actions)
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
public PagePermission(Page page, java.lang.String actions)
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 Detail
-
equals
public boolean equals(java.lang.Object obj)
Two PagePermission objects are considered equal if their actions (after normalization), wiki and target are equal.- Specified by:
equals
in classjava.security.Permission
- Parameters:
obj
-- Returns:
-
getActions
public java.lang.String 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:
getActions
in classjava.security.Permission
- Returns:
-
getPage
public java.lang.String getPage()
Returns the name of the wiki page represented by this permission.- Returns:
- the page name
-
getWiki
public java.lang.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 PagePermission.- Specified by:
hashCode
in classjava.security.Permission
- Returns:
-
implies
public boolean implies(java.security.Permission permission)
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:
implies
in classjava.security.Permission
- Parameters:
permission
-- Returns:
- See Also:
Permission.implies(java.security.Permission)
-
newPermissionCollection
public java.security.PermissionCollection newPermissionCollection()
Returns a newAllPermissionCollection
.- Overrides:
newPermissionCollection
in classjava.security.Permission
- Returns:
- See Also:
Permission.newPermissionCollection()
-
toString
public java.lang.String toString()
Prints a human-readable representation of this permission.- Overrides:
toString
in classjava.security.Permission
- Returns:
- Something human-readable
- See Also:
Object.toString()
-
-