KUJUNTI.ID MINISH3LL
Path : /var/www/html/jewelry-pos/app/Http/Controllers/
(S)h3ll Cr3at0r :
F!le Upl0ad :

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)
    {
    }
}

© KUJUNTI.ID