XmlPort 9001 Export/Import Security Groups, source in 25
Source242526272829metadata in 25
src/System Application/App/Security Groups/src/ExportImportSecurityGroups.XmlPort.al105 lines, Copyright (c) Microsoft Corporation. MIT
// ------------------------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
// ------------------------------------------------------------------------------------------------
namespace System.Security.AccessControl;
/// <summary>
/// Imports or exports a security group.
/// </summary>
xmlport 9001 "Export/Import Security Groups"
{
Caption = 'Export/Import Security Groups';
UseRequestPage = false;
Permissions = tabledata "Security Group" = r;
schema
{
textelement(SecurityGroups)
{
tableelement("Security Group"; "Security Group")
{
XmlName = 'SecurityGroup';
AutoSave = false;
fieldelement(Code; "Security Group".Code)
{
}
textelement(GroupID)
{
trigger OnBeforePassVariable()
begin
GroupID := SecurityGroup.GetId("Security Group".Code);
end;
trigger OnAfterAssignVariable()
begin
SecurityGroup.ValidateGroupId(GroupID);
end;
}
tableelement("Access Control"; "Access Control")
{
LinkFields = "User Security ID" = field("Group User SID");
LinkTable = "Security Group";
MinOccurs = Zero;
XmlName = 'AccessControl';
SourceTableView = sorting("Role ID", "App ID") order(ascending);
fieldelement(RoleId; "Access Control"."Role ID")
{
FieldValidate = No;
}
fieldelement(Scope; "Access Control".Scope)
{
}
fieldelement(AppID; "Access Control"."App ID")
{
}
fieldelement(CompanyName; "Access Control"."Company Name")
{
FieldValidate = No;
}
trigger OnBeforeInsertRecord()
begin
"Access Control"."User Security ID" := SecurityGroup.GetGroupUserSecurityId("Security Group".Code)
end;
trigger OnAfterInsertRecord()
begin
NoOfSecurityGroupPermissionSetsInserted += 1;
end;
}
trigger OnBeforeInsertRecord()
begin
IsImport := true;
SecurityGroup.Create("Security Group".Code, GroupID);
end;
trigger OnAfterInsertRecord()
begin
NoOfSecurityGroupsInserted += 1;
end;
}
}
}
trigger OnPostXmlPort()
begin
if GuiAllowed() then
if IsImport then
Message(InsertedMsg, NoOfSecurityGroupsInserted, NoOfSecurityGroupPermissionSetsInserted);
end;
var
SecurityGroup: Codeunit "Security Group";
IsImport: Boolean;
NoOfSecurityGroupsInserted: Integer;
NoOfSecurityGroupPermissionSetsInserted: Integer;
InsertedMsg: Label '%1 security groups with a total of %2 permission sets were inserted.', Comment = '%1 and %2 are numbers/quantities.';
}