在 jquery 数据表中为非授权用户隐藏一些按钮
Hide some buttons for non authorized users in jquery datatable
我在 Asp.net MVC 项目中使用 jQuery 数据表。在数据表的任何行中,我都有 dropdown-menu
用于如下所示的某些操作:
我想为非授权用户隐藏此下拉菜单中的一些按钮。
我添加这个下拉菜单的js代码是:
{
data: 'UserId',
name: 'UserId',
render: function (data) {
return '<div class="btn-group btn-group-sm operation"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">عملیات <span class="fa fa-caret-down"></span></button> <ul class="dropdown-menu"> <li><a href="/Admin/Customer/Edit/' + data + '"><span class="fa fa-pencil"></span>ویرایش</a></li> <li><a href="/Admin/Gift/Details/' + data + '"><span class="fa fa-gift"></span>امتیاز هدیه</a></li> <li><a href="/Admin/Customer/PointDetails/' + data + '"><span class="fa fa-area-chart"></span>گزارش ریز امتیازات</a></li> <li class="divider"></li><li><a href="javascript:void" id="' + data + '" onclick="deleteRow(' + data + ',\'/Admin/Customer/Delete\'' + ')"><span class="fa fa-trash"></span>حذف</a></li></ul> </div>';
},
orderable: false
}
我在这个项目中使用 Asp.net 身份。
我该怎么做?
提前致谢
向每个按钮添加 classes,这些按钮对应于允许使用它们的安全角色。从隐藏所有按钮开始,然后显示具有 class 对应于为当前用户 ID 授权的角色的按钮。
像这样:
<button class="admin">Admin Stuff</button>
<button class="admin super">Superuser Stuff</button>
<button class="admin super normal">Normal Stuff</button>
<button class="admin super normal guest">Guest Stuff</button>
然后,当您打开页面时:
$(document).ready(function () {
$('button').hide();
// find the role of the current user
$('.' + theRole).show();
});
此示例假定安全角色的名称与您添加到按钮的 classes 的名称相同。这是最简单的,因为它只需要一行代码。如果由于某种原因不能这样做,则必须使用 if else
语句来确定用户所处的角色,并显示与该角色等效的 class。
我在 Asp.net MVC 项目中使用 jQuery 数据表。在数据表的任何行中,我都有 dropdown-menu
用于如下所示的某些操作:
我想为非授权用户隐藏此下拉菜单中的一些按钮。
我添加这个下拉菜单的js代码是:
{
data: 'UserId',
name: 'UserId',
render: function (data) {
return '<div class="btn-group btn-group-sm operation"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-expanded="false">عملیات <span class="fa fa-caret-down"></span></button> <ul class="dropdown-menu"> <li><a href="/Admin/Customer/Edit/' + data + '"><span class="fa fa-pencil"></span>ویرایش</a></li> <li><a href="/Admin/Gift/Details/' + data + '"><span class="fa fa-gift"></span>امتیاز هدیه</a></li> <li><a href="/Admin/Customer/PointDetails/' + data + '"><span class="fa fa-area-chart"></span>گزارش ریز امتیازات</a></li> <li class="divider"></li><li><a href="javascript:void" id="' + data + '" onclick="deleteRow(' + data + ',\'/Admin/Customer/Delete\'' + ')"><span class="fa fa-trash"></span>حذف</a></li></ul> </div>';
},
orderable: false
}
我在这个项目中使用 Asp.net 身份。
我该怎么做?
提前致谢
向每个按钮添加 classes,这些按钮对应于允许使用它们的安全角色。从隐藏所有按钮开始,然后显示具有 class 对应于为当前用户 ID 授权的角色的按钮。
像这样:
<button class="admin">Admin Stuff</button>
<button class="admin super">Superuser Stuff</button>
<button class="admin super normal">Normal Stuff</button>
<button class="admin super normal guest">Guest Stuff</button>
然后,当您打开页面时:
$(document).ready(function () {
$('button').hide();
// find the role of the current user
$('.' + theRole).show();
});
此示例假定安全角色的名称与您添加到按钮的 classes 的名称相同。这是最简单的,因为它只需要一行代码。如果由于某种原因不能这样做,则必须使用 if else
语句来确定用户所处的角色,并显示与该角色等效的 class。