Project

General

Profile

Bevinding #34647

closed

Alfresco API ​/people​/{personId}​/sites geeft niet de correcte rol terug

Added by Diego Mirandola 7 months ago. Updated 3 months ago.

Status:
Closed
Priority:
P4 Normal
Assignee:
Category:
-
Target version:
-
Start date:
28/08/2025
Due date:
% Done:

100%

Estimated time:

Description

Alfresco API ​/people​/{personId}​/sites https://alf.boku.ac.at/api-explorer/#/sites/listSiteMembershipsForPerson geeft niet de correcte rol terug.
Als de gebruiker lid is van een site via meerdere bronnen tegelijkertijd (bijvoorbeeld via meerdere groepen en/of direct) dan verwacht ik om de leidende rol terug te krijgen, met de ranking:
  1. manager
  2. collaborator
  3. contributor
  4. consumer
Maar de leidende rol wordt teruggegeven volgens deze (verkeerde) ranking:
  1. manager
  2. contributor
  3. consumer
  4. collaborator

Bijvoorbeeld: als de gebruiker lid is van drie groepen en de eerste groep collaborator is in de site, de tweede groep contributor is en de derde groep consumer is, dan is de gebruiker lid van de site met rol collaborator, want deze is de hoogste van de drie rollen. Dit wordt correct teruggeven door api /api/sites/{shortname}/memberships https://github.com/Alfresco/alfresco-community-repo/blob/master/remote-api/src/main/resources/alfresco/templates/webscripts/org/alfresco/repository/site/membership/memberships.get.desc.xml en door de share UI. Api /people​/{personId}​/sites geeft rol 'contributor' terug.

Na een eerste analyse, lijkt het probleem in deze logica te zijn https://github.com/Alfresco/alfresco-community-repo/blob/master/repository/src/main/java/org/alfresco/repo/site/SiteServiceImpl.java#L3094
Site memberships worden op basis van de lijst van gebruikersgroep geëvalueerd. Als de gebruiker lid is van site x met rol consumer, dan is hij/zij lid van GROUP_site_x_SiteConsumer, en zo voort voor de andere rollen.
In deze logica worden alle gebruikersgroepen opgehaald. Ik vermoed in alfabetische volgorde.
Deze groepen worden achter elkaar geëvalueerd om de site membership te bepalen en elke site membership overschrijft de vorige.
In het bovenstaande voorbeeld is de gebruiker lid van
  1. GROUP_site_x_siteCollaborator
  2. GROUP_site_x_siteConsumer
  3. GROUP_site_x_siteContributor

in alfabetische volgorde, dus rol 'collaborator' wordt volgens deze logica overschreven door alle andere rollen.


Files

clipboard-202512191500-mtrj8.png (67.6 KB) clipboard-202512191500-mtrj8.png Rick de Rooij, 19/12/2025 03:00 PM

Related issues 1 (0 open1 closed)

Related to Tezza - Project activity #34593: Admin-Tools: ik wil graag inzicht hebben van welke Sites met welke rol de gebruiker lid isResolvedDiego Mirandola21/08/2025

Actions

Also available in: Atom PDF