Class UseOtherPermissionNameCustomPermissionChecker
java.lang.Object
com.kingsrook.qqq.backend.core.actions.permissions.UseOtherPermissionNameCustomPermissionChecker
- All Implemented Interfaces:
CustomPermissionChecker
,InitializableViaCodeReference
public class UseOtherPermissionNameCustomPermissionChecker
extends Object
implements CustomPermissionChecker, InitializableViaCodeReference
Simple implementation of a Custom Permission Checker, that takes a permissionName
property, and just checks if the session has that permission.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic QCodeReferenceWithProperties
Factory method to build a code reference to this class, with the given permission name.buildAvailablePermission
(QPermissionRules rules, PermissionSubType permissionSubType, String baseName, MetaDataWithName metaDataWithName, String objectType) To assist withPermissionsHelper.getAllAvailablePermissions(QInstance)
this method lets the application return a specializedAvailablePermission
object, e.g., with the name that the permission name that the custom checker will use.void
checkPermissionsThrowing
(AbstractActionInput actionInput, MetaDataWithPermissionRules metaDataWithPermissionRules) PerCustomPermissionChecker
, check if the active session has the permission specified as this class's permissionName property.Getter for permissionNameboolean
To assist withPermissionsHelper.getAllAvailablePermissions(QInstance)
this method indicates that this implementation of this interface has implementedCustomPermissionChecker.buildAvailablePermission(QPermissionRules, PermissionSubType, String, MetaDataWithName, String)
void
initialize
(QCodeReference codeReference) As perInitializableViaCodeReference
, initialize an instance of this class using the suppliedQCodeReference
, which is expected to be aQCodeReferenceWithProperties
.void
setPermissionName
(String permissionName) Setter for permissionNamewithPermissionName
(String permissionName) Fluent setter for permissionNameMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.kingsrook.qqq.backend.core.actions.permissions.CustomPermissionChecker
buildBaseAvailablePermission
-
Field Details
-
PERMISSION_NAME_PROPERTY
- See Also:
-
-
Constructor Details
-
UseOtherPermissionNameCustomPermissionChecker
public UseOtherPermissionNameCustomPermissionChecker()
-
-
Method Details
-
build
Factory method to build a code reference to this class, with the given permission name.- Parameters:
permissionName
- Full name of the permission to be checked by instances of this class- Returns:
- code reference that can be passed to, e.g.,
QPermissionRules.withCustomPermissionChecker(QCodeReference)
-
initialize
As perInitializableViaCodeReference
, initialize an instance of this class using the suppliedQCodeReference
, which is expected to be aQCodeReferenceWithProperties
.- Specified by:
initialize
in interfaceInitializableViaCodeReference
-
checkPermissionsThrowing
public void checkPermissionsThrowing(AbstractActionInput actionInput, MetaDataWithPermissionRules metaDataWithPermissionRules) throws QPermissionDeniedException PerCustomPermissionChecker
, check if the active session has the permission specified as this class's permissionName property.- Specified by:
checkPermissionsThrowing
in interfaceCustomPermissionChecker
- Parameters:
actionInput
- generally the input data container for the action being performed - e.g., an InsertInput or RunProcessInputmetaDataWithPermissionRules
- the table/process/etc that is being requested by a user.- Throws:
QPermissionDeniedException
- to indicate the user does not have permission. The method should return without exception to indicate permission granted,
-
handlesBuildAvailablePermission
public boolean handlesBuildAvailablePermission()Description copied from interface:CustomPermissionChecker
To assist withPermissionsHelper.getAllAvailablePermissions(QInstance)
this method indicates that this implementation of this interface has implementedCustomPermissionChecker.buildAvailablePermission(QPermissionRules, PermissionSubType, String, MetaDataWithName, String)
- Specified by:
handlesBuildAvailablePermission
in interfaceCustomPermissionChecker
- Returns:
- in the default implementation, false is returned.
-
buildAvailablePermission
public AvailablePermission buildAvailablePermission(QPermissionRules rules, PermissionSubType permissionSubType, String baseName, MetaDataWithName metaDataWithName, String objectType) Description copied from interface:CustomPermissionChecker
To assist withPermissionsHelper.getAllAvailablePermissions(QInstance)
this method lets the application return a specializedAvailablePermission
object, e.g., with the name that the permission name that the custom checker will use.- Specified by:
buildAvailablePermission
in interfaceCustomPermissionChecker
- Returns:
- an
AvailablePermission
object to add to the set of all available permissions. If null, then no permission is added to that result. - See Also:
-
getPermissionName
-
setPermissionName
-
withPermissionName
Fluent setter for permissionName- Parameters:
permissionName
- The full permission name that is checked by this checker. note that this value is not expected to be directly set via this setter - but rather, via the initialization of this class through aQCodeReferenceWithProperties
.- Returns:
- this
-