da_agency/lib/Controller/PublicController.php

51 lines
1.7 KiB
PHP

<?php
declare(strict_types=1);
namespace OCA\Agency\Controller;
use OCP\AppFramework\OCSController;
use OCP\IRequest;
use OCP\AppFramework\Http\DataResponse;
use OCP\IDBConnection;
use OCP\IUserSession;
use OCP\IGroupManager;
use OCP\IUserManager;
use OCP\IGroup;
use OCA\GroupFolders\Folder\FolderManager;
class PublicController extends OCSController {
protected $userSession;
protected $request;
protected $connection;
protected $groupManager;
protected $userManager;
public function __construct(string $AppName, IRequest $request, IUserSession $userSession,IDBConnection $connection, IGroupManager $groupManager, IUserManager $userManager){
parent::__construct($AppName, $request);
$this->userSession = $userSession;
$this->request = $request;
$this->connection = $connection;
$this->groupManager = $groupManager;
$this->userManager = $userManager;
}
/**
*
* @NoCSRFRequired
*/
public function publicresponse(string $gid, string $aid): DataResponse{
$folderManager = new FolderManager($this->connection, $this->groupManager);
$newFolderIdAG = $folderManager->createFolder('Agenturdaten_'.$aid);
## Hinzufügen der Mitarbeitergruppe der entsprechenden Agentur
$folderManager->addApplicableGroup($newFolderIdAG, $gid);
$folderManager->setGroupPermissions($newFolderIdAG, $gid, '31');
## Hinzufügen der Admingruppe, damit die weitere Dateien und Ordneraktionen bei der #Migration klappen
$folderManager->addApplicableGroup($newFolderIdAG, "admin");
$folderManager->setGroupPermissions($newFolderIdAG, "admin", '31');
return new DataResponse(array("status" => $aid));
}
}