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/ts.corals.io/corals-api/Corals/core/User/Http/Requests/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/ts.corals.io/corals-api/Corals/core/User/Http/Requests/UserRequest.php
<?php

namespace Corals\User\Http\Requests;

use Corals\Foundation\Http\Requests\BaseRequest;
use Corals\Settings\Facades\Settings;
use Corals\User\Facades\Roles;
use Corals\User\Facades\TwoFactorAuth;
use Corals\User\Models\Role;
use Corals\User\Models\User;
use Illuminate\Support\Arr;
use Illuminate\Support\Str;
use Illuminate\Validation\Rule;

class UserRequest extends BaseRequest
{
    /**
     * @var mixed
     */
    protected $employee_role_id;

    public function __construct(array $query = [], array $request = [], array $attributes = [], array $cookies = [], array $files = [], array $server = [], $content = null)
    {
        $employee_role_name = Settings::get('employee_role_name');

        $role = Role::findByName($employee_role_name, 'web');

        if (!$role) {
            abort(400, 'Invalid role name');
        }

        $this->employee_role_id = $role->id;

        parent::__construct($query, $request, $attributes, $cookies, $files, $server, $content);
    }

    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        $this->model = $this->route('user');

        $this->model = is_null($this->model) ? User::class : $this->model;

        return $this->isAuthorized();
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        $this->setModel(User::class);
        $rules = parent::rules();
        $is_two_factor_auth_enabled = \TwoFactorAuth::isActive();

        $roles = Arr::wrap($this->roles);

        if ($this->isUpdate() || $this->isStore()) {
            $rules = array_merge($rules, [
                    'name' => 'required|max:191',
                    'last_name' => 'required|max:191',
                    'roles' => 'required',
                    'roles.*' => Rule::in(array_keys(Roles::getRolesList())),
                    'status' => 'required',
                    'picture' => 'mimes:jpg,jpeg,png|max:' . maxUploadFileSize(),
                    'start_date' => Rule::when(in_array($this->employee_role_id, $roles), 'required'),
                    'position' => Rule::when(in_array($this->employee_role_id, $roles), 'required'),
                    'employee_type' => Rule::when(in_array($this->employee_role_id, $roles), 'required'),
                    'default_activity_id' => Rule::when(in_array($this->employee_role_id, $roles), 'required'),

                ]
            );
        }

        if ($this->isStore()) {
            $rules = array_merge($rules, [
                    'email' => 'required|email|max:191|unique:users,email',
                    'password' => 'required|confirmed|max:191|min:6'
                ]
            );
        }

        if ($this->isUpdate()) {
            $user = $this->route('user');

            $rules = array_merge($rules, [
                    'email' => 'required|email|max:191|unique:users,email,' . $user->id,
                    'password' => 'nullable|confirmed|max:191|min:6'
                ]
            );
            if ($is_two_factor_auth_enabled) {
                $rules = array_merge($rules, TwoFactorAuth::registrationValidation($this->all()));
            }
        }
        return $rules;
    }

    protected function getValidatorInstance()
    {
        $data = $this->all();

        if ($this->isStore() && empty($data['password'])) {
            $data['password'] = Str::random(6);
            $data['password_confirmation'] = $data['password'];
        }

        if ($this->isStore() || $this->isUpdate()) {
            $roles = Arr::wrap($this->roles);

            if (!in_array($this->employee_role_id, $roles)) {
                $data['start_date'] = null;
                $data['position'] = null;
                $data['employee_type'] = null;
                $data['working_hours'] = null;
                $data['salary'] = null;
                $data['salary_period'] = null;
                $data['hourly_rate'] = null;
            }
        }

        $this->getInputSource()->replace($data);

        return parent::getValidatorInstance();
    }
}

Spamworldpro Mini