ユーザーが自分のコンテンツを他のユーザーと共有できるWebサイトを作成しているので、選択したユーザーだけがあなたのコンテンツを見ることができます。
イベントコンテンツタイプには、ユーザーがコンテンツを表示する目的のユーザーにチェックマークを付けることができる[ユーザー参照]フィールドがあります。これは良い解決策ですか?問題は、それらのイベントを表示するビューを作成しようとするときです。
誰か助けてもらえますか?
はい、Drupalでこれを実装するための標準的な(良い)方法は、ユーザー関係モジュールを使用することです。ユーザーリレーションシップをインストールして、ユーザーが他のユーザーとの新しいリレーションシップを作成できるようにします(たとえば、「友達」、「自分のものの一部を見ることができる」、「自分のものをすべて見ることができる」など)。
コンテンツを表示または一覧表示する前に、必要な関係が存在することを確認して、アクセス制御のアクセス許可を拡張するカスタムモジュールを作成する必要があります。これは、単純な手続き型ロジックで実行できますが、反復ループの構築方法に注意してください。これにより、サイトのユーザー数が増えるにつれてカスタムコードが拡張されます。
または、Flag Friendモジュールを使用することもできます。これは、URとほぼ同じ方法でユーザー間でフラグを定義できる、URの軽量な代替手段ですが、追加の複雑さはありません。
最後に、実際のユーザーケースによっては、グループ内でコンテンツを共有できるユーザーのグループを作成できるOG (Organic Groups)を確認することをお勧めします。
Drupalのノードシステムは、きめ細かいアクセス制御を実装するためのAPIを提供します。このAPIは、 hook_node_grants()およびhook_node_access_record( )を実装することで使用されます。その前に、ノードアクセスモジュールの概要を見て、ニーズを満たすものがあるかどうかを確認してください。
これを解決しました。共有フィールドで「ユーザー参照」データ型を使用する代わりに、「エンティティ参照」を使用する必要がありました。次に、「エンティティ参照」関係を目的のビューに追加し、user=currentuserをフィルタリングします。チャームのように機能します。私が理解している限り、エンティティ参照には検索フィールドがあるため、フィールドでログインしているユーザーを検索できます:)