diff options
author | Vinicius Cubas Brand <viniciuscb@gmail.com> | 2017-10-25 18:38:13 +0300 |
---|---|---|
committer | Vinicius Cubas Brand <viniciuscb@gmail.com> | 2017-10-25 18:38:13 +0300 |
commit | a7458c3e73f468198a6725d0b29683ea40e908d4 (patch) | |
tree | c761ac7fcd15139efccfc297e80ed2ff3014b608 /lib/Api | |
parent | 200422b2ffe2bd5b6014f42c5296ce808c9a96f5 (diff) | |
parent | 6e34dea0c8fe0b2e9cd9f07ec85923b7c8097db4 (diff) |
Merge branch 'master' into circles-files-panel
Diffstat (limited to 'lib/Api')
-rw-r--r-- | lib/Api/Sharees.php | 13 | ||||
-rw-r--r-- | lib/Api/v1/Circles.php | 55 | ||||
-rw-r--r-- | lib/Api/v1/ShotgunCircles.php | 79 |
3 files changed, 142 insertions, 5 deletions
diff --git a/lib/Api/Sharees.php b/lib/Api/Sharees.php index e6e68e0b..2755f93c 100644 --- a/lib/Api/Sharees.php +++ b/lib/Api/Sharees.php @@ -34,6 +34,14 @@ use OCA\Circles\Service\MiscService; use OCP\Share; +/** + * ############### WARNING ################# + * ### + * ### This file is needed and used by Nextcloud 12 and lower. + * ### + * + * @package OCA\Circles\Api + */ class Sharees { @@ -53,9 +61,12 @@ class Sharees { // public static function search($search, $limit, $offset) { public static function search($search) { $c = self::getContainer(); + $userId = \OC::$server->getUserSession() + ->getUser() + ->getUID(); $data = $c->query(CirclesService::class) - ->listCircles(Circle::CIRCLES_ALL, $search, Member::LEVEL_MEMBER); + ->listCircles($userId, Circle::CIRCLES_ALL, $search, Member::LEVEL_MEMBER); $result = array( 'exact' => ['circles'], 'circles' => [] diff --git a/lib/Api/v1/Circles.php b/lib/Api/v1/Circles.php index bbb08d9e..104af315 100644 --- a/lib/Api/v1/Circles.php +++ b/lib/Api/v1/Circles.php @@ -167,14 +167,21 @@ class Circles { * @param mixed $type * @param string $name * @param int $level + * @param string $userId * * @return Circle[] */ - public static function listCircles($type, $name = '', $level = 0) { + public static function listCircles($type, $name = '', $level = 0, $userId = '') { $c = self::getContainer(); + if ($userId === '') { + $userId = \OC::$server->getUserSession() + ->getUser() + ->getUID(); + } + return $c->query(CirclesService::class) - ->listCircles($type, $name, $level); + ->listCircles($userId, $type, $name, $level); } @@ -183,10 +190,32 @@ class Circles { * * Return all the circle the current user is a member. * + * @param string $userId + * * @return Circle[] */ - public static function joinedCircles() { - return self::listCircles(Circle::CIRCLES_ALL, '', Member::LEVEL_MEMBER); + public static function joinedCircles($userId = '') { + return self::listCircles(Circle::CIRCLES_ALL, '', Member::LEVEL_MEMBER, $userId); + } + + + /** + * Circles::joinedCircleIds(); + * + * Return all the circleIds the user is a member, if empty user, using current user. + * + * @param $userId + * + * @return array + */ + public static function joinedCircleIds($userId = '') { + $circleIds = []; + $circles = self::listCircles(Circle::CIRCLES_ALL, '', Member::LEVEL_MEMBER, $userId); + foreach ($circles as $circle) { + $circleIds[] = $circle->getUniqueId(); + } + + return $circleIds; } @@ -358,6 +387,24 @@ class Circles { /** + * Circles::getSharesFromCircle(); + * + * This function will returns all item (array) shared to a specific circle identified by its Id, + * source and type. Limited to current user session. + * + * @param string $circleUniqueId + * + * @return mixed + */ + public static function getSharesFromCircle($circleUniqueId) { + $c = self::getContainer(); + + return $c->query(SharingFrameService::class) + ->getFrameFromCircle($circleUniqueId); + } + + + /** * Circles::linkCircle(); * * Initiate a link procedure. Current user must be at least Admin of the circle. diff --git a/lib/Api/v1/ShotgunCircles.php b/lib/Api/v1/ShotgunCircles.php new file mode 100644 index 00000000..7ea575bc --- /dev/null +++ b/lib/Api/v1/ShotgunCircles.php @@ -0,0 +1,79 @@ +<?php +/** + * Circles - Bring cloud-users closer together. + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Maxence Lange <maxence@artificial-owl.com> + * @copyright 2017 + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Circles\Api\v1; + + +use OCA\Circles\AppInfo\Application; +use OCA\Circles\Exceptions\ApiVersionIncompatibleException; +use OCA\Circles\Model\Circle; +use OCA\Circles\Model\FederatedLink; +use OCA\Circles\Model\Member; +use OCA\Circles\Model\SharingFrame; +use OCA\Circles\Service\CirclesService; +use OCA\Circles\Service\FederatedLinkService; +use OCA\Circles\Service\MembersService; +use OCA\Circles\Service\MiscService; +use OCA\Circles\Service\SharingFrameService; +use OCP\Util; + +/** + * Better use the other one. + * + * This is a shotgun class; don't blow your foot. + */ +class ShotgunCircles { + + protected static function getContainer() { + $app = new Application(); + + return $app->getContainer(); + } + + + /** + * ShotgunCircles::getSharesFromCircle(); + * + * This function will returns all item (array) shared to a specific circle identified by its Id, + * source and type. + * + * Warning - please use Circles::getSharesFromCircle for any interaction with the current user + * session. + * + * @param string $circleUniqueId + * @param string $userId + * + * @return SharingFrame[] + */ + public static function getSharesFromCircle($circleUniqueId, $userId = '') { + $c = self::getContainer(); + + return $c->query(SharingFrameService::class) + ->forceGetFrameFromCircle($circleUniqueId, $userId); + } + + +}
\ No newline at end of file |