使用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角色。

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