1

在我的项目中,我们有一个文件“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>

对不起,如果这看起来过于复杂,但希望你能看到我的目标!如果您需要有关此问题的更多信息,请告诉我,非常感谢任何提供帮助的人。

4

0 回答 0