System: Access: Groups - fix regression in selective delete introduced in https://github.com/opnsense/core/pull/9779

This commit is contained in:
Ad Schellevis 2026-05-27 13:17:32 +02:00
parent aac399ee26
commit 45b90a2f24

View file

@ -88,22 +88,24 @@ class GroupController extends ApiMutableModelControllerBase
return $result;
}
public function delAction($uuid)
public function delAction($uuids)
{
$groupname = null;
$groupnames = [];
if ($this->request->isPost()) {
Config::getInstance()->lock();
$node = $this->getModel()->getNodeByReference('group.' . $uuid);
if ($node->scope == 'system') {
throw new UserException(sprintf(gettext("Not allowed to delete system group %s"), $node->name));
}
if (!empty($node)) {
$groupname = (string)$node->name;
foreach (!empty($uuids) ? explode(",", $uuids) : [] as $uuid) {
$node = $this->getModel()->getNodeByReference('group.' . $uuid);
if ($node->scope == 'system') {
throw new UserException(sprintf(gettext("Not allowed to delete system group %s"), $node->name));
}
if (!empty($node)) {
$groupnames[]= (string)$node->name;
}
}
}
$this->setSaveAuditMessage(sprintf('The group "%s" was successfully removed.', $groupname));
$result = $this->delBase('group', $uuid);
if ($groupname != null) {
$this->setSaveAuditMessage(sprintf('The group "%s" was successfully removed.', implode(',', $groupnames)));
$result = $this->delBase('group', $uuids);
foreach ($groupnames as $groupname) {
(new Backend())->configdpRun('auth sync group', [$groupname]);
}
return $result;