Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/reswara.samarinda.app/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/reswara.samarinda.app/app/Http/Controllers/AdminController.php

<?php

namespace App\Http\Controllers;

use App\Helpers\RoleHelper;
use App\Models\Petugas;
use App\Models\User;
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 AdminController extends Controller
{
    /**
     * Display a listing of the resource.
     */

    public $breadcrumbs;
    public $title = "Admin";
    public $url = "admin";
    public $menu = "admin";

    public function __construct(UrlGenerator $urlGenerator)
    {
        $this->breadcrumbs = [
            ['title' => 'Home', 'url' => $urlGenerator->route('dashboard')],
            ['title' => 'Pengaturan Aplikasi', 'url' => "#"],
            ['title' => $this->title, 'url' => $urlGenerator->route($this->url.'.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 = $this->title;
        $url = $this->url;
        $menu = $this->menu;

        $datas = User::role('Admin')->get();
        return view('pages.admin.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 = $this->title;
        $url = $this->url;
        $menu = $this->menu;

        return view('pages.admin.create', compact('title', 'url', 'menu', 'breadcrumbs'));

    }

    /**
     * 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');
        }

        if ($request->password != $request->c_password) {
    		return back()->with('error', 'Mohon Periksa Kembali Password Yang Anda Masukkan')->withInput();
        }

        $request->validate([
            'nama' => 'required',
    		'email' => 'required|unique:users,email',
            'no_hp_siswa' => 'required|unique:petugas,no_hp',
    		// 'password' => 'required',
    		// 'c_password' => 'required|same:password',
        ]);

        DB::beginTransaction();
        try {
            $admin = User::create([
                'nama' => $request->nama,
                'email' => $request->email,
                // 'no_hp_siswa' => $request->no_hp_siswa,
                // 'password' => bcrypt($request->password),
            ]);

            $petugas = Petugas::where('user_id', $admin->id)->first();

            $petugasAdmin = new Petugas();
            $petugasAdmin->user_id = $admin->id;
            $petugasAdmin->nama_petugas = $request->nama;
            $petugasAdmin->no_hp = $request->no_hp_siswa;
            $petugasAdmin->alamat = "A";
            $petugasAdmin->jenis_kelamin = "Laki-Laki";
            $petugasAdmin->tanggal_lahir = "2000-01-01";
            $petugasAdmin->save();

            $admin->assignRole('Admin');

            DB::commit();
            return redirect()->route('admin.index')->with('success','Berhasil menambahkan user');
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return back()->with('error','Gagal menambahkan user : ' . $th->getMessage())->withInput();
        }
    }

    /**
     * Display the specified resource.
     */
    public function show(User $admin)
    {
        //
    }

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

        $title = $this->title;
        $url = $this->url;
        $menu = $this->menu;

        return view('pages.admin.edit', compact('title', 'url', 'menu', 'admin', 'breadcrumbs'));
    }

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

        $request->validate([
            'nama' => 'required',
    		'email' => 'required|unique:users,email,'.$admin->id,
            'no_hp_siswa' => 'required|unique:petugas,no_hp',
    		// 'password' => 'nullable|string',
        ]);

        DB::beginTransaction();
        try {
            // if($request->password){
            //     if ($request->password != $request->c_password) {
            //         return back()->with('error', 'Mohon Periksa Kembali Password Yang Anda Masukkan')->withInput();
            //     }

            //     $admin->update([
            //         'password' => bcrypt($request->password),
            //     ]);
            // }

            $admin->update([
                'nama' => $request->nama,
                'email' => $request->email,
                // 'no_hp_siswa' => $request->no_hp_siswa,
            ]);

            $petugas = Petugas::where('user_id', $admin->id)->first();

            if($petugas) {
                $petugasAdmin = Petugas::find($petugas->id);
            } else {
                $petugasAdmin = new Petugas();
            }
            $petugasAdmin->user_id = $admin->id;
            $petugasAdmin->nama_petugas = $request->nama;
            $petugasAdmin->no_hp = $request->no_hp_siswa;
            $petugasAdmin->alamat = "A";
            $petugasAdmin->jenis_kelamin = "Laki-laki";
            $petugasAdmin->tanggal_lahir = "2000-01-01";
            $petugasAdmin->save();


            // $petuga->user->syncRoles('Petugas');

            // $petuga->update([
            //     'nama_petugas' => $request->nama,
            //     'no_hp' => $request->no_hp_siswa,
            //     'alamat' => $request->alamat,
            //     'jenis_kelamin' => $request->jenis_kelamin,
            //     'tanggal_lahir' => $request->tanggal_lahir,
            // ]);

            // $admin->syncRoles('Admin');

            DB::commit();
            return redirect()->route('admin.index')->with('success','Berhasil mengubah user');
        } catch (\Throwable $th) {
            //throw $th;
            DB::rollback();
            Log::error($th);
            return back()->with('error','Gagal mengubah user : ' . $th->getMessage())->withInput();
        }
    }

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

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