2016-08-23 62 views
2

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

在普通的jsp中,我使用了spring security标签来隐藏非授权用户的元素。

E.g.隐藏删除按钮:

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

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

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

如果您可以将授权状态转换为JavaScript变量,您可以根据变量设置'buttons'。我不知道任何JSP或Spring。 – thirtydot

+0

@thirtydot,是的,我可以在js中获得授权变量,但接下来我应该做什么?我如何在数据表中检查这个变量? – Redeemer

回答

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

你可以不是与三元操作符写行内,但它不会是那样清晰。

+0

TY,它工作! – Redeemer