Codeunit 153 "User Permissions Impl."
System Application · System.Security.User
Across versions
- BC23present
- BC241 events removed
- BC252 procedures added
- BC261 procedures removed
- BC27-30unchanged
Neighbourhood 2 connected objects and pages
System Application · System.Security.User · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Internal |
| Permissions | tabledata “Access Control” = rimd, tabledata User = r |
Events published
OnCanManageUsersOnTenant(UserSID: Guid; var Result: Boolean)(internal): An event that indicates that subscribers should set the result that should be returned when the CanManageUsersOnTenant is called.
Event subscriptions
- CheckSuperPermissionsBeforeRenameAccessControl subscribes to Table “Access Control” OnBeforeRenameEvent
- CheckSuperPermissionsBeforeDeleteAccessControl subscribes to Table “Access Control” OnBeforeDeleteEvent
- CheckSuperPermissionsBeforeModifyUser subscribes to Table “User” OnBeforeModifyEvent
- CheckSuperPermissionsBeforeDeleteUser subscribes to Table “User” OnBeforeDeleteEvent
Procedures
IsSuper(UserSecurityId: Guid): BooleanRemoveSuperPermissions(UserSecurityId: Guid): BooleanCanManageUsersOnTenant(UserSID: Guid): BooleanHasUserPermissionSetAssigned(UserSecurityId: Guid; Company: Text; RoleId: Code[20]; ItemScope: Option; AppId: Guid): BooleanHasUserPermissionSetDirectlyAssigned(UserSecurityId: Guid; Company: Text; RoleId: Code[20]; ItemScope: Option; AppId: Guid): BooleanGetEffectivePermission(UserSecurityIdToCheck: Guid; CompanyNameToCheck: Text; PermissionObjectType: Option "Table Data","Table",,"Report",,"Codeunit","XMLport",MenuSuite,"Page","Query","System",,,,,,,,,; ObjectId: Integer): Text(internal)GetEffectivePermission(PermissionObjectType: Option "Table Data","Table",,"Report",,"Codeunit","XMLport",MenuSuite,"Page","Query","System",,,,,,,,,; ObjectId: Integer): Record "Expanded Permission" temporaryAssignPermissionSets(var UserSecurityId: Guid; CompanyName: Text; var AggregatePermissionSet: Record "Aggregate Permission Set")+ BC25AssignPermissionSet(var UserSecurityId: Guid; CompanyName: Text; var AggregatePermissionSet: Record "Aggregate Permission Set")+ BC25
Plus 5 local procedures.
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 457 “Environment Information” (3 calls:
CheckSuperPermissionsBeforeDeleteAccessControl → IsSaaS,CheckSuperPermissionsBeforeDeleteUser → IsSaaS,CheckSuperPermissionsBeforeRenameAccessControl → IsSaaS)
Called by
- Codeunit 152 “User Permissions” (6 calls:
AssignPermissionSets → AssignPermissionSets,CanManageUsersOnTenant → CanManageUsersOnTenant,GetEffectivePermission → GetEffectivePermission, …)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "User Permissions Impl."), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.