Page 9876 Perm. Set Assignments Part

App
Base Application
Namespace
System.Security.AccessControl
Versions
22-28
Source table
2000000053

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/Modules/System/PermissionSets/PermSetAssignmentsPart.Page.al101 lines, Copyright (c) Microsoft Corporation. MIT

namespace System.Security.AccessControl;

using System.Agents;
using System.Security.User;

page 9876 "Perm. Set Assignments Part"
{
    Caption = 'User Permission Set Assignments';
    PageType = ListPart;
    Editable = false;
    DeleteAllowed = false;
    SourceTable = "Access Control";

    layout
    {
        area(content)
        {
            repeater(Group)
            {
                field("Role ID"; Rec."Role ID")
                {
                    Caption = 'Permission Set';
                    ApplicationArea = All;
                    Editable = false;
                    Visible = false;
                    NotBlank = true;
                    ToolTip = 'Specifies a permission set that defines the role.';
                }
                field(UserName; Rec."User Name")
                {
                    ApplicationArea = Basic, Suite;
                    Caption = 'User Name';
                    ShowMandatory = true;
                    TableRelation = User;
                    NotBlank = true;
                    ToolTip = 'Specifies the name of the user.';
                }
                field("Company Name"; Rec."Company Name")
                {
                    ApplicationArea = All;
                    Caption = 'Company';
                    ToolTip = 'Specifies the company that the permission set applies to.';
                }
            }
        }
    }

    actions
    {
        area(Processing)
        {
            action(EditList)
            {
                Caption = 'Edit list';
                ApplicationArea = Basic, Suite;
                Enabled = true;
                Image = Users;
                ToolTip = 'View the assignees of the permission set.';

                trigger OnAction()
                var
                    AccessControl: Record "Access Control";
                    PermissionSetAssignments: Page "Permission Set Assignments";
                begin
                    AccessControl.Copy(Rec);
                    AccessControl.FilterGroup(4);
                    PermissionSetAssignments.SetTableView(AccessControl);
                    PermissionSetAssignments.SetCurrentRoleId(AccessControl.GetFilter("Role ID"));
                    PermissionSetAssignments.Run();
                end;
            }
        }
    }

    trigger OnOpenPage()
    var
        AgentUtilities: Codeunit "Agent Utilities";
    begin
        AgentUtilities.BlockPageFromBeingOpenedByAgent();

        FilterOutSpecialUsers(Rec);
    end;

    local procedure FilterOutSpecialUsers(var AccessControl: Record "Access Control")
    var
        User: Record User;
        UserSelection: Codeunit "User Selection";
        FilterTextBuilder: TextBuilder;
    begin
        UserSelection.FilterSystemUserAndGroupUsers(User);
        repeat
            FilterTextBuilder.Append(User."User Security ID");
            FilterTextBuilder.Append('|');
        until User.Next() = 0;

        AccessControl.FilterGroup(2);
        AccessControl.SetFilter("User Security ID", FilterTextBuilder.ToText().TrimEnd('|'));
        AccessControl.FilterGroup(0);
    end;
}