Project

General

Profile

Project activity #34565

closed

Performance verbeteren bij ophalen van groepen

Added by Diego Mirandola 2 months ago. Updated about 2 months ago.

Status:
Resolved
Priority:
P4 Normal
Category:
-
Target version:
Start date:
19/08/2025
Due date:
% Done:

100%

Estimated time:

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:

  • 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.
  • In Tezza is het probleem nog erger want zaaktypesite-groepen worden gebruikt. Deze logica (#29517 + #30009) moet herschreven worden, met groep-membership vervangen door gebruikersrol op de site die nu in het gebruikersprofiel beschikbaar is.

Files

clipboard-202508211203-zozid.png (6.35 KB) clipboard-202508211203-zozid.png Diego Mirandola, 21/08/2025 12:03 PM

Related issues 2 (0 open2 closed)

Related to Tezza - Project activity #29517: Bestaande UI functionaliteit omzetten van ZaaktypeGroepen naar SiteMembershipClosed02/10/2024

Actions
Related to Tezza - Project activity #30009: FE wijzigingen m.b.t. nieuwe autorisaties - Tezza groepen die gebruikt worden in de appResolvedDiego Mirandola25/11/2024

Actions
Actions #2

Updated by Diego Mirandola 2 months ago

  • Related to Project activity #29517: Bestaande UI functionaliteit omzetten van ZaaktypeGroepen naar SiteMembership added
Actions #3

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
Actions #4

Updated by Diego Mirandola 2 months ago

  • Description updated (diff)
Actions #5

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).

Actions #7

Updated by Diego Mirandola 2 months ago

  • Description updated (diff)
Actions #9

Updated by Diego Mirandola 2 months ago

  • Status changed from In Progress to Ready in Dev
  • Assignee changed from Diego Mirandola to Nume Groenewegen
Actions #10

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.

Actions #11

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.

Also available in: Atom PDF