Role management migration

Objective

The Role management needs to be migrated from the legacy Web Application (Profile menu entry) to the new modular architecture and will be part of the Core module. The Role management, in particular Add/Edit Role screen, should take contributions from the other modules to add additional specific authorities.

Use cases

Web application

  • UC13-1: Search Role: Role list > enter search criteria > search

  • UC13-2: Add Role: Role list > add > select the authorities and define name > save

  • UC13-3: Update Role: Role list > Select Profile > update the authorities and name > save

  • UC13-4: Replace Role: Role list > Select Profile > update the authorities and name > replace > define replacement date (not in legacy)

  • UC13-5: Remove Role: : Role list > Select Profile > remove > select replacement Role > confirm

  • UC13-8: Duplicate Role: Role list > Select Profile >duplicate > give the new name and, if required, update authorities > confirm

Backend

  • UC13-7: propagation of replacing / removing to user

Authority

  • Roles

    • Roles

      • C/R/U/D

      • Duplicate

      • Replace

Entities

Already existing:

  • tblRole

  • tblRoleRight

Details design

Backend module

Because openIMIS core already have an adapter to read the openIMIS roles and authorities, no business function will be required outside the database updates and Role management.

Mutations

Mutation as part of the schema file:

  • create roles => CreateRolesMutation

  • update roles => UpdateRolesMutation

  • submit roles => SubmitRolesMutation

  • replace roles => ReplaceRolesMutation

  • delete roles => DeleteRolesMutation

  • duplicate roles => DuplicateRolesMutation

Permissions

  • "gql_query_roles_perms": ["122001"]

  • "gql_mutation_create_roles_perms": ["122002"]

  • "gql_mutation_update_roles_perms": ["122003"]

  • "gql_mutation_replace_roles_perms": ["122006"]

  • "gql_mutation_duplicate_roles_perms": ["122005"]

  • "gql_mutation_delete_roles_perms": ["122004"]

  • "role_print_perms": ["122001"]

Models

The models should be created based on the existing tables.

Services

none

Frontend

 

Role search page

The list of roles should use the same layout as other existing list in openIMIS (claims, insuree ...)

Search fields:

  • Role name

  • System

  • blocked

  • Historical

    • show history will show the user that have a ValidityTo not NULL and in the PAST

 

search result

column

  1. Role Name (String) - text input (or Alternative Language based on the user setting)

  2. Valid From (Date) - date picker

  3. Valid To (Date) - date picker

  4. System (Boolean) - checkbox

  5. Blocked (Boolean) - checkbox

on each result line the edit/duplicate/delete button should be present but for the historical ones

double click on line should open the role in edit mode unless this is an historical record then it will be read only

Duplicate button open the “new“ page with the authorities form the “to be duplicated“ record preselected but the name is empty

Role add/edit page

 

Fields:

  • Role Name (String) - text input, Mandatory

    1. Alternative Language (String) - text input

    2. System (Boolean) - checkbox (read only)

    3. Blocked (Boolean) - checkbox

list of permissions (or authorities )

the authorities will be displayed in two lists, the first one (on the left) showing the authorities NOT assigned to the role (“Available permission“) and the second (on the right) will show the authorities assigned to the roles(“Assigned permission“)

a search box will filter the authorities that have a translated label matching the the filter (icontains)

(nice to have) a arrow “assign all“ (pointing to the right) will be right to “Available permission“ and will move all the displayed permission in the “Available permission“ list to the “Assigned permission“ list; a arrow “remove all“(pointing to the left) will be left to “Assigned permission“ and will move all the displayed permission in“Assigned permission“ list to the “Available permission“ list.

on each line of the “Available permission“ an arrow will be on the right (pointing to the right) of the permission line, once clicked it will move the permission to the “Assigned permission“ list

on each line of the “Assigned permission“ an arrow will be on the left (pointing to the left) of the permission line, once clicked it will move the permission to the “Available permission“ list

(DateValidFrom and To are managed by the backend)
on create:

all fields are editable

on update:

if not system role, all fields are editable

if readonly right or system role: no fields are editable, no save button active

on duplicate

New card is open (like on create) Rights are duplicated but the Role Name and Alternative Language remain empty

 



Did you encounter a problem or do you have a suggestion?

Please contact our Service Desk



This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. https://creativecommons.org/licenses/by-sa/4.0/