Commit 377081e3bc87abbb1b590b9523d89d75b3d59cbd
1 parent
90a48e21
Rôles et permissions
Showing
1 changed file
with
108 additions
and
17 deletions
Show diff stats
api.raml
... | ... | @@ -3,7 +3,7 @@ title: API d'Etunicorn |
3 | 3 | baseUri: https://etunicorn.plil.net/{version}/ |
4 | 4 | version: v1 |
5 | 5 | |
6 | -# Les codes 401 et 400 sont implicites | |
6 | +# Les codes 400 et 403 sont implicites | |
7 | 7 | /login: |
8 | 8 | post: |
9 | 9 | description: Instancie une nouvelle connexion |
... | ... | @@ -24,7 +24,16 @@ version: v1 |
24 | 24 | example: | |
25 | 25 | { |
26 | 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 | 38 | 401: |
30 | 39 | description: Authentication échouée |
... | ... | @@ -50,7 +59,8 @@ version: v1 |
50 | 59 | "carte": "AAAAA", |
51 | 60 | "naissance": "1997-02-14", |
52 | 61 | "solde": 1337, |
53 | - "login": "gbontoux" | |
62 | + "login": "gbontoux", | |
63 | + "role": "etudiant" | |
54 | 64 | } |
55 | 65 | ] |
56 | 66 | /{idPersonne}: |
... | ... | @@ -67,7 +77,8 @@ version: v1 |
67 | 77 | "carte": "AAAAA", |
68 | 78 | "naissance": "1997-02-14", |
69 | 79 | "solde": 1337, |
70 | - "login": "gbontoux" | |
80 | + "login": "gbontoux", | |
81 | + "role": "etudiant" | |
71 | 82 | } |
72 | 83 | 404: |
73 | 84 | description: Utilisateur non trouvé |
... | ... | @@ -91,19 +102,14 @@ version: v1 |
91 | 102 | type: string |
92 | 103 | required: false |
93 | 104 | example: gbontoux |
105 | + role: | |
106 | + displayName: Rôle | |
107 | + type: string | |
108 | + required: false | |
109 | + example: etudiant | |
94 | 110 | responses: |
95 | 111 | 202: |
96 | 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 | 113 | 404: |
108 | 114 | description: Utilisateur non trouvé |
109 | 115 | delete: |
... | ... | @@ -133,6 +139,12 @@ version: v1 |
133 | 139 | type: string |
134 | 140 | required: false |
135 | 141 | example: gbontoux |
142 | + role: | |
143 | + displayName: Rôle | |
144 | + type: string | |
145 | + required: true | |
146 | + example: etudiant | |
147 | + default: etudiant | |
136 | 148 | responses: |
137 | 149 | 201: |
138 | 150 | description: Personne ajoutée avec succès |
... | ... | @@ -142,6 +154,85 @@ version: v1 |
142 | 154 | { |
143 | 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 | + ] | ... | ... |