一、問(wèn)題描述
項(xiàng)目用 springboot 框架,在前端頁(yè)面上使用 shiro 標(biāo)簽的時(shí)候遇到了 thymeleaf 模板中的 js 腳本里使用 shiro 標(biāo)簽不起作用
這個(gè)問(wèn)題。
由于頁(yè)面表格使用的是 bootstrapTable 角骤,列表中的按鈕是在 js 中動(dòng)態(tài)生成的,目前需求是:列表中的按鈕要受權(quán)限控制。
二贾惦、解決方法
-
首先定義一個(gè)全局變量,賦值為 false ;
<script>hasSaveOrUpdatePermission = false</script> <!--定義全局變量--> <script>hasDeletePermission = false</script>
-
在頁(yè)面中進(jìn)行判斷须板。如果用戶有這個(gè)權(quán)限碰镜,那么把該變量設(shè)置為 ture ,并在 js 中使用這個(gè)變量习瑰;
<shiro:hasPermission name="department:saveOrUpdate"> <script>hasSaveOrUpdatePermission = true</script> </shiro:hasPermission> <shiro:hasPermission name="department:delete"> <script>hasDeletePermission = true</script> </shiro:hasPermission>
-
如果它為 true 绪颖,說(shuō)明有這個(gè)權(quán)限,那么我就給它顯示刪除按鈕甜奄,如果沒(méi)有柠横,就顯示一條"-"
{ title: '操作', align: 'center', formatter: function (value, row, index) { var actions = []; if (hasSaveOrUpdatePermission) { actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="editOp(' + row.id + ')" ><i class="fa fa-edit"></i>編輯</a> '); } else { actions.push(' - '); } if (hasSaveOrUpdatePermission) { actions.push('<a class="btn btn-danger btn-xs btn-delete" href="javascript:void(0)" onclick="deleteOp(' + row.id + ')" shiro:hasPermission="department:delete"><i class="fa fa-remove"></i>刪除</a> '); } else { actions.push(' - '); } return actions.join(''); } }
經(jīng)過(guò)測(cè)試,問(wèn)題已成功解決