PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.8
Booking for Appointments and Events Calendar – Amelia v2.4.8
2.4.8 2.4.7 2.4.6 2.4.5 2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / WP / InstallActions / ActivationRolesHook.php
ameliabooking / src / Infrastructure / WP / InstallActions Last commit date
DB 5 days ago ActivationDatabaseHook.php 7 months ago ActivationMultisite.php 1 year ago ActivationNewSiteMultisite.php 2 months ago ActivationRolesHook.php 5 days ago ActivationSettingsHook.php 5 days ago AutoUpdateHook.php 1 month ago DeleteDatabaseHook.php 1 year ago DeletionMultisite.php 1 year ago
ActivationRolesHook.php
82 lines
1 <?php
2
3 /**
4 * Role hook for activation
5 */
6
7 namespace AmeliaBooking\Infrastructure\WP\InstallActions;
8
9 use AmeliaBooking\Infrastructure\WP\config\Roles;
10 use AmeliaBooking\Infrastructure\WP\UserRoles\SuperAdminRoleService;
11 use AmeliaBooking\Infrastructure\WP\UserRoles\UserRoles;
12
13 /**
14 * Class ActivationRolesHook
15 *
16 * @package AmeliaBooking\Infrastructure\WP\InstallActions
17 */
18 class ActivationRolesHook
19 {
20 /**
21 * Add new custom roles and add capabilities to administrator role
22 */
23 public static function init()
24 {
25 $roles = new Roles();
26
27 UserRoles::init($roles());
28
29 if (!SuperAdminRoleService::isAvailable()) {
30 \remove_role(SuperAdminRoleService::ROLE);
31
32 self::syncAdministratorRoleCapabilities();
33
34 return;
35 }
36
37 self::syncSuperAdminRoleCapabilities();
38 self::syncAdministratorRoleCapabilities();
39 }
40
41 private static function syncSuperAdminRoleCapabilities()
42 {
43 $superAdminRole = get_role(SuperAdminRoleService::ROLE);
44 $adminRole = get_role('administrator');
45
46 if ($superAdminRole === null) {
47 return;
48 }
49
50 if ($adminRole !== null) {
51 foreach ($adminRole->capabilities as $capability => $enabled) {
52 if ($enabled) {
53 $superAdminRole->add_cap($capability);
54 }
55 }
56 }
57
58 foreach (Roles::$rolesList as $capability) {
59 $superAdminRole->add_cap($capability);
60 }
61 }
62
63 private static function syncAdministratorRoleCapabilities()
64 {
65 $adminRole = get_role('administrator');
66
67 if ($adminRole === null) {
68 return;
69 }
70
71 $adminRole->remove_cap(SuperAdminRoleService::CAPABILITY);
72
73 foreach (Roles::$rolesList as $capability) {
74 if ($capability === SuperAdminRoleService::CAPABILITY) {
75 continue;
76 }
77
78 $adminRole->add_cap($capability);
79 }
80 }
81 }
82