権限の調整について - 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 まで連絡をください。