Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/demo-jadwal.aplikasipos.info/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/demo-jadwal.aplikasipos.info/app/Http/Controllers/RoleController.php

<?php

namespace App\Http\Controllers;

use App\Helpers\RoleHelper;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
use Illuminate\Routing\UrlGenerator;


class RoleController extends Controller
{
    /**
     * Display a listing of the resource.
     */

    public $breadcrumbs;
    public $menu = "role";

    public function __construct(UrlGenerator $urlGenerator)
    {
        $this->breadcrumbs = [
            ['title' => 'Home', 'url' => $urlGenerator->route('dashboard')],
            ['title' => 'Pengaturan Aplikasi', 'url' => "#"],
            ['title' => 'Role & Permission', 'url' => $urlGenerator->route('role.index')],
        ];
    }

    public function index()
    {   
        if(!Auth()->user()->can('view '.$this->menu)){            
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $breadcrumbs = $this->breadcrumbs;
        
        $title = "Role & Permission";
        $url = "role";
        $menu = $this->menu;
        
        $datas = Role::all();
        return view('pages.role.index', compact('title', 'url', 'menu', 'datas', 'breadcrumbs'));
    }
    
    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        if(!Auth()->user()->can('create '.$this->menu)){            
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $breadcrumbs = $this->breadcrumbs;
        
        $title = "Role & Permission";
        $url = "role";
        $menu = $this->menu;

        $permissions = RoleHelper::permissions();
        $datas = Role::all();
        return view('pages.role.create', compact('title', 'url', 'menu', 'datas', 'permissions', 'breadcrumbs', 'permissions'));

    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {   
        if(!Auth()->user()->can('create '.$this->menu)){            
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }

        $request->validate([
            'name' => 'required|string|unique:roles,name',
            'permissions' => 'required|array'
        ]);

        foreach ($request->permissions as $key => $value) {
            Permission::firstOrCreate(['name' => $value]);
        }

        DB::beginTransaction();
        try {
            $role = Role::create([
                'name' => $request->name
            ]);
            
            $role->syncPermissions($request->permissions);
            DB::commit();
            return redirect()->route('role.index')->with('success','Berhasil menambah role');
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return back()->with('error','Gagal menambah role : ' . $th->getMessage())->withInput();
        }
    }

    /**
     * Display the specified resource.
     */
    public function show(Role $role)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(Role $role)
    {
        if(!Auth()->user()->can('edit '.$this->menu)){            
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }
        $breadcrumbs = $this->breadcrumbs;

        $title = "Role & Permission";
        $url = "role";
        $menu = $this->menu;

        $permissions = RoleHelper::permissions();
        $datas = Role::all();
        return view('pages.role.edit', compact('title', 'url', 'menu', 'datas', 'permissions', 'role', 'breadcrumbs'));
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, Role $role)
    {
        if(!Auth()->user()->can('edit '.$this->menu)){            
            return back()->with('error', 'Anda Tidak Memiliki Hak Akses Untuk Membuka Halaman Ini');
        }

        $request->validate([
            'name' => 'required|string|unique:roles,name,'.$role->id,
            'permissions' => 'required|array'
        ]);

        foreach ($request->permissions as $key => $value) {
            Permission::firstOrCreate(['name' => $value]);
        }

        DB::beginTransaction();
        try {
            $role->update([
                'name' => $request->name
            ]);
            $role->syncPermissions($request->permissions);
            DB::commit();
            return redirect()->route('role.index')->with('success','Berhasil mengubah role');
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return back()->with('error','Gagal mengubah role : ' . $th->getMessage())->withInput();
        }
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(Role $role)
    {   
        if(auth()->user()->id == $role->id){
            return redirect()->route('role.index')->with('error','Tidak dapat menghapus role yang sedang login');
        }
        DB::beginTransaction();
        try {
            $role->delete();
            DB::commit();
            return redirect()->route('role.index')->with('success','Berhasil menghapus role');
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return redirect()->route('role.index')->with('error','Gagal menghapus role : ' . $th->getMessage());
        }
    }
}

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