Test Setup Failed
Pull Request — master (#107)
by Glenn
06:02
created

StaffController::policies()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 4
Bugs 0 Features 0
Metric Value
c 4
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 0
1
<?php
2
3
namespace App\Http\Controllers;
4
5
use Illuminate\Http\Request;
6
use App\Http\Requests;
7
use App\User;
8
use App\Countries;
9
use App\Teams;
10
use App\Role;
11
use Illuminate\Support\Facades\Auth;
12
use Illuminate\Support\Facades\Input;
13
use Illuminate\Support\Facades\Mail;
14
use Illuminate\Support\Facades\Redirect;
15
use Intervention\Image\Facades\Image;
16
use App\Permission;
17
use Bouncer;
18
19
class StaffController extends Controller
20
{
21
22
    public function __construct()
23
    {
24
        $this->middleware('auth');
25
    }
26
27
    /**
28
     * Display all users.
29
     *
30
     * @return mixed
31
     */
32
    public function index()
33
    {
34
        $data['users'] = User::orderBy('fname', 'asc')->paginate(10);
35
        return view('staff/users', $data);
36
    }
37
38
    /**
39
     * Show the form for creating a new employee.
40
     *
41
     * @return mixed
42
     */
43
    public function create()
44
    {
45
        $data['countries'] = Countries::all();
46
        return view('staff/create_user', $data);
47
    }
48
49
    /**
50
     * Store a newly created employee in storage.
51
     *
52
     * @param Requests\StaffValidator|Request $request
53
     * @return mixed
54
     */
55
    public function store(Requests\StaffValidator $request)
56
    {
57
        $user = new User;
58
        $user->fname = $request->get('fname');
59
        $user->name = $request->get('name');
60
        $user->address = $request->get('address');
61
        $user->postal_code = $request->get('postal_code');
62
        $user->city = $request->get('city');
63
        $user->email = $request->get('email');
64
        $user->password = bcrypt($request->get('password'));
65
        $user->save();
66
67
        $mailbox = env('MAIL_USERNAME');
68
        $mail_password = $request->get('password');
69
        session()->flash('message', "New employee has been added to the application");
70
71
        $injectionData = ['user' => $user, 'password' => $mail_password];
72
        
73
        Mail::send('emails.new_user', $injectionData, function ($m) use ($user, $mailbox) {
74
            $m->from($mailbox);
75
            $m->to($user->email)->subject('Your user credentials!');
76
        });
77
78
        return redirect('staff');
79
    }
80
81
    /**
82
     * Update a user.
83
     *
84
     * @param  Int, $id
85
     * @param  Request $request
86
     * @return mixed
87
     */
88
    public function updateUser($id, Request $request)
89
    {
90
        $user = User::find($id);
91
        $user->fname = $request->get('fname');
92
        $user->name = $request->get('name');
93
        $user->address = $request->get('address');
94
        $user->postal_code = $request->get('postal_code');
95
        $user->city = $request->get('city');
96
        $user->email = $request->get('email');
97
        $user->assignRole($request->get('user_type'));
98
        $user->update();
99
100
        $user = User::find($id);
101
        Bouncer::assign($request->get('user_typ'))->to($user);
102
103
        session()->flash('message', "User details have been updated");
104
        return \Redirect::back();
105
    }
106
107
108
    /**
109
     * @return mixed
110
     */
111
    public function policies()
112
    {
113
        $data['roles'] = Role::all();
114
        return view('staff/roles', $data);
115
    }
116
117
    /**
118
     * @return mixed
119
     */
120
    public function addpolicies()
121
    {
122
        $data['permissions'] = Permission::all();
123
        return view('staff/create_role', $data);
124
    }
125
126
127
    /**
128
     * @param Request $request
129
     * @return string
130
     */
131
    public function addRole(Request $request)
132
    {
133
        $role = Role::create(['name' => $request->get('role_name')]);
134
        foreach ($request->get('permissions') as $permission) {
135
            $role->givePermissionTo($permission);
136
        }
137
        if ($assign_role) {
138
            session()->flash('message', 'New user role has been created');
139
            return redirect('staff/policies');
140
        } else {
141
            return "Mislukt";
142
        }
143
    }
144
145
    /**
146
     * @param $id
147
     * @return mixed
148
     */
149
    public function editpolicies($id)
150
    {
151
        $data['permissions'] = Permission::all();
152
153
        return view('staff/edit_role', $data);
154
    }
155
156
    /**
157
     * Remove the user role.
158
     *
159
     * @param  int, $id
160
     * @return redirect
161
     */
162
    public function destroyRole($id)
163
    {
164
        $role = Role::find($id);
165
        $role->delete();
166
        session()->flash('message', "User role has been removed from the database");
167
        return redirect('staff/policies');
168
    }
169
170
171
    /**
172
     * Show all permission.
173
     */
174
    public function permissions()
175
    {
176
        $data['permissions'] = Permission::all();
177
        return view('staff/permissions', $data);
178
    }
179
180
    /**
181
     * Show the form to create a new permission.
182
     */
183
    public function createPermission()
184
    {
185
        return view('staff/create_permission');
186
    }
187
188
    /**
189
     *
190
     * Save the new permission.
191
     *
192
     * @param  Request $request
193
     * @return redirect
194
     */
195
    public function savePermission(Request $request)
196
    {
197
        Permission::create(['name' => $request->get('permission_name')]);
198
        session()->flash('message', "The new permission has been added to the database");
199
200
        return redirect('staff/permissions');
201
    }
202
203
    public function destroyPermission($id)
204
    {
205
        $permission = Permission::find($id);
206
        $permission->delete();
207
208
        session()->flash('message', "Permission has been removed from the database");
209
        return redirect('staff/permissions');
210
    }
211
212
    /**
213
     * Display the specified resource.
214
     *
215
     * @param  int $id
216
     * @return \Illuminate\Http\Response
217
     */
218
    public function show($id)
219
    {
220
        //
221
    }
222
223
    /**
224
     * Show the form for editing the specified resource.
225
     * @param $id
226
     * @return
227
     */
228
    public function edit($id)
229
    {
230
        $data['user'] = User::findOrFail($id);
231
        $data['teams'] = Teams::all();
232
        $data['countries'] = Countries::all();
233
        $data['roles'] = Role::all();
234
        return view("staff/edit_user", $data);
235
    }
236
237
238
    /**
239
     * @return mixed
240
     */
241
    public function profile()
242
    {
243
        $data['countries'] = Countries::all();
244
        return view("staff/profile", $data);
245
    }
246
247
    /**
248
     * change a password
249
     */
250
    public function chPass()
251
    {
252
253
    }
254
255
    /**
256
     * Update the specified resource in storage.
257
     *
258
     * @param  \Illuminate\Http\Request $request
259
     * @return \Illuminate\Http\Response
260
     */
261
    public function update(Request $request)
262
    {
263
        // TODO: Add validation - Tjoosten
264
<<<<<<< Updated upstream
0 ignored issues
show
Bug introduced by
This code did not parse for me. Apparently, there is an error somewhere around this line:

Syntax error, unexpected T_SL
Loading history...
265
        
266
=======
267
268
>>>>>>> Stashed changes
269
        $user = User::findOrFail(auth()->user()->id);
270
        $user->fname = $request->get('email');
271
        $user->name = $request->get('name');
272
        $user->email = $request->get('email');
273
        $user->address = $request->get('address');
274
        $user->email = $request->get('email');
275
276
        if (Input::file()) {
277
            $image = Input::file('avatar');
278
            $filename = time() . '.' . $image->getClientOriginalExtension();
279
            $path = public_path('profilepics/' . $filename);
280
281
            Image::make($image->getRealPath())->resize(200, 200)->save($path);
282
            $user->image = $filename;
283
        }
284
285
        $user->save();
286
287
        return redirect()->back();
288
    }
289
290
    /**
291
     * Remove the specified employee from the database.
292
     *
293
     * @param  int $id
294
     * @return \Illuminate\Http\Response
295
     */
296
    public function destroy($id)
297
    {
298
        if (! Auth::user()->is('Administrator')) {
299
            return Redirect::back();
300
        }
301
302
        User::Destroy($id);
303
        session()->flash('message', "User has been removed from the database");
304
        return redirect('staff');
305
    }
306
}
307