Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Coming next release

AreaDescription
Invite job

Fix: User invited from external AAD cannot sign in (RTC-43253)

When guest user in one directory is invited to EG directory, they're is correctly created in AAD and database. Such user can sign in to Cloud Chain Web. 

Shell

Entra ID permissions (RTC-26349)

ChainWebShell will now require new (much narrower) permissions from our customers, which improves security both for us and our customers. 

Depending on the configuration of our customer's Microsoft Entra ID, admins may need to provide consent for these new permissions.

User roles

New scoped permissions for managing users (RTC-44596)

New scoped permissions for managing users are added for the store role: 

Users - View Users and Manage Users 

Image Added

to allow store managers to manage the employees of the store without being able to manage other stores personnel.

The permissions can be saved /modified for the role, as well as assigned to the user. The permissions does not have affect on users actions yet.


...

Release 31.10.2024

Import language on users

(RTC-43229)

Now it's possible set the user language via JSON import using the correct ISO two letter code. (The relevant field has been added to the JSON). Supported languages are English, Norwegian and Swedish.

If a user does not specify a language during import, sends an unsupported language or code is outside of valid values, the language will default to English.

Removing a language that is already set via import is not possible.


...

Release 08.08.2024

Area Description
Shell

Receipt journal module (RTC-42619)

Fake receipt journal module has been renamed to ReceiptManagement. The name in the menu has not been changed. 
A user with permission from the Receipt Journal group can enter the module correctly.


...

Release 29.07.2024

Area Description
Invite job

Fix: Activate user deactivated by Invite job (RTC-42719)

When user is removed from invited group in AAD, he is deactivated in User Management. When he is added again to one of invited groups, he is activated, with both (if specified) added roles and existing before deactivation. 

For now, if user had some roles assigned, for instance via auto-provisioning, then even when he is deactivated by being removed from invited group, he keeps these roles. Then when added to different group and being activated, these roles are still assigned. This mechanism is planned to be changed during development of assigning roles to store groups in invite job.


...

Release 04.07.2024

Area Description
Invite job

Fix: Users added manually lost access (RTC-42162)

Users, who were added to tenant manually, through tenant AAD, imported etc. not invited trough Invite job, can sign in to tenant and have the same access as before changes in job.


...

Release 02.07.2024

Area Description
Invite job

Allow users to change username on source AAD (RTC-39861)

Users, who are invited to tenant AAD, can change their user name (UPN) on source AAD and login to Cloud modules.

Behaviour of invite job is the same as before - users who are added to configured groups on source AAD are updated in tenant AAD or when removed - disabled on tenant. In configuration of job, there can be added groups with auto-provisioning and then users will be invited and added configured permissions. Casing of name of the group in AAD and in configuration must be the same, otherwise job will finish with warnings and users added to that group will not be invited.

Performance of job executions is good.

Import of stores

Fix: Staging merger aborted when duplicated key on ExternalStoreNo on Store (RTC-41220)

ExternalStoreNo is not unique in the identity database, so it does not cause problems during import.

User roles

Fix: Not possible to "Expand all" in user management (RTC-34799)

'Expand all' button expands the whole tree of user roles.

User role export

Fix for: Blob export when assigning permissions to a role (RTC-23813)

When permissions assigned to the role change, only users assigned to this role are exported, not all the users.


...

Release 24.04.2024

Update of name for invited users

(RTC-38523)

When inviting users from external Azure Active Directory (AAD), first name, last name and display name are copied from user from external AAD. When there are made any changes to these values in external AAD, they are updated on invited user (in AAD). 

Improvement

Area Description
System

Fix: "Cannot read properties" errors (RTC-37432)

When user opens 'roles' tab from user details view, no error is shown in console. Similarly, when creating new user, by searching for him in AAD and there are no results, there is also no error.


...

Release 22.03.2024

Area Description
Manage cashiers in Cloud 

Language on cashier, Training & Prevent cashier login in POS flags (RTC-37415)

The cashier language field has been added to the cashier data column. The list of languages supported by POS and selectable are: DK, DE, GB, EE, FI, NO, SE and default.

Two new flags "Training mode" and "Cashier login prevented" have also been added, which are visible in the user interface under the Card Id field when active.

The language field and both flags are exported in the Cashier section.

System

Pass login_hint to MS Entra (AAD) authentication (RTC-38736)

When request for authentication contains login_hint (which is a username), page to enter username/pick user is skipped and user is taken directly to the page where he can enter password. After entering password, user is logged in with correct permissions. 


...

Release 26.02.2024

Area Description
Store permissions

Receipt journal permission (RTC-37452)

New permission group 'Receipt journal' was added to store role. It contains 'View receipt journal' permission. It is possible to create and update store role with this permission. After adding/removing permission, users on who this action was performed, are exported to JSON in UserManagement.User.Export. Users with roles using this permission can be imported. 


...

Release 19.01.2024

Area Description
Card ID for cashiers

Fix: Exception when adding Card ID (RTC-37626)

It is possible to add Card ID to cashier without exception for tenants with short names.


...

Release 03.01.2024

Select tenant

(RTC-23950)

When having access to more than one tenant, user sees modal where last used tenant is proposed as first. Last login on that tenant is given as well. In the bottom section of modal user can search for different tenants, as well as see proposition of the other available tenants.

The user is authenticated during login, and cannot access modules after logging out.

Select tenant

(RTC-37586)

When having access to more than 10 tenants, user is able to login and sees modal where last used tenant is proposed as first. Last login on that tenant is given as well. In the bottom section of modal user can search for different tenants, in order of last login, as well as see proposition of the other available tenants.

Card ID for cashiers

(RTC-36444)

Cashiers can have assigned Card IDs, and it is possible to add such ID's manually or by import. For users with no cashier, no information about card ID is visible. If cashier has no Card ID, then there is a text 'Card ID is not added' under Card ID section. To add Card ID, user has to click on the 'edit cashier' button and select 'Add Card ID' option. Card ID can be any string, but cannot be empty or have spaces in front or in the end. After saving entered value, text changes to 'Active Card ID'. It is possible to change card ID or deactivate it, both by choosing correct option is dropdown in 'edit cashier'.

Card ID is saved in database as hash and it is also exported as hash to 3rd party in UserManagement.User.Export blobs. Export is triggered when there are made any changes to Card ID - that means it is added to user, changed or deactivated. For inactive Card IDs, they are exported as empty brackets.


...

Release 03.11.2023

AreaDescription

Cashiers

API for cashier validation from POS (RTC-34845)

When cashier is created for a user and the password is set to cashier number or when password was reset, an API request /api/Cashiers/{cashierNo}/verifyPasswordValidity returns that password is expired. User has to change password when logging into the POS.

Export

Export of Card ID for users (RTC-35752)

API contract for user export includes CardID in Swagger documentation.

System

Fix: Importing users to AAD (RTC-34727)

The system job InviteFromAzureAdToAzureAd job uses fewer resources when inviting users to our Azure Active Directory domain.

User Management


Column picker in grid (RTC-34617)

Column picker is available as a dropdown under '+' button in grid. User can to search for column names in it.


...

Release 20.09.2023

AreaDescription

System


Invite job for users (RTC-34469)

The default job InviteFromAzureAdToAzureAd triggers once per hour (3 minutes past the hour). Performance is logged.


...

Release 22.08.2023

AreaDescription

System


Migration to .NET 6 (RTC-28892)

Shell and User Management module are migrated to .NET 6.

System framework update 

User management is updated to Angular version 16 and Kendo version 12 (RTC-14939)

Additionally:

  • Fix: Filtering multiple times on the same filter
  • Column picker as a button

All functionalities stay the same, but it is possible to filter in columns on the same values of filters in a row. To filter, user does not need to press enter, but it happens immediately after typing in input. Additionally, clicking on column picker opens a dropdown with columns to select and selected columns show up/ hide immediately after picking/removing a checkbox next to a name of the column.


...

Release 19.07.2023

AreaDescription
System

Supporting scale-out (RTC-33374)

  • Shell is using AzureSignalR, which allows manual or automatic scale-out
  • LibBackEnd updated to 5.4.0 for UserManangement
  • Configuration of automatic scale out of Shell will be done in separate booking, after release of this story


...

Release 31.05.2023

AreaDescription
Permissions

Reporting permission (RTC-31514)

Permission 'Access store data' can be found under Reporting category when assigning permissions for a store role. 

Roles

Permission translations (RTC-31952)

Permission is correctly translated into Swedish and Norwegian.  


...

Release 15.05.2023

Managing cashiers

(RTC-30012)

Editing options for cashier user are displayed in a dropdown with the 4 different options:

  • Change PIN
  • Reset PIN
  • Change cashier number
  • Deactivate

Options are visible in dropdown when clicking edit cashier button. Information on deactivated cashier is
shown above Cashier number.

Improvement

AreaDescription
System

Handling of restart (RTC-31468)

The performance of the app (Shell) when restarting multiple modules and sending requests to register and get methods at the same time is improved, requests response takes less time.


...

Release 29.03.2023

System administrator role

(RTC-27421)

  • The SystemAdministrator role includes permission "ManageAdministrators". 
  • A user with ManageAdministrators permission can:
    • Add and remove this permission from the role (otherwise it is greyed out)
    • Add to a user and remove from a user a role containing this permission.
  • If the user has a role that does not contain ManageAdministrators permission, he cannot remove or add a role containing this permission, he will be informed about it with a notification.

Active flag on cashiers:

(RTC-29354)

  • When a user is sent with CashierNumber, he has his cashier active. 
  • When a user doesn't have a CashierNumber at all - nothing changes (Cashier is not added).
  • If user that currently has a cashier, will be sent without CashierNumber, the cashier is deactivated for him.
  • When a cashier is inactive, it's not exported to POS (Cashier, not user).
  • All users that are cashiers right now, are updated as active ones. 

Cashier management

(RTC-29674)

When adding or editing cashier, there is no notification about required field if selecting option "Get next available number".

Secure cashier password

(RTC-28865)

Cashier password is stored as hash in database.


...

Release 02.02.23

Automatically creating users as part of the invitation process

(RTC-28888)

In the job InviteFromAzureAdToAzureAD it is possible to specify a permission for the invited Azure AD group. This enables us to automatically create the user in User Management and assign a role to the user.

If the property "OfficeLocation" is set in Azure AD and the permission group in User Management is per store (not common) we will assume that this contains a store number and assign this store number to the user created. If this group has one or more POS permissions enabled we will automatically create an active cashier for this user. 

If the role is a common role, then it is not required to have the OfficeLocation parameter set in Azure AD.  


...

Release 01.02.2023

Manage cashier pin code

(RTC-26198)

In User Management you can manage cashiers with pin code for login to POS.

  • A cashier can be deactivated and activated.
  • Pin can be changed and reset.
  • Cashier number can be changed. 
  • In case of 'PIN set in POS' CashierPin is the same as CashierNo.
  • Creating new user with PIN does not have cashier creation (but without pin has).
  • There is validation for wrong old password and cashierNo already set to other user.
  • It is not possible to create a new password with the same as already existing. 
  • Password must be of the appropriate length, specified by the parameter.
  • Configuration parameter in database CashierPasswordMinLength.


...

Release 25.01.2023

Import of cashiers

(RTC-26872)

API for importing users as cashiers is extended:

Additional fields and business rules in contract: Cashier.CashierNo

  • CashierNo is set based on values in import file, it can be imported regardless of ExternalUserIdentifier
  • If there's no cashierNo, but there's externalUserIdentifier, Cashier No and cashierPassword are set based on externalUserIdentifier
  • Otherwise CashierNo is set based on the value in file, CashierPassword and CashierPasswordHash are set based on CashierNo
  • If CashierNo is not changed for user, CashierPassword and CashierPasswordHash are not changed either (if the CashierNo is changed in import, they're changed as well)
  • CashierNo must be unique
  • CashierNo and CashierPassword, CashierPasswordHash are exported with cashier user
  • CashierInStore Table is no longer maintained
  • User can have username changed in import, it is then matched by ExternalIdentifier (lookup by CashierNo is not supported)
  • When user has role with POS permissions on all stores level, he's exported with cashiers on each store. When new store is created, user is exported again, with cashier in new store.

Manage cashier 

(RTC-26844)

  • Parameter PasswordExpiryInDays defines how many days the password will be valid for the cashier. By default, it has a value of null.
  • Using a method from Shell API, you can check if the password is valid, and when it expires.
  • Using a method from the Shell API, you can change the password for the cashier.
  • The Identity.UserProfile table contains CashierPasswordLastChangedUtc column, which is updated when the password is changed.


...

Release 24.11.2022

Module

Description

System

Configuration of new modules for tenants (RTC-26815)

When a tenant is not fully configured or a tenant is registered in one of the modules, but not in Cloud shell, then after a module restarts, the module will work for other tenants.


...

Release 18.10.2022

Module

Description

Import users

Import of users RTC-26046)

When importing a user into User Management and store/team/profile doesn't exist, the user is imported and  a placeholder is created for store/team/profile.

Roles

Fix: Saving permissions on store roles (RTC-23482)

Store roles with Manage local item permission can be saved.

System

Job exceutions with CompletedWithNoEffected (RTC-22786)

When StagingMerger job (In IdentityServiceIntegration/Shell) executes with no effect, the status is 'Completed with no effect'.


...

Release 04.08.2022

Module

Description

Import users

Import of users (RTC-24804)

New cashier can be created directly from JSON contract file (having externalUserIdentifier and store role with POS permission).

System

Fix: Configuration cleared when switching between tenants (RTC-22045)

Configuration browser cache is cleared each time the user logs in. Fixes issue when switching tenants that have different configuration (user needs to log out and log in, in order to switch tenants). 


...

Release 29.06.2022

Import of cashiers

(RTC-21094)

Cashiers are automatically created if the imported user has any cashier permissions. Adding a role with POS permission or POS permission to a role that user already has creates cashiers for all relevant stores.

...

Module

Description

Export users/cashiers

Export users/cashiers (RTC-20015)

User profile can be exported with all permissions and scoped permissions to JSON file (UserManagement.User.Export blob)

After manually create cashier in database, cashiers are also exported as in case of users.

All users can be exported to JSON (To do this, change the "version" value to 0 in Export.BlopType in db).

Import users

Import of users (RTC-18492)

Users are created and update with new common/scoped roles when using API with JSON contract for import.

Import of users (RTC-24804)

New cashier can be created directly from JSON contract file (having externalUserIdentifier and store role with POS permission).

System

Job exceutions with CompletedWithNoEffected (RTC-22786)

When StagingMerger job (In IdentityServiceIntegration/Shell) executes with no effect, the status is 'Completed with no effect'.

Fix: Configuration cleared when switching between tenants (RTC-22045)

Configuration browser cache is cleared each time the user logs in. Fixes issue when switching tenants that have different configuration (user needs to log out and log in, in order to switch tenants). 

User Management


Searching for users (RTC-23440)

A user with SystemAdministator role (only) can search for users in Find User component in User Management, while creating new users.

User roles



Fix: Delete store row from user roles view (RTC-22649)

While assigning store scoped role to user it is possible to delete this role right after creation.


...

Release 11.03.

...

2022

Module

Description

User Management 

Create new users with alternative emails (RTC-15501)

When creating new users in the system will also persist the users alternative emails.
Those emails are then also used during sign-in to verify which tenants the user has access to (instead of only using the main UPN).  


Fix: Invitation job for users (RTC-21363)

When users are invited into our tenant specific AAD from the source AAD (managed by the customer), we will also copy the 'alternative emails' of the source user. 


...

Release 19.11.

...

2021

Module

Description

User Management 

Unblocking users (RTC-18167)

If user is unblocked in Azure Active Directory, the user is unblocked in User Management.


...

Release 28.09.

...

2021

Module

Description

User Management

Creating users from Azure AD (RTC-15608)

First name and Last name, split from Display name, are added automatically to the user when creating it in User management. 

First name, Last name, Display name of existing users can be edited.


Users removed from Azure AD (RTP-13388)

When a user is removed from the Azure AD Group in source AAD the user is blocked from logging in in the destination AD. If the user is added to the Azure AD group again in the source AD we did not unblock the user in the destination AAD. This is fixed and we are checking the "Block sign in" flag on the user from the destination AAD. 


...

Release 27.08.

...

2021

Module

Description

User Management

''All stores" option in store roles (RTC-15018)

There is an option to select all stores in Store level when adding new store role to the user. This option is only visible if user has access to all stores in the user's details tab.


...

Release 16.08.

...

2021

Module

Description

User Management

Users with pending invitations to Azure Active Directory (RTC-15096)

If a user has a pending invitation to a tenant and is added to User Management of this tenant, they will be granted access to this tenant when they try to login. When they select the tenant in the tenant selector, they will be presented with the window to accept the invitation and they will be immediately logged in after accepting it.