We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.
1 | <?php declare(strict_types=1); |
||
2 | |||
3 | namespace Smr; |
||
4 | |||
5 | use Smr\Pages\Admin\AccountEditSearch; |
||
6 | use Smr\Pages\Admin\AdminMessageSendSelect; |
||
7 | use Smr\Pages\Admin\AdminPermissionManage; |
||
8 | use Smr\Pages\Admin\AlbumApprove; |
||
9 | use Smr\Pages\Admin\AlbumModerateSelect; |
||
10 | use Smr\Pages\Admin\AnnouncementCreate; |
||
11 | use Smr\Pages\Admin\AnonBankViewSelect; |
||
12 | use Smr\Pages\Admin\Changelog; |
||
13 | use Smr\Pages\Admin\CheatingShipCheck; |
||
14 | use Smr\Pages\Admin\CombatSimulator; |
||
15 | use Smr\Pages\Admin\DatabaseCleanup; |
||
16 | use Smr\Pages\Admin\EditLocations; |
||
17 | use Smr\Pages\Admin\EnableGame; |
||
18 | use Smr\Pages\Admin\FormOpen; |
||
19 | use Smr\Pages\Admin\GameDelete; |
||
20 | use Smr\Pages\Admin\IpView; |
||
21 | use Smr\Pages\Admin\LogConsole; |
||
22 | use Smr\Pages\Admin\ManageDraftLeaders; |
||
23 | use Smr\Pages\Admin\ManagePostEditors; |
||
24 | use Smr\Pages\Admin\MessageBoxView; |
||
25 | use Smr\Pages\Admin\NewsletterSend; |
||
26 | use Smr\Pages\Admin\NpcManage; |
||
27 | use Smr\Pages\Admin\ReportedMessageView; |
||
28 | use Smr\Pages\Admin\ServerStatus; |
||
29 | use Smr\Pages\Admin\UniGen\CreateGame; |
||
30 | use Smr\Pages\Admin\VoteCreate; |
||
31 | use Smr\Pages\Admin\WordFilter; |
||
32 | |||
33 | class AdminPermissions { |
||
34 | |||
35 | // The array keys must not be changed because they are referred to |
||
36 | // in the `account_has_permission` database table. |
||
37 | // Info is [Permission Name, Page to Link, Category]. |
||
38 | private const PERMISSION_TABLE = [ |
||
39 | 1 => ['Manage Admin Permissions', AdminPermissionManage::class, 3], |
||
40 | 2 => ['Database Cleanup', DatabaseCleanup::class, 3], |
||
41 | 3 => ['Server Open/Close', ServerStatus::class, 3], |
||
42 | 4 => ['Delete Game', GameDelete::class, 5], |
||
43 | 5 => ['Create Announcement', AnnouncementCreate::class, 3], |
||
44 | 6 => ['Send Message', AdminMessageSendSelect::class, 3], |
||
45 | 7 => ['View Reported Messages', ReportedMessageView::class, 1], |
||
46 | 8 => ['Edit Account', AccountEditSearch::class, 1], |
||
47 | 9 => ['Multi Tools', IpView::class, 1], |
||
48 | 12 => ['Cheating Ship Check', CheatingShipCheck::class, 1], |
||
49 | 16 => ['Log Console', LogConsole::class, 1], |
||
50 | 17 => ['Send Newsletter', NewsletterSend::class, 3], |
||
51 | 18 => ['Form Access', FormOpen::class, 3], |
||
52 | 19 => ['Approve Photo Album', AlbumApprove::class, 2], |
||
53 | 20 => ['Moderate Photo Album', AlbumModerateSelect::class, 2], |
||
54 | 21 => ['Manage ChangeLog', Changelog::class, 3], |
||
55 | 22 => ['Anon Account View', AnonBankViewSelect::class, 1], |
||
56 | 23 => ['Word Filter', WordFilter::class, 1], |
||
57 | 24 => ['Combat Simulator', CombatSimulator::class, 4], |
||
58 | 25 => ['Edit Locations', EditLocations::class, 4], |
||
59 | 26 => ['View Message Boxes', MessageBoxView::class, 1], |
||
60 | 27 => ['Can Moderate Feature Requests', null, 2], |
||
61 | 28 => ['Can Edit Alliance Descriptions', null, 1], |
||
62 | 30 => ['Universe Generator', CreateGame::class, 5], |
||
63 | 31 => ['Create Vote', VoteCreate::class, 3], |
||
64 | 32 => ['Can Edit Enabled Games', null, 5], |
||
65 | 33 => ['Enable Games', EnableGame::class, 5], |
||
66 | 34 => ['Manage Galactic Post Editors', ManagePostEditors::class, 5], |
||
67 | 35 => ['Manage Draft Leaders', ManageDraftLeaders::class, 5], |
||
68 | 36 => ['Display Admin Tag', null, 2], |
||
69 | 37 => ['Manage NPCs', NpcManage::class, 5], |
||
70 | ]; |
||
71 | |||
72 | private const PERMISSION_CATEGORIES = [ |
||
73 | 1 => 'Monitor Players', |
||
74 | 2 => 'Community Services', |
||
75 | 3 => 'Administrative', |
||
76 | 4 => 'Miscellaneous', |
||
77 | 5 => 'Manage Games', |
||
78 | ]; |
||
79 | |||
80 | /** |
||
81 | * Returns the info for the admin permission with the given ID. |
||
82 | * |
||
83 | * @return array{string, ?class-string<\Smr\Page\Page>, int} |
||
0 ignored issues
–
show
Documentation
Bug
introduced
by
![]() |
|||
84 | */ |
||
85 | public static function getPermissionInfo(int $permissionID): array { |
||
86 | return self::PERMISSION_TABLE[$permissionID]; |
||
87 | } |
||
88 | |||
89 | /** |
||
90 | * Returns a list of all permissions with ID keys and name values, |
||
91 | * grouped by the category ID of the permission. |
||
92 | * |
||
93 | * @return array<int, array<int, string>> |
||
94 | */ |
||
95 | public static function getPermissionsByCategory(): array { |
||
96 | $result = []; |
||
97 | foreach (self::PERMISSION_TABLE as $permissionID => $info) { |
||
98 | $categoryID = $info[2]; |
||
99 | $result[$categoryID][$permissionID] = $info[0]; |
||
100 | } |
||
101 | return $result; |
||
102 | } |
||
103 | |||
104 | public static function getCategoryName(int $categoryID): string { |
||
105 | return self::PERMISSION_CATEGORIES[$categoryID]; |
||
106 | } |
||
107 | |||
108 | } |
||
109 |