Class Permission
- java.lang.Object
-
- hudson.security.Permission
-
public final class Permission extends Object
Permission, which represents activity that requires a security privilege.Each permission is represented by a specific instance of
Permission.- Author:
- Kohsuke Kawaguchi
- See Also:
- Security
-
-
Field Summary
Fields Modifier and Type Field Description static PermissionCONFIGUREGeneric configuration access.static PermissionCREATEGeneric create access.static PermissionDELETEGeneric delete access.org.jvnet.localizer.LocalizabledescriptionHuman-readable description of this permission.booleanenabledWhether this permission is available for use.static PermissionFULL_CONTROLDeprecated.since 2009-01-23.PermissionGroupgroupstatic PermissionGroupGROUPstatic PermissionHUDSON_ADMINISTERDeprecated.since 2009-01-23.static PermissionGroupHUDSON_PERMISSIONSDeprecated.since 2009-01-23.static Comparator<Permission>ID_COMPARATORComparator that ordersPermissionobjects based on their ID.PermissionimpliedByBundledPermissionthat also implies this permission.StringnameHuman readable ID of the permission.Classownerstatic PermissionREADGeneric read access.static PermissionUPDATEGeneric update access.static PermissionWRITEGeneric write access.
-
Constructor Summary
Constructors Constructor Description Permission(PermissionGroup group, String name, Permission impliedBy)Deprecated.since 1.257.Permission(PermissionGroup group, String name, org.jvnet.localizer.Localizable description, Permission impliedBy)Deprecated.Permission(PermissionGroup group, String name, org.jvnet.localizer.Localizable description, Permission impliedBy, boolean enable)Deprecated.Permission(PermissionGroup group, String name, org.jvnet.localizer.Localizable description, Permission impliedBy, boolean enable, PermissionScope[] scopes)Defines a new permission.Permission(PermissionGroup group, String name, org.jvnet.localizer.Localizable description, Permission impliedBy, PermissionScope scope)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object o)static PermissionfromId(String id)Convert the ID representation intoPermissionobject.static List<Permission>getAll()Returns all thePermissions available in the system.booleangetEnabled()StringgetId()Returns the string representation of thisPermission, which can be converted back toPermissionvia thefromId(String)method.inthashCode()booleanisContainedBy(PermissionScope s)Checks if this permission is contained in the specified scope, (either directly or indirectly.)voidsetEnabled(boolean enable)StringtoString()
-
-
-
Field Detail
-
ID_COMPARATOR
public static final Comparator<Permission> ID_COMPARATOR
Comparator that ordersPermissionobjects based on their ID.
-
owner
@NonNull public final Class owner
-
group
@NonNull public final PermissionGroup group
-
name
@NonNull public final String name
Human readable ID of the permission.This name should uniquely determine a permission among its owner class. The name must be a valid Java identifier.
The expected naming convention is something like "BrowseWorkspace".
-
description
@CheckForNull public final org.jvnet.localizer.Localizable description
Human-readable description of this permission. Used as a tooltip to explain this permission, so this message should be a couple of sentences long.If null, there will be no description text.
-
impliedBy
@CheckForNull public final Permission impliedBy
BundledPermissionthat also implies this permission.This allows us to organize permissions in a hierarchy, so that for example we can say "view workspace" permission is implied by the (broader) "read" permission.
The idea here is that for most people, access control based on such broad permission bundle is good enough, and those few that need finer control can do so.
-
enabled
public boolean enabled
Whether this permission is available for use.This allows us to dynamically enable or disable the visibility of permissions, so administrators can control the complexity of their permission matrix.
- Since:
- 1.325
-
HUDSON_PERMISSIONS
@Deprecated public static final PermissionGroup HUDSON_PERMISSIONS
Deprecated.since 2009-01-23. AccessJenkins.PERMISSIONSinstead.PermissionGroupforJenkins.
-
HUDSON_ADMINISTER
@Deprecated public static final Permission HUDSON_ADMINISTER
Deprecated.since 2009-01-23. AccessJenkins.ADMINISTERinstead.Permissionthat represents the God-like access. Equivalent of Unix root.All permissions are eventually implied by this permission.
-
GROUP
public static final PermissionGroup GROUP
-
FULL_CONTROL
@Deprecated public static final Permission FULL_CONTROL
Deprecated.since 2009-01-23. UseJenkins.ADMINISTER.Historically this was separate fromHUDSON_ADMINISTERbut such a distinction doesn't make sense any more, so deprecated.
-
READ
public static final Permission READ
Generic read access.
-
WRITE
public static final Permission WRITE
Generic write access.
-
CREATE
public static final Permission CREATE
Generic create access.
-
UPDATE
public static final Permission UPDATE
Generic update access.
-
DELETE
public static final Permission DELETE
Generic delete access.
-
CONFIGURE
public static final Permission CONFIGURE
Generic configuration access.
-
-
Constructor Detail
-
Permission
public Permission(@NonNull PermissionGroup group, @NonNull String name, @CheckForNull org.jvnet.localizer.Localizable description, @CheckForNull Permission impliedBy, boolean enable, @NonNull PermissionScope[] scopes) throws IllegalStateExceptionDefines a new permission.- Parameters:
group- Permissions are grouped per classes that own them. Specify the permission group created for that class. The idiom is:class Foo { private static final PermissionGroup PERMISSIONS = new PermissionGroup(Foo.class,...); public static final Permission ABC = new Permission(PERMISSION,...) ; }Because of the classloading problems and the difficulty for Hudson to enumerate them, the permission constants really need to be static field of the owner class.name- Seename.description- Seedescription.impliedBy- SeeimpliedBy.- Throws:
IllegalStateException- if this permission was already defined
-
Permission
public Permission(@NonNull PermissionGroup group, @NonNull String name, @CheckForNull org.jvnet.localizer.Localizable description, @CheckForNull Permission impliedBy, @NonNull PermissionScope scope)
-
Permission
@Deprecated public Permission(@NonNull PermissionGroup group, @NonNull String name, @CheckForNull org.jvnet.localizer.Localizable description, @CheckForNull Permission impliedBy, boolean enable)
Deprecated.
-
Permission
@Deprecated public Permission(@NonNull PermissionGroup group, @NonNull String name, @CheckForNull org.jvnet.localizer.Localizable description, @CheckForNull Permission impliedBy)
Deprecated.
-
Permission
@Deprecated public Permission(@NonNull PermissionGroup group, @NonNull String name, @CheckForNull Permission impliedBy)
Deprecated.since 1.257. UsePermission(PermissionGroup, String, Localizable, Permission)
-
-
Method Detail
-
isContainedBy
public boolean isContainedBy(@NonNull PermissionScope s)Checks if this permission is contained in the specified scope, (either directly or indirectly.)
-
getId
@NonNull public String getId()
Returns the string representation of thisPermission, which can be converted back toPermissionvia thefromId(String)method.This string representation is suitable for persistence.
- Returns:
- ID with the following format: permissionClass.permissionName
- See Also:
fromId(String)
-
fromId
@CheckForNull public static Permission fromId(@NonNull String id)
Convert the ID representation intoPermissionobject.- Returns:
- null if the conversion failed.
- See Also:
getId()
-
setEnabled
public void setEnabled(boolean enable)
-
getEnabled
public boolean getEnabled()
-
getAll
@NonNull public static List<Permission> getAll()
Returns all thePermissions available in the system.- Returns:
- always non-null. Read-only.
-
-