Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/medad.corals.io/Corals/modules/Medad/Classes/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/medad.corals.io/Corals/modules/Medad/Classes/MedadHooks.php
<?php

namespace Corals\Modules\Medad\Classes;

use Corals\Modules\Medad\DataTables\Scopes\UsersPerCompanyScope;
use Corals\Modules\Medad\Facades\Medad;
use Corals\Modules\Medad\Http\Middleware\IsCompanyConfirmed;
use Corals\User\Models\User;

class MedadHooks
{
    public function get_roles_list_query($rolesQB)
    {
        $roles = ['medad_company_admin', 'superuser'];

        if (isSuperUser()) {
            $user = request()->route('user');
            if ($user && request()->is('*edit')) {
                $roles = $this->checkUserRole($roles, $user);
            }
            return $rolesQB->whereIn('name', $roles);
        }
        return $rolesQB->whereNotIn('name', $roles);
    }

    public function checkUserRole($roles, $user)
    {
        foreach ($user->roles as $role) {
            if (in_array($role->name, $roles)) {
                return $roles;
            }
        }
        return $user->roles->pluck('name');
    }

    public function user_just_created($user)
    {
        if (user()->hasRole('medad_company_admin')) {
            $company = \Medad::getUserCompany();

            if (!$company) {
                return;
            }

            $company->users()->attach($user->id);
        }
    }

    public function datatable_scopes_user($scopes, $queryClass)
    {
        if (user()->cannot('admin', User::class)) {
            $company = \Medad::getUserCompany();

            $scopes[] = new UsersPerCompanyScope($company);
        }

        return $scopes;
    }

    public function acting_as_page_header()
    {
        $company = Medad::getUserCompany();

        if (!$company) {
            return;
        }
        if (user() && user()->cannot('admin', User::class)) {
            $branches = Medad::getUserBranches($company);

            if (count($branches) > 1) {
                $print = '<li class="dropdown" style="margin-right: 20px"><a href="#" class="dropdown-toggle" data-toggle="dropdown">' . trans('Medad::module.branch.title') . '<i class="fa fa-angle-down"></i></a>
                   <ul class="dropdown-menu">';

                foreach ($branches as $branch) {
                    $print .= '<li><a href="' . $branch->getShowURL() . '" 
                     class="dropdown-item">' . $branch->presentStripTags('name') . '</a></li>';
                }

                $print .= '</ul></li>';

                echo $print;
            }
        }

        if ($company->type == 'both' && Medad::getCurrentCompanyType()) {
            $companyType = data_get(trans('Medad::attributes.company.type_options'), Medad::getCurrentCompanyType());

            $print = '<li><a href="' . url('medad/select-acting-company-type') . '" data-action = "modal-load">'
                . trans('Medad::attributes.acting_as', ['type' => $companyType]) . '</a></li>';

            echo $print;
        }
    }

    /**
     * @param $middleware
     * @param $request
     * @return array
     */
    public function usersCompanyConfirmed($middleware, $request)
    {
        if ($request->is('users*')) {
            $middleware[] = IsCompanyConfirmed::class;
        }
        return $middleware;
    }

}

Spamworldpro Mini