diff --git a/lib/Service/RegistrationService.php b/lib/Service/RegistrationService.php index 66a733f..51df26d 100644 --- a/lib/Service/RegistrationService.php +++ b/lib/Service/RegistrationService.php @@ -122,7 +122,8 @@ class RegistrationService { IProvider $tokenProvider, ICrypto $crypto, IRequest $request, - IDBConnection $connection + IDBConnection $connection, + AgencyManager $agencyManager ) { $this->appName = $appName; $this->mailService = $mailService; @@ -141,7 +142,7 @@ class RegistrationService { $this->tokenProvider = $tokenProvider; $this->crypto = $crypto; $this->connection = $connection; - $this->agencyManager = new AgencyManager($connection); + $this->agencyManager = $agencyManager; } public function confirmEmail(Registration $registration): void { @@ -341,6 +342,16 @@ class RegistrationService { return $allowedDomains; } + function generateRandomAgencyId($length = 6) { + $characters = '0123456789'; + $charactersLength = strlen($characters); + $randomString = ''; + for ($i = 0; $i < $length; $i++) { + $randomString .= $characters[rand(0, $charactersLength - 1)]; + } + return $randomString; + } + /** * @param Registration $registration * @param string|null $loginName @@ -443,37 +454,35 @@ class RegistrationService { /** * REGISTRIERUNG EINER NEUEN AGENTUR PASSIERT HIER */ - $newgid = "agency_"; - $newgid_counter = 1; + $newgid = "agencymaingroupid_".generateRandomAgencyId(); $groupidfree = false; while($groupidfree == false){ // Find the next free Agency-ID - if($this->groupManager->groupExists($newgid.$newgid_counter) == true){ - $newgid_counter += 1; + if($this->groupManager->groupExists($newgid) == true){ + $newgid = "agencymaingroupid_".generateRandomAgencyId(); } else{ $groupidfree = true; } } - $newgroup = $this->groupManager->createGroup($newgid.$newgid_counter); + //Creating default groups + $newgroup = $this->groupManager->createGroup($newgid); + $newgroup = $this->groupManager->setDisplayName("Mitarbeiter"); $newgroup->addUser($user); - /** - * TODO: Im Meeting einmal klären, was nun mit den Ordnern genau laufen soll und das dann HIER aktualisieren. - */ - // Create two new Directorys for that agency + $newgroup_admins = $this->groupManager->createGroup($newgid."_defaultadmingroup"); + $newgroup_admins = $this->groupManager->setDisplayName("Administratoren"); + $newgroup_admins->addUser($user); + + // Create default Dirs $folderManager = new FolderManager($this->connection, $this->groupManager); + // Main-Dir for complete Agency $newFolderIdAG = $folderManager->createFolder('Agenturdaten'); $folderManager->addApplicableGroup($newFolderIdAG, $newgroup->getGId()); $folderManager->setGroupPermissions($newFolderIdAG, $newgroup->getGId(), '31'); - // Upload-Standard-Directory - $newFolderIdSt = $folderManager->createFolder('Standard Uploadbereich'); - $folderManager->addApplicableGroup($newFolderIdSt, $newgroup->getGId()); - $folderManager->setGroupPermissions($newFolderIdSt, $newgroup->getGId(), '31'); - // Create new AGENCY-Object /** * Create a new Agency with data for fast loading other data