@@ -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
0 commit comments