From 377081e3bc87abbb1b590b9523d89d75b3d59cbd Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Sat, 28 Jan 2017 15:41:19 +0100 Subject: [PATCH] Rôles et permissions --- api.raml | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 108 insertions(+), 17 deletions(-) diff --git a/api.raml b/api.raml index b7ebbca..0132dbf 100644 --- a/api.raml +++ b/api.raml @@ -3,7 +3,7 @@ title: API d'Etunicorn baseUri: https://etunicorn.plil.net/{version}/ version: v1 -# Les codes 401 et 400 sont implicites +# Les codes 400 et 403 sont implicites /login: post: description: Instancie une nouvelle connexion @@ -24,7 +24,16 @@ version: v1 example: | { "token": "ooT6zahdura7vaethuiph1ugiph6co", - "expire": 1485607703 + "expire": 1485607703, + "role": "admin", + "permissions": [ + { + "nom": "CREER_EVENEMENT" + }, + { + "nom": "SUPPRIMER_EVENEMENT" + } + ] } 401: description: Authentication échouée @@ -50,7 +59,8 @@ version: v1 "carte": "AAAAA", "naissance": "1997-02-14", "solde": 1337, - "login": "gbontoux" + "login": "gbontoux", + "role": "etudiant" } ] /{idPersonne}: @@ -67,7 +77,8 @@ version: v1 "carte": "AAAAA", "naissance": "1997-02-14", "solde": 1337, - "login": "gbontoux" + "login": "gbontoux", + "role": "etudiant" } 404: description: Utilisateur non trouvé @@ -91,19 +102,14 @@ version: v1 type: string required: false example: gbontoux + role: + displayName: Rôle + type: string + required: false + example: etudiant responses: 202: description: Utilisateur modifié - body: - application/json: - example: | - { - "id": 42, - "carte": "AAAAA", - "naissance": "1997-02-14", - "solde": 1337, - "login": "gbontoux" - } 404: description: Utilisateur non trouvé delete: @@ -133,6 +139,12 @@ version: v1 type: string required: false example: gbontoux + role: + displayName: Rôle + type: string + required: true + example: etudiant + default: etudiant responses: 201: description: Personne ajoutée avec succès @@ -142,6 +154,85 @@ version: v1 { "id": 42 } - - - +/role: + get: + description: Liste les rôles + responses: + 200: + body: + application/json: + example: | + [ + { + "nom": "etudiant", + "permissions": [] + }, + { + "nom": "bde", + "permissions": [ + { + "nom": "CREER_EVENEMENT" + }, + { + "nom": "SUPPRIMER_EVENEMENT" + } + ] + } + ] + post: + description: Ajoute un nouveau rôle + queryParameters: + nom: + type: string + minLength: 3 + required: true + example: bde + responses: + 201: + description: Rôle créé avec succès + 409: + description: Un rôle avec le même nom existe déjà + /{nomRole}: + delete: + description: Supprime un rôle + responses: + 204: + description: Rôle supprimé + 404: + description: Rôle inconnu + post: + description: Ajoute une permission à un rôle + queryParameters: + nom: + type: string + required: true + minLength: 3 + responses: + 201: + description: Permission ajouté avec succès + 404: + description: Permission ou rôle inconnu + /{nomPermission}: + delete: + description: Enlève la permission du rôle + responses: + 204: + description: Permission enlevée avec succès + 404: + description: Permission ou rôle inconnu + /permission: + get: + description: Liste les permissions + responses: + 200: + body: + application/json: + example: | + [ + { + "nom": "CREER_EVENEMENT" + }, + { + "nom": "SUPPRIMER_EVENEMENT" + } + ] -- libgit2 0.21.2