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,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 | + ] |