This commit is contained in:
holger.trampe 2021-06-11 13:41:52 +02:00
parent a0c7b92dae
commit 3c74cf586c
1 changed files with 25 additions and 16 deletions

View File

@ -122,7 +122,8 @@ class RegistrationService {
IProvider $tokenProvider, IProvider $tokenProvider,
ICrypto $crypto, ICrypto $crypto,
IRequest $request, IRequest $request,
IDBConnection $connection IDBConnection $connection,
AgencyManager $agencyManager
) { ) {
$this->appName = $appName; $this->appName = $appName;
$this->mailService = $mailService; $this->mailService = $mailService;
@ -141,7 +142,7 @@ class RegistrationService {
$this->tokenProvider = $tokenProvider; $this->tokenProvider = $tokenProvider;
$this->crypto = $crypto; $this->crypto = $crypto;
$this->connection = $connection; $this->connection = $connection;
$this->agencyManager = new AgencyManager($connection); $this->agencyManager = $agencyManager;
} }
public function confirmEmail(Registration $registration): void { public function confirmEmail(Registration $registration): void {
@ -341,6 +342,16 @@ class RegistrationService {
return $allowedDomains; 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 Registration $registration
* @param string|null $loginName * @param string|null $loginName
@ -443,37 +454,35 @@ class RegistrationService {
/** /**
* REGISTRIERUNG EINER NEUEN AGENTUR PASSIERT HIER * REGISTRIERUNG EINER NEUEN AGENTUR PASSIERT HIER
*/ */
$newgid = "agency_"; $newgid = "agencymaingroupid_".generateRandomAgencyId();
$newgid_counter = 1;
$groupidfree = false; $groupidfree = false;
while($groupidfree == false){ while($groupidfree == false){
// Find the next free Agency-ID // Find the next free Agency-ID
if($this->groupManager->groupExists($newgid.$newgid_counter) == true){ if($this->groupManager->groupExists($newgid) == true){
$newgid_counter += 1; $newgid = "agencymaingroupid_".generateRandomAgencyId();
} }
else{ else{
$groupidfree = true; $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); $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); $folderManager = new FolderManager($this->connection, $this->groupManager);
// Main-Dir for complete Agency // Main-Dir for complete Agency
$newFolderIdAG = $folderManager->createFolder('Agenturdaten'); $newFolderIdAG = $folderManager->createFolder('Agenturdaten');
$folderManager->addApplicableGroup($newFolderIdAG, $newgroup->getGId()); $folderManager->addApplicableGroup($newFolderIdAG, $newgroup->getGId());
$folderManager->setGroupPermissions($newFolderIdAG, $newgroup->getGId(), '31'); $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 new AGENCY-Object
/** /**
* Create a new Agency with data for fast loading other data * Create a new Agency with data for fast loading other data