アクセスロールをメタデータとして保存することをお勧めします。 define access_roles
は、複数の値を持つ文字列フィールドを持つことができます。
access_roles:[user, admin] // Users and the Admin roles can access this search.
access_roles:[user, admin, anonymous] // Users and the Admin and Anonymous roles can access this search.
権限を変更する場合は、アクセスロールを編集する必要があります。
ユーザーロール検索を持つユーザーの場合、solrはユーザーのアクセスロールに一致する結果のみを取得します。
(user
)の役割とも(admin
)ロール検索を持っているユーザー、彼の検索は次のように行く:access_roles
でuser
役割ORadmin
役割が含まれているすべての結果をフェッチ
q=mainquery
&fq=access_roles:user
&fq=access_roles:admin
&facet=on
&facet.field=access_roles
。
すると、ユーザ、(user
)私はより良い
を理解するための認可スキームをdrawedしているにも「it_departmentのドキュメント
をフェッチする特別チーム(it_department
)ロール検索、
q=mainquery
&fq=access_roles:user
&fq=access_roles:it_department
&facet=on
&facet.field=access_roles
の役割、メンバーから適応
クエリ210
こんにちは。お返事をありがとうございます。しかし、2つの質問。まず、クエリに基づいて結果を制限するのはちょっと危険なことではありませんか?私が理解しているように、このクエリはユーザによって操作される可能性があります。 2つ目は、アクセスメソッドをインターフェイスとして実装し、他の実装では異なる関数/メソッドを使用するということです。私がちょうど言ったように、私たちにはアクセスを制限するためにアップアドレスを使用する組織があります。したがって、基本的に、access_methodは、ユーザーセッションごとにリアルタイムでtrueを返す必要があります。ありがとう。 Stephanie – Stephanie
もちろん私はIPアドレスがアドレスではないことを意味しました。 – Stephanie
私はあなたのsolrクエリが最終ユーザから直接アクセスできるとは思わなかった。私はあなたがWebフレームワークを使用していると考えた。私はあなたがluceneクエリーパーサーを使ってSpringのようなウェブプロジェクトsthのユーザからクエリを取るべきだと思います。実装されたaccess_rolesにいくつかの定数を定義して、すべてのアクセスグループを区別できる定数を定義する必要があります。つまり、booleanを直接使用することはできません。ユーザーグループ固有のインジケータを定義する必要があります。また、アクセスメソッドがtrueの場合は、ユーザーがアクセス可能なコントローラーメソッドをインターセプトして、照会にaccess_roleを追加する必要があります。 Solrにはフレームワーク –