This commit is contained in:
holger.trampe 2021-07-01 19:58:02 +02:00
parent 6b793cd582
commit b27d546533
2 changed files with 24 additions and 19 deletions

View File

@ -100,20 +100,34 @@ class AgencyManager {
# TODO: Hier prüfen, ob alle User in der gleichen Agentur sind und er eingeloggte User auch wirklich das Recht dazu hat
public function updateagencygroupcontributors(string $gid, array $users){
// Getting the Group
$groupToChange = $this->groupManager->get($gid);
// Getting the Users in Group
$usersInGroup = $groupToChange->getUsers();
foreach($usersInGroup as $user){
if($groupToChange->canRemoveUser()){
// Preparing new Users, creating Array of Users
$newUsersInGroup = array();
foreach($users as $user) {
$tempuser = $this->userManager->get($user);
array_push($newUsersInGroup, $tempuser);
}
// Removing not existing users
foreach($usersInGroup as $user) {
if($groupToChange->inGroup($user) == true && in_array($newUsersInGroup, $user) == false) {
$groupToChange->removeUser($user);
}
}
foreach($users as $user) {
if($groupToChange->canAddUser()){
$groupToChange->addUser($this->userManager->get($user));
// Adding new Users
foreach($newUsersInGroup as $user) {
if($groupToChange->inGroup($user) == false) {
$groupToChange->addUser($user);
}
}
return $users;
}

View File

@ -25,13 +25,6 @@
<span v-if="group.isDefault">Ist default</span>
<span v-else>Nicht default</span>
<hr>
<!-- SHAREING -->
<!--<Multiselect
:v-model="contributors"
:multiple="true"
placeholder="Suche"
:options="agencyContributor"
@input="updateContributor" />-->
<Multiselect v-if="!group.isMainGroup"
v-model="value"
:options="formattedContributors"
@ -58,7 +51,7 @@ import { generateUrl } from '@nextcloud/router'
import axios from '@nextcloud/axios'
import Permission from './Permission'
import { Multiselect, ListItemIcon } from '@nextcloud/vue'
// TODO: Wenn eine neue Gruppe erstellt wird, ist das MultiSelect-Field NICHT leer :( Da nochmal schauen!
export default {
name: 'Group',
components: {
@ -81,24 +74,22 @@ export default {
return {
// Main Group-ID for all Accordions
groupDefId: 'acc_groupele_',
value: [],
value: null,
contributors: [],
formattedContributors: [],
}
},
mounted() {
this.value = null
this.formattedContributors = []
created() {
this.getAgencyContributors()
},
methods: {
// Update new Users to the Group
async updateContributorsValue() {
const selectedUsers = []
this.value.forEach((item) => {
selectedUsers.push(item.user)
})
const r = await axios.put(generateUrl('/apps/agency/updateagencygroupcontributors/' + this.group.gid), { users: selectedUsers })
console.log(r)
await axios.put(generateUrl('/apps/agency/updateagencygroupcontributors/' + this.group.gid), { users: selectedUsers })
},
// Contributors changed, update the formattedContributors for the Field
updateContributors() {