SSO Oauth and Admin user

Bonjour la communauté Fab manager :wink:

J’ai connecté mon instance Fab-manager au SSO de Nextcloud (Oauth 2.0).

Jusque là tout fonctionne hormis:

  • L’attribution des groupes (surement lié au fait que l’API Nexcloud donne des réponses multiples pour ce champ)
  • La définition des Admins (je n’ai pas trouvé le moyen de définir si tel ou tel utilisateur de la Db Nextcloud serait Admin pour Fab Manager).

Je me retrouve donc avec une instance sans administrateur et doit changer de base de donnée d’authentification si je veux proposer de nouvelles réservations de salles / machine.

Auriez vous une idée pour résoudre ce problème?

1 « J'aime »

Voici la structure du retour Oauth de Nexcloud:

<?xml version="1.0"?>
<ocs>
 <meta>
  <status>ok</status>
  <statuscode>100</statuscode>
  <message>OK</message>
  <totalitems></totalitems>
  <itemsperpage></itemsperpage>
 </meta>
 <data>
  <enabled>1</enabled>
  <storageLocation>/var/www/html/data/username</storageLocation>
  <id>username</id>
  <lastLogin>1718008707000</lastLogin>
  <backend>Database</backend>
  <subadmin>
   <element>Group 1</element>
  </subadmin>
  <quota>
   <free>17718435250176</free>
   <used>7335053</used>
   <total>17718442585229</total>
   <relative>0</relative>
   <quota>-3</quota>
  </quota>
  <manager>Username of Manager</manager>
  <email>username@mail.com</email>
  <additional_mail/>
  <displayname>User Name</displayname>
  <display-name>User Name</display-name>
  <phone>+1313</phone>
  <address>Our house, in the middle of the street</address>
  <website>https://userwebsite.com</website>
  <twitter>Twitter account</twitter>
  <fediverse></fediverse>
  <organisation>User organisation</organisation>
  <role>Testeur de sacs de couchage</role>
  <headline></headline>
  <biography>Il y a bien longtemps, dans une galaxie lointaine, très lointaine...</biography>
  <profile_enabled>1</profile_enabled>
  <groups>
   <element>admin</element>
   <element>group1</element>
  </groups>
  <language>fr</language>
  <locale>fr</locale>
  <notify_email/>
  <backendCapabilities>
   <setDisplayName>1</setDisplayName>
   <setPassword>1</setPassword>
  </backendCapabilities>
 </data>
</ocs>

Les groupes de Nextcloud sont accessible via ocs.data.groups
En les attribuant à user/group_id, Fab-manager ne les reconnaît pas.

Sûrement à cause de la structure spéciale avec imbrication sous la balise <element>:

  <groups>
   <element>admin</element>
   <element>group1</element>
  </groups>

Fab-manager est-il actuellement capable de lire cette structure spécifique ?

Enfin, existe t’il un paramètre du type « is_admin » côté Fab-manager ?
Avec le mappage de donnée il serait facile d’attribuer le rôle d’admin à certains utilisateurs (du type, si groupe contient « admin », then « is_admin=true »).

ocs.data.groups donne ce genre de réponse:
[« admin », « Groupe 1 », « Groupe 2 »]

Fab-manager ne doit donc pas pouvoir interpréter ce format.