Comments (8)
现在比较棘手的是第2点权限的问题,各位有啥想法没有……
from ub-ria.
还有FormModel
中的rule
事实上也应该不同项目区分开来
from ub-ria.
现在比较棘手的是第2点权限的问题,各位有啥想法没有……
模块本身使用的权限名称允许在一个相对独立的地方做映射?
比如:AD模块里依赖ADM系统下的CLB_AD_VIEW权限,这个权限在AD模块里其实是canViewAD,在模块配置config里对CLB_AD_VIEW和canViewAD单独做一个映射,考虑到1中所说的config不打包走,这样当AD模块在SSP系统里用的时候,就可以根据SSP系统里的config来给canViewAD映射SSP系统中的权限了
from ub-ria.
嗯,首先canViewAd
对应CLB_AD_VIEW
这个如果在Model
的实现中写死,那就没办法映射了,要映射就要继承Model
整个给换掉
所以 映射 一个正确的方向,关键在于怎么去设计出程序结构,来支持这种映射,你说的是通过config
来做喽……
我这边的一个想法是加个PermissionProvider
,类似于Data
的效果,但又为啥不叫PermissionData
呢……所以这些就比较纠结了
from ub-ria.
其实我一直有一个想法,及时是最大程度的复用,在两个异构系统里也是多少会需要一些适配的,看到你说config不打包走的瞬间,我就想把config作为一个适配配置器来用了,就好像我们的模块是一个SataII接口的硬盘,如果系统是IDE的,就需要这么一个转换器了;
另外,考虑到Action拿config的配置相对容易,改动也会小一下,config又是在系统加载的时候就执行完成的,不会导致什么顺序问题,所以我建议用config做适配
我这边的一个想法是加个PermissionProvider,类似于Data的效果
PermissionProvider
这个东西感觉也可以,因为本身权限在使用的时候就是被抽象成了Model了,Data-->Model也很自然,但是就是有一个问题,这东西是一个全局的还是模块内的,如果是模块内的,又如何来屏蔽系统的权限异构问题?
from ub-ria.
config
不打包的原因很简单,config
一加载就把URL配置上了,这不是我们想要的结果……
适配配置器这东西,理想来说,是IoC,不会是config
哦,你试想下有IoC存在的情况下会怎么来~
from ub-ria.
刚刚和@Exodia在茶水间讨论了一下,有IOC以后,datasource可以直接用canXXX: permission('canXXX')
然后靠Ioc引入不同的permission配置来实现异构,某个permission的配置可能就是:
A系统:
permission: { value: { canXXX: 'CLB_XXX' }}
B系统就可以是:
permission: { value: { canXXX: 'SSP_XXX' }}
from ub-ria.
permission
是datasource
上的一个函数,datasource
是单例的,因此如果不改变这个现状,就不能指望IoC来改写datasource.permission
,这里会有并发干扰的问题(虽然99.9%的情况下不存在并发干扰)
因此我的想法就是canXxx: this.permission.has('XXX')
,permission
是挂在实例上的一个对象,是多例的,IoC就能配置
from ub-ria.
Related Issues (20)
- UB-RIA
- ub-ria文档内容需求汇总 HOT 3
- UIView类中增加addUIExtensions方法的需求 HOT 2
- [FormView#getEntity]增加对嵌套属性名称的解构 HOT 2
- 3.0 Breaking changes HOT 4
- 增加一个 ControlProvider工厂获取控件类 HOT 6
- List的批量更新提示流程有问题 HOT 1
- 【ub-ria升级需求汇总】取消“抽屉弹出”的强制交互 HOT 12
- 【ub-ria升级需求汇总】取消“表单取消操作的确认弹层”的强制交互 HOT 2
- 【ub-ria升级需求汇总】列表中筛选相关 HOT 2
- 【ub-ria升级需求汇总】取消“布局变化监听”的强制配置 HOT 1
- 生成HTML的内容均使用模板来实现,减少JavaScript拼接字符串
- 移除所有样式
- BaseModel中的Typo
- ListView.js getSearchArgs HOT 7
- 有关defaultArgs的设计问题 HOT 2
- 修改列表行内command事件的处理方式
- 新的数据加载配置方法 HOT 2
- ListAction的查询过程可能丢失部分参数 HOT 8
- tpl.js支持ie10、9、8跨域加载模板 HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ub-ria.