• File: UserService.php
  • Full Path: /var/www/html/back/app/Domain/Users/UserService.php
  • File size: 785 bytes
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

declare(strict_types=1);

namespace App\Domain\Users;

use App\BaseClasses\BaseService;
use App\Enums\RoleEnum;
use App\Models\Role;
use App\Models\User;

class UserService extends BaseService
{
    /**
     * @param User $user
     * @param RoleEnum $role
     * @return void
     */
    public function assignRole($user, RoleEnum $role, ?int $modelID): void
    {
        Role::create([
            'user_id' => $user->id,
            'role' => $role->value,
            'model_id' => $modelID
        ]);
    }

    public function assignPermissions($user, $permissions, ?int $modelID): void
    {
        if ($user) {
            Role::query()->where(['user_id' => $user->id, 'model_id' => $modelID])->update(['permissions' => json_encode($permissions)]);
        }
    }
}