Appearance
メンバー管理の仕様
主催組織に アカウントを紐づけてロールを割り当てる「メンバー管理」の仕様をまとめます。実装(apps/api の manage/members.ts と管理画面 /manage/members)に基づく現状仕様です。
権限・ロールの基盤は マルチ主催組織 / アカウント体系 を参照してください。本ページはその「メンバー管理」機能に絞った運用仕様です。
1. 基本方針
- メンバー管理は 「いま操作している主催組織」 に対して行います。組織が違えば別々のメンバー構成になります。
- 1 アカウントは複数の主催組織に紐づけられ、組織ごとに 1 つのロールを持ちます。
- 追加は すでに登録済みのアカウントのメールアドレスで紐づけます(招待メールで新規に呼ぶフローは後続)。
- 操作できるのは その組織の管理者(admin) と システム管理者 だけです。
2. ロール
| ロール | メンバー管理 | 説明 |
|---|---|---|
admin | 可 | その組織の全管理。メンバーの追加・ロール変更・除名ができる |
editor | 不可 | 大会・申込・マスタなどの編集はできるが、メンバー管理はできない |
viewer | 不可 | 閲覧のみ |
staff | 不可 | 現場運営(MVP はアカウントのみ) |
| システム管理者 | 可(全組織) | users.is_system_admin。全主催組織のメンバーを操作できる |
ロールとメンバー管理権限の関係
メンバー管理は権限プリセット上 members 機能 = admin のみ edit です。そのため実質「組織の admin」か「システム管理者」だけが操作できます(権限判定)。
3. 操作一覧
| 操作 | 内容 |
|---|---|
| 一覧 | 操作中組織に紐づくメンバー(氏名・メール・ロール)をメール順で表示 |
| 追加 | 登録済みアカウントのメールで紐づけ、ロールを割り当て |
| ロール変更 | 既存メンバーのロールを変更 |
| 除名 | メンバーの紐づけを解除(アカウント自体は消えない) |
- 追加時、すでにそのアカウントが組織のメンバーなら ロール更新として扱います(重複追加にはなりません)。
4. 操作の前提(スコープと権限)
すべての操作で、以下を順に満たす必要があります。1 つでも外れると操作不可。
| チェック | 外れたときの挙動 |
|---|---|
| ログイン済みか | 401 |
その組織で members 編集権限を持つか(admin / システム管理者) | 403 |
| 操作対象の主催組織が選ばれているか | 400(全組織モードでは操作不可。組織を選んでから行う) |
全組織モードでは操作できない
システム管理者が「全主催組織モード(特定の組織を選んでいない状態)」のときは、メンバー管理の対象組織が定まらないため操作できません。画面の組織切替で対象組織を選んでから操作します。
5. アカウント追加のルール
- 入力されたメールは 前後空白を除去し小文字化して照合します。
- 登録済みアカウントが見つからない場合は追加できません(先に本人がアカウント登録している必要があります)。招待メールで新規登録に誘導するフローは後続で対応します。
- 割り当てできるロールは
admin/editor/viewer/staffのいずれか。
6. 最後の管理者を守る(ロックアウト防止)
組織が「管理者ゼロ」になって誰も管理できなくなる事故を防ぎます。
| 操作 | 制限 |
|---|---|
| ロール変更(降格) | 組織の 管理者が 1 人だけのとき、その人を admin 以外に変更できない |
| 除名 | 組織の 管理者が 1 人だけのとき、その管理者を除名できない |
| 追加(既存メンバーのロール上書き) | 上と同じ。最後の管理者を降格させる形になる場合は不可 |
- 制限に当たった操作は 409(最後の管理者は変更/除名できません) を返します。
- 管理者が 2 人以上いれば、片方を降格・除名できます(必ず 1 人以上の管理者が残ります)。
- この判定は 同時操作でも安全になるよう、組織の管理者行をロックしたうえで「判定 → 更新」を 1 つのまとまりで行います(同時に最後の 2 人を降格して 0 人になる事故を防止)。
7. テナント分離
- 操作は常に 操作中の主催組織にスコープされます。
- 他組織のメンバーは一覧にも出ず、ID を指定しても操作できません(見つからない=404)。
- システム管理者は対象組織を選べば、その組織のメンバーを操作できます。
8. 画面(/manage/members)
- サイドナビの「メンバー」は その組織の管理者 / システム管理者にだけ表示されます。
- 追加フォーム(メール+ロール)、メンバー表(行ごとにロール変更・除名)を表示。
- 全組織モードや権限不足のときは、その旨の案内を表示し操作させません。
9. 今後の予定(受け皿のみ)
- 招待メールでの新規参加(未登録メール宛に招待を送る)。現状は登録済みアカウントの紐づけのみ。
- 機能ごとの細かい権限(
organization_member_features)。現状はロール単位のプリセットで判定。
関連
- マルチ主催組織 / アカウント体系 — ロール・権限・スコープの基盤
- 会場の利用可リストの仕様 — 同じ「操作中組織」スコープで動く管理機能