MOON
Server: Apache
System: Linux e2e-78-16.ssdcloudindia.net 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
User: imensosw (1005)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/imensosw/www/mpl.imenso.co/app/Http/Controllers/VenueImpersonationAuthorisationController.php
<?php

namespace App\Http\Controllers;

use App\Http\Requests\VenueImpersonation\VenueAuthoriseImpersonationRequest;
use App\Http\Requests\VenueImpersonation\VenueDeauthoriseImpersonationRequest;
use App\Http\Requests\VenueImpersonation\VenueStoreImpersonationRequest;
use App\Models\Notification;
use App\Models\User;

class VenueImpersonationAuthorisationController extends Controller
{
    public function store(VenueStoreImpersonationRequest $request)
    {
        $requestee = $request->user();
        $requestor = User::where('id', $request->input('requestee_id'))->firstOrFail();

        $requestee->sentImpersonationRequests()->attach([$requestor->id => [
            'requestee_type' => $requestor->getMorphClass(),
        ]]);

        Notification::addNew([
            'type_id' => 410,
            'content' => '<div class="image-holder" style="background-image: url(\'{!App\Models\User::' . $requestee->id . '::profileImageSrc()!}\')"></div><div class="text"><a style="font-weight: normal;" href="/multiple-venue-access"><span style="font-weight: bold;">{!App\Models\User::' . $requestee->id . '::getName()!}</span> has requested access to your venue!</a></div>',
            'user_id' => $requestor->id,
        ]);

        return redirect()->back();
    }

    public function authorise(VenueAuthoriseImpersonationRequest $request)
    {
        $requestee = $request->user();
        $requestor = User::where('id', $request->input('requestor_id'))->firstOrFail();

        $requestee->receivedImpersonationRequests()
            ->updateExistingPivot($requestor->id, [
                'approved_at' => now(),
            ]);

        return redirect()->back();
    }

    public function revoke(VenueDeauthoriseImpersonationRequest $request)
    {
        $requestee = $request->user();
        $requestor = User::where('id', $request->input('requestor_id'))->firstOrFail();

        $requestee->receivedImpersonationRequests()->detach([$requestor->id]);

        return redirect()->back();
    }
}