vito/app/Actions/Database/LinkUser.php
Saeed Vaziry 5c72f12490 init
2023-07-02 12:47:50 +02:00

31 lines
798 B
PHP
Executable File

<?php
namespace App\Actions\Database;
use App\Models\Database;
use App\Models\DatabaseUser;
use Illuminate\Validation\ValidationException;
class LinkUser
{
/**
* @throws ValidationException
*/
public function link(DatabaseUser $databaseUser, array $databases): void
{
$dbs = Database::query()
->where('server_id', $databaseUser->server_id)
->whereIn('name', $databases)
->count();
if (count($databases) !== $dbs) {
throw ValidationException::withMessages(['databases' => __('Databases not found!')])
->errorBag('linkUser');
}
$databaseUser->databases = $databases;
$databaseUser->unlinkUser();
$databaseUser->linkUser();
$databaseUser->save();
}
}