springBoot集成shiro在thymeleaf的js中使用shiro權(quán)限標(biāo)簽
一家破、問題描述
項目用 springboot 框架疾掰,在前端頁面上使用 shiro 標(biāo)簽的時候遇到了?thymeleaf 模板中的 js 腳本里使用 shiro 標(biāo)簽不起作用這個問題折砸。
由于頁面表格使用的是 bootstrapTable 铣墨,列表中的按鈕是在 js 中動態(tài)生成的浦夷,目前需求是:列表中的按鈕要受權(quán)限控制邑飒。
二、解決方法
首先定義一個全局變量帅涂,賦值為 false 议薪;
<script>hasSaveOrUpdatePermission=false</script><!--定義全局變量--><script>hasDeletePermission=false</script>
在頁面中進(jìn)行判斷。如果用戶有這個權(quán)限媳友,那么把該變量設(shè)置為 ture 斯议,并在 js 中使用這個變量;
<shiro:hasPermissionname="department:saveOrUpdate"><script>hasSaveOrUpdatePermission=true</script></shiro:hasPermission><shiro:hasPermissionname="department:delete"><script>hasDeletePermission=true</script></shiro:hasPermission>
如果它為 true 醇锚,說明有這個權(quán)限哼御,那么我就給它顯示刪除按鈕,如果沒有焊唬,就顯示一條"-"
{? title: '操作',? align: 'center',? formatter: function (value, row, index) {? var actions = [];? if (hasSaveOrUpdatePermission) {? ? ? actions.push('<aclass="btn btn-success btn-xs"href="javascript:void(0)"onclick="editOp(' + row.id + ')"><iclass="fa fa-edit"></i>編輯</a>');? } else {? ? actions.push(' - ');? }? if (hasSaveOrUpdatePermission) {? ? ? actions.push('<aclass="btn btn-danger btn-xs btn-delete"href="javascript:void(0)"onclick="deleteOp(' + row.id + ')"shiro:hasPermission="department:delete"><iclass="fa fa-remove"></i>刪除</a>');? } else {? ? actions.push(' - ');? }? ? return actions.join('');? }}
經(jīng)過測試恋昼,問題已成功解決
文章來源:http://www.reibang.com/p/b3fa5296de26