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
-
+ icon="icon-group" />-->
-
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 @@
+
+
+
+ Agenturmigration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Migration starten
+
+
+
+
+ {{ feedbackstring }}
+
+
+
+
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 @@
-
-
-
- Allgemeine Tests für den ganzen stuff
-
-
-
-
-