いくつかのドキュメント (ノード) をリストしたテーブルをユーザーに表示しようとしています。これらのドキュメントはロール権限 (右クリック > パブリック アクセス > ロール権限) を使用して保護されており、このユーザーがアクセスできるドキュメントのみを表示したいと考えています。
あちこちチェックした後、「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 の一部ではありません。アクセス許可を間違って設定したり、適切にチェックしていないのですか?
道に迷いました。