]> BookStack Code Mirror - bookstack/blob - app/Http/Controllers/UserController.php
Added User managment. Fixes #5
[bookstack] / app / Http / Controllers / UserController.php
1 <?php
2
3 namespace Oxbow\Http\Controllers;
4
5 use Illuminate\Http\Request;
6
7 use Illuminate\Support\Facades\Hash;
8 use Oxbow\Http\Requests;
9 use Oxbow\Http\Controllers\Controller;
10 use Oxbow\User;
11
12 class UserController extends Controller
13 {
14
15     protected $user;
16
17     /**
18      * UserController constructor.
19      * @param $user
20      */
21     public function __construct(User $user)
22     {
23         $this->user = $user;
24     }
25
26
27     /**
28      * Display a listing of the users.
29      *
30      * @return Response
31      */
32     public function index()
33     {
34         $users = $this->user->all();
35         return view('users/index', ['users'=> $users]);
36     }
37
38     /**
39      * Show the form for creating a new user.
40      *
41      * @return Response
42      */
43     public function create()
44     {
45         return view('users/create');
46     }
47
48     /**
49      * Store a newly created user in storage.
50      *
51      * @param  Request  $request
52      * @return Response
53      */
54     public function store(Request $request)
55     {
56         $this->validate($request, [
57             'name' => 'required',
58             'email' => 'required|email',
59             'password' => 'required|min:5',
60             'password-confirm' => 'required|same:password'
61         ]);
62
63         $user = $this->user->fill($request->all());
64         $user->password = Hash::make($request->get('password'));
65         $user->save();
66         return redirect('/users');
67     }
68
69
70     /**
71      * Show the form for editing the specified user.
72      *
73      * @param  int  $id
74      * @return Response
75      */
76     public function edit($id)
77     {
78         $user = $this->user->findOrFail($id);
79         return view('users/edit', ['user' => $user]);
80     }
81
82     /**
83      * Update the specified user in storage.
84      *
85      * @param  Request  $request
86      * @param  int  $id
87      * @return Response
88      */
89     public function update(Request $request, $id)
90     {
91         $this->validate($request, [
92             'name' => 'required',
93             'email' => 'required|email',
94             'password' => 'min:5',
95             'password-confirm' => 'same:password'
96         ]);
97
98         $user = $this->user->findOrFail($id);
99         $user->fill($request->all());
100
101         if($request->has('password') && $request->get('password') != '') {
102             $password = $request->get('password');
103             $user->password = Hash::make($password);
104         }
105         $user->save();
106         return redirect('/users');
107     }
108
109     /**
110      * Show the user delete page.
111      * @param $id
112      * @return \Illuminate\View\View
113      */
114     public function delete($id)
115     {
116         $user = $this->user->findOrFail($id);
117         return view('users/delete', ['user' => $user]);
118     }
119
120     /**
121      * Remove the specified user from storage.
122      *
123      * @param  int  $id
124      * @return Response
125      */
126     public function destroy($id)
127     {
128         $user = $this->user->findOrFail($id);
129         $user->delete();
130         return redirect('/users');
131     }
132 }