diff --git a/appinfo/info.xml b/appinfo/info.xml index 8b40e68..20a745c 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -14,7 +14,7 @@ - Agenturverwaltung + Agenturmigration agency.page.index app.svg diff --git a/appinfo/routes.php b/appinfo/routes.php index 21f9ef7..04b91dd 100644 --- a/appinfo/routes.php +++ b/appinfo/routes.php @@ -15,6 +15,6 @@ return [ ['name' => 'group#addagencygroup', 'url' => '/addagencygroup', 'verb' => 'PUT'], ['name' => 'group#delagencygroup', 'url' => '/delagencygroup/{id}', 'verb' => 'GET'], # DEVELOPMENT - ['name' => 'test#filetest', 'url' => '/filetest', 'verb' => 'GET'], + ['name' => 'migrate#startMigration', 'url' => '/startmigration', 'verb' => 'PUT'], ] ]; diff --git a/lib/Agency/AgencyManager.php b/lib/Agency/AgencyManager.php index abd6483..08c34da 100644 --- a/lib/Agency/AgencyManager.php +++ b/lib/Agency/AgencyManager.php @@ -93,12 +93,14 @@ class AgencyManager { $return_users = array(); // Creating a nice User-JSON-Array foreach($users as $user){ - array_push($return_users, array("user" => $user->getUID(), "displayName" => $user->getDisplayName())); + // TODO: Hier muss noch sichergestellt werden, dass der aktuelle Nutzer, wenn er in der Admingruppe ist, sich selbst nicht entfernen kann + array_push($return_users, array("user" => $user->getUID(), "displayName" => $user->getDisplayName())); } return $return_users; } # TODO: Hier prüfen, ob alle User in der gleichen Agentur sind und er eingeloggte User auch wirklich das Recht dazu hat + // TODO: Hier noch sicherstellen, dass der aktuell eingeloggte User sich nicht selbst aus der Admingruppe werfen darf! public function updateagencygroupcontributors(string $gid, array $users){ // Getting the Group $groupToChange = $this->groupManager->get($gid); @@ -127,7 +129,6 @@ class AgencyManager { } } - return $users; } diff --git a/lib/Controller/MigrateController.php b/lib/Controller/MigrateController.php new file mode 100644 index 0000000..bed6195 --- /dev/null +++ b/lib/Controller/MigrateController.php @@ -0,0 +1,68 @@ +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; + } + + /** + * @NoAdminRequired + */ + 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']); + } + + } + return $feedbackstring; + } +} \ No newline at end of file diff --git a/lib/Service/GroupPermissionService.php b/lib/Service/GroupPermissionService.php index a13a413..abc58dc 100644 --- a/lib/Service/GroupPermissionService.php +++ b/lib/Service/GroupPermissionService.php @@ -40,6 +40,7 @@ class GroupPermissionService { public function create(string $gid, string $permission = "") { $grouppermission = new GroupPermission(); $grouppermission->setGid($gid); + $grouppermission->setPermissions($permission); return $this->mapper->insert($grouppermission); } diff --git a/src/components/Group.vue b/src/components/Group.vue index 4e9538c..fae743e 100644 --- a/src/components/Group.vue +++ b/src/components/Group.vue @@ -2,26 +2,27 @@ - {{ group.name }} - + Standardgruppe - + variant=""> - + +
- Gruppenmitglieder diff --git a/src/components/Permission.vue b/src/components/Permission.vue index daf90c6..54344de 100644 --- a/src/components/Permission.vue +++ b/src/components/Permission.vue @@ -4,6 +4,8 @@

diff --git a/src/main.js b/src/main.js index fb4084d..6f98c3e 100644 --- a/src/main.js +++ b/src/main.js @@ -31,6 +31,5 @@ const router = new VueRouter({ export default new Vue({ el: '#content', router, - // store, render: h => h(App), }) diff --git a/src/router/routes.js b/src/router/routes.js index d479c31..86c4ec1 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -1,10 +1,10 @@ import AgencyData from '../views/AgencyData' -import Testing from '../views/Testing' +import Migrate from '../views/Migrate' import GroupManagement from '../views/GroupManagement' export default [ { - path: '/', + path: '/agencydata', name: 'agencydata', component: AgencyData, }, @@ -14,8 +14,8 @@ export default [ component: GroupManagement, }, { - path: '/testing', - name: 'testing', - component: Testing, + path: '/', + name: 'migrate', + component: Migrate, }, ] diff --git a/src/store.js b/src/store.js index e7b0d7d..0c85f73 100644 --- a/src/store.js +++ b/src/store.js @@ -1,4 +1,4 @@ -import Vue from 'vue' +/*import Vue from 'vue' import Vuex from 'vuex' import { generateUrl } from '@nextcloud/router' const axios = require('axios').default @@ -37,4 +37,4 @@ export default new Vuex.Store({ return false }, }, -}) +})*/ diff --git a/src/views/Migrate.vue b/src/views/Migrate.vue new file mode 100644 index 0000000..b100b3d --- /dev/null +++ b/src/views/Migrate.vue @@ -0,0 +1,64 @@ + + diff --git a/src/views/Testing.vue b/src/views/Testing.vue deleted file mode 100644 index 91569c2..0000000 --- a/src/views/Testing.vue +++ /dev/null @@ -1,37 +0,0 @@ - -