Commit 377081e3bc87abbb1b590b9523d89d75b3d59cbd

Authored by Geoffrey PREUD'HOMME
1 parent 90a48e21

Rôles et permissions

Showing 1 changed file with 108 additions and 17 deletions   Show diff stats
@@ -3,7 +3,7 @@ title: API d'Etunicorn @@ -3,7 +3,7 @@ title: API d'Etunicorn
3 baseUri: https://etunicorn.plil.net/{version}/ 3 baseUri: https://etunicorn.plil.net/{version}/
4 version: v1 4 version: v1
5 5
6 -# Les codes 401 et 400 sont implicites 6 +# Les codes 400 et 403 sont implicites
7 /login: 7 /login:
8 post: 8 post:
9 description: Instancie une nouvelle connexion 9 description: Instancie une nouvelle connexion
@@ -24,7 +24,16 @@ version: v1 @@ -24,7 +24,16 @@ version: v1
24 example: | 24 example: |
25 { 25 {
26 "token": "ooT6zahdura7vaethuiph1ugiph6co", 26 "token": "ooT6zahdura7vaethuiph1ugiph6co",
27 - "expire": 1485607703 27 + "expire": 1485607703,
  28 + "role": "admin",
  29 + "permissions": [
  30 + {
  31 + "nom": "CREER_EVENEMENT"
  32 + },
  33 + {
  34 + "nom": "SUPPRIMER_EVENEMENT"
  35 + }
  36 + ]
28 } 37 }
29 401: 38 401:
30 description: Authentication échouée 39 description: Authentication échouée
@@ -50,7 +59,8 @@ version: v1 @@ -50,7 +59,8 @@ version: v1
50 "carte": "AAAAA", 59 "carte": "AAAAA",
51 "naissance": "1997-02-14", 60 "naissance": "1997-02-14",
52 "solde": 1337, 61 "solde": 1337,
53 - "login": "gbontoux" 62 + "login": "gbontoux",
  63 + "role": "etudiant"
54 } 64 }
55 ] 65 ]
56 /{idPersonne}: 66 /{idPersonne}:
@@ -67,7 +77,8 @@ version: v1 @@ -67,7 +77,8 @@ version: v1
67 "carte": "AAAAA", 77 "carte": "AAAAA",
68 "naissance": "1997-02-14", 78 "naissance": "1997-02-14",
69 "solde": 1337, 79 "solde": 1337,
70 - "login": "gbontoux" 80 + "login": "gbontoux",
  81 + "role": "etudiant"
71 } 82 }
72 404: 83 404:
73 description: Utilisateur non trouvé 84 description: Utilisateur non trouvé
@@ -91,19 +102,14 @@ version: v1 @@ -91,19 +102,14 @@ version: v1
91 type: string 102 type: string
92 required: false 103 required: false
93 example: gbontoux 104 example: gbontoux
  105 + role:
  106 + displayName: Rôle
  107 + type: string
  108 + required: false
  109 + example: etudiant
94 responses: 110 responses:
95 202: 111 202:
96 description: Utilisateur modifié 112 description: Utilisateur modifié
97 - body:  
98 - application/json:  
99 - example: |  
100 - {  
101 - "id": 42,  
102 - "carte": "AAAAA",  
103 - "naissance": "1997-02-14",  
104 - "solde": 1337,  
105 - "login": "gbontoux"  
106 - }  
107 404: 113 404:
108 description: Utilisateur non trouvé 114 description: Utilisateur non trouvé
109 delete: 115 delete:
@@ -133,6 +139,12 @@ version: v1 @@ -133,6 +139,12 @@ version: v1
133 type: string 139 type: string
134 required: false 140 required: false
135 example: gbontoux 141 example: gbontoux
  142 + role:
  143 + displayName: Rôle
  144 + type: string
  145 + required: true
  146 + example: etudiant
  147 + default: etudiant
136 responses: 148 responses:
137 201: 149 201:
138 description: Personne ajoutée avec succès 150 description: Personne ajoutée avec succès
@@ -142,6 +154,85 @@ version: v1 @@ -142,6 +154,85 @@ version: v1
142 { 154 {
143 "id": 42 155 "id": 42
144 } 156 }
145 -  
146 -  
147 - 157 +/role:
  158 + get:
  159 + description: Liste les rôles
  160 + responses:
  161 + 200:
  162 + body:
  163 + application/json:
  164 + example: |
  165 + [
  166 + {
  167 + "nom": "etudiant",
  168 + "permissions": []
  169 + },
  170 + {
  171 + "nom": "bde",
  172 + "permissions": [
  173 + {
  174 + "nom": "CREER_EVENEMENT"
  175 + },
  176 + {
  177 + "nom": "SUPPRIMER_EVENEMENT"
  178 + }
  179 + ]
  180 + }
  181 + ]
  182 + post:
  183 + description: Ajoute un nouveau rôle
  184 + queryParameters:
  185 + nom:
  186 + type: string
  187 + minLength: 3
  188 + required: true
  189 + example: bde
  190 + responses:
  191 + 201:
  192 + description: Rôle créé avec succès
  193 + 409:
  194 + description: Un rôle avec le même nom existe déjà
  195 + /{nomRole}:
  196 + delete:
  197 + description: Supprime un rôle
  198 + responses:
  199 + 204:
  200 + description: Rôle supprimé
  201 + 404:
  202 + description: Rôle inconnu
  203 + post:
  204 + description: Ajoute une permission à un rôle
  205 + queryParameters:
  206 + nom:
  207 + type: string
  208 + required: true
  209 + minLength: 3
  210 + responses:
  211 + 201:
  212 + description: Permission ajouté avec succès
  213 + 404:
  214 + description: Permission ou rôle inconnu
  215 + /{nomPermission}:
  216 + delete:
  217 + description: Enlève la permission du rôle
  218 + responses:
  219 + 204:
  220 + description: Permission enlevée avec succès
  221 + 404:
  222 + description: Permission ou rôle inconnu
  223 + /permission:
  224 + get:
  225 + description: Liste les permissions
  226 + responses:
  227 + 200:
  228 + body:
  229 + application/json:
  230 + example: |
  231 + [
  232 + {
  233 + "nom": "CREER_EVENEMENT"
  234 + },
  235 + {
  236 + "nom": "SUPPRIMER_EVENEMENT"
  237 + }
  238 + ]