J'essaie d'ajouter un nouveau rôle (ROLE_REPORTS) sur un projet généré à l'aide de JHipster. Je peux voir les tables qui doivent être mises à jour (mappage de rôle, d'autorité et de role_authority), mais je ne suis pas sûr de savoir comment s'y prendre pour la partie Java de celle-ci.
Je peux comprendre quelques détails, mais je crains que ma personnalisation ne respecte certains principes de conception (comme l'API Swagger, Spring Security, etc.).
Quelqu'un a-t-il déjà tenté de le faire et, dans l'affirmative, toute aide dans la bonne direction sera vivement appréciée.
Ajoutez-le à security/AuthoritiesConstants.Java. et webapps/scripts/contstants.js. Dans l'exemple ci-dessous, une autorité/un rôle de MANAGER a été ajouté.
public final class AuthoritiesConstants {
private AuthoritiesConstants() {
}
public static final String ADMIN = "ROLE_ADMIN";
public static final String USER = "ROLE_USER";
public static final String MANAGER = "ROLE_MANAGER";
public static final String ANONYMOUS = "ROLE_ANONYMOUS";
}
Et dans constants.js:
myApp.constant('USER_ROLES', {
'all': '*',
'admin': 'ROLE_ADMIN',
'user': 'ROLE_USER',
'manager', 'ROLE_MANAGER'
});
Le nouveau rôle doit être ajouté à la base de données. Par exemple, les autorités.csv:
name
ROLE_ADMIN
ROLE_USER
ROLE_MANAGER
Ce sera encore plus facile dans 4.5.5
1- Modifier AuthoritiesConstants.Java
2- Ajouter un nouveau rôle dans le fichier autorités.csv
réexécutez l'application, le nouveau rôle devrait apparaître dans l'interface (Administration/gestion des utilisateurs/créer un nouvel utilisateur) (il peut être utile de supprimer le contenu cible\h2db\db de votre application)
Pour Jhipter 4.3, il existe cette solution:
Réexécutez l'application. Le nouveau rôle devrait apparaître dans l'interface (Administration/gestion des utilisateurs/créer un nouvel utilisateur). (Peut-être qu'il pourrait être utile de supprimer le contenu cible\h2db\db de votre application.)
L'ajout des valeurs à la autorités.csv ne les ajouterait pas directement aux tables, car il ne s'agit que d'une valeur ajoutée à la table. Il n'y a donc pas de différence dans la modification Liquibase, nous devrons l'ajouter manuellement à la base de données ...