在我的项目中,我们有一个文件“permissionType.js”,它确定当前用户的权限角色并相应地限制某些功能。这是通过将属性data-projectsecurity
应用于它适合的每个区域并使用以下脚本来完成的,该脚本在遇到这种情况时运行。我们希望它使不具有正确角色的用户无法深入研究表条目,因为该onclick
属性已被删除。
请看下面的代码:
checkPermission = function () {
$('[data-projectsecurity]').each(function () {
var id = $(this)[0].id;
var node = $(this)[0];
var notInRole = true;
if (objPermission) {
$.each(objPermission, function (i, v) {
if (v == node.getAttribute('data-projectsecurity')) {
notInRole = false;
};
});
if (notInRole) {
switch (node.nodeName) {
case 'TR':
$(node).removeAttr("onclick");
break;
case 'TD':
$(node).removeAttr("onclick");
break;
};
};
}
});
我提出的问题是,我如何最好地将其仅应用于具有该data-projectsecurity
属性的特定 ID 的表。举例来说,如果我只希望这会影响具有 ID 的表中的行,transactionTable
并且ownerTable
是否需要在 switch 中创建一个 if 语句?
类似于if ($(id)) { $(node).removeAttr("onclick") };
id 的东西是#transactionTable tr.data-bancpaysecurity
选择transactionTable
具有安全属性的行。
case 'TR':
if ($('#transactionTable tr.data-projectsecurity'))
{
$(node).removeAttr("onclick");
}
这是应用属性的表条目的示例:
<td style="@numericStyle" data-projectsecurity = "@PermissionType.ViewTransaction.ToString()" onclick="window.location='/Transaction/ViewCIPS/@trnId'">@val</td>
对不起,如果这看起来过于复杂,但希望你能看到我的目标!如果您需要有关此问题的更多信息,请告诉我,非常感谢任何提供帮助的人。