Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 10 additions & 16 deletions lib/Api/v1/Circles.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@

namespace OCA\Circles\Api\v1;

use ArtificialOwl\MySmallPhpTools\Model\SimpleDataStore;
use OCA\Circles\Exceptions\CircleNotFoundException;
use OCA\Circles\Exceptions\FederatedUserException;
use OCA\Circles\Exceptions\FederatedUserNotFoundException;
Expand All @@ -39,6 +38,7 @@
use OCA\Circles\Exceptions\SingleCircleNotFoundException;
use OCA\Circles\Model\Circle;
use OCA\Circles\Model\Member;
use OCA\Circles\Model\Probes\CircleProbe;
use OCA\Circles\Service\CircleService;
use OCA\Circles\Service\FederatedUserService;

Expand Down Expand Up @@ -101,11 +101,10 @@ public static function listCircles($type, $name = '', $level = 0, $userId = '',
/** @var CircleService $circleService */
$circleService = \OC::$server->get(CircleService::class);

return $circleService->getCircles(
null,
null,
new SimpleDataStore(['includePersonalCircles' => $personalCircle])
);
$probe = new CircleProbe();
$probe->includePersonalCircles($personalCircle);

return $circleService->getCircles($probe);
}


Expand Down Expand Up @@ -145,16 +144,11 @@ public static function joinedCircles($userId = '', $forceAll = false) {
/** @var CircleService $circleService */
$circleService = \OC::$server->get(CircleService::class);

return $circleService->getCircles(
null,
null,
new SimpleDataStore(
[
'mustBeMember' => true,
'includePersonalCircles' => $personalCircle
]
)
);
$probe = new CircleProbe();
$probe->mustBeMember();
$probe->includePersonalCircles($personalCircle);

return $circleService->getCircles($probe);
}


Expand Down
110 changes: 100 additions & 10 deletions lib/CirclesManager.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@

use ArtificialOwl\MySmallPhpTools\Exceptions\InvalidItemException;
use OCA\Circles\Exceptions\CircleNotFoundException;
use OCA\Circles\Exceptions\ContactAddressBookNotFoundException;
use OCA\Circles\Exceptions\ContactFormatException;
use OCA\Circles\Exceptions\ContactNotFoundException;
use OCA\Circles\Exceptions\FederatedEventException;
use OCA\Circles\Exceptions\FederatedItemException;
use OCA\Circles\Exceptions\FederatedUserException;
Expand All @@ -41,6 +44,7 @@
use OCA\Circles\Exceptions\InitiatorNotFoundException;
use OCA\Circles\Exceptions\InvalidIdException;
use OCA\Circles\Exceptions\MemberNotFoundException;
use OCA\Circles\Exceptions\MembershipNotFoundException;
use OCA\Circles\Exceptions\OwnerNotFoundException;
use OCA\Circles\Exceptions\RemoteInstanceException;
use OCA\Circles\Exceptions\RemoteNotFoundException;
Expand All @@ -52,9 +56,12 @@
use OCA\Circles\Model\Circle;
use OCA\Circles\Model\FederatedUser;
use OCA\Circles\Model\Member;
use OCA\Circles\Model\Membership;
use OCA\Circles\Model\Probes\CircleProbe;
use OCA\Circles\Service\CircleService;
use OCA\Circles\Service\FederatedUserService;
use OCA\Circles\Service\MemberService;
use OCA\Circles\Service\MembershipService;
use OCP\IUserSession;

/**
Expand All @@ -77,6 +84,9 @@ class CirclesManager {
/** @var MemberService */
private $memberService;

/** @var MembershipService */
private $membershipService;


/**
* CirclesManager constructor.
Expand All @@ -91,11 +101,13 @@ public function __construct(
FederatedUserService $federatedUserService,
CircleService $circleService,
MemberService $memberService,
MembershipService $membershipService,
CirclesQueryHelper $circlesQueryHelper
) {
$this->federatedUserService = $federatedUserService;
$this->circleService = $circleService;
$this->memberService = $memberService;
$this->membershipService = $membershipService;
$this->circlesQueryHelper = $circlesQueryHelper;
}

Expand Down Expand Up @@ -267,36 +279,114 @@ public function destroyCircle(string $singleId): void {
* @throws InitiatorNotFoundException
* @throws RequestBuilderException
*/
public function getCircles(): array {
return $this->circleService->getCircles();
public function getCircles(?CircleProbe $probe = null): array {
return $this->circleService->getCircles($probe);
}


/**
* @param string $singleId
* @param CircleProbe|null $probe
*
* @return Circle
* @throws CircleNotFoundException
* @throws InitiatorNotFoundException
* @throws RequestBuilderException
*/
public function getCircle(string $singleId): Circle {
return $this->circleService->getCircle($singleId);
public function getCircle(string $singleId, ?CircleProbe $probe = null): Circle {
return $this->circleService->getCircle($singleId, $probe);
}


/**
* @param string $circleId
* @param FederatedUser $federatedUser
*
* @return Member
* @throws CircleNotFoundException
* @throws ContactAddressBookNotFoundException
* @throws ContactFormatException
* @throws ContactNotFoundException
* @throws FederatedEventException
* @throws FederatedItemException
* @throws FederatedUserException
* @throws InitiatorNotConfirmedException
* @throws InitiatorNotFoundException
* @throws InvalidIdException
* @throws InvalidItemException
* @throws OwnerNotFoundException
* @throws RemoteInstanceException
* @throws RemoteNotFoundException
* @throws RemoteResourceNotFoundException
* @throws RequestBuilderException
* @throws SingleCircleNotFoundException
* @throws UnknownRemoteException
*/
public function addMember(string $circleId, FederatedUser $federatedUser): Member {
$outcome = $this->memberService->addMember($circleId, $federatedUser);
$member = new Member();
$member->import($outcome);

return $member;
}


/**
* WIP
* @param string $memberId
* @param int $level
*
* @return Circle[]
* @return Member
* @throws FederatedEventException
* @throws FederatedItemException
* @throws InitiatorNotConfirmedException
* @throws InitiatorNotFoundException
* @throws InvalidItemException
* @throws MemberNotFoundException
* @throws OwnerNotFoundException
* @throws RemoteNotFoundException
* @throws RemoteResourceNotFoundException
* @throws RequestBuilderException
* @throws UnknownRemoteException
*/
// public function getAllCircles(): array {
// $this->federatedUserService->bypassCurrentUserCondition(true);
// $this->circleService->getCircles();
// }
public function levelMember(string $memberId, int $level): Member {
$outcome = $this->memberService->memberLevel($memberId, $level);
$member = new Member();
$member->import($outcome);

return $member;
}


/**
* @param string $memberId
*
* @throws FederatedEventException
* @throws FederatedItemException
* @throws InitiatorNotConfirmedException
* @throws InitiatorNotFoundException
* @throws MemberNotFoundException
* @throws OwnerNotFoundException
* @throws RemoteNotFoundException
* @throws RemoteResourceNotFoundException
* @throws RequestBuilderException
* @throws UnknownRemoteException
*/
public function removeMember(string $memberId): void {
$this->memberService->removeMember($memberId);
}


/**
* @param string $circleId
* @param string $singleId
*
* @return Membership
* @throws MembershipNotFoundException
* @throws RequestBuilderException
*/
public function getLink(string $circleId, string $singleId): Membership {
return $this->membershipService->getMembership($circleId, $singleId);
}


/**
Expand Down
5 changes: 3 additions & 2 deletions lib/CirclesQueryHelper.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
use OCA\Circles\Exceptions\FederatedUserNotFoundException;
use OCA\Circles\Exceptions\RequestBuilderException;
use OCA\Circles\Model\Circle;
use OCA\Circles\Model\Member;
use OCA\Circles\Service\FederatedUserService;
use OCP\DB\QueryBuilder\ICompositeExpression;
use OCP\DB\QueryBuilder\IQueryBuilder;
Expand Down Expand Up @@ -108,7 +109,7 @@ public function limitToSession(
[CoreQueryBuilder::HELPER],
[
'getData' => $fullDetails,
'mustBeMember' => true
'minimumLevel' => Member::LEVEL_MEMBER
]
);

Expand Down Expand Up @@ -141,7 +142,7 @@ public function limitToInheritedMembers(
[CoreQueryBuilder::HELPER],
[
'getData' => $fullDetails,
'mustBeMember' => true
'minimumLevel' => Member::LEVEL_MEMBER
]
);

Expand Down
21 changes: 11 additions & 10 deletions lib/Collaboration/v2/CollaboratorSearchPlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,10 @@

namespace OCA\Circles\Collaboration\v2;

use ArtificialOwl\MySmallPhpTools\Model\SimpleDataStore;
use Exception;
use OC\Share20\Share;
use OCA\Circles\Model\Circle;
use OCA\Circles\Model\Probes\CircleProbe;
use OCA\Circles\Service\CircleService;
use OCA\Circles\Service\FederatedUserService;
use OCP\Collaboration\Collaborators\ISearchPlugin;
Expand Down Expand Up @@ -85,15 +85,16 @@ public function search($search, $limit, $offset, ISearchResult $searchResult): b

try {
$this->federatedUserService->initCurrentUser();
$circles = $this->circleService->getCircles(
$filterCircle, null,
new SimpleDataStore(
[
'limit' => $limit,
'offset' => $offset
]
)
);

$probe = new CircleProbe();
$probe->setItemsLimit($limit);
$probe->setItemsOffset($offset);
$probe->setFilterCircle($filterCircle);

// Issue when searching for circle to be added as member
$probe->mustBeMember();

$circles = $this->circleService->getCircles($probe);
} catch (Exception $e) {
return false;
}
Expand Down
11 changes: 8 additions & 3 deletions lib/Command/CirclesList.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@

use ArtificialOwl\MySmallPhpTools\Exceptions\RequestNetworkException;
use ArtificialOwl\MySmallPhpTools\Exceptions\SignatoryException;
use ArtificialOwl\MySmallPhpTools\Model\SimpleDataStore;
use ArtificialOwl\MySmallPhpTools\Traits\TArrayTools;
use ArtificialOwl\MySmallPhpTools\Traits\TStringTools;
use OC\Core\Command\Base;
Expand All @@ -55,6 +54,7 @@
use OCA\Circles\Model\Circle;
use OCA\Circles\Model\Member;
use OCA\Circles\Model\ModelManager;
use OCA\Circles\Model\Probes\CircleProbe;
use OCA\Circles\Service\CircleService;
use OCA\Circles\Service\ConfigService;
use OCA\Circles\Service\FederatedUserService;
Expand Down Expand Up @@ -183,8 +183,13 @@ protected function execute(InputInterface $input, OutputInterface $output): int
true
);

$params = new SimpleDataStore(['includeSystemCircles' => $input->getOption('all')]);
$circles = $this->circleService->getCircles(null, $filterMember, $params);
$probe = new CircleProbe();
if ($input->getOption('all')) {
$probe->includeSystemCircles()
->includeSingleCircles()
->includePersonalCircles();
}
$circles = $this->circleService->getCircles($probe);
}

if (strtolower($input->getOption('output')) === 'json') {
Expand Down
7 changes: 5 additions & 2 deletions lib/Command/CirclesMemberships.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
use OCA\Circles\Model\Circle;
use OCA\Circles\Model\FederatedUser;
use OCA\Circles\Model\Member;
use OCA\Circles\Model\Probes\CircleProbe;
use OCA\Circles\Service\CircleService;
use OCA\Circles\Service\ConfigService;
use OCA\Circles\Service\FederatedUserService;
Expand Down Expand Up @@ -366,8 +367,10 @@ private function manageAllMemberships() {

$this->federatedUserService->bypassCurrentUserCondition(true);

$params = new SimpleDataStore(['includeSystemCircles' => true]);
$circles = $this->circleService->getCircles(null, null, $params);
$probe = new CircleProbe();
$probe->includeSystemCircles()
->includePersonalCircles();
$circles = $this->circleService->getCircles($probe);

$output = new ConsoleOutput();
$output = $output->section();
Expand Down
10 changes: 4 additions & 6 deletions lib/Command/CirclesReport.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
use ArtificialOwl\MySmallPhpTools\Exceptions\InvalidItemException;
use ArtificialOwl\MySmallPhpTools\IInteractiveShellClient;
use ArtificialOwl\MySmallPhpTools\Model\Nextcloud\nc22\NC22InteractiveShellSession;
use ArtificialOwl\MySmallPhpTools\Model\SimpleDataStore;
use ArtificialOwl\MySmallPhpTools\Traits\Nextcloud\nc22\TNC22Deserialize;
use ArtificialOwl\MySmallPhpTools\Traits\TArrayTools;
use OC\Core\Command\Base;
Expand All @@ -46,6 +45,7 @@
use OCA\Circles\Model\FederatedUser;
use OCA\Circles\Model\Member;
use OCA\Circles\Model\Membership;
use OCA\Circles\Model\Probes\CircleProbe;
use OCA\Circles\Model\Report;
use OCA\Circles\Service\CircleService;
use OCA\Circles\Service\ConfigService;
Expand Down Expand Up @@ -173,11 +173,9 @@ private function generateReport(): Report {
$report->setSource($this->interfaceService->getLocalInstance());
$this->federatedUserService->bypassCurrentUserCondition(true);

$raw = $this->circleService->getCircles(
null,
null,
new SimpleDataStore(['includeSystemCircles' => true])
);
$probe = new CircleProbe();
$probe->includeSystemCircles();
$raw = $this->circleService->getCircles($probe);

$circles = [];
foreach ($raw as $circle) {
Expand Down
Loading