Skip to content

Commit 04923b0

Browse files
authored
Merge pull request #18078 from grokability/groups-ui-improvements
Groups UI improvements, ability to add users from the group edit screen
2 parents 9bdf1a6 + 742b076 commit 04923b0

File tree

22 files changed

+1217
-706
lines changed

22 files changed

+1217
-706
lines changed

app/Http/Controllers/GroupsController.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ public function store(Request $request) : RedirectResponse
6565
$group->notes = $request->input('notes');
6666

6767
if ($group->save()) {
68+
$group->users()->sync($request->input('associated_users'));
6869
return redirect()->route('groups.index')->with('success', trans('admin/groups/message.success.create'));
6970
}
7071

@@ -88,7 +89,10 @@ public function edit(Group $group) : View | RedirectResponse
8889
$groupPermissions = [];
8990
}
9091
$selected_array = Helper::selectedPermissionsArray($permissions, $groupPermissions);
91-
return view('groups.edit', compact('group', 'permissions', 'selected_array', 'groupPermissions'));
92+
$associated_users = $group->users()->get();
93+
94+
//dd($associated_users->toArray());
95+
return view('groups.edit', compact('group', 'permissions', 'selected_array', 'groupPermissions'))->with('associated_users', $associated_users);
9296
}
9397

9498
/**
@@ -105,8 +109,10 @@ public function update(Request $request, Group $group) : RedirectResponse
105109
$group->permissions = json_encode($request->input('permission'));
106110
$group->notes = $request->input('notes');
107111

112+
108113
if (! config('app.lock_passwords')) {
109114
if ($group->save()) {
115+
$group->users()->sync($request->input('associated_users'));
110116
return redirect()->route('groups.index')->with('success', trans('admin/groups/message.success.update'));
111117
}
112118

app/Models/User.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,24 @@ public function isAvatarExternal() : bool
224224
return false;
225225
}
226226

227+
public function hasIndividualPermissions() {
228+
229+
if (is_object($this->permissions)) {
230+
$permissions = json_decode(json_encode($this->permissions), true);
231+
}
232+
233+
if (is_string($this->permissions)) {
234+
$permissions = json_decode($this->permissions, true);
235+
}
236+
237+
foreach ($permissions as $permission) {
238+
if ($permission != 0) {
239+
return true;
240+
}
241+
}
242+
return false;
243+
}
244+
227245
/**
228246
* Internally check the user permission for the given section
229247
*

0 commit comments

Comments
 (0)