codeunitAdministration & Setupofficial - Microsoftderived - from the source, no model text

Codeunit 9852 "Effective Permissions Mgt."

Base Application · System.Security.AccessControl

Across versions

  1. BC23-25present
  2. BC261 procedures added
  3. BC27-28unchanged
  4. BC293 procedures added
  5. BC30unchanged

Neighbourhood 14 connected objects and pages

Codeunit 1351 "Telemetry Subscribers" (event subscribers)Telemetry SubscribersCodeunit 9027 "Plan Ids" (calls, 22 links)Plan IdsCodeunit 9031 "Security Group" (calls, 5 links)Security GroupCodeunit 8615 "Config. Progress Bar" (calls, 3 links)Config. Progress BarPage 9852 "Effective Permissions" (calls, 3 links)Effective PermissionsPage 9853 "Effective Permissions By Set" (calls, 3 links)Effective Permissions By SetPage 5557 "Permission Conflicts" (calls, 2 links)Permission ConflictsCodeunit 1392 "Monitor Sensitive Field" (calls)Monitor Sensitive FieldCodeunit 152 "User Permissions" (calls)User PermissionsCodeunit 457 "Environment Information" (calls)Environment InformationCodeunit 8616 "Config. Management" (calls)Config. ManagementCodeunit 9002 "Permission Manager" (calls)Permission ManagerPage 5555 "Permission Conflicts Overview" (calls)Permission Conflicts OverviewPage 9800 "Users" (calls)Users

Open in the neighbourhood explorer

One hop out, from the extracted relations and call graph. Up to 40 shown; the sections below list them all.

Base Application · System.Security.AccessControl · BC23-30 · source at ea08af5e · facts from BC29

Events published

Event subscriptions

  • OnInitializingNotificationWithDefaultState subscribes to Page “My Notifications” OnInitializingNotificationWithDefaultState

Procedures

  • OpenPageForUser(UserSID: Guid)
  • DisallowViewingEffectivePermissionsForNonAdminUsers(OtherUserSecurityId: Guid)
  • PopulatePermissionConflictsTable(PlanOrRole: Enum Licenses; RoleId: Code[20]; var PermissionConflicts: Record "Permission Conflicts" temporary) (internal)
  • PopulatePermissionConflictsOverviewTable(var PermissionConflictsOverview: Record "Permission Conflicts Overview" temporary; PlansExist: Dictionary of [Guid, Boolean]) (internal)
  • PopulatePermissionBuffer(var PermissionBuffer: Record "Permission Buffer"; PassedUserID: Guid; PassedCompanyName: Text[50]; PassedObjectType: Integer; PassedObjectId: Integer)
  • PopulatePermissionBufferWithEntitlementPermissionsForObject(var PermissionBuffer: Record "Permission Buffer"; PassedUserID: Guid; PassedObjectType: Option; PassedObjectId: Integer) + BC26
  • PopulateEffectivePermissionsBuffer(var Permission: Record Permission; PassedUserID: Guid; PassedCompanyName: Text[50]; PassedObjectType: Integer; PassedObjectId: Integer; ShowAllObjects: Boolean)
  • PopulatePermissionRecordWithEffectivePermissionsForObject(var Permission: Record Permission; PassedUserID: Guid; PassedCompanyName: Text[50]; PassedObjectType: Option; PassedObjectId: Integer)
  • ModifyPermission(FieldNumChanged: Integer; PermissionBuffer: Record "Permission Buffer"; PassedObjectType: Integer; PassedObjectId: Integer; PassedUserID: Guid)
  • NotificationShowUsers(Notification: Notification)
  • NotificationUndoChange(Notification: Notification)
  • DisableNotification(Notification: Notification)
  • ConvertToPermission(PermissionOption: Option): enum Permission
  • ShowPermissionConflict(Permissions: Enum Permission; EntitlementPermissions: Enum Permission; IsSourceEntitlement: Boolean) (internal)
  • GetPermissionStatus(Permissions: Enum Permission; EntitlementPermissions: Enum Permission; IsSourceEntitlement: Boolean): Text (internal)
  • OpenPermissionConflicts(PermissionSetID: Code[20]; PlanOrRole: Enum Licenses) (internal)
  • HasDirectRIMPermissionsOnTableData(TableId: Integer): Boolean (internal): Checks if the user has direct read, insert and modify permissions on the given table id.

Plus 22 local procedures.

Triggers

OnRun

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.

Called by

Recent changes

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: "Effective Permissions Mgt."), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.

Evidence 1 sources