Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/bendahara2.aplikasipos.info/app/Http/Controllers/
Upload File :
Current File : /home/aplikasiposinfo/www/bendahara2.aplikasipos.info/app/Http/Controllers/UserController.php

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Barryvdh\DomPDF\Facade\Pdf;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Support\Facades\Hash;

class UserController extends Controller
{
    public function index()
    {
        $data['title'] = 'E-Cash - Users';
        $data['users'] = User::all();
        return view('users.index')->with($data);
    }


    public function store(Request $request)
    {
        $request->validate([
            'name' => 'required',
            'email' => 'required|email|unique:users',
            'password' => 'required',
            'level' => 'required',
            'photo' => 'mimes:jpg,jpeg,png,gif,svg'
        ], ['email.unique' => 'The email has already been taken.']);

        $data = [
            'name' => $request->name,
            'email' => $request->email,
            'level' => $request->level,
            'password' => bcrypt($request->password)
        ];

        if ($request->hasFile('photo')) {
            $foto_file = $request->file('photo');
            $foto_ekstensi = $foto_file->extension();
            $foto_baru = "User-" . date('ymdhis') . ".$foto_ekstensi";
            $foto_file->move(public_path('images'), $foto_baru);
            $data['photo'] = "/storage/".$request->photo->store('profile/'.$foto_baru,'public');
        }

        User::create($data);
        return redirect()->route('users.index')->with('success', 'Data successfully added');
    }

    public function update(Request $request, string $id)
    {
        try {
            $decryptedId = Crypt::decryptString($id);

            $request->validate([
                'name' => 'required',
                'email' => 'required|email',
                'level' => 'required',
                'photo' => 'mimes:jpg,jpeg,png,gif,svg'
            ]);

            $data = [
                'name' => $request->name,
                'level' => $request->level,
                'email' => $request->email,
            ];

            if ($request->input('password') != '') {
                $data['password'] = Hash::make($request->password);
            }

            // dd("TAI");

            if ($request->hasFile('photo')) {
                $foto_file = $request->file('photo');
                $foto_ekstensi = $foto_file->extension();
                $foto_baru = "User-" . date('ymdhis') . ".$foto_ekstensi";
                $foto_file->move(public_path('images'), $foto_baru);
                $data['photo'] = "/storage/".$request->photo->store('profile/'.$foto_baru,'public');
                $getfoto = User::where('id', $decryptedId)->first();
                $foto_lama = $getfoto->photo;
                // File::delete(public_path('images') . "/" . $foto_lama);
                $user = User::find($decryptedId);
                if(File::exists(public_path().$user->photo)) {
                    File::delete(public_path().$user->photo);
                }
            }

            User::where('id', $decryptedId)->update($data);
            return redirect()->route('users.index')->with('success', 'Data successfully changed');
        } catch (DecryptException $e) {
            return redirect()->back()->with('error', 'Invalid ID');
        }
    }

    public function destroy(string $id)
    {
        try {
            $decryptedId = Crypt::decryptString($id);
            $getfoto = User::where('id', $decryptedId)->first();
            $foto_lama = $getfoto->photo;
            File::delete(public_path('images') . "/" . $foto_lama);

            User::where('id', $decryptedId)->delete();
            return redirect()->route('users.index')->with('success', 'Data successfully deleted');
        } catch (DecryptException $e) {
            return redirect()->back()->with('error', 'Invalid ID');
        }
    }

    public function print()
    {
        $data['title'] = 'Print Users';
        $data['users'] = User::orderBy('name', 'asc')->get();;
        $pdf = Pdf::loadView('users.print', $data);
        $pdf->setOption(['defaultFont' => 'sans-serif'])->setpaper('A4', 'potrait');
        return $pdf->download('Ekspor-Users.pdf');
    }

    public function profile()
    {
        $data['title'] = 'Profile';
        return view('profile')->with($data);
    }

    public function profileUpdate(Request $request, string $id)
    {
        try {
            $decryptedId = Crypt::decryptString($id);

            $request->validate([
                'name' => 'required',
                'email' => 'required|email',
                'photo' => 'mimes:jpg,jpeg,png,gif,svg'
            ]);

            $data = User::find($decryptedId);

            $data = [
                'name' => $request->name,
                // 'level' => $request->level,
                'email' => $request->email,
            ];

            if ($request->input('password') != '') {
                $data['password'] = Hash::make($request->password);
            }

            if ($request->hasFile('photo')) {
                $foto_file = $request->file('photo');
                $foto_ekstensi = $foto_file->getClientOriginalExtension();
                $foto_baru = "User-" . date('ymdhis') . ".$foto_ekstensi";

                $filename = $request->file('photo')->getClientOriginalName();
                $filenameExtension = $request->file('photo')->getClientOriginalExtension();

                $fileNameSimpan = $filename.'_'.time().'.'.$filenameExtension;

                // $foto_file->move(public_path('images'), $foto_baru);
                // $data['photo'] = $foto_baru;
                $data['photo'] = "/storage/".$request->photo->store('profil/'.$fileNameSimpan,'public');

                $getfoto = User::where('id', $decryptedId)->first();
                $foto_lama = $getfoto->photo;
                // File::delete(public_path('images') . "/" . $foto_lama);
                $user = User::find($decryptedId);
                if(File::exists(public_path().$foto_lama)) {
                    File::delete(public_path().$foto_lama);
                }
            }

            User::where('id', $decryptedId)->update($data);
            return redirect()->route('profile')->with('success', 'Data successfully changed');
        } catch (DecryptException $e) {
            return redirect()->back()->with('error', 'Invalid ID');
        }
    }
}

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