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