Page 9818 User Security Status List

App
Base Application
Namespace
System.Security.User
Versions
17-28
Source table
9062

Versions171819202122232425262728

Source29

Source in 29

src/Layers/W1/BaseApp/System/User/UserSecurityStatusList.Page.al208 lines, Copyright (c) Microsoft Corporation. MIT

namespace System.Security.User;

using System.Azure.Identity;
using System.Environment;
using System.Security.AccessControl;

page 9818 "User Security Status List"
{
    AccessByPermission = TableData User = R;
    ApplicationArea = Basic, Suite;
    Caption = 'User Security Status';
    Editable = false;
    LinksAllowed = false;
    PageType = List;
    RefreshOnActivate = true;
    ShowFilter = false;
    SourceTable = "User Security Status";
    SourceTableView = where("User Security ID" = filter(<> '{00000000-0000-0000-0000-000000000000}'), "User Exists" = const(true));
    UsageCategory = Lists;

    layout
    {
        area(content)
        {
            repeater(Group)
            {
                field("User Name"; Rec."User Name")
                {
                    ApplicationArea = All;
                    Editable = false;
                    Style = Strong;
                    StyleExpr = not Rec.Reviewed;
                    ToolTip = 'Specifies the user''s name. If the user is required to present credentials when starting the client, this is the name that the user must present.';
                }
                field("Full Name"; Rec."Full Name")
                {
                    ApplicationArea = All;
                    Editable = false;
                    ToolTip = 'Specifies the full name of the user.';
                }
                field(Reviewed; Rec.Reviewed)
                {
                    ApplicationArea = Basic, Suite;
                    ToolTip = 'Specifies if an administrator has reviewed this new user. When a new user is created, this field is empty to indicate that the user must be set up.';

                    trigger OnValidate()
                    begin
                        CurrPage.Update();
                    end;
                }
                field("Belongs To Subscription Plan"; BelongsToSubscriptionPlan)
                {
                    ApplicationArea = Basic, Suite;
                    Editable = false;
                    Style = Attention;
                    StyleExpr = not BelongsToSubscriptionPlan;
                    ToolTip = 'Specifies that the user is covered by a subscription plan.';
                    Visible = SoftwareAsAService;
                }
            }
        }
        area(factboxes)
        {
            part(Plans; "User Plan Members FactBox")
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Plans';
                SubPageLink = "User Security ID" = field("User Security ID");
                Visible = SoftwareAsAService;
            }
            part("Security Groups"; "User Security Groups Part")
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Security Groups';
                Editable = false;
                ShowFilter = false;
                SubPageLink = "User Security ID" = field("User Security ID");
            }
        }
    }

    actions
    {
        area(processing)
        {
            action("Get Users from Office 365")
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Get Users from Office 365';
                Image = Users;
                ToolTip = 'Gets updated information about users from the Office portal.';
                Visible = SoftwareAsAService;

                trigger OnAction()
                var
                    AzureADUserManagement: Codeunit "Azure AD User Management";
                begin
                    AzureADUserManagement.CreateNewUsersFromAzureAD();
                    CurrPage.Update();
                end;
            }
            action("Set as reviewed")
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Set as reviewed';
                Image = Approve;
                ToolTip = 'Set the Reviewed field to Yes for this user.';

                trigger OnAction()
                begin
                    ToggleReviewStatus(true);
                end;
            }
            action("Set as not reviewed")
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Set as not reviewed';
                Image = Cancel;
                ToolTip = 'Set the Reviewed field to No for this user.';

                trigger OnAction()
                begin
                    ToggleReviewStatus(false);
                end;
            }
            action("Security Group Members")
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Security Group Members';
                Image = Users;
                RunObject = Page "Security Group Members";
                RunPageMode = View;
                ToolTip = 'View the members of the security group.';
            }
            action("Manage plan assignments")
            {
                ApplicationArea = Basic, Suite;
                Caption = 'Manage plan assignments';
                Image = Reconcile;
                ToolTip = 'View or edit the user''s service plan.';
                Visible = SoftwareAsAService;

                trigger OnAction()
                var
                    PermissionManager: Codeunit "Permission Manager";
                begin
                    HyperLink(PermissionManager.GetOfficePortalUserAdminUrl());
                end;
            }
        }
        area(Promoted)
        {
            group(Category_Process)
            {
                Caption = 'Process';

                actionref("Get Users from Office 365_Promoted"; "Get Users from Office 365")
                {
                }
                actionref("Set as reviewed_Promoted"; "Set as reviewed")
                {
                }
                actionref("Set as not reviewed_Promoted"; "Set as not reviewed")
                {
                }
                actionref("Security Group Members_Promoted"; "Security Group Members")
                {
                }
                actionref("Manage plan assignments_Promoted"; "Manage plan assignments")
                {
                }
            }
        }
    }

    trigger OnInit()
    var
        EnvironmentInfo: Codeunit "Environment Information";
    begin
        SoftwareAsAService := EnvironmentInfo.IsSaaS();
    end;

    trigger OnAfterGetRecord()
    var
        AzureADPlan: Codeunit "Azure AD Plan";
    begin
        BelongsToSubscriptionPlan := AzureADPlan.DoesUserHavePlans(Rec."User Security ID");
    end;

    local procedure ToggleReviewStatus(ReviewStatus: Boolean)
    var
        UserSecurityStatus: Record "User Security Status";
    begin
        CurrPage.SetSelectionFilter(UserSecurityStatus);
        if not UserSecurityStatus.FindSet() then
            exit;
        repeat
            UserSecurityStatus.Reviewed := ReviewStatus;
            UserSecurityStatus.Modify(true);
            UserSecurityStatus.LogUserReviewActivity();
        until UserSecurityStatus.Next() = 0;
        CurrPage.Update();
    end;

    var
        SoftwareAsAService: Boolean;
        BelongsToSubscriptionPlan: Boolean;
}