Membres d’organisation et rôles

Quand un utilisateur est collaborateur d’une organisation, il peut bénéficier d’aucun, d’un ou plusieurs rôles définissant un ensemble de permissions et de possibilités d’actions. Ces rôles peuvent être cumulés pour un même utilisateur et sont au nombre de cinq :

  • Administrateur
  • Agent
  • Intervenant
  • Statistiques
  • Export

Un utilisateur pouvant être membre de plusieurs organisations, les rôles qu’il possède sont indépendants et peuvent être différents d’une organisation à une autre. Tout utilisateur nouvellement attaché à une organisation devient « Collaborateur d’organisation ». Un « Collaborateur d’organisation » possède les mêmes droits qu’un utilisateur de base sans attachement à une organisation.

Administrateur

Tout utilisateur a la possibilité de créer une nouvelle organisation.

L’utilisateur qui crée une nouvelle organisation en devient automatiquement collaborateur et administrateur, c’est-à-dire qu’il se voit attribuer le rôle « Administrateur ».

Il obtient les permissions et droits suivants :

  • Ajouter de nouveaux collaborateurs à son organisation
  • Modifier les rôles des collaborateurs
  • Gérer les catégories de son organisation
  • Gérer les zones de responsabilité de son organisation
  • Gérer les partenaires de son organisation
  • Consulter et gérer les demanes reçues et les interventions liées à ces demandes

Voir : Organisations

Voir : Rapports

Note : Un utilisateur peut être « ORGANIZATION:ADMIN » de plusieurs organisations et une organisation peut avoir plusieurs « ORGANIZATION:ADMIN ».

Intervenant

Un « Collaborateur d’organisation » possédant ce rôle peut  :

  • Recevoir une assignation à une intervention
  • Éditer une intervention (changement des libellés, ajout de photos de constatation, etc)
  • Changer le statut d’une intervention

Note : Un utilisateur peut être « ORGANIZATION:OPERATOR » de plusieurs organisations et une organisation peut avoir plusieurs « ORGANIZATION:OPERATOR ».

Analyste

Le rôle « Analyste » permet d’accéder aux statistiques d’une organisation.

Note : Un utilisateur peut avoir le rôle « ORGANIZATION:ANALYTICS » pour plusieurs organisations et une organisation peut avoir plusieurs utilisateurs avec le rôle « ORGANIZATION:ANALYTICS ».

Export

Le rôle « Export » permet d’accéder aux fonctionnalités d’exportation Excel des demandes qu’a reçu une organisation.

Note : Un utilisateur peut avoir le rôle « ORGANIZATION:EXPORT » pour plusieurs organisations et une organisation peut avoir plusieurs utilisateurs avec le rôle « ORGANIZATION:EXPORT ».

Récupération des utilisateurs

Pour récupérer l’ensemble des utilisateurs de l’application :

GET /people

Pour récupérer un utilisateur :

GET /people/{user}

Pour rechercher les utilisateurs dont l’adresse email match un mot donné :

GET /people?search[email]=martin

Exemple de récupération des rôles d’un utilisateur

La lecture d’une ressource utilisateur permet de découvrir si la personne appartient à une organisation et quel(s) rôle(s) il y tient.

GET /people/5020c6ea-ca07-42d1-994f-d90b86703b1a/memberships
{
    "page": 1,
    "limit": 10,
    "pages": 1,
    "total": 1,
    "_links": {
        "self": {
            "href": "/people/5020c6ea-ca07-42d1-994f-d90b86703b1a/memberships?page=1&limit=10"
        },
        "first": {
            "href": "/people/5020c6ea-ca07-42d1-994f-d90b86703b1a/memberships?page=1&limit=10"
        },
        "last": {
            "href": "/people/5020c6ea-ca07-42d1-994f-d90b86703b1a/memberships?page=1&limit=10"
        }
    },
    "_embedded": {
        "items": [
            {
                "id": "b0e7e28f-5b91-4c73-875e-8f34aa03553a",
                "roles": [
                    "ORGANIZATION:ADMIN",
                    "ORGANIZATION:AGENT"
                ],
                "createdAt": "2018-02-27T10:00:00+02:00",
                "_links": {
                    "self": {
                        "href": "/organizations/84d36093-b8bc-47ad-bc8a-a043b3e301a9/members/b0e7e28f-5b91-4c73-875e-8f34aa03553a",
                        "iriTemplate": {
                            "mapping": {
                                "organization": "84d36093-b8bc-47ad-bc8a-a043b3e301a9",
                                "member": "b0e7e28f-5b91-4c73-875e-8f34aa03553a"
                            }
                        }
                    },
                    "person": {
                        "href": "/people/5020c6ea-ca07-42d1-994f-d90b86703b1a",
                        "iriTemplate": {
                            "mapping": {
                                "person": "5020c6ea-ca07-42d1-994f-d90b86703b1a"
                            }
                        }
                    },
                    "organization": {
                        "href": "/organizations/84d36093-b8bc-47ad-bc8a-a043b3e301a9",
                        "iriTemplate": {
                            "mapping": {
                                "organization": "84d36093-b8bc-47ad-bc8a-a043b3e301a9"
                            }
                        }
                    }
                },
                "_embedded": {
                    "availableRoles": [
                        "ORGANIZATION:ADMIN",
                        "ORGANIZATION:ANALYTICS",
                        "ORGANIZATION:EXPORT",
                        "ORGANIZATION:READ_ONLY"
                    ]
                }
            }
        ]
    }
}

Ce retour indique que l’utilisateur :

  • Est membre de l’organisation 84d36093-b8bc-47ad-bc8a-a043b3e301a9
  • Possède le rôle ORGANIZATION:ADMIN, il est donc administrateur de l’organisation 84d36093-b8bc-47ad-bc8a-a043b3e301a9
  • Possède le rôle ORGANIZATION:AGENT, il est donc agent de l’organisation 84d36093-b8bc-47ad-bc8a-a043b3e301a9
  • Est affilié avec une seule organisation
  • A rejoint l’organisation le 27 février 2018.

Aussi, un membre possède deux id différents, un id membre et un id utilisateur. Ainsi, dans le retour précédent on voit que son id utilisateur (5020c6ea-ca07-42d1-994f-d90b86703b1a) est différent de son id membre (b0e7e28f-5b91-4c73-875e-8f34aa03553a). L’API distingue les actions effectuées en tant que membre et celles effectuées en tant qu’utilisateur simple.