表单权限用法 === **目录索引:** - 表单权限规则说明 - 表单权限标签介绍 - 表单权限页面编码实现 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://img.kancloud.cn/47/9e/479e367153486a2c58abb66193793b90_987x742.png) [2]、页面表单权限配置如下(页面控件编码对应页面控件的ID) ![](https://img.kancloud.cn/c7/1f/c71f9649baa117b5822175c63598babd_733x492.png) #### 3.2.手机号字段隐藏 t:hasPermission 表单字段手机号不显示,采用标签<t:hasPermission来实现,hasPermission标签比较容易理解,采用包含的方式,对包含的区域根据是否有权限进行动态控制。 [1]、手机号字段控制隐藏,编码如下 ![](https://img.kancloud.cn/f8/be/f8becff6f9ea473181cc118fde01e584_1069x644.png) [2]、表单字段权限配置如下 ![](https://img.kancloud.cn/96/01/9601b711c48d499c11b3a5f327c59261_1444x747.png) #### 3.3.金额字段禁用 t:authFilter 采用标签<t:authFilter />方式。 [1]、 通过控件ID控制 ![](https://img.kancloud.cn/b8/64/b86491a3f9bf4a7599f3d58c3220688f_950x747.png) [2]、页面表单字段权限配置如下 ![](https://img.kancloud.cn/94/76/9476ef718ff17cbbd56e5c9879b81274_1386x744.png) ### 4.表单权限配置 针对菜单” 表单校验”页面请求,jeecgFormDemoController.do?formValidDemo,进行表单权限配置。 注意:权限请求URL有一定规则要求 (目前支持带一个参数,且格式有要求,不能带等号), 例如:loginController.do?login,不支持等号模式:loginController.do?name=2 ![](https://img.kancloud.cn/8f/36/8f36be566f682866e97672652735d8f7_1323x448.png) ### 5.表单权限控制效果 表单权限配置后,未授权用户无法查看字段:[邮箱][手机号];同时无法编辑[金额] 字段。 采用demo用户访问菜单【表单验证】,未授权效果如下: ![](https://img.kancloud.cn/3e/9e/3e9ec519dde7677b12e7ca5d71748186_859x577.png) ### 6.表单权限授权效果 表单权限配置后,默认非授权用户都受控制,只有赋权才解除控制(admin除外),此时给demo角色授权,测试是否看拥有对应的字段操作权限。 [1]、角色授权 ![](https://img.kancloud.cn/6d/8e/6d8e2f8e006ccd18cda68258a0fbcf60_1133x525.png) [2]、授权效果确认 采用demo用户(授权demo角色)登录系统效果如下,邮箱字段和手机号字段显示成功,金额字段也可输入。 ![](https://img.kancloud.cn/e0/7b/e07b2df12908a946042459480e6b485b_660x584.png)