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 AvailablePermission
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.default AvailablePermission
buildBaseAvailablePermission
(QPermissionRules rules, PermissionSubType permissionSubType, MetaDataWithName metaDataWithName, String objectType) Helper method for implementors of buildAvailablePermission - that creates anAvailablePermission
with all fields set *other* than `name` (e.g., the name of the permission).void
checkPermissionsThrowing
(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 boolean
To 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 specializedAvailablePermission
object, e.g., with the name that the permission name that the custom checker will use.- 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:
-
buildBaseAvailablePermission
default AvailablePermission buildBaseAvailablePermission(QPermissionRules rules, PermissionSubType permissionSubType, MetaDataWithName metaDataWithName, String objectType) Helper method for implementors of buildAvailablePermission - that creates anAvailablePermission
with all fields set *other* than `name` (e.g., the name of the permission).
-