Path : /var/www/html/jewelry-pos/app/Http/Controllers/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/html/jewelry-pos/app/Http/Controllers/UserController.php |
<?php namespace App\Http\Controllers; use App\Models\ProductCategory; use App\Models\User; use Illuminate\Auth\AuthenticationException; use Illuminate\Auth\Events\PasswordReset; use Illuminate\Support\Arr; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; use Illuminate\Testing\Fluent\Concerns\Has; use Illuminate\Validation\ValidationException; use MongoDB\Driver\Session; use Spatie\Permission\Models\Permission; use Spatie\Permission\Models\Role; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Hash; use Illuminate\Support\Facades\Auth; /** * @method setUserPassword($user, mixed $password) */ class UserController extends Controller { function __construct() { $this->middleware('permission:user-list', ['only' => ['index','show']]); $this->middleware('permission:user-create', ['only' => ['create','store']]); $this->middleware('permission:user-edit', ['only' => ['edit','update']]); $this->middleware('permission:user-delete', ['only' => ['destroy']]); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $users = User::where('id', '<>', auth()->user()->id)->orderBy('id', 'desc')->paginate(5); $roles = Role::pluck('name', 'name')->all(); $userRole = Auth::user()->name; return view('users.index', compact('users' ,'roles' , 'userRole')) ->with('i'); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $roles = Role::pluck('name', 'name')->all(); return view('users.create', compact('roles')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $this->validate($request, [ 'name' => '', 'phone' => 'required|unique:users|min:3', 'password' => 'required|min:6', 'gender' => '', 'position' => '', 'roles' => 'required' ]); $input = $request->all(); $input['password'] = Hash::make($input['password']); $user = User::create($input); $user->assignRole($request->input('roles')); return redirect()->route('users.index') ->with('success', __('message.user') . " " . __('message.created successfully')); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id , Request $request) { $categoryID = $request->id??''; $user = User::find($id); $productCategories = ProductCategory::orderBy('id' , 'desc')->paginate(25); return view('users.show', compact('user' , 'productCategories' , 'categoryID')); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $user = User::find($id); $roles = Role::pluck('name', 'name')->all(); $userRole = $user->roles->pluck('name', 'name')->all(); return view('users.edit', compact('user', 'roles', 'userRole')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $this->validate($request, [ 'name' => 'required', 'phone' => 'required', // 'password' => 'required|min:3', 'gender' => 'required', 'position' => '', 'roles' => 'required' ]); $input = $request->all(); if (!empty($input['password'])) { $input['password'] = Hash::make($input['password']); } else { $input = Arr::except($input, array('password')); } $user = User::find($id); $user->update($input); DB::table('model_has_roles')->where('model_id', $id)->delete(); $user->assignRole($request->input('roles')); return redirect()->route('users.index')->with('success', __('message.user') . " " . __('message.updated successfully')); // return redirect()->route('users.index') // ->with('success', __('message.user') . " " . __('message.updated successfully')); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { User::find($id)->delete(); return redirect()->route('users.index') ->with('success', __('message.user') . " " . __('message.deleted successfully')); } // UserInactive public function UserInactive($id) { User::findOrFail($id)->update(['is_active' => 0]); return redirect()->route('users.index') ->with('success', 'User is inactive'); } // UserActive public function Useractive($id) { User::findOrFail($id)->update(['is_active' => 1]); return redirect()->route('users.index') ->with('success', 'User is active'); } // Changepassword public function editPassword($id) { $user = User::find($id); return view('users.changepassword', compact('user')); } /** * @throws AuthenticationException * @throws ValidationException */ public function updatePassword(Request $request, $id) { $input = $this->validate($request, [ 'password' => 'required|min:4', ]); // $input = $request->all(); $user = User::findOrFail($id); if (!empty($input['password'])) { if (Auth::id() == $id || Auth::user()->name === 'Admin') { $user['password'] = Hash::make($input['password']); $user->save(); if($user->name !== Auth::user()->name){ $user = $request->user('web'); Auth::guard('web')->logout(); Auth::login($user); // if(Auth::guard('admin')){ // Auth::guard('web')->logout(); // } } Auth::login($user); return redirect()->back() ->with('success', __('message.user')." ". __('message.updated successfully')); } return redirect()->route('users.index')->with('fail', __('message.user')." ". __('message.updated not successfully')); } // if (!empty($input['password'])) { // $input = Auth::user(); // $input->password = Hash::make($request->get('password')); // $input->save(); //// Auth::logout(); //// Auth::logoutOtherDevices($input->password); // return redirect()->route('users.index')->with('success', 'Password changed successfully'); // } } private function markForLogoutById($id) { } }