Skip to content

Commit f1b4877

Browse files
committed
A few small tweaks for new groups
1 parent c39c92d commit f1b4877

File tree

2 files changed

+24
-8
lines changed

2 files changed

+24
-8
lines changed

app/Http/Controllers/GroupsController.php

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,12 @@ public function create(Request $request) : View
4343
$permissions = config('permissions');
4444
$groupPermissions = Helper::selectedPermissionsArray($permissions, $permissions);
4545
$selectedPermissions = $request->old('permissions', $groupPermissions);
46-
46+
$users = \App\Models\User::get();
4747
// Show the page
48-
return view('groups/edit', compact('permissions', 'selectedPermissions', 'groupPermissions'))->with('group', $group);
48+
return view('groups/edit', compact('permissions', 'selectedPermissions', 'groupPermissions'))
49+
->with('group', $group)
50+
->with('associated_users', [])
51+
->with('unselected_users', $users);
4952
}
5053

5154
/**
@@ -60,12 +63,23 @@ public function store(Request $request) : RedirectResponse
6063
// create a new group instance
6164
$group = new Group();
6265
$group->name = $request->input('name');
66+
67+
if ($request->filled('permission')) {
68+
$group->permissions = json_encode($request->array('permission'));
69+
} else {
70+
$group->permissions = null;
71+
}
72+
6373
$group->permissions = json_encode($request->input('permission'));
6474
$group->created_by = auth()->id();
6575
$group->notes = $request->input('notes');
6676

6777
if ($group->save()) {
68-
$group->users()->sync($request->input('associated_users'));
78+
79+
if ($request->filled('users_to_add')) {
80+
$associated_users = explode(',',$request->input('users_to_add'));
81+
$group->users()->sync($associated_users);
82+
}
6983
return redirect()->route('groups.index')->with('success', trans('admin/groups/message.success.create'));
7084
}
7185

@@ -92,8 +106,7 @@ public function edit(Group $group) : View | RedirectResponse
92106
$associated_users = $group->users()->get();
93107

94108
// Get the unselected users
95-
$users = \App\Models\User::get();
96-
$unselected_users = $users->diffKeys($associated_users);
109+
$unselected_users = \App\Models\User::whereNotIn('id', $associated_users->pluck('id')->toArray())->orderBy('first_name', 'asc')->get();
97110

98111
return view('groups.edit', compact('group', 'permissions', 'selected_array', 'groupPermissions'))->with('associated_users', $associated_users)->with('unselected_users', $unselected_users);
99112
}
@@ -122,8 +135,11 @@ public function update(Request $request, Group $group) : RedirectResponse
122135
if (! config('app.lock_passwords')) {
123136
if ($group->save()) {
124137

125-
$associated_users = explode(',',$request->input('users_to_add'));
126-
$group->users()->sync($associated_users);
138+
if ($request->filled('users_to_add')) {
139+
$associated_users = explode(',',$request->input('users_to_add'));
140+
$group->users()->sync($associated_users);
141+
}
142+
127143
return redirect()->route('groups.index')->with('success', trans('admin/groups/message.success.update'));
128144
}
129145

resources/views/groups/edit.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
<div class="col-md-12">
5353

5454
<!-- This hidden input will store the selected user IDs as a comma-separated string to avoid max_input_vars and max_multipart_body_parts php.ini issues -->
55-
<input type="hidden" name="users_to_add" id="hidden_ids_box" class="form-control" value="{{ implode(",", $associated_users->pluck('id')->toArray()) }}"/>
55+
<input type="hidden" name="users_to_add" id="hidden_ids_box" class="form-control" value="{{ ($associated_users && is_array($associated_users)) ? implode(",", $associated_users->pluck('id')->toArray()) : '' }}"/>
5656

5757
<div class="addremove-multiselect">
5858
<div class="col-lg-5 col-sm-5 col-xs-12">

0 commit comments

Comments
 (0)