使用ABP CLI創建Web 應用(十四)—— 權限定義

前面實現功能時沒有考慮權限問題,任何用戶只要能訪問這個應用,都可以對數據進行操作,增加、修改或者刪除數據,現在我們需要增加權限控制,只有授權用戶可以進行相應的操作。

首先需要增加應用的權限定義,在Application.Contracts項目的Permissions中增加權限定義,代碼如下:

namespace ZL.Test.Permissions
{
    public static class TestPermissions
    {
        public const string GroupName = "Test";
        public static class Poets
        {
            public const string Default = GroupName + ".Poets";
            public const string Create = Default + ".Create";
            public const string Edit = Default + ".Edit";
            public const string Delete = Default + ".Delete";
        }
       
    }
}

在TestPermissionDefinitionProvider中增加權限的說明:

using ZL.Test.Localization;
using Volo.Abp.Authorization.Permissions;
using Volo.Abp.Localization;

namespace ZL.Test.Permissions
{
    public class TestPermissionDefinitionProvider : PermissionDefinitionProvider
    {
        public override void Define(IPermissionDefinitionContext context)
        {
            var myGroup = context.AddGroup(TestPermissions.GroupName, L("Permission:Test"));

            var booksPermission = myGroup.AddPermission(TestPermissions.Poets.Default, L("Permission:Poets"));
            booksPermission.AddChild(TestPermissions.Poets.Create, L("Permission:Poets.Create"));
            booksPermission.AddChild(TestPermissions.Poets.Edit, L("Permission:Poets.Edit"));
            booksPermission.AddChild(TestPermissions.Poets.Delete, L("Permission:Poets.Delete"));
        }

        private static LocalizableString L(string name)
        {
            return LocalizableString.Create<TestResource>(name);
        }
    }
}

這裏使用了本地化設置,因此在本地化文件中也要增加相應的內容:

 "Permission:Test": "測試項目",
    "Permission:Poets": "詩人",
    "Permission:Poets.Create": "添加詩人",
    "Permission:Poets.Edit": "編輯詩人",
    "Permission:Poets.Delete": "刪除詩人"

現在,可以運行項目,爲角色進行授權了。以admin用戶進行登錄(ABP模板生成的密碼是1q2w3E*),導航到Identity/Roles,管理角色,在操作中選擇權限,進行對角色的權限授權:



可以看到列出了我們新增加的權限,可以將這些權限授權給admin角色。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章