在 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。