da_agency/lib/Controller/MigrateController.php

115 lines
3.7 KiB
PHP

<?php
namespace OCA\Agency\Controller;
use OCP\IRequest;
use OCP\IUserSession;
use OCP\IGroupManager;
use OCP\IUserManager;
use OCP\IGroup;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Controller;
use OCP\IDBConnection;
use OCA\GroupFolders\Folder\FolderManager;
class MigrateController extends Controller {
protected $userSession;
protected $request;
protected $connection;
protected $groupManager;
protected $userManager;
use Errors;
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;
}
// Return an random Id-Ele for generating single IDs
public function generateRandomPassword($length = 50) {
$characters = '_=()?!-ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
/**
* @NoCSRFRequired
*/
public function startMigration(string $agencyid, string $mainurl) {
$json = file_get_contents($mainurl.$agencyid);
// Hier werden die Nutzer erstellt, anhand eines JSON-Arrays von der API (migrateAgency)
$ag_data = json_decode($json, true);
$feedbackstring = "Erstelle Nutzer: ";
foreach($ag_data as $ele){
$feedbackstring .= $ele['displayname'].", ";
if($this->userManager->userExists($ele['userid']) == false){
$tempuser = $this->userManager->createUser($ele['userid'], $this->generateRandomPassword());
$tempuser->setEmailAddress($ele['userid']);
$tempuser->setDisplayName($ele['displayname']);
}
}
return $feedbackstring;
}
/**
* @PublicPage
* @NoCSRFRequired
* @NoAdminRequired
*/
public function getcurrentuser(){
return $this->userSession->getUser()->getUID();
}
/**
* Method change the GroupName - ADMIN NEED!
*
* @PublicPage
* @NoCSRFRequired
* @NoAdminRequired
*/
public function renameGroup(string $id, string $name){
$this->groupManager->get($id)->setDisplayName($name);
return 'OK!';
}
/**
* @NoAdminRequired
*/
public function createAGGroupFolder(string $gid, string $aid){
//if($sk == "lkjahstaszd76uhjNJABHM65rftzvb323ADSD567tzu9ztz"){
#$folderManager = new FolderManager($this->connection, $this->groupManager);
#$newFolderIdAG = $folderManager->createFolderss('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 JSONResponse([
'status' => 'error',
'data' => [
'message' => 'Folder not found'
],
]);
// }
//else{
// return var_dump("FAIL GF CREATING");
#}
}
}