メインコンテンツにスキップ

チームアクセス

チームアクセスモジュールは、制限された SportsPress ロールを持つユーザーが割り当てられたチームに属するコンテンツのみを表示・編集するように制限します。このモジュールなしでは、チームマネージャー、試合マネージャー、スタッフメンバー、選手は管理一覧画面で各投稿タイプのすべてのレコードを確認できます。チームアクセスを有効にしてユーザーにチームを割り当てると、それらの一覧画面はフィルタリングされ、関連するレコードのみが表示されます。

今日アップデートされました

チームアクセス

チームアクセスモジュールは、制限された SportsPress ロールを持つユーザーが割り当てられたチームに属するコンテンツのみを表示・編集するように制限します。このモジュールなしでは、チームマネージャー、試合マネージャー、スタッフメンバー、選手は管理一覧画面で各投稿タイプのすべてのレコードを確認できます。チームアクセスを有効にしてユーザーにチームを割り当てると、それらの一覧画面はフィルタリングされ、関連するレコードのみが表示されます。

影響を受けるロール

チームアクセスは 4 つのロールに適用されます。

  • チームマネージャーsp_team_manager

  • 試合マネージャーsp_event_manager

  • スタッフsp_staff

  • 選手sp_player

リーグマネージャー管理者ロールはチームフィルタリングの対象ではありません。

フィルタリングされる投稿タイプ

チームアクセスが有効で、ユーザーに 1 つ以上のチームが割り当てられている場合、WordPress 管理画面で以下の投稿タイプの一覧画面がフィルタリングされます。

  • sp_event — 試合

  • sp_calendar — カレンダー

  • sp_team — チーム

  • sp_table — リーグテーブル

  • sp_player — 選手

  • sp_list — 選手リスト

  • sp_staff — スタッフ

チームが割り当てられていないレコードは、ユーザーのチーム設定に関わらず制限ロールのユーザーには常に表示されます。これにより、チームに割り当てられていないレコードが消えてしまうことを防ぎます。

投稿タイプごとのフィルタリングの仕組み

sp_team 投稿タイプでは、クエリは post__in に制限され、ユーザーに直接割り当てられたチーム ID のみが表示されます。

その他のフィルタリングされる投稿タイプでは、クエリはレコードのチームメタデータを確認します。

  • spplayer および spstaff レコード:sp_current_team メタフィールドでフィルタリング

  • その他のすべての投稿タイプ(試合、カレンダー、テーブル、選手リスト):sp_team メタフィールドでフィルタリング

チームメタフィールドにユーザーの割り当てられたチームの少なくとも 1 つが含まれている場合、またはチームメタフィールドが設定されていない場合にレコードが表示されます。

ユーザーへのチームの割り当て

  1. WordPress 管理画面で ユーザー > ユーザー一覧 に移動します。

  2. 設定したいユーザーのユーザー名をクリックします。

  3. チームアクセスセクションまでスクロールします。

  4. チームフィールドで、ドロップダウンから 1 つまたは複数のチームを選択します。フィールドには検索可能なマルチセレクト(Chosen.js)が使用されます。すべてのレコードへのアクセスを許可する(フィルターなし)場合は空のままにします。

  5. ユーザーを更新 をクリックします。

チームアクセスセクションは、ユーザーが影響を受ける 4 つのロールのいずれかを持っている場合にのみ、プロフィール編集画面に表示されます。管理者またはリーグマネージャーには表示されません。

複数チームへのユーザーの割り当て

チームフィールドは複数の選択を受け付けます。ユーザーがアクセスすべき各チームを選択します。フィルターは OR 条件を使用します。レコードはユーザーの割り当てられたチームのいずれかに一致する場合に表示されます。

不正な保存の防止

一覧画面のフィルタリングに加えて、このモジュールは制限ロールのユーザーが自分のチームアクセスに属さない投稿を保存するのを防ぎます。ユーザーがチームアクセス外のレコードを更新しようとした場合、WordPress はエラーでリクエストを終了します。

モジュールの有効化と無効化

チームアクセスはオプション sportspress_load_team_access_module で制御されます。デフォルトは yes です。モジュールを無効にするには、SportsPress > 設定 > モジュール に移動してチームアクセスをオフにします。

こちらの回答で解決しましたか?