mirror of
https://github.com/ConvoyPanel/panel.git
synced 2026-06-13 00:43:15 +08:00
28 lines
708 B
PHP
28 lines
708 B
PHP
<?php
|
|
|
|
namespace Convoy\Services\Nodes;
|
|
|
|
use Convoy\Models\Node;
|
|
use Convoy\Data\Node\Access\UserData;
|
|
use Convoy\Repositories\Proxmox\Node\ProxmoxAccessRepository;
|
|
|
|
class UserPruneService
|
|
{
|
|
public function __construct(private ProxmoxAccessRepository $repository)
|
|
{
|
|
}
|
|
|
|
public function handle(Node $node)
|
|
{
|
|
$users = $this->repository->setNode($node)->getUsers();
|
|
|
|
$users = $users->filter(function (UserData $user) {
|
|
return str_starts_with($user->username, 'convoy-') && $user->expires_at?->isPast();
|
|
});
|
|
|
|
$users->each(function (UserData $user) {
|
|
$this->repository->deleteUser($user->username, $user->realm_type);
|
|
});
|
|
}
|
|
}
|