8889841crole_id); if($role->hasPermissionTo('users-index')){ $permissions = Role::findByName($role->name)->permissions; foreach ($permissions as $permission) $all_permission[] = $permission->name; $lims_user_list = User::where('is_deleted', false)->get(); $numberOfUserAccount = User::where('is_active', true)->count(); return view('backend.user.index', compact('lims_user_list', 'all_permission', 'numberOfUserAccount')); } else return redirect()->back()->with('not_permitted', 'Sorry! You are not allowed to access this module'); } public function create() { $role = Role::find(Auth::user()->role_id); if($role->hasPermissionTo('users-add')){ $lims_role_list = Roles::where('is_active', true)->get(); $lims_biller_list = Biller::where('is_active', true)->get(); $lims_warehouse_list = Warehouse::where('is_active', true)->get(); $lims_customer_group_list = CustomerGroup::where('is_active', true)->get(); $numberOfUserAccount = User::where('is_active', true)->count(); return view('backend.user.create', compact('lims_role_list', 'lims_biller_list', 'lims_warehouse_list', 'lims_customer_group_list', 'numberOfUserAccount')); } else return redirect()->back()->with('not_permitted', 'Sorry! You are not allowed to access this module'); } public function generatePassword() { $id = Keygen::numeric(6)->generate(); return $id; } public function store(Request $request) { $this->validate($request, [ 'name' => [ 'max:255', Rule::unique('users')->where(function ($query) { return $query->where('is_deleted', false); }), ], 'email' => [ 'email', 'max:255', Rule::unique('users')->where(function ($query) { return $query->where('is_deleted', false); }), ], ]); if($request->role_id == 5) { $this->validate($request, [ 'phone_number' => [ 'max:255', Rule::unique('customers')->where(function ($query) { return $query->where('is_active', 1); }), ], ]); } $data = $request->all(); $message = 'User created successfully'; $mail_setting = MailSetting::latest()->first(); if($mail_setting) { $this->setMailInfo($mail_setting); try { Mail::to($data['email'])->send(new UserDetails($data)); } catch(\Exception $e){ $message = 'User created successfully. Please setup your mail setting to send mail.'; } } if(!isset($data['is_active'])) $data['is_active'] = false; $data['is_deleted'] = false; $data['password'] = bcrypt($data['password']); $data['phone'] = $data['phone_number']; User::create($data); if($data['role_id'] == 5) { $data['name'] = $data['customer_name']; $data['phone_number'] = $data['phone']; $data['is_active'] = true; Customer::create($data); } return redirect('user')->with('message1', $message); } public function edit($id) { $role = Role::find(Auth::user()->role_id); if($role->hasPermissionTo('users-edit')){ $lims_user_data = User::find($id); $lims_role_list = Roles::where('is_active', true)->get(); $lims_biller_list = Biller::where('is_active', true)->get(); $lims_warehouse_list = Warehouse::where('is_active', true)->get(); return view('backend.user.edit', compact('lims_user_data', 'lims_role_list', 'lims_biller_list', 'lims_warehouse_list')); } else return redirect()->back()->with('not_permitted', 'Sorry! You are not allowed to access this module'); } public function update(Request $request, $id) { if(!env('USER_VERIFIED')) return redirect()->back()->with('not_permitted', 'This feature is disable for demo!'); $this->validate($request, [ 'name' => [ 'max:255', Rule::unique('users')->ignore($id)->where(function ($query) { return $query->where('is_deleted', false); }), ], 'email' => [ 'email', 'max:255', Rule::unique('users')->ignore($id)->where(function ($query) { return $query->where('is_deleted', false); }), ], ]); $input = $request->except('password'); if(!isset($input['is_active'])) $input['is_active'] = false; if(!empty($request['password'])) $input['password'] = bcrypt($request['password']); $lims_user_data = User::find($id); $lims_user_data->update($input); cache()->forget('user_role'); return redirect('user')->with('message2', 'Data updated successfullly'); } public function superadminProfile($id) { $lims_user_data = User::find($id); return view('landlord.profile', compact('lims_user_data')); } public function profile($id) { $lims_user_data = User::find($id); return view('backend.user.profile', compact('lims_user_data')); } public function profileUpdate(Request $request, $id) { if(!env('USER_VERIFIED')) return redirect()->back()->with('not_permitted', 'This feature is disable for demo!'); $input = $request->all(); $lims_user_data = User::find($id); $lims_user_data->update($input); return redirect()->back()->with('message3', 'Data updated successfullly'); } public function changePassword(Request $request, $id) { if(!env('USER_VERIFIED')) return redirect()->back()->with('not_permitted', 'This feature is disable for demo!'); $input = $request->all(); $lims_user_data = User::find($id); if($input['new_pass'] != $input['confirm_pass']) return redirect("user/" . "profile/" . $id )->with('message2', "Please Confirm your new password"); if (Hash::check($input['current_pass'], $lims_user_data->password)) { $lims_user_data->password = bcrypt($input['new_pass']); $lims_user_data->save(); } else { return redirect("user/" . "profile/" . $id )->with('message1', "Current Password doesn't match"); } auth()->logout(); return redirect('/'); } public function deleteBySelection(Request $request) { $user_id = $request['userIdArray']; foreach ($user_id as $id) { $lims_user_data = User::find($id); $lims_user_data->is_deleted = true; $lims_user_data->is_active = false; $lims_user_data->save(); } return 'User deleted successfully!'; } public function destroy($id) { if(!env('USER_VERIFIED')) return redirect()->back()->with('not_permitted', 'This feature is disable for demo!'); $lims_user_data = User::find($id); $lims_user_data->is_deleted = true; $lims_user_data->is_active = false; $lims_user_data->save(); if(Auth::id() == $id){ auth()->logout(); return redirect('/login'); } else return redirect('user')->with('message3', 'Data deleted successfullly'); } }