Package org.apache.wiki.auth.permissions

## Class WikiPermission

- java.lang.Object
- - java.security.Permission
  - - org.apache.wiki.auth.permissions.WikiPermission

All Implemented Interfaces:
  `java.io.Serializable`, `java.security.Guard`

    public final class WikiPermission
    extends java.security.Permission
    implements java.io.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

Fields
`static WikiPermission` `CREATE_GROUPS` A static instance of the createGroups permission.
`static java.lang.String` `CREATE_GROUPS_ACTION` Name of the action for createGroups permission.
`static WikiPermission` `CREATE_PAGES` A static instance of the createPages permission.
`static java.lang.String` `CREATE_PAGES_ACTION` Name of the action for createPages permission.
`static WikiPermission` `EDIT_PREFERENCES` A static instance of the editPreferences permission.
`static java.lang.String` `EDIT_PREFERENCES_ACTION` Name of the action for editPreferences permission.
`static WikiPermission` `EDIT_PROFILE` A static instance of the editProfile permission.
`static java.lang.String` `EDIT_PROFILE_ACTION` Name of the action for editProfile permission.
`static WikiPermission` `LOGIN` A static instance of the login permission.
`static java.lang.String` `LOGIN_ACTION` Name of the action for login permission.
`static java.lang.String` `WILDCARD` Value for a generic wildcard.

### Constructor Summary

Constructors
`WikiPermission​(java.lang.String wiki, java.lang.String actions)` Creates a new WikiPermission for a specified set of actions.

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `equals​(java.lang.Object obj)` Two WikiPermission objects are considered equal if their wikis and actions (after normalization) are equal.
`java.lang.String` `getActions()` Returns the actions for this permission: "createGroups", "createPages", "editPreferences", "editProfile", or "login".
`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 WikiPermission.
`boolean` `implies​(java.security.Permission permission)` WikiPermission can only imply other WikiPermissions; no other permission types are implied.
`java.security.PermissionCollection` `newPermissionCollection()` Returns a new `AllPermissionCollection`.
`java.lang.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 java.lang.String CREATE_GROUPS_ACTION

Name of the action for createGroups permission.

See Also:
  Constant Field Values

#### CREATE_PAGES_ACTION

    public static final java.lang.String CREATE_PAGES_ACTION

Name of the action for createPages permission.

See Also:
  Constant Field Values

#### LOGIN_ACTION

    public static final java.lang.String LOGIN_ACTION

Name of the action for login permission.

See Also:
  Constant Field Values

#### EDIT_PREFERENCES_ACTION

    public static final java.lang.String EDIT_PREFERENCES_ACTION

Name of the action for editPreferences permission.

See Also:
  Constant Field Values

#### EDIT_PROFILE_ACTION

    public static final java.lang.String EDIT_PROFILE_ACTION

Name of the action for editProfile permission.

See Also:
  Constant Field Values

#### WILDCARD

    public static final java.lang.String WILDCARD

Value for a generic wildcard.

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​(java.lang.String wiki,
                          java.lang.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​(java.lang.Object obj)

Two WikiPermission objects are considered equal if their wikis and actions (after normalization) are equal.

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

#### getActions

    public java.lang.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 `java.security.Permission`
Returns:
  the actions
See Also:
  `Permission.getActions()`

#### 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 WikiPermission.

Specified by:
  `hashCode` in class `java.security.Permission`
Returns:

#### implies

    public boolean implies​(java.security.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 `java.security.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 java.security.PermissionCollection newPermissionCollection()

Returns a new `AllPermissionCollection`.

Overrides:
  `newPermissionCollection` in class `java.security.Permission`
Returns:

#### toString

    public java.lang.String toString()

Prints a human-readable representation of this permission.

Overrides:
  `toString` in class `java.security.Permission`
Returns: