Skip to content

Commit 8125748

Browse files
Prevent assignment of superadmin group in UserController
Exclude the 'superadmin' group when syncing user groups during creation and updates to ensure this role cannot be assigned through the standard user management interface.
1 parent 3a29270 commit 8125748

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

modules/Users/Controllers/UserController.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public function create_user()
141141
if (!$users->save($user)) return redirect()->route('create_user')->withInput()->with('errors', $users->errors());
142142
$new_user = $users->findById($users->getInsertID());
143143

144-
$groups = $this->commonModel->lists('auth_groups', 'group', [], 'id ASC', 0, 0, [], ['id' => $this->request->getPost('group')]);
144+
$groups = $this->commonModel->lists('auth_groups', 'group', ['group!=' => 'superadmin'], 'id ASC', 0, 0, [], ['id' => $this->request->getPost('group')]);
145145
$groupNames = array_column($groups, 'group');
146146
$new_user->syncGroups(...$groupNames);
147147

@@ -219,7 +219,7 @@ public function update_user(int $id)
219219

220220
$u->fill($data);
221221
if ($user->save($u)) {
222-
$groups = $this->commonModel->lists('auth_groups', 'group', [], 'id ASC', 0, 0, [], ['id' => $this->request->getPost('group')]);
222+
$groups = $this->commonModel->lists('auth_groups', 'group', ['group!=' => 'superadmin'], 'id ASC', 0, 0, [], ['id' => $this->request->getPost('group')]);
223223
$groupNames = array_column($groups, 'group');
224224
$u->syncGroups(...$groupNames);
225225
return redirect()->route('users')->with('message', lang('Backend.updated', [$data['username']]));

0 commit comments

Comments
 (0)