PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.13
Admin Columns v7.0.13
7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Formatter / User / Roles.php
codepress-admin-columns / classes / Formatter / User Last commit date
AuthorPostUrl.php 3 months ago CommentCount.php 3 months ago FirstPost.php 3 months ago FullName.php 3 months ago HasRichEditing.php 3 months ago LastPost.php 3 months ago Meta.php 3 months ago PostCount.php 3 months ago PostCountOriginal.php 3 months ago Property.php 3 months ago Roles.php 3 months ago ShowToolbar.php 3 months ago TranslatedRoles.php 3 months ago UserFilteredPostLink.php 3 months ago UserLink.php 3 months ago UserName.php 3 months ago
Roles.php
69 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Formatter\User;
6
7 use AC;
8 use AC\Exception\ValueNotFoundException;
9 use AC\Helper\UserRoles;
10 use AC\Type\Value;
11
12 class Roles implements AC\Formatter
13 {
14
15 private bool $allow_non_editable_roles;
16
17 public function __construct(bool $allow_non_editable_roles)
18 {
19 $this->allow_non_editable_roles = $allow_non_editable_roles;
20 }
21
22 public function format(Value $value)
23 {
24 $user = get_userdata($value->get_id());
25
26 if ( ! $user) {
27 throw ValueNotFoundException::from_id($value->get_id());
28 }
29
30 $labels = [];
31
32 foreach ($user->roles as $role_name) {
33 $role_object = $this->get_allowed_role($role_name);
34
35 if ( ! $role_object) {
36 continue;
37 }
38
39 $labels[] = $role_object->get_translate_label();
40 }
41
42 return $value->with_value(
43 implode(', ', $labels)
44 );
45 }
46
47 private function get_allowed_roles(): AC\Type\UserRoles
48 {
49 static $editable_roles;
50
51 if (null === $editable_roles) {
52 $editable_roles = UserRoles::create()->find_all($this->allow_non_editable_roles);
53 }
54
55 return $editable_roles;
56 }
57
58 private function get_allowed_role(string $role): ?AC\Type\UserRole
59 {
60 foreach ($this->get_allowed_roles() as $editable_role) {
61 if ($role === $editable_role->get_name()) {
62 return $editable_role;
63 }
64 }
65
66 return null;
67 }
68
69 }