PluginProbe
User Access Manager / 2.0.5
User Access Manager v2.0.5
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 / UserAccessManager / Controller / AdminUserGroupController.php

AdminUserGroupController.php in User Access Manager 2.0.5, at src/UserAccessManager/Controller/AdminUserGroupController.php

179 lines 4.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * AdminUserGroupController.php
4 *
5 * The AdminUserGroupController 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;
16
17 use UserAccessManager\AccessHandler\AccessHandler;
18 use UserAccessManager\Config\Config;
19 use UserAccessManager\ObjectHandler\ObjectHandler;
20 use UserAccessManager\UserGroup\UserGroupFactory;
21 use UserAccessManager\Wrapper\Php;
22 use UserAccessManager\Wrapper\Wordpress;
23
24 /**
25 * Class AdminUserGroupController
26 *
27 * @package UserAccessManager\Controller
28 */
29 class AdminUserGroupController extends Controller
30 {
31 const INSERT_UPDATE_GROUP_NONCE = 'uamInsertUpdateGroup';
32 const DELETE_GROUP_NONCE = 'uamDeleteGroup';
33
34 /**
35 * @var string
36 */
37 protected $template = 'AdminUserGroup.php';
38
39 /**
40 * @var AccessHandler
41 */
42 private $accessHandler;
43
44 /**
45 * @var UserGroupFactory
46 */
47 private $userGroupFactory;
48
49 /**
50 * @var \UserAccessManager\UserGroup\UserGroup
51 */
52 private $userGroup = null;
53
54 /**
55 * AdminUserGroupController constructor.
56 *
57 * @param Php $php
58 * @param Wordpress $wordpress
59 * @param Config $config
60 * @param AccessHandler $accessHandler
61 * @param UserGroupFactory $userGroupFactory
62 */
63 public function __construct(
64 Php $php,
65 Wordpress $wordpress,
66 Config $config,
67 AccessHandler $accessHandler,
68 UserGroupFactory $userGroupFactory
69 ) {
70 parent::__construct($php, $wordpress, $config);
71 $this->accessHandler = $accessHandler;
72 $this->userGroupFactory = $userGroupFactory;
73 }
74
75 /**
76 * Returns the a user group object.
77 *
78 * @return \UserAccessManager\UserGroup\UserGroup
79 */
80 public function getUserGroup()
81 {
82 if ($this->userGroup === null) {
83 $userGroupId = $this->getRequestParameter('userGroupId');
84 $this->userGroup = $this->userGroupFactory->createUserGroup($userGroupId);
85 }
86
87 return $this->userGroup;
88 }
89
90 /**
91 * Returns all user groups.
92 *
93 * @return \UserAccessManager\UserGroup\UserGroup[]
94 */
95 public function getUserGroups()
96 {
97 return $this->accessHandler->getUserGroups();
98 }
99
100 /**
101 * Returns the wordpress role names.
102 *
103 * @return array
104 */
105 public function getRoleNames()
106 {
107 $roles = $this->wordpress->getRoles();
108 return $roles->role_names;
109 }
110
111 /**
112 * Action to insert or update a user group.
113 */
114 public function insertUpdateUserGroupAction()
115 {
116 $this->verifyNonce(self::INSERT_UPDATE_GROUP_NONCE);
117
118 $userGroupId = $this->getRequestParameter('userGroupId');
119
120 $userGroup = $this->userGroupFactory->createUserGroup($userGroupId);
121
122 // Assign parameters
123 $groupName = $this->getRequestParameter('userGroupName');
124
125 if (trim($groupName) === '') {
126 $this->setUpdateMessage(TXT_UAM_GROUP_NAME_ERROR);
127 return;
128 }
129
130 $userGroup->setName($groupName);
131
132 $userGroupDescription = $this->getRequestParameter('userGroupDescription');
133 $userGroup->setDescription($userGroupDescription);
134
135 $readAccess = $this->getRequestParameter('readAccess');
136 $userGroup->setReadAccess($readAccess);
137
138 $writeAccess = $this->getRequestParameter('writeAccess');
139 $userGroup->setWriteAccess($writeAccess);
140
141 $ipRange = $this->getRequestParameter('ipRange');
142 $userGroup->setIpRange($ipRange);
143
144 $roles = $this->getRequestParameter('roles', []);
145
146 $userGroup->removeObject(ObjectHandler::GENERAL_ROLE_OBJECT_TYPE);
147
148 foreach ($roles as $role) {
149 $userGroup->addObject(ObjectHandler::GENERAL_ROLE_OBJECT_TYPE, htmlentities($role));
150 }
151
152 if ($userGroup->save() === true) {
153 if ($userGroupId === null) {
154 $this->userGroup = $userGroup;
155 $this->setUpdateMessage(TXT_UAM_GROUP_ADDED);
156 } else {
157 $this->setUpdateMessage(TXT_UAM_ACCESS_GROUP_EDIT_SUCCESS);
158 }
159
160 $this->accessHandler->addUserGroup($userGroup);
161 }
162 }
163
164 /**
165 * Action to delete user groups.
166 */
167 public function deleteUserGroupAction()
168 {
169 $this->verifyNonce(self::DELETE_GROUP_NONCE);
170 $userGroups = $this->getRequestParameter('delete', []);
171
172 foreach ($userGroups as $id) {
173 $this->accessHandler->deleteUserGroup($id);
174 }
175
176 $this->setUpdateMessage(TXT_UAM_DELETE_GROUP);
177 }
178 }
179