当“逻辑”与“UE”冲突时

如上图。

权限系统有三个对象:用户、角色和组。

角色代表自定义的权限集合。

“组”你可以理解为“文件夹”、“部门”等名词。

一个用户可以拥有多个角色。

一个角色可以拥有多个其他角色(即继承这些角色的权限)。

一个组可以“盛放”多个用户和角色;一个组可以拥有多个角色。

实际情况是,如图,新建角色时,用户可以拖动左边Tree上的角色到“添加角色”的框中,达到“一个角色可以继承多个角色”的目的。同时可以拖动用户和组到“添加成员”的框中,使这些用户、组继承此角色所代表的权限。

但是问题来了,为什么“添加成员”只接受用户、组两种对象,而不接受“角色”对象呢?这就是我们的分歧点。

UE认为,如果“添加角色”和“添加成员”如果都接受“角色”对象时,会造成用户对操作理解上的混乱。

而我认为,对于“添加成员”而言,“角色”对象和“用户”、“组”等对象在逻辑上是对等的,将它排除在外是不合理的。而且照UE的观点设计,当我想将新建的角色赋予给多个旧角色时,不得不一个个地打开旧角色,将新角色拖动到一个个的“添加角色”的框中,这样的操作在UE设计角度来讲也是不科学的。

时间: 2024-10-28 15:47:40

当“逻辑”与“UE”冲突时的相关文章

EXT--当defaultType与items的子组件默认xtype冲突时items的子组件的xtype为panel

示例图 直接看下面示例代码: /** * 获取导入表单 * @returns {Ext.FormPanel} */ function getImportForm() { return new Ext.FormPanel({ //... defaults : { labelWidth : 70, labelAlign : 'right', defaultType : 'textfield'//子组件的默认类型 }, items : [{//xtype为panel(默认) columnWidth :

数据结构--开放定址法解决散列冲突时几种探测法的比较

开放定址法解决散列冲突时主要有线性探测法,平方探测法和双散列法,以下代码通过插入大量随机数,来统计几种探测法产生冲突的次数. #include<iostream> using namespace std; #define MinTablesize 10 #define Num 3000 typedef unsigned int Index; typedef Index Position; struct Hashtal; typedef struct Hashtal *Hashtable; in

领导安排与制度冲突时,下属怎么办?

尊敬的孟子瑜网友:你好!登机前看到我助理陈新转来你在拙文<制度第一,还是老板第一>文章后的留言:我看到标题想到的一个问题是,当领导的要求与公司制度相违背时,是按领导安排的去做,还是扛着制度不去做?应该说有你一问的企业员工不在少数.或者说你反映了一个具有普遍意义的中国企业"管理难题"! 我从管理规范要求.个人经验以及保护下属员工的角度分别谈几点建议,供你参考.一.从规范管理角度而言,员工必须拒绝领导不符合制度规定的安排.但是要注意说话的态度,要指出领导违背制度哪一条,说明自己

全局变量名、局部变量名和形参名冲突时,覆盖情况

以前错误的认为,全局变量名.局部变量名和形参名相同时,全局变量(也就是外部变量)被形参覆盖,形参被局部变量覆盖. 今天发现这样理解并不对.比如 function foo(num){ var num; console.log(num); } foo(1) // 1 //如果错误的理解为局部变量会覆盖形参的话,会认为会输出undefined 那事实是什么呢.实际上变量名冲突分两种,一种是函数外的变量和函数里的局部变量的冲突,一种是函数内部的冲突. 第一种冲突,我把它理解为是作用域链的上游(最上游是全

计算部落冲突时长的工具

今天闲来无事,想找一个计算部落冲突建筑升级时间.发现没有得心应手的,就自己写了一个控制台输出的小程序. import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; public class T5 { public static void main(String[] args) { //获取当前系统毫秒 Date nowDate=new Date(System.currentTimeMill

ubuntu解决pppoeconf和network-manager冲突时,可能问题的解决方法

      装了一台Ubuntu14.04的实体机,首先,肯定是解决上网问题了,毕竟不能上网的机器是不能接受的.因为接入的是电信宽带,需要ADSL拨号上网.最开始没有注意,直接使用pppoeconf来完成ADSL拨号上网.用的还是很happy的,然后想要使用VPN,那么问题就来了.在桌面NetworkManager上设置VPN,连接没有任何反应.疑惑了一会儿,发现这是因为我没有采用NetworkManager中的DSL拨号上网,所有VPN设置好之后,即使看似连上了,实际上也不用使用.      

git上传(本地和远程有冲突时)

一. 冲突的产生:在上次git同步(上传)之后,本地和远程均有更改 二. 处理 1. 丢弃本地,采用远程: git checkout 冲突文件及其路径 如: git checkout bzrobot_navigation_meta_packages/map_server/src/access_map_server.cpp 2. 人为合并( git mergetool)本地和远程代码 (思路:先提交没有冲突的部分,再人为合并,再提交冲突的部分,最后将所有改动push上去) 1). git pull

Android程序捕获未处理异常,处理与第三方方法冲突时的异常传递

自己的android程序对异常进行了处理,用的也是网上比较流行的CrashHandler,代码如下,就是出现了未处理的异常程序退出,并收集收集设备信息和错误信息仪器保存到SD卡,这里没有上传到服务器. public class CrashHandler implements UncaughtExceptionHandler { public static final String TAG = "CrashHandler"; // CrashHandler 实例 private stat

创建模型出现成员变量名字冲突时的解决方法

建立模型时可能会出现解析的文件中包含UI里的关键字,比如说id,description,self 解决方法有2. 1.换一个名字作为成员变量的名字,对成员变量逐一赋值,但这个方法不太方便,当变量名太多时书写会很不方便. 2.当然有方法少写些代码, 给_myDescription赋值时调用setDescription: @property(nonatomic,copy,setter=setDescription:)NSString *    myDescription; -(void)setVal