Skip to content

Commit d43be27

Browse files
committed
Small tweaks to user group listings
1 parent 92a3bdf commit d43be27

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

app/Http/Controllers/GroupsController.php

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use Illuminate\Http\Request;
88
use Illuminate\Http\RedirectResponse;
99
use \Illuminate\Contracts\View\View;
10+
use \App\Models\User;
1011

1112
/**
1213
* This controller handles all actions related to User Groups for
@@ -43,14 +44,20 @@ public function create(Request $request) : View
4344
$permissions = config('permissions');
4445
$groupPermissions = Helper::selectedPermissionsArray($permissions, $permissions);
4546
$selectedPermissions = $request->old('permissions', $groupPermissions);
46-
$users = \App\Models\User::orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->get();
47+
$users_query = User::where('show_in_list', 1)->whereNull('deleted_at');
48+
$users_count = $users_query->count();
49+
50+
$users = collect();
51+
if ($users_count <= config('app.max_unpaginated_records')) {
52+
$users = $users_query->orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->get();
53+
}
54+
4755
// Show the page
4856
return view('groups/edit', compact('permissions', 'selectedPermissions', 'groupPermissions'))
4957
->with('group', $group)
5058
->with('associated_users', [])
5159
->with('unselected_users', $users)
52-
->with('all_users_count', $users->count())
53-
;
60+
->with('all_users_count', $users_count);
5461
}
5562

5663
/**
@@ -104,19 +111,26 @@ public function edit(Group $group) : View | RedirectResponse
104111
if ((!is_array($groupPermissions)) || (!$groupPermissions)) {
105112
$groupPermissions = [];
106113
}
114+
107115
$selected_array = Helper::selectedPermissionsArray($permissions, $groupPermissions);
108-
$associated_users = $group->users()->orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->get();
109116

110-
// Get the unselected users
111-
$unselected_users = \App\Models\User::whereNotIn('id', $associated_users->pluck('id')->toArray())->orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->get();
112117

113-
// We need the total to see whether or not we should show the user selection box :(
114-
$all_users_count = $associated_users->count() + $unselected_users->count();
118+
$users_query = User::where('show_in_list', 1)->whereNull('deleted_at');
119+
$users_count = $users_query->count();
120+
121+
$associated_users = collect();
122+
$unselected_users = collect();
123+
124+
if ($users_count <= config('app.max_unpaginated_records')) {
125+
$associated_users = $group->users()->where('show_in_list', 1)->orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->get();
126+
// Get the unselected users
127+
$unselected_users = User::where('show_in_list', 1)->whereNotIn('id', $associated_users->pluck('id')->toArray())->orderBy('first_name', 'asc')->orderBy('last_name', 'asc')->get();
128+
}
115129

116130
return view('groups.edit', compact('group', 'permissions', 'selected_array', 'groupPermissions'))
117131
->with('associated_users', $associated_users)
118132
->with('unselected_users', $unselected_users)
119-
->with('all_users_count', $all_users_count);
133+
->with('all_users_count', $users_count);
120134
}
121135

122136
/**
@@ -143,7 +157,7 @@ public function update(Request $request, Group $group) : RedirectResponse
143157
if (! config('app.lock_passwords')) {
144158
if ($group->save()) {
145159

146-
if ($request->filled('users_to_sync')) {
160+
if ($request->has('users_to_sync')) {
147161
$associated_users = explode(',',$request->input('users_to_sync'));
148162
$group->users()->sync($associated_users);
149163
}

0 commit comments

Comments
 (0)