Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/polls.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinzenz <vinzenz.rosenkranz@gmail.com>2016-09-06 20:11:20 +0300
committerVinzenz <vinzenz.rosenkranz@gmail.com>2016-09-06 20:11:20 +0300
commitf5fadde9e27795a3d48a8101d24135bc50e445a2 (patch)
tree04771ada44f18c693846d42eafc336c2b2f94af8 /controller
parent4f9dcded6140ea317476cecc45dc127f99e0b53e (diff)
only display groups based on search string
Diffstat (limited to 'controller')
-rw-r--r--controller/pagecontroller.php56
1 files changed, 56 insertions, 0 deletions
diff --git a/controller/pagecontroller.php b/controller/pagecontroller.php
index 4c335e56..53926ade 100644
--- a/controller/pagecontroller.php
+++ b/controller/pagecontroller.php
@@ -29,6 +29,7 @@ use \OCA\Polls\Db\ParticipationMapper;
use \OCA\Polls\Db\ParticipationTextMapper;
use \OCA\Polls\Db\TextMapper;
use \OCP\IUserManager;
+use \OCP\IGroupManager;
use \OCP\Share\IManager;
use \OCP\IAvatarManager;
use \OCP\ILogger;
@@ -58,9 +59,13 @@ class PageController extends Controller {
private $logger;
private $trans;
private $userMgr;
+ private $groupManager;
private $shareManager;
+ private $allowedGroups;
+ private $allowedUsers;
public function __construct($appName, IRequest $request,
IUserManager $manager,
+ IGroupManager $groupManager,
IManager $shareManager,
IAvatarManager $avatarManager,
ILogger $logger,
@@ -77,6 +82,7 @@ class PageController extends Controller {
TextMapper $textMapper) {
parent::__construct($appName, $request);
$this->manager = $manager;
+ $this->groupManager = $groupManager;
$this->shareManager = $shareManager;
$this->avatarManager = $avatarManager;
$this->logger = $logger;
@@ -92,6 +98,30 @@ class PageController extends Controller {
$this->participationTextMapper = $ParticipationTextMapper;
$this->textMapper = $textMapper;
$this->userMgr = \OC::$server->getUserManager();
+
+ if(!$this->shareManager->sharingDisabledForUser($this->userId)) {
+ if($this->shareManager->shareWithGroupMembersOnly()) {
+ $groups = OCP\OC_Group::getUserGroups($this->userId);
+ } else if($this->shareManager->allowGroupSharing()) {
+ $groups = \OC_Group::getGroups();
+ }
+ sort($groups, SORT_NATURAL | SORT_FLAG_CASE );
+ $this->allowedGroups = $groups;
+ }
+ $allUsers = \OC_User::GetUsers();
+ if (!(\OC_User::isAdminUser($this->userId))) {
+ $usersSharedGroups = \OC_Group::usersInGroups($this->allowedGroups);
+ $usersNoGroup = array_diff($allUsers, \OC_Group::usersInGroups($allUsers));
+ if($this->shareManager->shareWithGroupMembersOnly()) {
+ $users = $usersSharedGroups;
+ } else {
+ $users = array_merge($usersSharedGroups , $usersNoGroup);
+ }
+ } else {
+ $users = $allUsers;
+ }
+ sort($users, SORT_NATURAL | SORT_FLAG_CASE );
+ $this->allowedUsers = $users;
}
/**
@@ -441,6 +471,32 @@ class PageController extends Controller {
return new JSONResponse(array('comment' => $commentBox, 'date' => date('Y-m-d H:i:s'), 'userName' => $this->manager->get($userId)->getDisplayName()));
}
+ /**
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function searchForGroups($searchTerm) {
+ $groups = $this->groupManager->search($searchTerm);
+ $gids = array();
+ foreach($groups as $g) {
+ $gids[] = $g->getGID();
+ }
+ return $gids;
+ }
+
+ /**
+ * @NoAdminRequired
+ * @NoCSRFRequired
+ */
+ public function searchForUsers($searchTerm) {
+ $userNames = $this->userMgr->searchDisplayName($searchTerm);
+ $users = array();
+ foreach($userNames as $u) {
+ $users[] = array('uid' => $u->getUID(), 'displayName' => $u->getDisplayName());
+ }
+ return $users;
+ }
+
public function getPollsForUser() {
return $this->eventMapper->findAllForUser($this->userId);
}