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