为具有 Spring 安全性的非授权用户隐藏 Datatables 中的按钮

Hide buttons in Datables for non-authorized users with Spring Security

我需要为非授权用户隐藏 Datables 中的按钮。

简单地说 jsp 我使用 spring 安全标签来为非授权用户隐藏元素。

例如隐藏删除按钮:

<sec:authorize access="hasRole('ROLE_ADMIN')"> <a href="delete/${author.id}">Delete</a></sec:authorize>

但在 jquery 数据表中,按钮来自内部 javascript 配置。而且我不能使用 spring 安全标签。 例如。 DataTables 中的删除按钮:

"buttons": [
{
    text: "Delete",
    action: function (e, dt, button, config){
        //button onClick here
    }
}
]

这是一个例子:

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

您可以改为使用三元运算符将其内联编写,但不会那么清晰。