Codeunit 152 "User Permissions"
System Application · System.Security.User
Across versions
- BC23-24present
- BC251 procedures added
- BC261 procedures removed
- BC27-30unchanged
Neighbourhood 45 connected objects and pages
System Application · System.Security.User · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Public |
Procedures
IsSuper(UserSecurityId: Guid): Boolean: Checks whether the user has the SUPER permissions set.RemoveSuperPermissions(UserSecurityId: Guid): Boolean: Removes the SUPER permissions set from a user.CanManageUsersOnTenant(UserSecurityId: Guid): Boolean: Checks whether the user has permission to manage users in the tenant.HasUserPermissionSetAssigned(UserSecurityId: Guid; Company: Text; RoleId: Code[20]; Scope: Option; AppId: Guid): Boolean: Checks whether a user has a specific permission set assigned.AssignPermissionSets(var UserSecurityId: Guid; CompanyName: Text; var AggregatePermissionSet: Record "Aggregate Permission Set")+ BC25: Assign a permission set to a given userGetEffectivePermission(PermissionObjectType: Option "Table Data","Table",,"Report",,"Codeunit","XMLport",MenuSuite,"Page","Query","System",,,,,,,,,; ObjectId: Integer): Record "Expanded Permission" temporary: Gets the effective permissions for the current user in the current company.
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 153 “User Permissions Impl.” (6 calls:
AssignPermissionSets → AssignPermissionSets,CanManageUsersOnTenant → CanManageUsersOnTenant,GetEffectivePermission → GetEffectivePermission, …)
Called by
- Codeunit 20406 “Qlty. Permission Mgmt.” (5 calls:
CanDeleteTableData → GetEffectivePermission,CanInsertTableData → GetEffectivePermission,CanModifyTableData → GetEffectivePermission, …) - Codeunit 3307 “Payables Agent Setup” (3 calls:
ApplyAgentSetup → AssignPermissionSets,ApplyAgentSetup → HasUserPermissionSetAssigned,ApplyAgentSetup → IsSuper) - Codeunit 6922 “Expense Agent Entra App Mgt.” (3 calls:
HasSecurityPermission → HasUserPermissionSetAssigned,VerifyCurrentUserCanManageExpenseAgent → HasUserPermissionSetAssigned,VerifyCurrentUserCanManageExpenseAgent → IsSuper) - Codeunit 3904 “Apply Retention Policy Impl.” (2 calls:
TruncateTableRecords → GetEffectivePermission,VerifyIndirectDeletePermission → GetEffectivePermission) - Codeunit 4001 “Hybrid Cloud Management” (2 calls:
CanGrantPermission → IsSuper,CanSetupIntelligentCloud → IsSuper) - Codeunit 489 “IC Partner Change Monitor” (2 calls:
CheckHasPermissionsToChangeSensitiveFields → HasUserPermissionSetAssigned,CheckHasPermissionsToChangeSensitiveFields → IsSuper) - Codeunit 9001 “Permission Pages Mgt.” (2 calls:
CheckAndRaiseNotificationIfAppDBPermissionSetsChanged → CanManageUsersOnTenant,DisallowEditingPermissionSetsForNonAdminUsers → CanManageUsersOnTenant) - Codeunit 9002 “Permission Manager” (2 calls:
CheckCurrentUserCanModifyUser → CanManageUsersOnTenant,ResetUsersToIntelligentCloudPermissions → IsSuper) - Codeunit 9018 “Azure AD Plan Impl.” (2 calls:
AddNewlyAssignedUserPlans → RemoveSuperPermissions,AssignPlanToUserWithDelegatedRole → RemoveSuperPermissions) - Codeunit 9175 “User Settings Impl.” (2 calls:
CheckPermissionsInternal → IsSuper,HideUsersDependingOnPermissions → CanManageUsersOnTenant) - Page 9192 “Company Creation Wizard” (2 calls:
OnInit → CanManageUsersOnTenant,OnInit → IsSuper) - Page 9515 “Azure AD User Update Wizard” (2 calls:
OnOpenPage → CanManageUsersOnTenant,OnOpenPage → IsSuper) - Page 9800 “Users” (2 calls:
OnInit → CanManageUsersOnTenant,OnInit → IsSuper) - Page 9807 “User Card” (2 calls:
OnAfterGetRecord → CanManageUsersOnTenant,SetPermissionsVisibility → CanManageUsersOnTenant) - Codeunit 1430 “Role Center Notification Mgt.” (1 call:
ShowNotifications → IsSuper) - Codeunit 1932 “Scheduled Perf. Profiler Impl.” (1 call:
ValidateScheduleCreationPermissions → CanManageUsersOnTenant) - Codeunit 2027 “Image Analyzer Ext. Mgt.” (1 call:
IsSetupNotificationEnabled → IsSuper) - Codeunit 40032 “Migration Validation” (1 call:
CanStartBackgroundJob → IsSuper) - Codeunit 4035 “Wizard Integration” (1 call:
CanStartBackgroundJob → IsSuper) - Codeunit 4318 “Agent System Permissions Impl.” (1 call:
CurrentUserHasExecuteSystemPermission → GetEffectivePermission) - Codeunit 47005 “SL Wizard Integration” (1 call:
CanStartBackgroundJob → IsSuper) - Codeunit 6301 “Power BI Service Mgt.” (1 call:
IsUserAdminForPowerBI → IsSuper) - Codeunit 7774 “Copilot Capability Impl” (1 call:
IsAdmin → IsSuper) - Codeunit 9822 “Plan Configuration Impl.” (1 call:
VerifyUserHasRequiredPermissionSet → HasUserPermissionSetAssigned) - Codeunit 9852 “Effective Permissions Mgt.” (1 call:
DisallowViewingEffectivePermissionsForNonAdminUsers → CanManageUsersOnTenant) - Codeunit 9856 “Permission Set Relation Impl.” (1 call:
VerifyUserCanEditPermissionSet → CanManageUsersOnTenant) - Page 4000 “Hybrid Cloud Setup Wizard” (1 call:
OnInit → IsSuper) - Page 4003 “Intelligent Cloud Management” (1 call:
OnOpenPage → IsSuper) - Page 40063 “Cloud Migration Management” (1 call:
OnOpenPage → IsSuper) - Page 4007 “Intelligent Cloud Ready” (1 call:
OnOpenPage → IsSuper) - Page 4017 “Intelligent Cloud Update” (1 call:
OnInit → IsSuper) - Page 8700 “Table Information” (1 call:
OnInit → IsSuper) - Page 9200 “Personalized Pages” (1 call:
PrivacyFilterUserPersonalizations → CanManageUsersOnTenant) - Page 9802 “Permission Sets” (1 call:
OnInit → CanManageUsersOnTenant) - Page 9811 “User ACS Setup” (1 call:
OnInit → CanManageUsersOnTenant) - Page 9812 “Set Web Service Access Key” (1 call:
OnOpenPage → CanManageUsersOnTenant) - Page 9855 “Permission Set” (1 call:
OnDeleteRecord → CanManageUsersOnTenant) - Page 9871 “Security Groups” (1 call:
OnOpenPage → CanManageUsersOnTenant) - Page extension 4015 “Intelligent Cloud Extension” (1 call:
OnOpenPage → IsSuper) - Page extension 9800 “Users Perf. Factboxes” (1 call:
OnOpenPage → CanManageUsersOnTenant) - Page extension 9807 “User Card Perf. Factboxes” (1 call:
OnOpenPage → CanManageUsersOnTenant) - Table 1853 “MS - Sales Forecast Setup” (1 call:
CheckEnabled → IsSuper) - Table extension 2025 “MS - Image Analyzer Setup” (1 call:
OnBeforeModify → IsSuper) - XMLport 9864 “Import Permission Sets” (1 call:
DisallowEditingPermissionSetsForNonAdminUsers → CanManageUsersOnTenant)
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"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.