$server->id, 'username' => $input['username'], 'password' => $input['password'], 'host' => (isset($input['remote']) && $input['remote']) || isset($input['host']) ? $input['host'] : 'localhost', 'databases' => $links, ]); /** @var Database $databaseHandler */ $databaseHandler = $server->database()->handler(); $databaseHandler->createUser( $databaseUser->username, $databaseUser->password, $databaseUser->host ); $databaseUser->status = DatabaseUserStatus::READY; $databaseUser->save(); if (count($links) > 0) { app(LinkUser::class)->link($databaseUser, ['databases' => $links]); } return $databaseUser; } /** * @throws ValidationException */ public static function rules(Server $server, array $input): array { $rules = [ 'username' => [ 'required', 'alpha_dash', Rule::unique('database_users', 'username')->where('server_id', $server->id), ], 'password' => [ 'required', 'min:6', ], ]; if (isset($input['remote']) && $input['remote']) { $rules['host'] = 'required'; } return $rules; } }