diff --git a/src/System Application/App/AI/src/Copilot/CopilotAICapabilities.Page.al b/src/System Application/App/AI/src/Copilot/CopilotAICapabilities.Page.al index ad1cf71348..e13efd0d8e 100644 --- a/src/System Application/App/AI/src/Copilot/CopilotAICapabilities.Page.al +++ b/src/System Application/App/AI/src/Copilot/CopilotAICapabilities.Page.al @@ -4,6 +4,7 @@ // ------------------------------------------------------------------------------------------------ namespace System.AI; +using System.Agents; using System.Environment; using System.Privacy; @@ -310,12 +311,14 @@ page 7775 "Copilot AI Capabilities" trigger OnOpenPage() var + AgentUtilities: Codeunit "Agent Utilities"; EnvironmentInformation: Codeunit "Environment Information"; SystemPrivacyNoticeReg: Codeunit "System Privacy Notice Reg."; WithinGeo: Boolean; WithinEUDB: Boolean; TaskId: Integer; begin + AgentUtilities.BlockPageFromBeingOpenedByAgent(); OnRegisterCopilotCapability(); CopilotCapabilityImpl.CheckGeoAndEUDB(WithinGeo, WithinEUDB); diff --git a/src/System Application/App/Agent/Interaction/AgentSession.Codeunit.al b/src/System Application/App/Agent/Interaction/AgentSession.Codeunit.al index 59bbec46ba..a0f7c576bc 100644 --- a/src/System Application/App/Agent/Interaction/AgentSession.Codeunit.al +++ b/src/System Application/App/Agent/Interaction/AgentSession.Codeunit.al @@ -20,9 +20,9 @@ codeunit 4312 "Agent Session" [Scope('OnPrem')] procedure IsAgentSession(var ActiveAgentMetadataProvider: Enum "Agent Metadata Provider"): Boolean var - AgentSessionImpl: Codeunit "Agent Session Impl."; + AgentUtilities: Codeunit "Agent Utilities"; begin - exit(AgentSessionImpl.IsAgentSession(ActiveAgentMetadataProvider)); + exit(AgentUtilities.IsAgentSession(ActiveAgentMetadataProvider)); end; /// @@ -32,8 +32,8 @@ codeunit 4312 "Agent Session" [Scope('OnPrem')] procedure GetCurrentSessionAgentTaskId(): BigInteger var - AgentSessionImpl: Codeunit "Agent Session Impl."; + AgentUtilities: Codeunit "Agent Utilities"; begin - exit(AgentSessionImpl.GetCurrentSessionAgentTaskId()); + exit(AgentUtilities.GetCurrentSessionAgentTaskId()); end; } \ No newline at end of file diff --git a/src/System Application/App/Agent/Interaction/Internal/AgentSessionImpl.Codeunit.al b/src/System Application/App/Agent/Interaction/Internal/AgentSessionImpl.Codeunit.al deleted file mode 100644 index 6f72ee3198..0000000000 --- a/src/System Application/App/Agent/Interaction/Internal/AgentSessionImpl.Codeunit.al +++ /dev/null @@ -1,45 +0,0 @@ -// ------------------------------------------------------------------------------------------------ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// ------------------------------------------------------------------------------------------------ - -namespace System.Agents; - -codeunit 4313 "Agent Session Impl." -{ - Access = Internal; - InherentEntitlements = X; - InherentPermissions = X; - - procedure IsAgentSession(var ActiveAgentMetadataProvider: Enum "Agent Metadata Provider"): Boolean - var - AgentType: Integer; - AgentALFunctions: DotNet AgentALFunctions; - begin - if not GuiAllowed() then - exit(false); - - AgentType := AgentALFunctions.GetSessionAgentMetadataProviderType(); - if AgentType < 0 then - exit(false); - - ActiveAgentMetadataProvider := "Agent Metadata Provider".FromInteger(AgentType); - exit(true); - end; - - procedure BlockPageFromBeingOpenedByAgent() - var - AgentMetadataProvider: Enum "Agent Metadata Provider"; - ThisPageCannotBeOpenedByAnAgentErr: Label 'This page cannot be opened by an agent.', Locked = true; - begin - if IsAgentSession(AgentMetadataProvider) then - Error(ThisPageCannotBeOpenedByAnAgentErr); - end; - - procedure GetCurrentSessionAgentTaskId(): Integer - var - AgentALFunctions: DotNet AgentALFunctions; - begin - exit(AgentALFunctions.GetSessionAgentTaskId()); - end; -} \ No newline at end of file diff --git a/src/System Application/App/Agent/Interaction/Internal/AgentTaskImpl.Codeunit.al b/src/System Application/App/Agent/Interaction/Internal/AgentTaskImpl.Codeunit.al index 85c3714017..2aa141ec48 100644 --- a/src/System Application/App/Agent/Interaction/Internal/AgentTaskImpl.Codeunit.al +++ b/src/System Application/App/Agent/Interaction/Internal/AgentTaskImpl.Codeunit.al @@ -231,13 +231,6 @@ codeunit 4300 "Agent Task Impl." Summary := PageSummaryProvider.GetPageSummary(PageSummaryParameters); end; - procedure GetSessionAgentTaskId(): BigInteger - var - AgentALFunctions: DotNet AgentALFunctions; - begin - exit(AgentALFunctions.GetSessionAgentTaskId()); - end; - var MessageTextMustBeProvidedErr: Label 'You must provide a message text.'; AreYouSureThatYouWantToRestartTheTaskQst: Label 'Are you sure that you want to restart the task?'; diff --git a/src/System Application/App/Agent/Setup/Agent.Codeunit.al b/src/System Application/App/Agent/Setup/Agent.Codeunit.al index 97b24123f7..95eccb084b 100644 --- a/src/System Application/App/Agent/Setup/Agent.Codeunit.al +++ b/src/System Application/App/Agent/Setup/Agent.Codeunit.al @@ -103,9 +103,9 @@ codeunit 4321 Agent [Scope('OnPrem')] procedure SetInstructions(AgentUserSecurityID: Guid; Instructions: SecretText) var - AgentImpl: Codeunit "Agent Impl."; + AgentUtilities: Codeunit "Agent Utilities"; begin - AgentImpl.SetInstructions(AgentUserSecurityID, Instructions); + AgentUtilities.SetInstructions(AgentUserSecurityID, Instructions); end; /// diff --git a/src/System Application/App/Agent/Setup/AgentAccessControl.Page.al b/src/System Application/App/Agent/Setup/AgentAccessControl.Page.al index 52543c0a42..38d0ce06ff 100644 --- a/src/System Application/App/Agent/Setup/AgentAccessControl.Page.al +++ b/src/System Application/App/Agent/Setup/AgentAccessControl.Page.al @@ -58,6 +58,13 @@ page 4320 "Agent Access Control" } } + trigger OnOpenPage() + var + AgentUtilities: Codeunit "Agent Utilities"; + begin + AgentUtilities.BlockPageFromBeingOpenedByAgent(); + end; + trigger OnAfterGetRecord() begin UpdateGlobalVariables(); diff --git a/src/System Application/App/Agent/Setup/AgentCard.Page.al b/src/System Application/App/Agent/Setup/AgentCard.Page.al index c7e08be40d..10f6d38c41 100644 --- a/src/System Application/App/Agent/Setup/AgentCard.Page.al +++ b/src/System Application/App/Agent/Setup/AgentCard.Page.al @@ -192,10 +192,9 @@ page 4315 "Agent Card" trigger OnOpenPage() var - AgentSessionImpl: Codeunit "Agent Session Impl."; + AgentUtilities: Codeunit "Agent Utilities"; begin - AgentSessionImpl.BlockPageFromBeingOpenedByAgent(); - + AgentUtilities.BlockPageFromBeingOpenedByAgent(); if not Rec.WritePermission() then Error(YouDoNotHavePermissionToModifyThisAgentErr); end; diff --git a/src/System Application/App/Agent/Setup/AgentImpl.Codeunit.al b/src/System Application/App/Agent/Setup/AgentImpl.Codeunit.al index c1540e0217..904c22b095 100644 --- a/src/System Application/App/Agent/Setup/AgentImpl.Codeunit.al +++ b/src/System Application/App/Agent/Setup/AgentImpl.Codeunit.al @@ -53,27 +53,6 @@ codeunit 4301 "Agent Impl." ChangeAgentState(AgentUserSecurityID, false); end; - [NonDebuggable] - internal procedure SetInstructions(AgentUserSecurityID: Guid; Instructions: SecretText) - var - AgentALFunctions: DotNet AgentALFunctions; - begin - AgentALFunctions.SetInstructions(AgentUserSecurityID, Instructions.Unwrap()); - end; - - [NonDebuggable] - internal procedure GetInstructions(AgentUserSecurityID: Guid): SecretText - var - AgentALFunctions: DotNet AgentALFunctions; - InstructionsAsSecretText: SecretText; - begin - if IsNullGuid(AgentUserSecurityID) then - exit; - - InstructionsAsSecretText := AgentALFunctions.GetInstructions(AgentUserSecurityID); - exit(InstructionsAsSecretText); - end; - internal procedure InsertCurrentOwnerIfNoOwnersDefined(var Agent: Record Agent; var AgentAccessControl: Record "Agent Access Control") begin SetOwnerFilters(AgentAccessControl); diff --git a/src/System Application/App/Agent/Setup/AgentList.Page.al b/src/System Application/App/Agent/Setup/AgentList.Page.al index 88692f5518..7dfe1e5b97 100644 --- a/src/System Application/App/Agent/Setup/AgentList.Page.al +++ b/src/System Application/App/Agent/Setup/AgentList.Page.al @@ -98,10 +98,10 @@ page 4316 "Agent List" trigger OnOpenPage() var AgentImpl: Codeunit "Agent Impl."; - AgentSessionImpl: Codeunit "Agent Session Impl."; + AgentUtilities: Codeunit "Agent Utilities"; AgentMetadataProvider: Enum "Agent Metadata Provider"; begin - AgentSessionImpl.BlockPageFromBeingOpenedByAgent(); + AgentUtilities.BlockPageFromBeingOpenedByAgent(); // Check if there are any agents available if AgentMetadataProvider.Names().Count() = 0 then AgentImpl.ShowNoAgentsAvailableNotification(); diff --git a/src/System Application/App/Agent/Setup/AgentUserSettings.Page.al b/src/System Application/App/Agent/Setup/AgentUserSettings.Page.al index f18e5a2587..e461a8ba8b 100644 --- a/src/System Application/App/Agent/Setup/AgentUserSettings.Page.al +++ b/src/System Application/App/Agent/Setup/AgentUserSettings.Page.al @@ -104,7 +104,11 @@ page 4317 "Agent User Settings" } trigger OnOpenPage() + var + AgentUtilities: Codeunit "Agent Utilities"; begin + AgentUtilities.BlockPageFromBeingOpenedByAgent(); + if not Rec.Initialized then UserSettings.GetUserSettings(Rec."User Security ID", Rec); diff --git a/src/System Application/App/Agent/Setup/AgentUserSubform.PageExt.al b/src/System Application/App/Agent/Setup/AgentUserSubform.PageExt.al index 59e0a8174b..c8b11f27ad 100644 --- a/src/System Application/App/Agent/Setup/AgentUserSubform.PageExt.al +++ b/src/System Application/App/Agent/Setup/AgentUserSubform.PageExt.al @@ -49,6 +49,13 @@ pageextension 4318 "Agent User Subform" extends "User Subform" } } + trigger OnOpenPage() + var + AgentUtilities: Codeunit "Agent Utilities"; + begin + AgentUtilities.BlockPageFromBeingOpenedByAgent(); + end; + trigger OnAfterGetRecord() begin UpdateGlobalVariables(); diff --git a/src/System Application/App/Extension Management/src/ExtensionManagement.Page.al b/src/System Application/App/Extension Management/src/ExtensionManagement.Page.al index ed8246091a..bb0a16bca9 100644 --- a/src/System Application/App/Extension Management/src/ExtensionManagement.Page.al +++ b/src/System Application/App/Extension Management/src/ExtensionManagement.Page.al @@ -5,6 +5,7 @@ namespace System.Apps; +using System.Agents; using System.Environment; using System.Environment.Configuration; using System.Integration; @@ -395,7 +396,11 @@ page 2500 "Extension Management" end; trigger OnOpenPage() + var + AgentUtilities: Codeunit "Agent Utilities"; begin + AgentUtilities.BlockPageFromBeingOpenedByAgent(); + DetermineEnvironmentConfigurations(); SetExtensionManagementFilter(); if not IsInstallAllowed then diff --git a/src/System Application/App/Feature Key/src/FeatureManagement.Page.al b/src/System Application/App/Feature Key/src/FeatureManagement.Page.al index 744edcdc28..cecd167f67 100644 --- a/src/System Application/App/Feature Key/src/FeatureManagement.Page.al +++ b/src/System Application/App/Feature Key/src/FeatureManagement.Page.al @@ -5,6 +5,8 @@ namespace System.Environment.Configuration; +using System.Agents; + /// /// Page that enables a user to pick which new features to use /// @@ -231,9 +233,12 @@ page 2610 "Feature Management" trigger OnOpenPage() var + AgentUtilities: Codeunit "Agent Utilities"; FeatureIDFilter: Text; IgnoreFilter: Boolean; begin + AgentUtilities.BlockPageFromBeingOpenedByAgent(); + OnOpenFeatureMgtPage(FeatureIDFilter, IgnoreFilter); if not IgnoreFilter and (FeatureIDFilter <> '') then begin Rec.FilterGroup(2); diff --git a/src/System Application/App/Permission Sets/src/PermissionSet.Page.al b/src/System Application/App/Permission Sets/src/PermissionSet.Page.al index 51b933c3d1..1ec63b1d73 100644 --- a/src/System Application/App/Permission Sets/src/PermissionSet.Page.al +++ b/src/System Application/App/Permission Sets/src/PermissionSet.Page.al @@ -5,6 +5,7 @@ namespace System.Security.AccessControl; +using System.Agents; using System.Telemetry; using System.Security.User; @@ -168,8 +169,11 @@ page 9855 "Permission Set" trigger OnOpenPage() var + AgentUtilities: Codeunit "Agent Utilities"; FeatureTelemetry: Codeunit "Feature Telemetry"; begin + AgentUtilities.BlockPageFromBeingOpenedByAgent(); + FeatureTelemetry.LogUptake('0000HZJ', ComposablePermissionSetsTok, Enum::"Feature Uptake Status"::Discovered); UpdatePageParts(); end; diff --git a/src/System Application/App/Security Groups/src/SecurityGroups.Page.al b/src/System Application/App/Security Groups/src/SecurityGroups.Page.al index 8bb7c8d9fe..b22795c473 100644 --- a/src/System Application/App/Security Groups/src/SecurityGroups.Page.al +++ b/src/System Application/App/Security Groups/src/SecurityGroups.Page.al @@ -5,6 +5,7 @@ namespace System.Security.AccessControl; +using System.Agents; using System.Telemetry; using System.Utilities; using System.Security.User; @@ -272,9 +273,12 @@ page 9871 "Security Groups" trigger OnOpenPage() var + AgentUtilities: Codeunit "Agent Utilities"; FeatureTelemetry: Codeunit "Feature Telemetry"; UserPermissions: Codeunit "User Permissions"; begin + AgentUtilities.BlockPageFromBeingOpenedByAgent(); + CanManageUsersOnTenant := UserPermissions.CanManageUsersOnTenant(UserSecurityId()); FeatureTelemetry.LogUptake('0000JGR', 'Security Groups', Enum::"Feature Uptake Status"::Discovered); RefreshData();