%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/apps/settings/lib/Controller/ |
Current File : /www/varak.net/nextcloud.varak.net/apps/settings/lib/Controller/AuthorizedGroupController.php |
<?php /** * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\Settings\Controller; use OC\Settings\AuthorizedGroup; use OCA\Settings\Service\AuthorizedGroupService; use OCA\Settings\Service\NotFoundException; use OCP\AppFramework\Controller; use OCP\AppFramework\Http\DataResponse; use OCP\DB\Exception; use OCP\IRequest; class AuthorizedGroupController extends Controller { /** @var AuthorizedGroupService $authorizedGroupService */ private $authorizedGroupService; public function __construct(string $AppName, IRequest $request, AuthorizedGroupService $authorizedGroupService) { parent::__construct($AppName, $request); $this->authorizedGroupService = $authorizedGroupService; } /** * @throws NotFoundException * @throws Exception */ public function saveSettings(array $newGroups, string $class): DataResponse { $currentGroups = $this->authorizedGroupService->findExistingGroupsForClass($class); foreach ($currentGroups as $group) { /** @var AuthorizedGroup $group */ $removed = true; foreach ($newGroups as $groupData) { if ($groupData['gid'] === $group->getGroupId()) { $removed = false; break; } } if ($removed) { $this->authorizedGroupService->delete($group->getId()); } } foreach ($newGroups as $groupData) { $added = true; foreach ($currentGroups as $group) { /** @var AuthorizedGroup $group */ if ($groupData['gid'] === $group->getGroupId()) { $added = false; break; } } if ($added) { $this->authorizedGroupService->create($groupData['gid'], $class); } } return new DataResponse(['valid' => true]); } }