権限の調整について - atsuo-tech/atsuo-coder GitHub Wiki

AtsuoCoderの権限の調整について

現在、AtsuoCoderではユーザー・問題・コンテストの管理をTypeScriptのクラス機能により行っている。これをより厳密にするため、このドキュメントで権限関係を細かく定義する。

主権限

そもそも、主権限(ユーザーごとに付与される権限)には現在以下の権限がある。

権限名 親権限 ID 詳細
管理者 なし Admin すべての権限を持つ。
問題管理者 管理者 ProblemAdmin 問題に関する全ての権限を持つ。
問題作成者 問題管理者 ProblemMaker 問題の作成の権限を持つ
コンテスト管理者 管理者 ContestAdmin コンテストに関する全ての権限を持つ。
コンテスト作成者 コンテスト管理者 ContestMaker コンテストの作成の権限を持つ。
ユーザー管理者 管理者 UserAdmin ユーザーに関する全ての権限を持つ。
ユーザー承認者 ユーザー管理者 UserApprover ユーザーの承認の権限を持つ。
信頼されたユーザー ユーザー承認者 TrustedUser コンテストに参加、及び問題への提出ができる。

問題に関する権限

問題ごとに以下の3種類の権限とそれに関連する2つの主権限がある。

以下は権限がある問題の編集・削除・閲覧が可能かどうか、またその権限を持つ人を変更可能かどうかの表である。

権限名 親権限 ID 編集 削除 閲覧 変更
作成者 なし ProblemOwner
編集者 作成者 ProblemEditor
テスター 作成者 ProblemTester

以下は新しく問題を作成できるか、また他人の問題を編集・削除・閲覧できるかの権限である。

主権限名 ID 作成 編集 削除 閲覧
問題管理者 ProblemAdmin
問題作成者 ProblemMaker

また、問題を作成した際は自動的にProblemOwner権限が付与され、ProblemOwner権限を持つ人は変更できない。

コンテストに関する権限

コンテストごとに以下の3種類の権限とそれに関連する2つの主権限がある。

以下は権限があるコンテストの編集・削除・閲覧が可能かどうか、またその権限を持つ人を変更可能かどうかの表である。

権限名 親権限 ID 編集 削除 閲覧 変更
作成者 なし ContestOwner
編集者 作成者 ContestEditor
参加者 作成者 ContestPlayer 🔼

※ 🔼 はコンテスト開催時間にのみに有効

以下は新しくコンテストを作成できるか、また他人のコンテストを編集・削除・閲覧できるかの権限である。

主権限名 ID 作成 編集 削除 閲覧
コンテスト管理者 ContestAdmin
コンテスト作成者 ContestMaker

また、コンテストを作成した際は自動的にContestOwner権限が付与され、ContestOwner権限を持つ人は変更できない。

ユーザーに関する権限

ユーザーを管理する権限は以下の通りである。

権限名 親権限 ID 詳細 作成 承認 編集 削除 参加・提出
ユーザー管理者 なし UserAdmin ユーザーに関する全ての権限を持つ。
ユーザー承認者 ユーザー管理者 UserApprover ユーザーの承認の権限を持つ。
信頼されたユーザー ユーザー承認者 TrustedUser コンテストに参加、及び問題への提出ができる。

この権限関係に問題があれば、Yama.can まで連絡をください。