Gruppen können befüllt und geleert werden
This commit is contained in:
parent
e8fbc6dfcc
commit
2442ae051b
|
|
@ -9,7 +9,7 @@ return [
|
|||
['name' => 'agency#show', 'url' => '/getagencydata', 'verb' => 'GET'],
|
||||
['name' => 'agency#updateagencydata', 'url' => '/updateagencydata', 'verb' => 'PUT'],
|
||||
['name' => 'agency#getagencycontributors', 'url' => '/getagencycontributors', 'verb' => 'GET'],
|
||||
['name' => 'agency#updateagencygroupcontributors', 'url' => '/updateagencygroupcontributors/{gid}', 'verb' => 'POST'],
|
||||
['name' => 'agency#updateagencygroupcontributors', 'url' => '/updateagencygroupcontributors/{gid}', 'verb' => 'PUT'],
|
||||
# GROUPS
|
||||
['name' => 'group#getagencygroups', 'url' => '/getagencygroups', 'verb' => 'GET'],
|
||||
['name' => 'group#addagencygroup', 'url' => '/addagencygroup', 'verb' => 'PUT'],
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ namespace OCA\Agency\Agency;
|
|||
|
||||
use OCP\IRequest;
|
||||
use OCP\IUserSession;
|
||||
use OCP\IUserManager;
|
||||
use OCP\IDBConnection;
|
||||
use OCA\Agency\Db\AgencyMapper;
|
||||
use OCA\Agency\Service\AgencyService;
|
||||
|
|
@ -14,12 +15,14 @@ class AgencyManager {
|
|||
protected $agencyMapper;
|
||||
protected $groupManager;
|
||||
protected $userSession;
|
||||
protected $userManager;
|
||||
protected $db;
|
||||
|
||||
public function __construct($AppName, IDBConnection $db, IRequest $request, AgencyMapper $agencyMapper, IGroupManager $groupManager, IUserSession $userSession) {
|
||||
public function __construct($AppName, IDBConnection $db, IRequest $request, AgencyMapper $agencyMapper, IGroupManager $groupManager, IUserSession $userSession, IUserManager $userManager) {
|
||||
$this->agencyMapper = $agencyMapper;
|
||||
$this->groupManager = $groupManager;
|
||||
$this->userSession = $userSession;
|
||||
$this->userManager = $userManager;
|
||||
}
|
||||
/**
|
||||
* Creates a new Agency and save it to the database.
|
||||
|
|
@ -94,4 +97,24 @@ class AgencyManager {
|
|||
}
|
||||
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
|
||||
public function updateagencygroupcontributors(string $gid, array $users){
|
||||
$groupToChange = $this->groupManager->get($gid);
|
||||
$usersInGroup = $groupToChange->getUsers();
|
||||
|
||||
foreach($usersInGroup as $user){
|
||||
if($groupToChange->canRemoveUser()){
|
||||
$groupToChange->removeUser($user);
|
||||
}
|
||||
}
|
||||
|
||||
foreach($users as $user) {
|
||||
if($groupToChange->canAddUser()){
|
||||
$groupToChange->addUser($this->userManager->get($user));
|
||||
}
|
||||
}
|
||||
return $users;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ namespace OCA\Agency\Controller;
|
|||
|
||||
use OCP\IRequest;
|
||||
use OCP\IUserSession;
|
||||
use OCP\IUserManager;
|
||||
use OCP\AppFramework\Http\DataResponse;
|
||||
use OCP\AppFramework\Http\JSONResponse;
|
||||
use OCP\AppFramework\Controller;
|
||||
|
|
@ -15,7 +16,6 @@ use OCP\IDBConnection;
|
|||
|
||||
class AgencyController extends Controller {
|
||||
|
||||
protected $userManager;
|
||||
private $service;
|
||||
private $Id;
|
||||
protected $userSession;
|
||||
|
|
@ -109,8 +109,8 @@ class AgencyController extends Controller {
|
|||
*
|
||||
*/
|
||||
# TODO: Noch prüfen, OB der Nutzer das überhautp darf und Agenturcheck usw.
|
||||
public function updateagencygroupcontributors(string $gid){
|
||||
return $_POST;
|
||||
public function updateagencygroupcontributors(string $gid, array $users){
|
||||
return $this->agencyManager->updateagencygroupcontributors($gid, $users);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -54,12 +54,19 @@ class GroupController extends Controller {
|
|||
if(str_contains($group->getGId(), 'subgroup')){
|
||||
$isDefault = false;
|
||||
}
|
||||
|
||||
//Checking if the Group is the Main-Group - EVERY User of this Agency should be in this group!
|
||||
$isMainGroup = false;
|
||||
if(sizeof(explode("_", strval($group->getGId()))) == 2){
|
||||
$isMainGroup = true;
|
||||
}
|
||||
|
||||
// Adding current Users to the Group
|
||||
$user_groups = [];
|
||||
foreach($group->getUsers() as $groupuser){
|
||||
array_push($user_groups, array("user" => $groupuser->getUID(), "displayName" => $groupuser->getDisplayName()));
|
||||
}
|
||||
array_push($response_groups, array('name' => $group->getDisplayName(), 'gid' => $group->getGid(), 'isDefault' => $isDefault, 'users' => $user_groups));
|
||||
array_push($response_groups, array('name' => $group->getDisplayName(), 'gid' => $group->getGid(), 'isDefault' => $isDefault, 'isMainGroup' => $isMainGroup, 'users' => $user_groups));
|
||||
}
|
||||
//Sorting the Array A-Z by GroupDisplayName
|
||||
$keys = array_column($response_groups, 'name');
|
||||
|
|
|
|||
|
|
@ -32,13 +32,13 @@
|
|||
placeholder="Suche"
|
||||
:options="agencyContributor"
|
||||
@input="updateContributor" />-->
|
||||
<Multiselect v-model="value"
|
||||
<Multiselect v-if="!group.isMainGroup"
|
||||
v-model="value"
|
||||
:options="formattedContributors"
|
||||
label="displayName"
|
||||
placeholder="Mitarbeiter der Gruppe hinzufügen"
|
||||
track-by="user"
|
||||
:multiple="true"
|
||||
:user-select="true"
|
||||
style="width: 350px"
|
||||
@input="updateContributorsValue()">
|
||||
<template #singleLabel="{ option }">
|
||||
|
|
@ -87,15 +87,16 @@ export default {
|
|||
}
|
||||
},
|
||||
mounted() {
|
||||
this.value = null
|
||||
this.getAgencyContributors()
|
||||
},
|
||||
methods: {
|
||||
async updateContributorsValue() {
|
||||
let valueData = ''
|
||||
const selectedUsers = []
|
||||
this.value.forEach((item) => {
|
||||
valueData += item.user + '___'
|
||||
selectedUsers.push(item.user)
|
||||
})
|
||||
const r = await axios.post(generateUrl('/apps/agency/updateagencygroupcontributors/' + this.group.gid), valueData)
|
||||
const r = await axios.put(generateUrl('/apps/agency/updateagencygroupcontributors/' + this.group.gid), { users: selectedUsers })
|
||||
console.log(r)
|
||||
},
|
||||
// Contributors changed, update the formattedContributors for the Field
|
||||
|
|
|
|||
Loading…
Reference in New Issue