-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathGroupPermissions.php
109 lines (97 loc) · 3.98 KB
/
GroupPermissions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
/**
* Matomo - free/libre analytics platform
*
* @link http://matomo.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
namespace Piwik\Plugins\GroupPermissions;
use Piwik\Plugin;
class GroupPermissions extends Plugin {
public function install(): void {
$model = new Model();
$model->install();
}
public function uninstall(): void {
$model = new Model();
$model->uninstall();
}
/**
* @see Piwik\Plugin::registerEvents
*
* @return array<string, string>
*/
public function registerEvents(): array {
return [
'AssetManager.getStylesheetFiles' => 'getStylesheetFiles',
'SitesManager.deleteSite.end' => 'deleteSite',
'UsersManager.deleteUser' => 'deleteUser',
'Translate.getClientSideTranslationKeys' => 'getClientSideTranslationKeys',
];
}
/**
* Return list of plug-in specific Stylesheet files to be imported by the asset manager
*
* @see Piwik\AssetManager
*
* @param array<string> $stylesheetFiles
*/
public function getStylesheetFiles(array &$stylesheetFiles): void {
$stylesheetFiles[] = 'plugins/GroupPermissions/stylesheets/vue-multiselect.css';
$stylesheetFiles[] = 'plugins/GroupPermissions/stylesheets/groupPermissions.less';
}
/**
* @param array<string> $translations
*/
public function getClientSideTranslationKeys(array &$translations): void {
$translations[] = 'GroupPermissions_AddUserToGroup';
$translations[] = 'GroupPermissions_AddUserToGroupButton';
$translations[] = 'GroupPermissions_ChangeAccessToAllSitesConfirm';
$translations[] = 'GroupPermissions_CreateNewGroup';
$translations[] = 'GroupPermissions_CreateNewGroupButton';
$translations[] = 'GroupPermissions_DeleteGroup';
$translations[] = 'GroupPermissions_DeleteGroupButton';
$translations[] = 'GroupPermissions_DeleteGroupConfirm';
$translations[] = 'GroupPermissions_DescriptionAccessTab';
$translations[] = 'GroupPermissions_DescriptionGroupsTab';
$translations[] = 'GroupPermissions_ExceptionGroupDoesExist';
$translations[] = 'GroupPermissions_ExceptionGroupDoesNotExist';
$translations[] = 'GroupPermissions_ExceptionUserAlreadyInGroup';
$translations[] = 'GroupPermissions_Group';
$translations[] = 'GroupPermissions_GroupPermissions';
$translations[] = 'GroupPermissions_ManageAccess';
$translations[] = 'GroupPermissions_ManageGroup';
$translations[] = 'GroupPermissions_ManageGroupMembers';
$translations[] = 'GroupPermissions_ManageGroups';
$translations[] = 'GroupPermissions_MenuGroupPermissions';
$translations[] = 'GroupPermissions_RemoveFromGroup';
$translations[] = 'GroupPermissions_RemoveFromGroupConfirm';
$translations[] = 'GroupPermissions_RenameGroup';
$translations[] = 'GroupPermissions_RenameGroupButton';
$translations[] = 'GroupPermissions_RenameGroupConfirm';
$translations[] = 'GroupPermissions_SelectNewUser';
$translations[] = 'UsersManager_ApplyToAllWebsites';
$translations[] = 'UsersManager_PrivNone';
$translations[] = 'UsersManager_PrivView';
$translations[] = 'UsersManager_PrivWrite';
$translations[] = 'UsersManager_PrivAdmin';
$translations[] = 'General_Username';
$translations[] = 'General_Yes';
$translations[] = 'General_No';
}
/**
* Delete group preferences associated with a particular site
*/
public function deleteSite(int $idSite): void {
$model = new Model();
$model->removeAllPermissionsForSite($idSite);
}
/**
* Delete group preferences associated with a particular user
*/
public function deleteUser(string $login): void {
$model = new Model();
$model->removeUserFromAllGroups($login);
}
}