Project activity #34565
closedPerformance verbeteren bij ophalen van groepen
100%
Description
Bij het opstarten van de app worden alle gebruikersgroepen opgehaald en pas daarna wordt het gebruikersprofiel geïnitialiseerd.
Dit betekent dat alle rules die gebaseerd zijn op gebruikersrechten als 'false' worden geëvalueerd en met name een aantal navbar items later worden getoond.
Dit is nu een probleem op GUH prod waar admin lid is van ~9000 groepen.
We gaan dit zo oplossen:
- We gaan de lijst van groepen beperken. Dit zal overeenkomen met de lijst die in het gebruikersprofiel in share wordt getoond https://dev-tezza.contezza.cloud/share/page/console/admin-console/users#state=panel%3Dview%26userid%3Dadmin%26search%3Dadmin
Op GUH prod wordt de lijst hiermee beperkt tot ~200 groepen voor admin.
- Hiermee worden de site-groepen niet meer teruggegeven, en dit is een probleem in verschillende apps (cwd, dvp, akten, ...) waar site membership wordt gecheckt op basis van site-group membership. Dus we gaan het gebruikersprofiel aanvullen met de lijst van gebruikerssites, opgehaald via sites api https://alf.boku.ac.at/api-explorer/#/sites/listSites. Elke site bevat dus ook de role van de gebruiker in de site.
Files
Updated by Diego Mirandola 2 months ago
- Related to Project activity #29517: Bestaande UI functionaliteit omzetten van ZaaktypeGroepen naar SiteMembership added
Updated by Diego Mirandola 2 months ago
- Related to Project activity #30009: FE wijzigingen m.b.t. nieuwe autorisaties - Tezza groepen die gebruikt worden in de app added
Updated by Diego Mirandola 2 months ago
· Edited
Impactanalyse
Dit betekent dat de gebruikersprofiel geen groepen bevat in de vorm van `GROUP_site_${site.id}_${site.role}`, bijvoorbeeld 'GROUP_site_tezza_SiteManager'.
In plaats daarvan, bevat de gebruikersprofiel 'sites'.
Alle evaluators die deze groepen gebruiken moeten herschreven worden om sites te gebruiken, bijvoorbeeld
export const isBeheerder = (context: RuleContext): boolean => hasProfile(context) && !!context.profile.groups.find((group) => group['id'] === 'GROUP_site_tezza_SiteManager');
wordt
export const isBeheerder = (context: RuleContext & { profile: ExtendedProfileState }): boolean => hasProfile(context) && context.profile.sites?.find((site) => site.id === 'tezza')?.role === 'SiteManager';
Deze groepen worden ook gebruikt met evaluator "app.user.groups.includeSome", evaluator "user.sites.includeSome" is aangemaakt om deze use-case te ondersteunen.
Alle rules die "app.user.groups.includeSome" gebruiken met site-groepen moeten herschreven worden om "user.sites.includeSome" te gebruiken, bijvoorbeeld
{ "value": "app.user.groups.includeSome", "parameters": ["GROUP_site_tezza_SiteManager"] }
wordt
{ "value": "user.sites.includeSome", "parameters": [ { "id": "tezza", "roles": ["SiteManager"] } ] }
en een combinatie van een 'gewone' groep en een sitegroep zoals
{ "value": "app.user.groups.includeSome", "parameters": ["GROUP_ALFRESCO_ADMINISTRATORS", "GROUP_site_tezza_SiteManager", "GROUP_site_tezza_SiteContributor"] }
wordt
{ "value": "core.some", "parameters": [ { "value": "app.user.groups.includeSome", "parameters": ["GROUP_ALFRESCO_ADMINISTRATORS"] }, { "value": "user.sites.includeSome", "parameters": [ { "id": "tezza", "roles": ["SiteManager", "SiteContributor"] } ] } ] }
Om consequent te zijn met de benaming van siterollen worden alle rollen in zaaktypesites evaluators ook aangepast, bijvoorbeeld: "Manager" -> "SiteManager" en zo voort.
Het refactoren van de permissions gebaseerd op werkmaptype sites heeft impact op:
navbar
can claim
can assign
can create file
can create folder
zaak dialog form
rollen create
rollen delete
In contezza-integration-tests branch test/#34565 zijn de relevante tests gemarkeerd met tag @34565 en kunnen uitgevoerd worden met commando
mvn clean test -Dfilter="@34565" -Denv="dev"
Deze tests zijn:
Feature: Conditional visibility of navbar items in Tezza based on user role and site memberships.
Scenario: allen.
Feature: Check permissions based on zaaktype sites in Tezza as admin user
Scenario: allen.
Feature: Verify permissions by zaaktype sites for Tezza users in CREATE_ZAKEN group with site access.
Scenario: allen.
Feature: Verify permissions in Tezza for a user in the CREATE_ZAKEN group with only Consumer access in all zaaktype sites.
Scenario: allen.
Feature: Verify Tezza permissions for a user with Contributor role in the Tezza site (e.g., POSTINTAKE group)
Scenario: allen.
Feature: Check permissions based on zaaktype sites in Tezza as user with site memberships.
Scenario: allen.
Feature: Test that the availability of actions in dialog 'Betrokkenen beheren' / 'Assignees' is correct
Scenario: All actions in dialog 'Betrokkenen beheren' / 'Assignees' are available for admin
Scenario: No action in dialog 'Betrokkenen beheren' / 'Assignees' is available for contributor
Scenario: All actions in dialog 'Betrokkenen beheren' / 'Assignees' are available for collaborator
Scenario: All actions in dialog 'Betrokkenen beheren' / 'Assignees' are available for behandelaar
Feature: Test that the availability of actions in the zaak betrokkenen tab is correct
Scenario: All actions in the zaak betrokkenen tab are available for admin
Scenario: No action in the zaak betrokkenen tab is available for contributor
Scenario: All actions in the zaak betrokkenen tab are available for collaborator
Scenario: All actions in the zaak betrokkenen tab are available for behandelaar
Feature: Test that the availability of floating-button actions in the zaak documents tab is correct
Scenario: All floating-button actions in the zaak documents tab are available for admin
Scenario: Limited floating-button actions in the zaak documents tab are available for admin in a zaak with a strict template
Scenario: No floating-button action in the zaak documents tab is available for contributor
Scenario: All floating-button actions in the zaak documents tab are available for collaborator
Scenario: Limited floating-button actions in the zaak documents tab are available for collaborator in a zaak with a strict template
Scenario: All floating-button actions in the zaak documents tab are available for behandelaar
Scenario: Limited floating-button actions in the zaak documents tab are available for behandelaar in a zaak with a strict template
Resultaat:
Let op: de beschikbaarheid van claimen/toekennen action vanuit zaak details wordt hiermee niet getest (wel vanuit zaken bibliotheek). Graag dit handmatig testen. Hiervoor moet de pagina ververst worden binnen zaak details (niet hiernaartoe navigeren).
Updated by Diego Mirandola 2 months ago
· Edited
Updated by Diego Mirandola 2 months ago
- Status changed from In Progress to Ready in Dev
- Assignee changed from Diego Mirandola to Nume Groenewegen
Updated by Nume Groenewegen 2 months ago
- Status changed from Ready in Dev to Test approved
- Assignee changed from Nume Groenewegen to Diego Mirandola
Getest voor apps tezza (uitgebreid), contezza-akten, cwd-aca en gemutr-tezza.
Geen bijzonderheden / verschillen tegen gekomen, test is akkoord.
Afgesproken om voor de wijziging op dev-tezza te zetten zodat deze nog een week doorgetest kan worden. Nieuwe branches worden vanaf nu vanaf branch feature/user-profile-groups/#34565 aangemaakt zodat ze de nieuwe manier van laden al bevatten. Als er geen bijzonderheden worden opgemerkt kan volgende week deze wijziging mee met de release.
Updated by Diego Mirandola about 2 months ago
- Status changed from Test approved to Resolved
- % Done changed from 0 to 100
In Contezza Apps versie 4.1.3.