2

いくつかのドキュメント (ノード) をリストしたテーブルをユーザーに表示しようとしています。これらのドキュメントはロール権限 (右クリック > パブリック アクセス > ロール権限) を使用して保護されており、このユーザーがアクセスできるドキュメントのみを表示したいと考えています。

あちこちチェックした後、「Node.Permissions」の方法がないことがわかったので、Access.HasAccess() を通過する必要があります。

私はそれを使用し、権限を設定しましたが、メソッドを使用すると常にtrueが返されます。私は何を間違っていますか?

これは、完全に機能するノードのリストを作成するコードです。

    public static List<Node> GetAllNodeChildrenRecursively(int nodeId, string typeName)
    {
        var node = new Node(nodeId);
        var lstNodes = new List<Node>();
        foreach (Node childNode in node.Children)
        {
                var child = childNode;
                if (child.NodeTypeAlias == typeName)
                {
                    lstNodes.Add(childNode);
                }

                if (child.Children.Count > 0)
                {
                    lstNodes.AddRange(GetAllNodeChildrenRecursively(childNode.Id, typeName));
                }
        }
        return lstNodes;
    }

これは、私がアクセスしていないものを削除するコードです:

        var availableNodes = new List<Node>();
        foreach(Node n in nodes)
        {
            if(Access.HasAccces(n.Id, memberId))
            {
                availableNodes.Add(n);
            }
        }
        return availableNodes;

Access.HasAccess は常に true を返します。テストに使用しているメンバーは、そのノードにアクセスできる MemberGroup の一部ではありません。アクセス許可を間違って設定したり、適切にチェックしていないのですか?

道に迷いました。

4

1 に答える 1