abp的权限与导航菜单的关系

原来以为各是各的,所以就有了第一个版本.Getallmentus.然后注入了role,当然失败了.获取所有的菜单.一直在思考在什么地方设置菜单是否展示呢?

后面看了源码.才发现自己错了.

UserNavigationManager(这个是一个框架内部调用的类)会获取当前userid的所有的菜单,

数据源跟菜单的RequiredPermissionName有关系.

改数据库中的数据.刷新前台,没有反应.找了半天才知道,是用的eventbus来触发删除当前缓存数据的.eventbus是自动注册(未去找自动注册的实现.)

如下的设计:

AbpUserPermissionCacheItemInvalidator:

IEventHandler<EntityChangedEventData<UserPermissionSetting>>,
IEventHandler<EntityChangedEventData<UserRole>>,
IEventHandler<EntityDeletedEventData<AbpUserBase>>,

ITransientDependency

 

所以只能通过UI去操作才有效果.

 

关于动态的menu,INavigationManager 只能用它来另外处理.建议结构不变.只变名称和路径是可以的.

 

也就是说,不能简单的通过数据库去改数据库,必须通过程序..

 

posted @ 2017-08-29 10:41  forhells  阅读(633)  评论(0)    收藏  举报