Advertisement
Guest User

Untitled

a guest
Mar 12th, 2018
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.17 KB | None | 0 0
  1. <?php
  2.  
  3. namespace App\Http\Controllers;
  4.  
  5. use App\Departments;
  6. use App\Http\Requests\UserRequest;
  7. use App\Lookup;
  8. use App\Role;
  9. use App\Staff;
  10. use App\User;
  11. use Illuminate\Http\Request;
  12. use Mail;
  13. use Intervention\Image\Facades\Image;
  14.  
  15.  
  16. class UserController extends Controller
  17. {
  18. /**
  19. * Display a listing of the resource.
  20. *
  21. * @return \Illuminate\Http\Response
  22. */
  23. public function index()
  24. {
  25. $users = User::all();
  26.  
  27. return view('user.index', compact('users'));
  28. }
  29.  
  30. /**
  31. * Show the form for creating a new resource.
  32. *
  33. * @return \Illuminate\Http\Response
  34. */
  35. public function create()
  36. {
  37. $positions = Lookup::where('name', 'jawatan')
  38. ->where('status', 'active')
  39. ->get();
  40.  
  41. $userStatuses = Lookup::where('name', 'user_status')
  42. ->where('status', 'active')
  43. ->get();
  44.  
  45. $departments = Departments::where('status', '=', 'active')
  46. ->orderBy('nama', 'asc')
  47. ->get();
  48.  
  49. $roles = Role::where('status', '=', 'active')
  50. ->orderBy('nama', 'asc')
  51. ->get();
  52.  
  53. // for staff
  54. $genders = Lookup::where('name', 'jantina')
  55. ->where('status', 'active')
  56. ->get();
  57.  
  58. $serviceLevels = Lookup::where('name', 'peringkat_perkhidmatan')
  59. ->where('status', 'active')
  60. ->get();
  61.  
  62. $clasifications = Lookup::where('name', 'klasifikasi_perkhidmatan')
  63. ->where('status', 'active')
  64. ->get();
  65.  
  66. $grades = Lookup::where('name', 'gred')
  67. ->where('status', 'active')
  68. ->get();
  69.  
  70. $units = Lookup::where('name', 'unit')
  71. ->where('status', 'active')
  72. ->get();
  73.  
  74. return view('user.create', compact('positions',
  75. 'roles',
  76. 'departments',
  77. 'userStatuses',
  78. 'genders',
  79. 'serviceLevels',
  80. 'clasifications',
  81. 'grades',
  82. 'units'
  83. ));
  84. }
  85.  
  86. /**
  87. * Store a newly created resource in storage.
  88. *
  89. * @param \Illuminate\Http\Request $request
  90. * @return \Illuminate\Http\Response
  91. */
  92. public function store(UserRequest $request)
  93. {
  94. $user = new User();
  95. $user->name = $request->input('name');
  96. $user->email = request('email');
  97. $user->no_kad_pengenalan = request('no_kad_pengenalan');
  98. $user->telefon = request('telefon');
  99. $user->department_id = request('jabatan');
  100. $user->jawatan = request('jawatan');
  101. $user->password = bcrypt(str_random(8));
  102. $userSavedStatus = $user->save();
  103.  
  104. // if user successfully created, attach assoc roles to this user
  105. if ($userSavedStatus) {
  106. $user->role()->attach(request('peranan'));
  107.  
  108. // add staff record for the user above
  109. $staff = new Staff();
  110. $staff->email_awam = request('email_awam');
  111. $staff->no_kad_pengenalan_lain = request('no_kad_pengenalan_lain');
  112. $staff->jantina = request('jantina');
  113. $staff->peringkat_perkhidmatan = request('peringkat_perkhidmatan');
  114. $staff->klasifikasi_perkhidmatan = request('klasifikasi_perkhidmatan');
  115. $staff->gred_jawatan = request('gred_jawatan');
  116. $staff->tangga_gaji_t = request('tangga_gaji_t');
  117. $staff->tangga_gaji_p = request('tangga_gaji_p');
  118. $staff->unit = request('unit');
  119. $staff->user_id = $user->id;
  120.  
  121. // upload gambar
  122. if (isset($request->gambar)) {
  123. if ($request->file('gambar')->isValid()) {
  124. $destinationPath = "image/user/";
  125. $extension = $request->file('gambar')->getClientOriginalExtension();
  126. $fileName = $user->id . '.' . $extension;
  127. $request->file('gambar')->move($destinationPath, $fileName);
  128.  
  129. // standardize the image dimension ala instagram (500x500px)
  130. // jgn lupa pakai : use Intervention\Image\Facades\Image;
  131. Image::make($destinationPath.$fileName)->fit(500, 500)->save();
  132.  
  133. $staff->gambar = '/' . $destinationPath . $fileName;
  134. }
  135. }
  136. // end upload gambar
  137.  
  138. $staffSavedStatus = $staff->save();
  139. }
  140.  
  141. // if user and staff can be registered, notify domain tech team.
  142. if ($userSavedStatus && $staffSavedStatus) {
  143. $data['email'] = $user->email;
  144.  
  145. Mail::send('emails.cipta_email_rasmi', $data, function ($message) use ($data) {
  146. $message->from('admin@intranet.melaka.gov.my', "HR Intranet");
  147. $message->subject("Email rasmi baru untuk pengguna baru");
  148. $message->to('mdridzuan@melaka.gov.my');
  149. $message->cc('asaliza@melaka.gov.my');
  150. });
  151.  
  152. return redirect('user/show/' . $user->id)->with('successMessage', 'Rekod pengguna berjaya dicipta');
  153. } else {
  154. return back()->with('errorMessage', 'Gagal mencipta rekod pengguna. Hubungi BTMK');
  155. }
  156. }
  157.  
  158. /**
  159. * Display the specified resource.
  160. *
  161. * @param int $id
  162. * @return \Illuminate\Http\Response
  163. */
  164. public function show(User $user)
  165. {
  166. return view('user.show', compact('user'));
  167. }
  168.  
  169. /**
  170. * Show the form for editing the specified resource.
  171. *
  172. * @param int $id
  173. * @return \Illuminate\Http\Response
  174. */
  175. public function edit($id)
  176. {
  177. $user = User::find($id);
  178. $positions = Lookup::where('name', 'jawatan')
  179. ->where('status', 'active')
  180. ->get();
  181.  
  182. $userStatuses = Lookup::where('name', 'user_status')
  183. ->where('status', 'active')
  184. ->get();
  185.  
  186. $departments = Departments::where('status', '=', 'active')
  187. ->orderBy('nama', 'asc')
  188. ->get();
  189.  
  190. $roles = Role::where('status', '=', 'active')
  191. ->orderBy('nama', 'asc')
  192. ->get();
  193.  
  194. return view('user.edit', compact('user', 'positions', 'userStatuses', 'departments', 'roles'));
  195. }
  196.  
  197. /**
  198. * Update the specified resource in storage.
  199. *
  200. * @param \Illuminate\Http\Request $request
  201. * @param int $id
  202. * @return \Illuminate\Http\Response
  203. */
  204. public function update(Request $request, User $user)
  205. {
  206. // $user = User::find($id);
  207. $user->name = $request->input('name');
  208. $user->email = request('email');
  209. $user->no_kad_pengenalan = request('no_kad_pengenalan');
  210. $user->telefon = request('telefon');
  211. $user->department_id = request('jabatan');
  212. $user->jawatan = request('jawatan');
  213. $user->password = bcrypt(str_random(8));
  214.  
  215. if ($user->save()) {
  216. // attach role yang dipilih kepada user yang baru di simpan
  217. $user->role()->attach(request('peranan'));
  218.  
  219. // send email
  220. $data['email'] = $user->email;
  221.  
  222. Mail::send('emails.cipta_email_rasmi', $data, function ($message) use ($data) {
  223. $message->from('admin@intranet.melaka.gov.my', "HR Intranet");
  224. $message->subject("Email rasmi baru untuk pengguna baru");
  225. $message->to('mdridzuan@melaka.gov.my');
  226. $message->cc('asaliza@melaka.gov.my');
  227. });
  228.  
  229. return redirect('user/show/' . $user->id)->with('successMessage', 'Rekod pengguna berjaya dikemaskini');
  230. } else {
  231. return back()->with('errorMessage', 'Gagal mengemaskini rekod pengguna. Hubungi BTMK');
  232. }
  233. }
  234.  
  235. /**
  236. * Remove the specified resource from storage.
  237. *
  238. * @param int $id
  239. * @return \Illuminate\Http\Response
  240. */
  241. public function destroy($id)
  242. {
  243. $user = User::find($id);
  244. $deleteSuccess = $user->delete();
  245.  
  246. if ($deleteSuccess) {
  247. return back()->with('successMessage', 'Pengguna ini berjaya dihapuskan dari pangkalan data');
  248. } else {
  249. return back()->with('errorMessage', 'Tidak berjaya menghapuskan rekod pengguna ini. Hubungi admin');
  250. }
  251. }
  252.  
  253. // untuk admin reset password pengguna. Admin x sepatutnya tahu password pengguna.
  254. public function resetPassword(User $user)
  255. {
  256. return $user;
  257. // generate random password
  258. $randomPassword = str_random(8);
  259.  
  260. // simpan db password random yang dah di enkrip (temp password)
  261. $user->password = bcrypt($randomPassword);
  262. $user->save();
  263.  
  264. // send kat email pengguna ini, mengatakan akaun dia dah reset password, dan bagi password
  265. $data['name'] = $user->name;
  266. $data['email'] = $user->email;
  267. $data['new_password'] = $randomPassword;
  268.  
  269. Mail::send('emails.reset_password', $data, function ($message) use ($data) {
  270. $message->from('admin@intranet.melaka.gov.my', "HR Intranet");
  271. $message->subject("Set Semula Kata Laluan");
  272. $message->to($data['email']);
  273. });
  274.  
  275. // Redirect ke senarai pengguna dengan mesej berjaya
  276. return redirect('/user')
  277. ->with('successMessage', 'Password bagi pengguna : ' . $user->email .
  278. ' telah berjaya ditetapkan semula');
  279. }
  280.  
  281. // Untuk menyahaktif pengguna
  282. public function deactivate(User $user)
  283. {
  284. $user->status = 'inactive';
  285. if ($user->save()) {
  286. return back()->with('successMessage', 'Pengguna ini berjaya ditetapkan sebagai TIDAK AKTIF');
  287. } else {
  288. return back()->with('errorMessage', 'Tidak berjaya menyahaktifkan pengguna ini.');
  289. }
  290. }
  291.  
  292. // Untuk aktifkan semula pengguna
  293. public function reactivate(User $user)
  294. {
  295. $user->status = 'active';
  296. if ($user->save()) {
  297. return back()->with('successMessage', 'Pengguna ini berjaya ditetapkan sebagai AKTIF');
  298. } else {
  299. return back()->with('errorMessage', 'Tidak berjaya mengaktifkan pengguna ini.');
  300. }
  301. }
  302. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement