Issues (166)

app/Http/Controllers/AclController.php (2 issues)

Labels
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use Illuminate\Http\Request;
6
use Carbon\Carbon;
7
use Auth;
8
use Validator;
9
use DB;
10
use App\User;
11
use App\Role;
12
use App\Role_user;
13
use App\Permission;
14
use App\Permission_role;
15
use App\Http\Requests;
16
use App\Lubus;
17
use App\Http\Controllers\Controller;
18
19
class AclController extends Controller
20
{
21
	public function __construct()
22
    {
23
        $this->middleware('auth');
24
    }
25
26
    /**
27
     * CRUD functions for Users 
28
     */
29
30
    public function userIndex()
31
    {
32
    	$users = User::excludeArchive()->paginate(10);
33
34
    	return view('user.userIndex',compact('users'));
35
    }
36
37
    public function createUser()
38
    {
39
    	return view('user.createUser');
40
    }
41
42
    public function storeUser(Request $request)
43
    {
44
    	$this->validate($request, ['name' => 'required|max:255',
45
						           'email' => 'required|email|max:255|unique:mst_users',
46
						           'password' => 'required|confirmed|min:6']);
47
48
    	$user = User::create(['name' => $request['name'],
49
                      		  'email' => $request['email'],
50
                      		  'password' => bcrypt($request['password']),
51
                			  'status'=> $request->status]);
52
53
        $user->save();
54
55
        // Adding Photo
56
        if($request->hasFile('photo'))
57
        {
58
          $user->addMedia($request->file('photo'))->usingFileName('staff_'.$user->id.$request->photo->getClientOriginalExtension())->toCollection('staff');
0 ignored issues
show
It seems like $request->file('photo') can also be of type array; however, parameter $file of App\User::addMedia() does only seem to accept Symfony\Component\HttpFo...ile\UploadedFile|string, maybe add an additional type check? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-type  annotation

58
          $user->addMedia(/** @scrutinizer ignore-type */ $request->file('photo'))->usingFileName('staff_'.$user->id.$request->photo->getClientOriginalExtension())->toCollection('staff');
Loading history...
59
        }
60
        $user->save();
61
62
    	$user->attachRole($request->role_id);
63
64
    	flash()->success('User was successfully created');
65
    	return redirect('user');
66
    }
67
68
    public function editUser($id)
69
    {
70
    	$user = User::findOrFail($id);
71
72
    	return view('user.editUser', compact('user'));
73
    }
74
75
    public function updateUser($id, Request $request)
76
    {
77
    	$user = User::findOrFail($id);
78
79
    	$user->name = $request->name;
80
    	$user->email = $request->email;
81
82
    	if(!empty($request->password))
83
        {
84
            $this->validate($request, ['password' => 'required|string|min:6|confirmed']);
85
            $user->password = bcrypt($request->password);
86
        }
87
88
        $user->status = $request->status;
89
90
        $user->update();
91
92
        if($request->hasFile('photo'))
93
        {
94
          $user->clearMediaCollection('staff');
95
          $user->addMedia($request->file('photo'))->usingFileName('staff_'.$user->id.$request->photo->getClientOriginalExtension())->toCollection('staff');
96
        }
97
        $user->save();
98
99
        if ($user->role_user->role->id != $request->role_id) 
100
        {
101
            Role_user::where('user_id',$user->id)->where('role_id',$user->role_user->role_id)->delete();
102
            $user->attachRole($request->role_id);
103
        }
104
    	
105
    	flash()->success('User details were successfully updated');
106
    	return redirect('user');
107
    }
108
109
    public function deleteUser($id)
110
    {
111
    	DB::beginTransaction();
112
    	try 
113
    	{
114
    		Role_user::where('user_id',$id)->delete();
115
    		$user = User::findOrFail($id);
116
            $user->clearMediaCollection('staff');
117
            $user->status = \constStatus::Archive;
118
            $user->save();
119
120
    		DB::commit();
121
    		flash()->success('User was successfully deleted');
122
    		return redirect('user');
123
    	} 
124
    	catch (Exception $e) 
0 ignored issues
show
The type App\Http\Controllers\Exception was not found. Did you mean Exception? If so, make sure to prefix the type with \.
Loading history...
125
    	{
126
    		DB::rollback();
127
    		flash()->error('User was not deleted');
128
    		return redirect('user');
129
    	}
130
    }
131
132
133
    /**
134
     * CRUD functions for Roles 
135
     */
136
137
    public function roleIndex()
138
    {
139
    	$roles = Role::excludeGymie()->get();
140
141
    	return view('user.roleIndex',compact('roles'));
142
    }
143
144
    public function createRole()
145
    {
146
    	$permissions = Permission::all();
147
148
    	return view('user.createRole',compact('permissions'));
149
    }
150
151
    public function storeRole(Request $request)
152
    {
153
    	DB::beginTransaction();
154
    	try 
155
    	{
156
    		$role = Role::create(['name' => $request->name,
157
		    					  'display_name' => $request->display_name,
158
		    					  'description' => $request->description,
159
    					 		 ]);
160
161
    		if ($request->has('permissions')) 
162
    		{
163
    			$role->attachPermissions($request->permissions);
164
    		}
165
166
    		DB::commit();
167
    		flash()->success('Role was successfully created');
168
    		return redirect('role');
169
    	} 
170
    	catch (Exception $e) 
171
    	{
172
    		DB::rollback();
173
    		flash()->error('Role was not created');
174
    		return redirect('role');
175
    	}
176
    }
177
178
    public function editRole($id)
179
    {
180
    	$role = Role::findOrFail($id);
181
    	$permissions = Permission::all();
182
    	$permission_role = Permission_role::where('role_id',$id)->get();
183
184
    	return view('user.editRole', compact('role','permissions','permission_role'));
185
    }
186
187
    public function updateRole($id, Request $request)
188
    {
189
    	DB::beginTransaction();
190
    	try 
191
    	{
192
    		//Updating Role
193
    		$role = Role::findOrFail($id);
194
    		
195
    		$role->update(['name' => $request->name,
196
    					   'display_name' => $request->display_name,
197
    					   'description' => $request->description,
198
				 		  ]);
199
200
    		//Updating permissions for the role
201
    		$DBpermissions = Permission_role::where('role_id',$id)->select('permission_id')->lists('permission_id');
202
    		$ClientPermissions = collect($request->permissions);
203
    
204
    		$addPermissions = $ClientPermissions->diff($DBpermissions);
205
    		$deletePermissions = $DBpermissions->diff($ClientPermissions);
206
207
    		if ($addPermissions->count()) 
208
    		{
209
    			$role->attachPermissions($addPermissions);
210
    		}
211
212
    		if ($deletePermissions->count()) 
213
    		{
214
    			foreach ($deletePermissions as $deletePermission) 
215
    			{
216
    				Permission_role::where('role_id',$id)->where('permission_id',$deletePermission)->delete();
217
    			}
218
    		}
219
    		    		    		
220
    		DB::commit();
221
    		flash()->success('Role was successfully updated');
222
    		return redirect('role');
223
    	} 
224
    	catch (Exception $e) 
225
    	{
226
    		DB::rollback();
227
    		flash()->error('Role was not updated');
228
    		return redirect('role');
229
    	}
230
    }
231
232
    public function deleteRole($id)
233
    {
234
    	DB::beginTransaction();
235
    	try 
236
    	{
237
    		Permission_role::where('role_id',$id)->delete();
238
    		Role::where('id',$id)->delete();
239
240
    		DB::commit();
241
    		flash()->success('Role was successfully deleted');
242
    		return redirect('role');
243
    	} 
244
    	catch (Exception $e) 
245
    	{
246
    		DB::rollback();
247
    		flash()->error('Role was not deleted');
248
    		return redirect('role');
249
    	}
250
    }
251
252
    /**
253
     * CRUD functions for Permissions 
254
     */
255
256
    public function permissionIndex()
257
    {
258
    	$permissions = Permission::all();
259
260
    	return view('user.permissionIndex',compact('permissions'));
261
    }
262
263
    public function createPermission()
264
    {
265
    	return view('user.createPermission');
266
    }
267
268
    public function storePermission(Request $request)
269
    {
270
    	Permission::create(['name' => $request->name,
271
						    'display_name' => $request->display_name,
272
						    'description' => $request->description,
273
						    'group_key' => $request->group_key,
274
				 		   ]);
275
276
    	flash()->success('Permission was successfully created');
277
    	return redirect('permission');
278
    }
279
280
    public function editPermission($id)
281
    {
282
    	$permission = Permission::findOrFail($id);
283
284
    	return view('user.editPermission', compact('permission'));
285
    }
286
287
    public function updatePermission($id, Request $request)
288
    {
289
    	$permission = Permission::findOrFail($id);
290
291
    	$permission->update(['name' => $request->name,
292
						    'display_name' => $request->display_name,
293
						    'description' => $request->description,
294
						    'group_key' => $request->group_key,
295
						    ]);
296
297
    	flash()->success('Permission was successfully updated');
298
    	return redirect('permission');
299
    }
300
301
    public function deletePermission($id)
302
    {
303
    	Permission::findOrFail($id)->delete();
304
305
    	flash()->success('Permission was successfully deleted');
306
    	return redirect('permission');
307
    }
308
}