web-dev-qa-db-ja.com

jhipster-新しい役割を追加する方法

JHipsterを使用して生成されたプロジェクトに新しいロール(ROLE_REPORTS)を追加しようとしています。更新が必要なテーブル(role、authority、およびrole_authorityマッピング)は表示されますが、Javaの一部についてはどうしたらよいかわかりません。

私が理解できるいくつかの部分がありますが、私のカスタマイズが一部の設計哲学(Swagger API、Spring Securityなど)を壊すのではないかと心配しています。

誰かがすでにそれを試みたことがあるなら、正しい方向への助けがあれば高く評価されます。

26
user1880957

それをsecurity/AuthoritiesConstants.Javaに追加します。およびwebapps/scripts/contstants.js。以下の例では、MANAGERの権限/役割が追加されています。

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";
}

そしてconstants.jsで:

myApp.constant('USER_ROLES', {
        'all': '*',
        'admin': 'ROLE_ADMIN',
        'user': 'ROLE_USER',
        'manager', 'ROLE_MANAGER'
    });

新しいロールをデータベースに追加する必要があります。たとえば、authorities.csv:

name
ROLE_ADMIN
ROLE_USER
ROLE_MANAGER
26
Rori Stumpf

これは4.5.5でさらに簡単になります

1- AuthoritiesConstants.Javaを変更します

2-新しいロールをauthorities.csvファイルに追加します

アプリケーションを再実行すると、新しいロールがインターフェイスに表示されます(管理/ユーザー管理/新しいユーザーを作成します)(アプリのtarget\h2db\dbコンテンツを削除すると役立つ場合があります)

3
krish

Jhipter 4.3の場合、このソリューションがあります。

  1. AuthoritiesConstants.Javaを変更する
  2. Authors.csvファイルに新しいロールを追加する
  3. 新しいロールを含めることにより、テーブルJHI_AUTHORITYを更新します。
  4. ここにあるuser-management-dialog-component.tsを変更します\ webapp\app\admin\user-management

アプリケーションを再実行します。新しい役割がインターフェースに表示されます(管理/ユーザー管理/新しいユーザーの作成)。 (アプリのtarget\h2db\dbコンテンツを削除すると便利な場合があります。)

2
Yannard

Authors.csvに値を追加しても、これらの値は直接テーブルに追加されません。これは単なるテーブルに追加された値なので、Liquibaseの変更に違いはなく、DBに手動で追加する必要があります...

1
faizal khan

Security/AuthoritiesConstants.Javaを編集した後。新しいliquibase変更ログを追加して、新しいapp_authorities.csvを追加できます。以下のように

Image showing how to do

私のapp_authorities.csvは次のようになります。

name
ROLE_VENDOR
0
Joe King