With the IPermission interface, you can do the following:
Check if a specific user has a specific permission - isAllowed() .
Get a list of all the permissions that can be assigned for this object - getAllPermissions() .
The interface also has the helper function getPermissionTitle() for getting the display name for a specific permission.
To modify permissions, use the PCD API, as described in Setting PCD Permissions .
Checking a User's Permission
The following code example checks whether the current user has read permission on the object with the PCD name stored in the string myObject :
IAdminBase myAdmin = (IAdminBase)iCtx.lookup(myObject); IPermission myIview = (IPermission) myAdmin.getImplementation(IAdminBase.PERMISSION); boolean hasPermission = myIview .isAllowed(request.getUser(),IPermission.PCM_ADMIN_READ); if (hasPermission) { response.write(request.getUser().getName() + " has " + myIview.getPermissionTitle("Pcd.Read",request.getLocale()) + " permission.<br>"); }
Permission Constants
The IPermission interface provides constants for checking the following permissions:
Owner
Read
Write
Read-Write
Full Control
Use
To check the role assigner permission, use the constant IPortalBasicRoleFactoryService.ROLE_ASSIGNMENT_PERMISSION .
The PCM's IPermission and PCD's IPcdStandardPermissions interfaces define different sets of permissions constants. They are not interchangeable.