Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use App\Departments;
- use App\Http\Requests\UserRequest;
- use App\Lookup;
- use App\Role;
- use App\Staff;
- use App\User;
- use Illuminate\Http\Request;
- use Mail;
- use Intervention\Image\Facades\Image;
- class UserController extends Controller
- {
- /**
- * Display a listing of the resource.
- *
- * @return \Illuminate\Http\Response
- */
- public function index()
- {
- $users = User::all();
- return view('user.index', compact('users'));
- }
- /**
- * Show the form for creating a new resource.
- *
- * @return \Illuminate\Http\Response
- */
- public function create()
- {
- $positions = Lookup::where('name', 'jawatan')
- ->where('status', 'active')
- ->get();
- $userStatuses = Lookup::where('name', 'user_status')
- ->where('status', 'active')
- ->get();
- $departments = Departments::where('status', '=', 'active')
- ->orderBy('nama', 'asc')
- ->get();
- $roles = Role::where('status', '=', 'active')
- ->orderBy('nama', 'asc')
- ->get();
- // for staff
- $genders = Lookup::where('name', 'jantina')
- ->where('status', 'active')
- ->get();
- $serviceLevels = Lookup::where('name', 'peringkat_perkhidmatan')
- ->where('status', 'active')
- ->get();
- $clasifications = Lookup::where('name', 'klasifikasi_perkhidmatan')
- ->where('status', 'active')
- ->get();
- $grades = Lookup::where('name', 'gred')
- ->where('status', 'active')
- ->get();
- $units = Lookup::where('name', 'unit')
- ->where('status', 'active')
- ->get();
- return view('user.create', compact('positions',
- 'roles',
- 'departments',
- 'userStatuses',
- 'genders',
- 'serviceLevels',
- 'clasifications',
- 'grades',
- 'units'
- ));
- }
- /**
- * Store a newly created resource in storage.
- *
- * @param \Illuminate\Http\Request $request
- * @return \Illuminate\Http\Response
- */
- public function store(UserRequest $request)
- {
- $user = new User();
- $user->name = $request->input('name');
- $user->email = request('email');
- $user->no_kad_pengenalan = request('no_kad_pengenalan');
- $user->telefon = request('telefon');
- $user->department_id = request('jabatan');
- $user->jawatan = request('jawatan');
- $user->password = bcrypt(str_random(8));
- $userSavedStatus = $user->save();
- // if user successfully created, attach assoc roles to this user
- if ($userSavedStatus) {
- $user->role()->attach(request('peranan'));
- // add staff record for the user above
- $staff = new Staff();
- $staff->email_awam = request('email_awam');
- $staff->no_kad_pengenalan_lain = request('no_kad_pengenalan_lain');
- $staff->jantina = request('jantina');
- $staff->peringkat_perkhidmatan = request('peringkat_perkhidmatan');
- $staff->klasifikasi_perkhidmatan = request('klasifikasi_perkhidmatan');
- $staff->gred_jawatan = request('gred_jawatan');
- $staff->tangga_gaji_t = request('tangga_gaji_t');
- $staff->tangga_gaji_p = request('tangga_gaji_p');
- $staff->unit = request('unit');
- $staff->user_id = $user->id;
- // upload gambar
- if (isset($request->gambar)) {
- if ($request->file('gambar')->isValid()) {
- $destinationPath = "image/user/";
- $extension = $request->file('gambar')->getClientOriginalExtension();
- $fileName = $user->id . '.' . $extension;
- $request->file('gambar')->move($destinationPath, $fileName);
- // standardize the image dimension ala instagram (500x500px)
- // jgn lupa pakai : use Intervention\Image\Facades\Image;
- Image::make($destinationPath.$fileName)->fit(500, 500)->save();
- $staff->gambar = '/' . $destinationPath . $fileName;
- }
- }
- // end upload gambar
- $staffSavedStatus = $staff->save();
- }
- // if user and staff can be registered, notify domain tech team.
- if ($userSavedStatus && $staffSavedStatus) {
- $data['email'] = $user->email;
- Mail::send('emails.cipta_email_rasmi', $data, function ($message) use ($data) {
- $message->from('admin@intranet.melaka.gov.my', "HR Intranet");
- $message->subject("Email rasmi baru untuk pengguna baru");
- $message->to('mdridzuan@melaka.gov.my');
- $message->cc('asaliza@melaka.gov.my');
- });
- return redirect('user/show/' . $user->id)->with('successMessage', 'Rekod pengguna berjaya dicipta');
- } else {
- return back()->with('errorMessage', 'Gagal mencipta rekod pengguna. Hubungi BTMK');
- }
- }
- /**
- * Display the specified resource.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function show(User $user)
- {
- return view('user.show', compact('user'));
- }
- /**
- * Show the form for editing the specified resource.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function edit($id)
- {
- $user = User::find($id);
- $positions = Lookup::where('name', 'jawatan')
- ->where('status', 'active')
- ->get();
- $userStatuses = Lookup::where('name', 'user_status')
- ->where('status', 'active')
- ->get();
- $departments = Departments::where('status', '=', 'active')
- ->orderBy('nama', 'asc')
- ->get();
- $roles = Role::where('status', '=', 'active')
- ->orderBy('nama', 'asc')
- ->get();
- return view('user.edit', compact('user', 'positions', 'userStatuses', 'departments', 'roles'));
- }
- /**
- * Update the specified resource in storage.
- *
- * @param \Illuminate\Http\Request $request
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function update(Request $request, User $user)
- {
- // $user = User::find($id);
- $user->name = $request->input('name');
- $user->email = request('email');
- $user->no_kad_pengenalan = request('no_kad_pengenalan');
- $user->telefon = request('telefon');
- $user->department_id = request('jabatan');
- $user->jawatan = request('jawatan');
- $user->password = bcrypt(str_random(8));
- if ($user->save()) {
- // attach role yang dipilih kepada user yang baru di simpan
- $user->role()->attach(request('peranan'));
- // send email
- $data['email'] = $user->email;
- Mail::send('emails.cipta_email_rasmi', $data, function ($message) use ($data) {
- $message->from('admin@intranet.melaka.gov.my', "HR Intranet");
- $message->subject("Email rasmi baru untuk pengguna baru");
- $message->to('mdridzuan@melaka.gov.my');
- $message->cc('asaliza@melaka.gov.my');
- });
- return redirect('user/show/' . $user->id)->with('successMessage', 'Rekod pengguna berjaya dikemaskini');
- } else {
- return back()->with('errorMessage', 'Gagal mengemaskini rekod pengguna. Hubungi BTMK');
- }
- }
- /**
- * Remove the specified resource from storage.
- *
- * @param int $id
- * @return \Illuminate\Http\Response
- */
- public function destroy($id)
- {
- $user = User::find($id);
- $deleteSuccess = $user->delete();
- if ($deleteSuccess) {
- return back()->with('successMessage', 'Pengguna ini berjaya dihapuskan dari pangkalan data');
- } else {
- return back()->with('errorMessage', 'Tidak berjaya menghapuskan rekod pengguna ini. Hubungi admin');
- }
- }
- // untuk admin reset password pengguna. Admin x sepatutnya tahu password pengguna.
- public function resetPassword(User $user)
- {
- return $user;
- // generate random password
- $randomPassword = str_random(8);
- // simpan db password random yang dah di enkrip (temp password)
- $user->password = bcrypt($randomPassword);
- $user->save();
- // send kat email pengguna ini, mengatakan akaun dia dah reset password, dan bagi password
- $data['name'] = $user->name;
- $data['email'] = $user->email;
- $data['new_password'] = $randomPassword;
- Mail::send('emails.reset_password', $data, function ($message) use ($data) {
- $message->from('admin@intranet.melaka.gov.my', "HR Intranet");
- $message->subject("Set Semula Kata Laluan");
- $message->to($data['email']);
- });
- // Redirect ke senarai pengguna dengan mesej berjaya
- return redirect('/user')
- ->with('successMessage', 'Password bagi pengguna : ' . $user->email .
- ' telah berjaya ditetapkan semula');
- }
- // Untuk menyahaktif pengguna
- public function deactivate(User $user)
- {
- $user->status = 'inactive';
- if ($user->save()) {
- return back()->with('successMessage', 'Pengguna ini berjaya ditetapkan sebagai TIDAK AKTIF');
- } else {
- return back()->with('errorMessage', 'Tidak berjaya menyahaktifkan pengguna ini.');
- }
- }
- // Untuk aktifkan semula pengguna
- public function reactivate(User $user)
- {
- $user->status = 'active';
- if ($user->save()) {
- return back()->with('successMessage', 'Pengguna ini berjaya ditetapkan sebagai AKTIF');
- } else {
- return back()->with('errorMessage', 'Tidak berjaya mengaktifkan pengguna ini.');
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement