KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /var/www/account.appointkrypt.com/app/Http/Controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/account.appointkrypt.com/app/Http/Controllers/StaffController.php
<?php

namespace App\Http\Controllers;

use App\Models\Staff;
use App\Models\Business;
use App\Models\Location;
use App\Models\Service;
use App\Models\User;
use App\Models\Role;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Hash;

class StaffController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create(Request $request)
    {
        if(Auth::user()->isAbleTo('staff create'))
        {
            $business = Business::find($request->business_id);
            $location = Location::where('created_by',creatorId())->where('business_id',$business->id)->get()->pluck('name', 'id');
            $service = Service::where('created_by',creatorId())->where('business_id',$business->id)->get()->pluck('name', 'id');

            return view('staff.create',compact('business','location','service'));
        }
        else
        {
            return redirect()->back()->with('error', __('Permission denied.'));
        }
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
    {
        if(Auth::user()->isAbleTo('staff create'))
        {
            $validator = \Validator::make(
                $request->all(), [
                    'name' => 'required',
                    'email' => 'required',
                    'location' => 'required',
                    'service' => 'required',
                    ]
                );

                if($validator->fails())
                {
                    $messages = $validator->getMessageBag();

                    return redirect()->back()->with('error', $messages->first());
                }
                $business = Business::find($request->business_id);
                $roles = Role::where('name','staff')->where('created_by',creatorId())->first();
                if($roles)
                {
                    if ($request->hasFile('image'))
                    {
                        $filenameWithExt = $request->file('image')->getClientOriginalName();
                        $filename        = pathinfo($filenameWithExt, PATHINFO_FILENAME);
                        $extension       = $request->file('image')->getClientOriginalExtension();
                        $fileNameToStore = $filename . '_' . time() . '.' . $extension;

                        $uplaod = upload_file($request,'image',$fileNameToStore,'Staff');
                        if($uplaod['flag'] == 1)
                        {
                            $url = $uplaod['url'];
                        }
                        else
                        {
                            return redirect()->back()->with('error',$uplaod['msg']);
                        }
                    }

                    $user = User::create(
                    [
                        'name' => !empty($request->name) ? $request->name : null,
                        'email' => !empty($request->email) ? $request->email : null,
                        'email_verified_at' => date('Y-m-d h:i:s'),
                        'password' => !empty($request->password) ? Hash::make($request->password) : null,
                        'avatar' => !empty($request->image) ? $url : 'uploads/users-avatar/avatar.png',
                        'type' => $roles->name,
                        'lang' => 'en',
                        'business_id' => $business->id,
                        'created_by' => creatorId(),
                    ]);

                    $user->save();
                    $user->addRole($roles);

                    $staff                           = new Staff();
                    $staff->name                     = $request->name;
                    $staff->user_id                  = $user->id;
                    $staff->location_id              = implode(',',$request->location);
                    $staff->service_id               = !empty(implode(',',$request->service)) ? implode(',',$request->service) : '';
                    $staff->description              = !empty($request->description) ? $request->description : '';
                    $staff->business_id              = $business->id;
                    $staff->created_by               = creatorId();
                    $staff->save();

                    return redirect()->back()->with('success', __('Staff successfully created.'));
                }
                else
                {
                    return redirect()->back()->with('error', __('Please create staff role.'));
                }

        }
        else
        {
            return redirect()->back()->with('error', __('Permission denied.'));
        }
    }

    /**
     * Display the specified resource.
     */
    public function show(Staff $staff)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(Staff $staff)
    {
        if(Auth::user()->isAbleTo('staff edit'))
        {
            $location = Location::where('created_by',creatorId())->where('business_id',$staff->business_id)->get()->pluck('name', 'id');
            $service = Service::where('created_by',creatorId())->where('business_id',$staff->business_id)->get()->pluck('name', 'id');

            return view('staff.edit',compact('staff','location','service'));
        }
        else
        {
           return redirect()->back()->with('error', __('Permission denied.'));
        }
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, Staff $staff)
    {
        if(Auth::user()->isAbleTo('staff edit'))
        {

            $validator = \Validator::make(
                $request->all(), [
                    'name' => 'required',
                    'email' => 'required',
                    'location' => 'required',
                    'service' => 'required',
                ]
            );

            if($validator->fails())
            {
                $messages = $validator->getMessageBag();

                return redirect()->back()->with('error', $messages->first());
            }

            $roles = Role::where('name','staff')->where('created_by',creatorId())->first();
            if($roles)
            {
                $staff->name = $request->name;
                $staff->location_id = implode(',',$request->location);
                $staff->service_id = implode(',',$request->service);
                $staff->description = !empty($request->description) ? $request->description : '';
                $staff->save();

                $user = User::where('id',$staff->user_id)->first();
                if ($request->hasFile('image'))
                {
                    if(!empty($user->avatar))
                    {
                        delete_file($user->avatar);
                    }
                    $filenameWithExt = $request->file('image')->getClientOriginalName();
                    $filename        = pathinfo($filenameWithExt, PATHINFO_FILENAME);
                    $extension       = $request->file('image')->getClientOriginalExtension();
                    $fileNameToStore = $filename . '_' . time() . '.' . $extension;

                    $uplaod = upload_file($request,'image',$fileNameToStore,'Staff');
                    if($uplaod['flag'] == 1)
                    {
                        $url = $uplaod['url'];
                    }
                    else
                    {
                        return redirect()->back()->with('error',$uplaod['msg']);
                    }
                    $user->avatar  = !empty($request->image) ? $url : '';
                }
                if($user)
                {
                    $user->name                     = $request->name;
                    $user->type = $roles->name;
                    $user->save();
                }

                return redirect()->back()->with('success', __('Staff updated successfully!'));
            }
            else
            {
                return redirect()->back()->with('error', __('Please create staff role.'));
            }

        }
        else
        {
            return redirect()->back()->with('error', __('Permission denied.'));
        }
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(Staff $staff)
    {
        if(Auth::user()->isAbleTo('staff delete'))
        {
            $user = User::find($staff->user_id)->first();
            if($user)
            {
                if(!empty($user->avatar))
                {
                    delete_file($user->avatar);
                }
                $user->delete();
                $staff->delete();
            }
            return redirect()->back()->with('error', __('Staff successfully delete.'));
        }
        else
        {
            return redirect()->back()->with('error', __('Permission denied.'));
        }
    }
}

Anon7 - 2021