我需要为非授权用户隐藏Datables中的按钮。
在普通的jsp中,我使用了spring security标签来隐藏非授权用户的元素。
E.g。隐藏删除按钮:
<sec:authorize access="hasRole('ROLE_ADMIN')"> <a href="delete/${author.id}">Delete</a></sec:authorize>
但是在jquery数据表中,按钮来自内部javascript配置。我无法使用弹簧安全标签。 例如。删除DataTables中的按钮:
"buttons": [
{
text: "Delete",
action: function (e, dt, button, config){
//button onClick here
}
}
]
答案 0 :(得分:1)
以下是一个例子:
var authStatus = true; //your auth status variable from JSP
var buttons = [];
if (authStatus) {
buttons = [
{
text: "Delete",
action: function(e, dt, button, config) {
//button onClick here
}
}
];
}
$('#example').DataTable({
dom: 'Bfrtip',
buttons: buttons,
});
你可以用三元运算符内联编写它,但它不会那么清楚。