Codeunit 9031 "Security Group"
System Application · System.Security.AccessControl
Across versions
- BC23present
- BC242 procedures added
- BC25-30unchanged
Neighbourhood 15 connected objects and pages
System Application · System.Security.AccessControl · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Access | Public |
Procedures
Create(GroupCode: Code[20]; GroupId: Text): Creates a new security group.Delete(GroupCode: Code[20]): Deletes a security group.Copy(SourceGroupCode: Code[20]; DestinationGroupCode: Code[20]; DestinationGroupId: Text): Copies a security group.CopyPermissions(SourceGroupCode: Code[20]; DestinationGroupCode: Code[20]): Copies permission sets from the source security group to the destination security group.AddPermissionSet(GroupCode: Code[20]; RoleId: Code[20]; Company: Text[30]; Scope: Option System,Tenant; AppId: Guid): Adds a permission set to a security group.RemovePermissionSet(GroupCode: Code[20]; RoleId: Code[20]; Company: Text[30]; Scope: Option System,Tenant; AppId: Guid): Boolean: Removes a permission set from a security group.GetGroups(var SecurityGroupBuffer: Record "Security Group Buffer")+ BC24: Gets all the defined security groups.GetGroups(var SecurityGroupBuffer: Record "Security Group Buffer"; FetchGroupNames: Boolean)+ BC24: Gets all the defined security groups.GetMembers(var SecurityGroupMemberBuffer: Record "Security Group Member Buffer"): List of [Code[20]]: Gets all the security group memberships.ValidateGroupId(GroupId: Text): Validates the group ID that can be used for a security group.GetGroupUserSecurityId(GroupCode: Code[20]): Guid: Gets the user security ID of a special user record that corresponds to a Microsoft Entra security group or Windows group.GetName(GroupCode: Code[20]; var GroupName: Text[250]): Boolean: Gets the name of the security group.GetId(GroupCode: Code[20]): Text[250]: Gets the SID of a Windows group or an object ID of a Microsoft Entra security group by group code.GetCode(GroupId: Text[250]; var GroupCode: Code[20]): Boolean+ BC24: Gets the code of the security group by its ID.GetIdByName(GroupName: Text): Text(internal): Gets the SID of a Windows group or an object ID of a Microsoft Entra security group by group name.SendNotificationForDeletedGroups(var SecurityGroupBuffer: Record "Security Group Buffer")(internal): Shows the notification listing deleted Windows / Microsoft Entra groups.IsWindowsAuthentication(): Boolean: Checks whether the current authentication type is Windows, meaning that Windows groups will be used for defining security groups.Export(SecurityGroupCodes: List of [Code[20]]; Destination: OutStream): Exports the provided list of security groups.Import(Source: InStream): Imports a list of security groups.
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 9871 “Security Group Impl.” (18 calls:
AddPermissionSet → AddPermissionSet,Copy → Copy,CopyPermissions → CopyPermissions, …)
Called by
- Codeunit 9852 “Effective Permissions Mgt.” (5 calls:
GetAccessControlFilterForUser → GetGroupUserSecurityId,GetAccessControlFilterForUser → GetMembers,MarkUsersWithAssignedPermissionSet → GetGroups, …) - Codeunit 9874 “User Security Groups PBT” (3 calls:
GetSecurityGroupMemberBuffer → GetCode,IsAnySecurityGroupPresent → GetGroups,IsFetchingGroupsPerUserAvailable → IsWindowsAuthentication) - Page 9871 “Security Groups” (3 calls:
OnOpenPage → IsWindowsAuthentication,OnOpenPage → SendNotificationForDeletedGroups,RefreshData → GetGroups) - Page 9872 “New Security Group” (3 calls:
OnOpenPage → IsWindowsAuthentication,ValidateGroupName → GetIdByName,ValidateGroupName → ValidateGroupId) - Page 9873 “Copy Security Group” (3 calls:
OnOpenPage → IsWindowsAuthentication,ValidateGroupName → GetIdByName,ValidateGroupName → ValidateGroupId) - Page 30082 “APIV2 - Aut. Security Groups” (2 calls:
LoadRecords → GetGroups,OnDeleteRecord → Delete) - Page 9883 “Permissions Overview” (2 calls:
LoadPermAssignmentBuffer → GetGroups,LoadPermAssignmentBuffer → GetMembers) - Page 30081 “APIV2 - Aut. Sec. Gr. Members” (1 call:
LoadRecords → GetMembers) - Page 9821 “Inherited Permission Sets Part” (1 call:
Refresh → GetMembers) - Page 9848 “User Security Groups Part” (1 call:
OnOpenPage → GetMembers) - Page 9866 “Security Group Members Part” (1 call:
Refresh → GetMembers) - Page 9869 “Security Group Members” (1 call:
OnOpenPage → GetMembers) - Page 9874 “Permission Set By Sec. Group” (1 call:
OnOpenPage → GetGroups) - Table 30432 “User Permissions Buffer” (1 call:
FillBuffer → GetMembers)
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: "Security Group"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.