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 # 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){ public function updateagencygroupcontributors(string $gid, array $users){
// Getting the Group
$groupToChange = $this->groupManager->get($gid); $groupToChange = $this->groupManager->get($gid);
// Getting the Users in Group
$usersInGroup = $groupToChange->getUsers(); $usersInGroup = $groupToChange->getUsers();
foreach($usersInGroup as $user){ // Preparing new Users, creating Array of Users
if($groupToChange->canRemoveUser()){ $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); $groupToChange->removeUser($user);
} }
} }
foreach($users as $user) { // Adding new Users
if($groupToChange->canAddUser()){ foreach($newUsersInGroup as $user) {
$groupToChange->addUser($this->userManager->get($user)); if($groupToChange->inGroup($user) == false) {
$groupToChange->addUser($user);
} }
} }
return $users; return $users;
} }

View File

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