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

github.com/nextcloud/circles.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxence Lange <maxence@artificial-owl.com>2017-10-09 20:40:16 +0300
committerMaxence Lange <maxence@artificial-owl.com>2017-10-09 20:40:16 +0300
commit77e5e08f367f3ce7eeaa35a868d3f4f7e2310e34 (patch)
tree4a3baf7768659f8234aa2110e9b53b4da0f00861
parent5e0437276c84ad598d938e047e7a29f6bb9b8578 (diff)
ShotgunCircles is a better solution
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
-rw-r--r--lib/Api/v1/Circles.php21
-rw-r--r--lib/Api/v1/ShotgunCircles.php79
-rw-r--r--lib/Circles/FileSharingBroadcaster.php3
-rw-r--r--lib/Controller/NavigationController.php5
-rw-r--r--lib/Db/CircleProviderRequestBuilder.php2
-rw-r--r--lib/Db/CoreRequestBuilder.php4
-rw-r--r--lib/Db/SharingFrameRequest.php14
-rw-r--r--lib/Service/SharingFrameService.php27
8 files changed, 97 insertions, 58 deletions
diff --git a/lib/Api/v1/Circles.php b/lib/Api/v1/Circles.php
index 3475de2d..dbac7770 100644
--- a/lib/Api/v1/Circles.php
+++ b/lib/Api/v1/Circles.php
@@ -402,27 +402,6 @@ class Circles {
/**
- * Circles::forceGetSharesFromCircle();
- *
- * This function will returns all item (array) shared to a specific circle identified by its Id,
- * source and type.
- *
- * @param string $circleUniqueId
- * @param string $userId
- *
- * @return SharingFrame[]
- */
- public static function forceGetSharesFromCircle($circleUniqueId, $userId = '') {
- $c = self::getContainer();
-
- return $c->query(SharingFrameService::class)
- ->forceGetFrameFromCircle($circleUniqueId, $userId);
- }
-
-
-
-
- /**
* 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
diff --git a/lib/Circles/FileSharingBroadcaster.php b/lib/Circles/FileSharingBroadcaster.php
index d60d4ace..e945052d 100644
--- a/lib/Circles/FileSharingBroadcaster.php
+++ b/lib/Circles/FileSharingBroadcaster.php
@@ -204,9 +204,6 @@ class FileSharingBroadcaster implements IBroadcaster {
* @param string $author
* @param $circleName
* @param string $email
- *
- * @internal param string $filename
- * @internal param string $circle
*/
protected function sendMail($fileName, $link, $author, $circleName, $email) {
$message = $this->mailer->createMessage();
diff --git a/lib/Controller/NavigationController.php b/lib/Controller/NavigationController.php
index 95fa9f0b..b1ca633a 100644
--- a/lib/Controller/NavigationController.php
+++ b/lib/Controller/NavigationController.php
@@ -26,8 +26,10 @@
namespace OCA\Circles\Controller;
+use OCA\Circles\Api\v1\Circles;
+use OCA\Circles\Api\v1\ShotgunCircles;
use OCA\Circles\AppInfo\Application;
-use \OCA\Circles\Model\Circle;
+use OCA\Circles\Model\Circle;
use OCA\Circles\Service\ConfigService;
use OCA\Testing\Config;
use OCP\AppFramework\Http;
@@ -45,6 +47,7 @@ class NavigationController extends BaseController {
* @return TemplateResponse
*/
public function navigate() {
+
$data = [
'allowed_circles' => array(
Circle::CIRCLES_PERSONAL => $this->configService->isCircleAllowed(
diff --git a/lib/Db/CircleProviderRequestBuilder.php b/lib/Db/CircleProviderRequestBuilder.php
index 7b250bc1..29e2c968 100644
--- a/lib/Db/CircleProviderRequestBuilder.php
+++ b/lib/Db/CircleProviderRequestBuilder.php
@@ -147,8 +147,6 @@ class CircleProviderRequestBuilder {
*
* @param IQueryBuilder $qb
* @param $files
- *
- * @internal param $fileId
*/
protected function limitToFiles(IQueryBuilder &$qb, $files) {
diff --git a/lib/Db/CoreRequestBuilder.php b/lib/Db/CoreRequestBuilder.php
index 2e569590..98817240 100644
--- a/lib/Db/CoreRequestBuilder.php
+++ b/lib/Db/CoreRequestBuilder.php
@@ -103,8 +103,6 @@ class CoreRequestBuilder {
*
* @param IQueryBuilder $qb
* @param $userId
- *
- * @internal param int $circleId
*/
protected function limitToUserId(IQueryBuilder &$qb, $userId) {
$this->limitToDBField($qb, 'user_id', $userId);
@@ -116,8 +114,6 @@ class CoreRequestBuilder {
*
* @param IQueryBuilder $qb
* @param int $type
- *
- * @internal param int $circleId
*/
protected function limitToUserType(IQueryBuilder &$qb, $type) {
$this->limitToDBField($qb, 'user_type', $type);
diff --git a/lib/Db/SharingFrameRequest.php b/lib/Db/SharingFrameRequest.php
index 8face898..45b4b97d 100644
--- a/lib/Db/SharingFrameRequest.php
+++ b/lib/Db/SharingFrameRequest.php
@@ -68,24 +68,14 @@ class SharingFrameRequest extends SharingFrameRequestBuilder {
/**
- * @param string $circleUniqueId
- *
- * @param $viewerId
+ * @param string $circleUniqueId*
*
* @return SharingFrame[]
*/
- public function getSharingFramesFromCircle($circleUniqueId, $viewerId) {
+ public function getSharingFramesFromCircle($circleUniqueId) {
$qb = $this->getSharesSelectSql();
$this->limitToCircleId($qb, $circleUniqueId);
- if ($viewerId !== '') {
- $this->circlesRequest->leftJoinCircle($qb);
- $this->circlesRequest->leftJoinUserIdAsViewer($qb, $viewerId);
- $this->circlesRequest->leftJoinNCGroupAndUser($qb, $viewerId, '`c`.`unique_id`');
-
- $this->limitToLevel($qb, Member::LEVEL_MEMBER, ['u', 'g']);
- }
-
$frames = [];
$cursor = $qb->execute();
while ($data = $cursor->fetch()) {
diff --git a/lib/Service/SharingFrameService.php b/lib/Service/SharingFrameService.php
index 6022a70f..a3558015 100644
--- a/lib/Service/SharingFrameService.php
+++ b/lib/Service/SharingFrameService.php
@@ -174,19 +174,11 @@ class SharingFrameService {
* return all SharingFrame from a circle regarding a userId.
*
* @param string $circleUniqueId
- * @param string $userId
*
* @return SharingFrame[]
*/
- public function getFrameFromCircle($circleUniqueId, $userId = '') {
-
- if ($userId === '') {
- $userId = $this->userId;
- }
-
- $frames = $this->sharingFrameRequest->getSharingFramesFromCircle($circleUniqueId, $userId);
-
- return $frames;
+ public function getFrameFromCircle($circleUniqueId) {
+ return $this->forceGetFrameFromCircle($circleUniqueId, $this->userId);
}
@@ -194,17 +186,22 @@ class SharingFrameService {
* return all SharingFrame from a circle.
*
* Warning, result won't be filtered regarding current user session.
- * Please use getFrameFromCircleUniqueId();
+ * Please use getFrameFromCircle();
*
* @param string $circleUniqueId
+ * @param $viewerId
*
* @return SharingFrame[]
- * @throws SharingFrameDoesNotExistException
*/
- public function forceGetFrameFromCircle($circleUniqueId) {
- $frames = $this->sharingFrameRequest->getSharingFramesFromCircle($circleUniqueId, '');
+ public function forceGetFrameFromCircle($circleUniqueId, $viewerId) {
+
+ if ($viewerId !== '') {
+ $circle = $this->circlesRequest->getCircle($circleUniqueId, $viewerId);
+ $circle->getViewer()
+ ->hasToBeMember();
+ }
- return $frames;
+ return $this->sharingFrameRequest->getSharingFramesFromCircle($circleUniqueId);
}