PluginProbe
User Access Manager / 2.2.21
User Access Manager v2.2.21
2.3.20 2.3.19 2.3.18 2.3.17 2.3.16 2.3.15 2.3.14 2.3.13 trunk 0.6 0.6.1 0.6.2 0.7 0.7 Beta 0.7.0.1 0.8 0.8.0.1 0.8.0.2 0.9 0.9.1 0.9.1.1 0.9.1.2 0.9.1.3 0.9.1.4 1.0 All 136 releases
user-access-manager / src / Controller / Backend / DynamicGroupsController.php

DynamicGroupsController.php in User Access Manager 2.2.21, at src/Controller/Backend/DynamicGroupsController.php

79 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * DynamicGroupsController.php
4 *
5 * The DynamicGroupsController class file.
6 *
7 * PHP versions 5
8 *
9 * @author Alexander Schneider <alexanderschneider85@gmail.com>
10 * @copyright 2008-2017 Alexander Schneider
11 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
12 * @version SVN: $id$
13 * @link http://wordpress.org/extend/plugins/user-access-manager/
14 */
15
16 declare(strict_types=1);
17
18 namespace UserAccessManager\Controller\Backend;
19
20 use UserAccessManager\UserGroup\DynamicUserGroup;
21 use WP_Role;
22
23 /**
24 * Class DynamicGroupsController
25 *
26 * @package UserAccessManager\Controller\Backend
27 */
28 class DynamicGroupsController extends ObjectController
29 {
30 /**
31 * Returns the dynamic user groups for the ajax request.
32 */
33 public function getDynamicGroupsForAjax()
34 {
35 if ($this->checkUserAccess() === false) {
36 echo json_encode([]);
37 $this->php->callExit();
38 return;
39 }
40
41 $search = $this->getRequestParameter('q');
42 $searches = explode(',', $search);
43 $search = trim(end($searches));
44
45 $users = $this->wordpress->getUsers([
46 'search' => '*' . $search . '*',
47 'fields' => ['ID', 'display_name', 'user_login', 'user_email']
48 ]);
49 $matches = array_map(
50 function ($element) {
51 return [
52 'id' => $element->ID,
53 'name' => TXT_UAM_USER . ": {$element->display_name} ($element->user_login)",
54 'type' => DynamicUserGroup::USER_TYPE
55 ];
56 },
57 $users
58 );
59
60 /**
61 * @var WP_Role[] $roles
62 */
63 $roles = $this->wordpress->getRoles()->roles;
64
65 foreach ($roles as $key => $role) {
66 if (strpos(strtolower($role['name']), strtolower($search)) !== false) {
67 $matches[] = [
68 'id' => $key,
69 'name' => TXT_UAM_ROLE . ': ' . $role['name'],
70 'type' => DynamicUserGroup::ROLE_TYPE
71 ];
72 }
73 }
74
75 echo json_encode($matches);
76 $this->php->callExit();
77 }
78 }
79