Interface CustomPermissionChecker
- All Known Implementing Classes:
BulkTableActionProcessPermissionChecker,ReportProcessPermissionChecker,UseOtherPermissionNameCustomPermissionChecker,UseTablePermissionCustomPermissionChecker
public interface CustomPermissionChecker
For special cases of applying permissions, an application can implement a
custom permission checker via this interface - and place it on a table, process,
report, app, or widget via
QPermissionRules.withCustomPermissionChecker(QCodeReference).-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondefault AvailablePermissionbuildAvailablePermission(QPermissionRules rules, PermissionSubType permissionSubType, String baseName, MetaDataWithName metaDataWithName, String objectType) To assist withPermissionsHelper.getAllAvailablePermissions(QInstance)this method lets the application return a specializedAvailablePermissionobject, e.g., with the name that the permission name that the custom checker will use.default AvailablePermissionbuildBaseAvailablePermission(QPermissionRules rules, PermissionSubType permissionSubType, MetaDataWithName metaDataWithName, String objectType) Helper method for implementors of buildAvailablePermission - that creates anAvailablePermissionwith all fields set *other* than `name` (e.g., the name of the permission).voidcheckPermissionsThrowing(AbstractActionInput actionInput, MetaDataWithPermissionRules metaDataWithPermissionRules) This is the primary method of the interface, which is called when it's time to check if a user (current session) has permission.default booleanTo assist withPermissionsHelper.getAllAvailablePermissions(QInstance)this method indicates that this implementation of this interface has implementedbuildAvailablePermission(QPermissionRules, PermissionSubType, String, MetaDataWithName, String)
-
Field Details
-
LOG
-
-
Method Details
-
checkPermissionsThrowing
void checkPermissionsThrowing(AbstractActionInput actionInput, MetaDataWithPermissionRules metaDataWithPermissionRules) throws QPermissionDeniedException This is the primary method of the interface, which is called when it's time to check if a user (current session) has permission.- 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
default boolean handlesBuildAvailablePermission()To assist withPermissionsHelper.getAllAvailablePermissions(QInstance)this method indicates that this implementation of this interface has implementedbuildAvailablePermission(QPermissionRules, PermissionSubType, String, MetaDataWithName, String)- Returns:
- in the default implementation, false is returned.
-
buildAvailablePermission
default AvailablePermission buildAvailablePermission(QPermissionRules rules, PermissionSubType permissionSubType, String baseName, MetaDataWithName metaDataWithName, String objectType) To assist withPermissionsHelper.getAllAvailablePermissions(QInstance)this method lets the application return a specializedAvailablePermissionobject, e.g., with the name that the permission name that the custom checker will use.- Returns:
- an
AvailablePermissionobject to add to the set of all available permissions. If null, then no permission is added to that result. - See Also:
-
buildBaseAvailablePermission
default AvailablePermission buildBaseAvailablePermission(QPermissionRules rules, PermissionSubType permissionSubType, MetaDataWithName metaDataWithName, String objectType) Helper method for implementors of buildAvailablePermission - that creates anAvailablePermissionwith all fields set *other* than `name` (e.g., the name of the permission).
-