PluginProbe
User Access Manager / 2.1.9
User Access Manager v2.1.9
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.1.9, at src/Controller/Backend/DynamicGroupsController.php

75 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 namespace UserAccessManager\Controller\Backend;
16
17 use UserAccessManager\UserGroup\DynamicUserGroup;
18
19 /**
20 * Class DynamicGroupsController
21 *
22 * @package UserAccessManager\Controller\Backend
23 */
24 class DynamicGroupsController extends ObjectController
25 {
26 /**
27 * Returns the dynamic user groups for the ajax request.
28 */
29 public function getDynamicGroupsForAjax()
30 {
31 if ($this->checkUserAccess() === false) {
32 echo json_encode([]);
33 $this->php->callExit();
34 return;
35 }
36
37 $search = $this->getRequestParameter('q');
38 $searches = explode(',', $search);
39 $search = trim(end($searches));
40
41 $users = $this->wordpress->getUsers([
42 'search' => '*'.$search.'*',
43 'fields' => ['ID', 'display_name', 'user_login', 'user_email']
44 ]);
45 $matches = array_map(
46 function ($element) {
47 return [
48 'id' => $element->ID,
49 'name' => TXT_UAM_USER.": {$element->display_name} ($element->user_login)",
50 'type' => DynamicUserGroup::USER_TYPE
51 ];
52 },
53 $users
54 );
55
56 /**
57 * @var \WP_Role[] $roles
58 */
59 $roles = $this->wordpress->getRoles()->roles;
60
61 foreach ($roles as $key => $role) {
62 if (strpos(strtolower($role['name']), strtolower($search)) !== false) {
63 $matches[] = [
64 'id' => $key,
65 'name' => TXT_UAM_ROLE.': '.$role['name'],
66 'type' => DynamicUserGroup::ROLE_TYPE
67 ];
68 }
69 }
70
71 echo json_encode($matches);
72 $this->php->callExit();
73 }
74 }
75