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 のテーブルのみにこれをどのように適用するのが最善かということです。たとえば、IDtransactionTableを持つテーブルの行にのみ影響を与えたいownerTable場合、スイッチで 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