Commit 265ca4e3 authored by Alexis POYEN's avatar Alexis POYEN
Browse files

Started with SDK documentation

parent 388b4a44
......@@ -150,6 +150,54 @@ Dans le fichier `web/assets/brand/manifest.js`, remplacer :
C'est dans le fichier `models.go` que doit être définit le modèle de donnée de l'application.
> Ce qui suit sont des recommandations :
Créer un fichier par objet du modèle en suivant la structure des fichiers `bankers.go` ou `client.go`
Dans le répertoire `./rootmux` écrire les tests métiers (ex : mettre à jour le montant sur le compte bancaire d'un client lorsqu'il effectue une opération) dans le fichier `rootmux_test.go`.
Les tests concernant les droits et les réponses attendues par utilisateur (ex : un banquier n'a accès qu'aux client qui lui sont rattachés et pas aux autres) peuvent être écrit dans des fichiers différent par type de droits différent (ex : `banker_test.go` pour tester les droits des banquiers)
### Création de rôles
> ATTENTION : le rôle "ADMIN" est obligatoire dans l'application car permet de gérer les utilisateurs et leurs droits. Sans celui-ci est sans utilisateurs ayant ce rôle dans la base, il est impossible de créer de nouveaux utilisateurs !
En mode InMemory (utilisateurs dans la bases locales) L'API de gestion des utilisateurs suit ce format :
```json
{ "login": "UserTest", "password": "password", "role": "CLIENT" }
```
Il suffit donc de remplacer "CLIENT" par n'importe quelle valeur pour créer un nouveau rôle
> Si vous utilisez l'interface web du SDK pour la gestion des utilisateurs, pour définir les rôles possibles il faut modifier les options dans le menu `select` du fichier `./web/components/users/handleUser.js`
>
> ```html
> <select name="role" id="users-modal-role">
> <option value="CLIENT">Client</option>
> <option value="BANKER">Banquier</option>
> <option value="ADMIN">Administrateur</option>
> </select>
> ```
**Rôles à partir d'OAuth2**
Pour définir des rôles automatiquement à partir d'une connexion OAuth2 et un groupe applicatif donné il faut dans la fonction `addUserInMemory` du fichier `./internal/auth/oauth2.go` rajouter la condition qui permet d'identifier le groupe applicatif de l'utilisateur et de lui donner le rôle qui correspond
```go
if userRole != "" && (userRole == os.Getenv("ADMIN_GROUP")) {
user.Role = "ADMIN"
user.IsAdmin = true
break
} else if userRole != "" && (userRole == os.Getenv("CLIENT_GROUP")) {
user.Role = "CLIENT"
user.IsAdmin = false
break
} else {
return user, errors.New("user not in an app group")
}
```
Un utilisateur qui n'est pas dans un groupe applicatif autorisé ne pourra pas accèder à l'applicaion
## Contribution
Un bug découvert ? Une demande d'amélioration ? Une contribution à la dcoumentation ?
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment