Advertisement
Guest User

Untitled

a guest
Oct 29th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.18 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use Illuminate\Http\Request;
  6.  
  7. use Illuminate\Support\Facades\Gate;
  8.  
  9. class UserController extends Controller
  10. {
  11.  
  12. public function __construct(){
  13. $this->middleware(function($request, $next){
  14.  
  15. if(Gate::allows('manage-users')) return $next($request);
  16.  
  17. abort(403, 'Anda tidak memiliki cukup hak akses');
  18. });
  19. }
  20. /**
  21. * Display a listing of the resource.
  22. *
  23. * @return \Illuminate\Http\Response
  24. */
  25. public function index(Request $request)
  26. {
  27.  
  28. $filterKeyword = $request->get('keyword');
  29.  
  30. $status = $request->get('status');
  31.  
  32. if($status){
  33. $users = \App\User::where('status', $status)->paginate(10);
  34. } else {
  35. $users = \App\User::paginate(10);
  36. }
  37.  
  38. if($filterKeyword){
  39. if($status){
  40. $users = \App\User::where('email', 'LIKE', "%$filterKeyword%")
  41. ->where('status', $status)
  42. ->paginate(10);
  43. } else {
  44. $users = \App\User::where('email', 'LIKE', "%$filterKeyword%")
  45. ->paginate(10);
  46. }
  47. }
  48.  
  49.  
  50.  
  51. return view('users.index', ['users' => $users]);
  52. }
  53.  
  54. /**
  55. * Show the form for creating a new resource.
  56. *
  57. * @return \Illuminate\Http\Response
  58. */
  59. public function create()
  60. {
  61. return view("users.create");
  62. }
  63.  
  64. /**
  65. * Store a newly created resource in storage.
  66. *
  67. * @param \Illuminate\Http\Request $request
  68. * @return \Illuminate\Http\Response
  69. */
  70. public function store(Request $request)
  71. {
  72.  
  73. $validation = \Validator::make($request->all(),[
  74. "name" => "required|min:5|max:100",
  75. "username" => "required|min:5|max:20|unique:users",
  76. "roles" => "required",
  77. "phone" => "required|digits_between:10,12",
  78. "address" => "required|min:20|max:200",
  79. "avatar" => "required",
  80. "email" => "required|email|unique:users",
  81. "password" => "required",
  82. "password_confirmation" => "required|same:password"
  83. ])->validate();
  84.  
  85. $new_user = new \App\User;
  86. $new_user->name = $request->get('name');
  87. $new_user->username = $request->get('username');
  88. $new_user->roles = json_encode($request->get('roles'));
  89. $new_user->address = $request->get('address');
  90. $new_user->phone = $request->get('phone');
  91. $new_user->email = $request->get('email');
  92. $new_user->password = \Hash::make($request->get('password'));
  93.  
  94. if($request->file('avatar')){
  95. $file = $request->file('avatar')->store('avatars', 'public');
  96. $new_user->avatar = $file;
  97. }
  98.  
  99. $new_user->save();
  100.  
  101. return redirect()->route('users.create')->with('status', 'User successfully created');
  102. }
  103.  
  104. /**
  105. * Display the specified resource.
  106. *
  107. * @param int $id
  108. * @return \Illuminate\Http\Response
  109. */
  110. public function show($id)
  111. {
  112. $user = \App\User::findOrFail($id);
  113.  
  114. return view('users.show', ['user' => $user]);
  115. }
  116.  
  117. /**
  118. * Show the form for editing the specified resource.
  119. *
  120. * @param int $id
  121. * @return \Illuminate\Http\Response
  122. */
  123. public function edit($id)
  124. {
  125. $user = \App\User::findOrFail($id);
  126.  
  127. return view('users.edit', ['user' => $user]);
  128. }
  129.  
  130. /**
  131. * Update the specified resource in storage.
  132. *
  133. * @param \Illuminate\Http\Request $request
  134. * @param int $id
  135. * @return \Illuminate\Http\Response
  136. */
  137. public function update(Request $request, $id)
  138. {
  139. \Validator::make($request->all(), [
  140. "name" => "required|min:5|max:100",
  141. "roles" => "required",
  142. "phone" => "required|digits_between:10,12",
  143. "address" => "required|min:20|max:200",
  144. ])->validate();
  145.  
  146. $user = \App\User::findOrFail($id);
  147.  
  148. $user->name = $request->get('name');
  149. $user->roles = json_encode($request->get('roles'));
  150. $user->address = $request->get('address');
  151. $user->phone = $request->get('phone');
  152. $user->status = $request->get('status');
  153.  
  154. if($request->file('avatar')){
  155. if($user->avatar && file_exists(storage_path('app/public/' . $user->avatar))){
  156. \Storage::delete('public/'.$user->avatar);
  157. }
  158. $file = $request->file('avatar')->store('avatars', 'public');
  159. $user->avatar = $file;
  160. }
  161.  
  162. $user->save();
  163.  
  164. return redirect()->route('users.edit', ['id' => $id])->with('status', 'User succesfully updated');
  165. }
  166.  
  167. /**
  168. * Remove the specified resource from storage.
  169. *
  170. * @param int $id
  171. * @return \Illuminate\Http\Response
  172. */
  173. public function destroy($id)
  174. {
  175. $user = \App\User::findOrFail($id);
  176.  
  177. $user->delete();
  178.  
  179. return redirect()->route('users.index')->with('status', 'User successfully deleted');
  180. }
  181. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement