da_agency/lib/Controller/PublicController.php

73 lines
2.5 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 createGroupFolder(string $gid, string $aid, bool $newagency=false): DataResponse{
if($newagency == false){
$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');
}
// Groupfolder, when a new Agency is registered
else{
$folderManager = new FolderManager($this->connection, $this->groupManager);
$newFolderIdAG = $folderManager->createFolder('Agenturdaten');
## Hinzufügen der Mitarbeitergruppe der entsprechenden Agentur
$folderManager->addApplicableGroup($newFolderIdAG, $gid);
$folderManager->setGroupPermissions($newFolderIdAG, $gid, '31');
}
return new DataResponse(array("status" => $aid));
}
/**
*
* @NoCSRFRequired
*/
public function renameAgencyGroup(string $name, string $id): DataResponse{
$this->groupManager->get($id)->setDisplayName($name);
return new DataResponse(array("data" => $name." ".$id));
}
}