1 | <?php |
||
19 | class UserGroups extends Base |
||
20 | { |
||
21 | /** @var string[] */ |
||
22 | private $mappedPermissions = []; |
||
23 | |||
24 | //============================================================================================================== |
||
25 | //================================================ EXPORT ==================================================== |
||
26 | //============================================================================================================== |
||
27 | |||
28 | /** |
||
29 | * Export user groups. |
||
30 | * |
||
31 | * @param UserGroupModel[] $groups |
||
32 | * |
||
33 | * @return array |
||
34 | */ |
||
35 | 4 | public function export(array $groups = []) |
|
49 | |||
50 | /** |
||
51 | * Get group definition. |
||
52 | * |
||
53 | * @param UserGroupModel $group |
||
54 | * |
||
55 | * @return array |
||
56 | */ |
||
57 | 3 | private function getGroupDefinition(UserGroupModel $group) |
|
64 | |||
65 | /** |
||
66 | * Get group permissions. |
||
67 | * |
||
68 | * @param $group |
||
69 | * |
||
70 | * @return array|string |
||
71 | */ |
||
72 | 3 | private function getGroupPermissionDefinitions($group) |
|
73 | { |
||
74 | 3 | $permissionDefinitions = []; |
|
75 | 3 | $groupPermissions = Craft::app()->userPermissions->getPermissionsByGroupId($group->id); |
|
76 | |||
77 | 3 | foreach ($groupPermissions as $permission) { |
|
78 | 1 | if (array_key_exists($permission, $this->mappedPermissions)) { |
|
79 | 1 | $permission = $this->mappedPermissions[$permission]; |
|
80 | 1 | $permissionDefinitions[] = Craft::app()->schematic_sources->getSource(false, $permission, 'id', 'handle'); |
|
81 | 1 | } |
|
82 | 3 | } |
|
83 | 3 | sort($permissionDefinitions); |
|
84 | |||
85 | 3 | return $permissionDefinitions; |
|
86 | } |
||
87 | |||
88 | /** |
||
89 | * Get a mapping of all permissions from lowercase to camelcase |
||
90 | * savePermissions only accepts camelcase. |
||
91 | * |
||
92 | * @return array |
||
93 | */ |
||
94 | 4 | private function getAllMappedPermissions() |
|
103 | |||
104 | /** |
||
105 | * @param array $permissions |
||
106 | * |
||
107 | * @return array |
||
108 | */ |
||
109 | 4 | private function getMappedPermissions(array $permissions) |
|
121 | |||
122 | //============================================================================================================== |
||
123 | //================================================ IMPORT ==================================================== |
||
124 | //============================================================================================================== |
||
125 | |||
126 | /** |
||
127 | * Import usergroups. |
||
128 | * |
||
129 | * @param array $groupDefinitions |
||
130 | * @param bool $force if set to true items not in the import will be deleted |
||
131 | * |
||
132 | * @return Result |
||
133 | */ |
||
134 | 9 | public function import(array $groupDefinitions, $force = false) |
|
167 | |||
168 | /** |
||
169 | * Get permissions. |
||
170 | * |
||
171 | * @param array $permissionDefinitions |
||
172 | * |
||
173 | * @return array |
||
174 | */ |
||
175 | 4 | private function getPermissions(array $permissionDefinitions) |
|
184 | |||
185 | //============================================================================================================== |
||
186 | //=============================================== HELPERS ==================================================== |
||
187 | //============================================================================================================== |
||
188 | |||
189 | /** |
||
190 | * @param BaseElementModel[] $mapping AssetSources or Sections |
||
191 | * @param string $permission |
||
192 | * @param bool $export is it an export or import |
||
193 | * |
||
194 | * @return string mapped permission |
||
195 | */ |
||
196 | private function mapPermissionSource(array $mapping, $permission, $export) |
||
214 | } |
||
215 |