PluginProbe ʕ •ᴥ•ʔ
Kirki – Freeform Page Builder, Website Builder & Customizer / 6.3.0
Kirki – Freeform Page Builder, Website Builder & Customizer v6.3.0
6.3.0 6.2.5 6.2.4 6.2.3 6.2.2 6.2.1 6.2.0 6.1.1 6.1.0 6.0.14 6.0.13 6.0.12 6.0.11 6.0.10 6.0.9 6.0.8 6.0.7 6.0.6 6.0.5 6.0.4 6.0.3 6.0.2 6.0.1 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7 3.1.8 3.1.9 4.0.19 4.0.20 4.0.21 4.0.22 4.0.23 4.0.24 4.1 4.2.0 5.0.0 5.1.0 5.1.1 5.2.0 5.2.1 5.2.2 5.2.3 6.0.0 trunk 3.0.40 3.0.41 3.0.42 3.0.43 3.0.44 3.0.45 3.1.0 3.1.1 3.1.2
kirki / app / Supports / Role.php
kirki / app / Supports Last commit date
Facades 1 month ago Form 3 weeks ago ActionHooks.php 1 month ago Canvas.php 2 months ago CollectionItem.php 1 month ago ContentManager.php 2 months ago DateTime.php 2 months ago EditorPreview.php 1 month ago FileHandler.php 3 days ago FilterHooks.php 1 month ago PageUrl.php 1 month ago Recaptcha.php 1 week ago Role.php 2 months ago Session.php 1 month ago Template.php 1 month ago
Role.php
70 lines
1 <?php
2 /**
3 * Role manager api
4 *
5 * @package kirki
6 */
7
8 namespace Kirki\App\Supports;
9
10 defined('ABSPATH') || exit;
11
12 use Kirki\App\Constants\AccessLevels;
13 use Kirki\Framework\Supports\Facades\Option;
14 use function Kirki\Framework\collection;
15 use function Kirki\Framework\with_prefix;
16
17 class Role
18 {
19 /**
20 * Get all roles
21 *
22 * @return array
23 */
24 public static function get_all()
25 {
26 global $wp_roles;
27
28 return is_array($wp_roles->roles) ? array_keys($wp_roles->roles) : [];
29 }
30
31 /**
32 * Get all the access levels by roles
33 *
34 * @param array<string> $roles
35 *
36 * @return array<string, string>
37 */
38 public static function get_access_levels_by_roles(array $roles)
39 {
40 $all_accesses = [];
41 $option_keys = collection($roles)->map(fn($role) => with_prefix($role))->to_array();
42
43 $options = Option::get($option_keys, [], false);
44
45 foreach ($roles as $role) {
46 $prefixed_role = with_prefix($role);
47
48 if (in_array($role, AccessLevels::USERS_DEFAULT_FULL_ACCESS, true)) {
49 $all_accesses[$role] = AccessLevels::FULL_ACCESS;
50 }
51
52 if (!empty($options[$prefixed_role])) {
53 $all_accesses[$role] = $options[$prefixed_role];
54 }
55 }
56
57 return $all_accesses;
58 }
59
60 public static function get_roles_by_levels($levels)
61 {
62 $all_roles = static::get_all();
63 $roles_with_levels = static::get_access_levels_by_roles($all_roles);
64
65 return array_keys(collection($roles_with_levels)
66 ->filter(fn($level, $role) => in_array($level, $levels, true))
67 ->all());
68 }
69 }
70