实现ABP中Person类的权限功能

菜单项的显示功能已经完全OK了。那么我们就开始制作视图功能吧。

首先测试接口是否正常

我们通过代码生成器将权限和application中大部分功能已经实现了。那么我们来测试下这些接口ok不。

浏览/apis/index来进入swaggerui文档。

        image

以上都是代码生成器生成的接口功能。

那么我们先来测试下

/api/services/app/person/GetPagedPersonsAsync 接口, 根据查询条件获取联系人分页列表

image

提示说我们未登陆。

那我们登录后再试试

image

登录后,再次实行查询语句,提示我们没有person.person权限。

image

权限说明

Required permissions are not granted. At least one of these permissions must be granted: Persons.Person

提示必须要有这个权限,那么我们看看我们的代码是怎么实现的

image

也就是说此处了权限判断,我们没有访问这个类的权限。那么我们怎么办呢。

添加权限

一个是添加权限功能。那么问题来了我们都没有实现权限页面功能,怎么添加呢。

我这里采用最简单的方法来实现,就是删库。让我们在初始化admin的时候就将权限赋予给他。有了思路我们就来实现他。

初始化权限信息

打开EntityFramework类库,找到HostRoleAndUserCreator和TenantRoleAndUserBuilder两个类文件

var personPermissions =
                 PermissionFinder.GetAllPermissions(new PersonAppAuthorizationProvider()).ToList();
                permissions.AddRange(personPermissions);

添加上面的代码到 permissions中

image

然后再次执行update-database。

我们运行项目然后登陆。

image

执行的结果就是成功了的。这个时候你就可以在接口中实现下crud的功能了。

到目前为止整体的crud功能就算是完成了。下一步就是实现他视图功能了。

如果你觉得本文章对你有帮助,可以对我打赏哦。屏幕右方

群里可以下载源代码

交流QQ群:ABP代码生成器交流群

如此。The End

-返回目录-  ABP打造一个《电话簿项目》

posted @ 2016-08-16 23:50  梁桐铭  阅读(2967)  评论(3编辑  收藏  举报