Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,16 @@ codeunit 9175 "User Settings Impl."
UserSettingsRec."Locale ID" := UserPersonalization."Locale ID";
UserSettingsRec."Time Zone" := UserPersonalization."Time Zone";

if (UserPersonalization.Company = '') and (CompanyName() <> '') then
UserSettingsRec.Company := CopyStr(CompanyName(), 1, 30)
else
UserSettingsRec.Company := UserPersonalization.Company;
if UserSecurityID = UserSecurityId() then begin
if CompanyName() <> '' then
UserSettingsRec.Company := CopyStr(CompanyName(), 1, MaxStrLen(UserSettingsRec.Company))
else
UserSettingsRec.Company := UserPersonalization.Company;
end else
if (UserPersonalization.Company = '') and (CompanyName() <> '') then
UserSettingsRec.Company := CopyStr(CompanyName(), 1, MaxStrLen(UserSettingsRec.Company))
else
UserSettingsRec.Company := UserPersonalization.Company;

UserSettingsRec."Last Login" := UserLoginTimeTracker.GetPenultimateLoginDateTime(UserSecurityID);
UserSettingsRec."Work Date" := WorkDate();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ codeunit 132905 "User Settings Tests"
PermissionsMock: Codeunit "Permissions Mock";
LibraryVariableStorage: Codeunit "Library - Variable Storage";
CompanyDisplayNameTxt: Label 'Company display name';
IsInitialized: Boolean;

[Test]
[TransactionModel(TransactionModel::AutoRollback)]
Expand Down Expand Up @@ -248,6 +249,38 @@ codeunit 132905 "User Settings Tests"
Assert.IsFalse(TempUserSettingsRec."Teaching Tips", 'Teaching Tips should have been disabled.');
end;

[Test]
[TransactionModel(TransactionModel::AutoRollback)]
procedure CurrentUserSettingsShowSessionCompany()
var
TempUserSettingsRec: Record "User Settings";
UserPersonalization: Record "User Personalization";
UserSettings: Codeunit "User Settings";
OtherCompanyName: Text[30];
begin
// [FEATURE] [AI test 0.3]
// [SCENARIO 630234] My Settings shows session company for current user even when persisted company differs
Initialize();

// [GIVEN] UserPersonalization has a company that differs from the current session company
OtherCompanyName := CopyStr('Other Company Tab', 1, MaxStrLen(OtherCompanyName));
if not UserPersonalization.Get(UserSecurityId()) then begin
UserPersonalization.Init();
UserPersonalization."User SID" := UserSecurityId();
UserPersonalization.Insert();
end;
UserPersonalization.Company := OtherCompanyName;
UserPersonalization.Modify();

PermissionsMock.Set('User Settings View');

// [WHEN] GetUserSettings is called for the current user
UserSettings.GetUserSettings(UserSecurityId(), TempUserSettingsRec);

// [THEN] The company in settings matches the current session company, not the persisted one
Assert.AreEqual(CompanyName(), TempUserSettingsRec.Company, 'Company should match session CompanyName, not persisted UserPersonalization.Company');
end;

[Test]
procedure TestUpdateSettingsOK()
var
Expand Down Expand Up @@ -287,6 +320,14 @@ codeunit 132905 "User Settings Tests"
LibraryVariableStorage.AssertEmpty();
end;

local procedure Initialize()
begin
if IsInitialized then
exit;

IsInitialized := true;
end;

[EventSubscriber(ObjectType::Codeunit, Codeunit::"User Settings", 'OnUpdateUserSettings', '', true, true)]
local procedure OnUpdateUserSettings(OldSettings: Record "User Settings"; NewSettings: Record "User Settings")
begin
Expand Down
Loading