Module Zeroの役割管理

1987 ワード

『Module Zeroラーニングカタログ』に戻ります
  • ロールエンティティ
  • ロールマネージャ
  • マルチテナント
  • ロールエンティティ
    ロールエンティティは、アプリケーションのロールを表します.AppRoleクラスから派生する必要があります.以下に示します.
    public class Role : AbpRole<Tenant, User>
    {
        //             
    }
    

    このクラスはmodule-zeroをインストールしたときに作成されます.ロールデータがデータに格納されているAppRolesテーブル.ロールクラスにカスタム属性を追加できます.
    AppRole定義の最も重要な属性は次のとおりです.
  • Name:テナントの役割の唯一の名前.
  • DisplayName:キャラクタに表示される名前.
  • IsDefault:ロールがデフォルトで新しいユーザーに割り当てられているかどうかを示します.
  • IsStatic:ロールが静的であるかどうかを示します(事前に生成されたものと削除できないもの).

  • ロールは、権限を組み合わせるために使用されます.ユーザがロールを持つと、Taはロールのすべての権限を取得します.1人のユーザーに複数のロールを持つことができます.ユーザーの権限は、そのユーザーが所有するロールのすべての権限のセットです.
    動的ロールvs静的ロール
    Module-zeroでは、キャラクタを動的または静的にすることができます.
  • 静的ロール:静的ロールには既知の名前(adminなど)があり、後でこの名前を変更することはできません(表示する名前を変更できます).システムが起動したときにすでに存在し、削除できません.したがって、静的なロール名に基づいてコードを書くことができます.
  • ダイナミック(非静的)ロール:デプロイ後、ダイナミックなロールを作成できます.その後、このロールに権限を付与したり、他のユーザーにロールを付与したり、削除したりすることができます.開発時には、ダイナミックキャラクタの名前を知らなくてもいいです.

  • IsStaticプロパティを使用して、キャラクタが静的か動的かを設定します.また、モジュールのPreInitializeに静的ロールを登録する必要があります.テナントに「Admin」静的ロールを与えるとします.
    Configuration.Modules.Zero().RoleManagement.StaticRoles.Add(new StaticRoleDefinition("Admin", MultiTenancySides.Tenant));
    

    これで、module-zeroはこの静的な役を知っています.
    デフォルトのロール
    1つ以上のロールをデフォルトのロールに設定できます.デフォルトでは、デフォルトのロールは、新しく追加されたユーザーまたは新しく登録されたユーザーに付与されます.これは開発時のプロパティではなく、パブリケーション後に設定または変更できます.IsDefaultプロパティを使用してデフォルトのロールを設定します.
    ロールマネージャ
    ロールマネージャは、ロールレルムロジックを実行するサービスです.
    public class RoleManager : AbpRoleManager<Tenant, Role, User>
    {
        //           
    }
    

    ロール管理者を注入し、それを使用してロールを作成、削除、更新し、ユーザーに権限を与えることができます.ここで自分の方法を追加することができます.また、AppRoleManagerベースクラスの任意のメソッドを書き換えて、自分のニーズを満たすことができます.
    ユーザー管理者のように、ロール管理者のいくつかの方法は、場合によっては例外を投げ出すのではなく、IdentityResultを結果として返します.詳細については、ユーザー管理を参照してください.
    マルチテナント
    ユーザー管理と同様に、ロール管理もマルチテナントアプリケーションで単一テナントにサービスされるようになります.詳細については、ユーザー管理を参照してください.