第 2 章 / 全 27 章
ロールと権限
管理者アカウントには 5 種類のロールがあり、どの機能でどの操作ができるか はロールで決まります。判定はサーバー側(API とページ)で行われ、画面のボタンやメニューはその結果を映しているだけです。機能ごとの詳しい表は はじめに の権限マトリクスを参照してください(lib/role.ts の定義から自動生成しています)。
5 つのロール
| ロール | 想定する担当 | できること(概要) |
|---|---|---|
| admin(管理者) | 責任者 | すべての操作。管理者アカウントの管理、全体設定、決済手段の全体停止、取引の状態変更、取引メモの削除は admin だけ |
| accounting(経理) | 精算・入金担当 | 精算バッチの生成 / 確定 / 振込予定 / 振込済 / 保留、返金の承認 / 否認、入金消込・未消込入金の消込、契約 / 手数料 / 限度額 / 精算設定、チャージバック、集計レポート、代理店手数料。ほかは閲覧 |
| cs(カスタマーサポート) | 加盟店・顧客対応 | 取引の作成、返金申請、取引メモとピン留め、未消込入金の登録 / 却下、過不足入金の対応、API 再通知、お知らせの作成 / 公開、加盟店・代理店の登録 / 更新、課金プラン・定期課金・決済リンク、ブラックリスト、加盟店別の決済手段停止、個人情報のマスク解除(フェーズM)。ほかは閲覧 |
| developer(開発) | 技術担当 | Webhook の再送、API キーの発行 / ローテーション / 失効、IP 制限、決済プロバイダ、メールテンプレート、デモの課金失敗率、API 再通知。ほかは閲覧 |
| viewer(閲覧) | 監査・確認のみ | 閲覧のみ。CSV 出力は 全体設定 で許可したときだけ |
旧ロールの マスターは admin、一般は cs に自動で移行されています(seed が冪等に置き換え、古いセッション Cookie も読み替えます)。
管理者管理での設定
- 招待・編集(設定 → 管理者管理、admin のみ)でロールを選びます。詳細画面の「このロールで可能な操作」に、そのロールが実行できる機能と操作の一覧が表示されます。
- 自分自身のロール・ステータスは変更できず、最後の有効な admin を降格・無効化することもできません。
- ロールを変えると次のリクエストから即時に反映されます(サーバーは毎回ユーザー行を読み直します)。
権限が足りないとき
- API は
403 permission_requiredを返し、画面のボタンは無効化されるか非表示になります。ナビの項目も権限に合わせて出し分けられます(例: 管理者管理と全体設定は admin だけに表示)。 - 未ログインは閲覧のみで、更新系はすべて 401 です。トップページだけはログインが必要です。
- 公開デモでは
DEMO_READONLY=1により削除とプロバイダの更新が admin でも 403 になります。
CSV 出力
admin / accounting / cs / developer は常に CSV を出力できます。viewer(と未ログイン)は全体設定の「閲覧ロールにも CSV 出力を許可する」がオンのときだけ出力でき、オフのときは 403 csv_export_disabled になります。
デモアカウント
| ロール | ログインID | 公開デモでの扱い |
|---|---|---|
| admin | kuromaru | 表示しない。パスワードは環境変数 DEMO_ADMIN_PASSWORD(運営者のみ) |
| cs | general | 運営デモアカウントとしてログイン画面に表示 |
| accounting | accounting | 表示しない。本番では seed ごとにランダムなパスワード(ログイン不可) |
| developer | developer | 同上 |
| viewer | viewer | 同上 |
ログイン画面のヒント(DEMO_LOGIN_HINT 設定時)には 運営デモアカウント(general)と 加盟店デモアカウント(MER-00001、加盟店管理画面)の 2 件だけを表示し、他のアカウントは公開デモではログインできません。ローカル開発では全アカウントの固定パスワードが使えます(prisma/seed-accounts.ts)。