Scrutinizer GitHub App not installed

We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.

Install GitHub App

Issues (412)

src/lib/Smr/AdminPermissions.php (1 issue)

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
The doc comment array{string, ?class-string<\Smr\Page\Page>, int} at position 2 could not be parsed: Expected ':' at position 2, but found 'string'.
Loading history...
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