使用Spring Security为非授权用户隐藏Datables中的按钮

时间:2016-08-23 14:16:06

标签: javascript jsp spring-security datatables jsp-tags

我需要为非授权用户隐藏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
    }
}
]

1 个答案:

答案 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,
});

你可以用三元运算符内联编写它,但它不会那么清楚。