表单权限用法 === **目录索引:** - 表单权限规则说明 - 表单权限标签介绍 - 表单权限页面编码实现 1. 邮箱字段隐藏 t:authFilter 2. 手机号字段隐藏 t:hasPermission 3. 金额字段禁用 t:authFilter - 表单权限配置 - 表单权限控制效果 - 表单权限授权效果 # 表单权限用法 ### 1.表单权限规则说明 页面表单权限,主要用来控制一个页面上控件或者代码块的隐藏和禁用。表单权限配置后,默认非授权用户都受控制,只有赋权才解除控制(admin除外)。 控制精度: 禁用(只读不可写)、隐藏(不可读)。 控制方式:有两种方式,分别对应两个标签,具体用法看表单权限标签介绍。 **常见误区:** 针对页面表单进行权限控制,大家经常把URL配置错误,错以为是list页面,注意应该是需要控制的页面请求。 例如:jeecgListDemoController.do?goAdd ### 2.表单权限标签介绍 表单权限控制,通过权限标签实现,两种标签两种不同使用方式。 | 表单权限智能标签| <t:authFilter />| | -------- | ----- | ---- | | 用法:| 将该标签放在JSP页面最底部即可,不要采用包含写法,规则:采用Jquery思路,用JS方式对页面控件进行控制,页面控件编码,规则如下:#id => 表单控件ID,.class => 表单控件样式,控制精度: 可控制表单片段的隐藏和禁用| | 表单权限包含标签| <t:hasPermission code="add"><input name="mobile" class="inputxt" value="${depart.mobile }"/></t:hasPermission>| | 用法:| 采用包含的方式:code对应页面控件权限的[页面控件编码];规则:包含权限标签,包含的表单代码片段,会通过 code 权限匹配,匹配成功,页面片段将不显示;控制精度:只能控制表单片段的隐藏(不区分隐藏和禁用)| **<t:authFilter />标签用法例子:** 类似jquery语法(规则如下): ``` #id => #mail_id(通过ID控制页面控件的权限) .class => .form (通过class控制页面控件的权限) ``` 参考例子: 语法一:#add_phnoe ``` <tr id= "add_phnoe"> <td align="right" nowrap><label class="Validform_label"> 手机号码: </label></td> <td class="value"><input class="inputxt" name="mobilePhone" value="${jgDemo.mobilePhone}" datatype="m" errormsg="手机号码不正确!" ignore="ignore"> <span class="Validform_checktip"></span></td> </tr> ``` 语法二:. add_phnoe class ``` <tr class= "add_phnoe"> <td align="right" nowrap><label class="Validform_label"> 手机号码: </label></td> <td class="value"><input class="inputxt" name="mobilePhone" value="${jgDemo.mobilePhone}" datatype="m" errormsg="手机号码不正确!" ignore="ignore"> <span class="Validform_checktip"></span></td> </tr> ``` ### 3.表单权限页面编码实现 #### 3.1.邮箱字段隐藏 t:authFilter 说明: 邮箱字段隐藏,采用权限标签<t:authFilter />实现,authFilter标签是一个权限智能标签,放在需要控制的页面底部即可(非包含用法); [1]、邮箱字段控制隐藏,编码如下 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16111951_Nvm6.png "在这里输入图片标题") [2]、页面表单权限配置如下(页面控件编码对应页面控件的ID) ![输入图片说明](https://static.oschina.net/uploads/img/201804/16112003_F2dR.png "在这里输入图片标题") #### 3.2.手机号字段隐藏 t:hasPermission 表单字段手机号不显示,采用标签<t:hasPermission来实现,hasPermission标签比较容易理解,采用包含的方式,对包含的区域根据是否有权限进行动态控制。 [1]、手机号字段控制隐藏,编码如下 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16112049_Xs1J.png "在这里输入图片标题") [2]、表单字段权限配置如下 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16112059_kxn4.png "在这里输入图片标题") #### 3.3.金额字段禁用 t:authFilter 采用标签<t:authFilter />方式。 [1]、 通过控件ID控制 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16112115_vnKC.png "在这里输入图片标题") [2]、页面表单字段权限配置如下 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16112135_1WJV.png "在这里输入图片标题") ### 4.表单权限配置 针对菜单” 表单校验”页面请求,jeecgFormDemoController.do?formValidDemo,进行表单权限配置。 注意:权限请求URL有一定规则要求 (目前支持带一个参数,且格式有要求,不能带等号), 例如:loginController.do?login,不支持等号模式:loginController.do?name=2 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16112423_UiFz.png "在这里输入图片标题") ### 5.表单权限控制效果 表单权限配置后,未授权用户无法查看字段:[邮箱][手机号];同时无法编辑[金额] 字段。 采用demo用户访问菜单【表单验证】,未授权效果如下: ![输入图片说明](https://static.oschina.net/uploads/img/201804/16112413_KVQs.png "在这里输入图片标题") ### 6.表单权限授权效果 表单权限配置后,默认非授权用户都受控制,只有赋权才解除控制(admin除外),此时给demo角色授权,测试是否看拥有对应的字段操作权限。 [1]、角色授权 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16112358_F83S.png "在这里输入图片标题") [2]、授权效果确认 采用demo用户(授权demo角色)登录系统效果如下,邮箱字段和手机号字段显示成功,金额字段也可输入。 ![输入图片说明](https://static.oschina.net/uploads/img/201804/16112343_x1Pj.png "在这里输入图片标题")