mirror of
https://github.com/netzbegruenung/circles.git
synced 2024-05-02 20:04:52 +02:00
only returns population on direct request from the front-end or occ command
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
This commit is contained in:
parent
0f103befa5
commit
520031be28
|
@ -54,6 +54,7 @@ use OCA\Circles\Exceptions\UserTypeNotFoundException;
|
|||
use OCA\Circles\Model\Circle;
|
||||
use OCA\Circles\Model\Member;
|
||||
use OCA\Circles\Model\ModelManager;
|
||||
use OCA\Circles\Model\Probes\BasicProbe;
|
||||
use OCA\Circles\Model\Probes\CircleProbe;
|
||||
use OCA\Circles\Service\CircleService;
|
||||
use OCA\Circles\Service\ConfigService;
|
||||
|
@ -190,7 +191,8 @@ class CirclesList extends Base {
|
|||
|
||||
$probe = new CircleProbe();
|
||||
$probe->filterHiddenCircles()
|
||||
->filterBackendCircles();
|
||||
->filterBackendCircles()
|
||||
->addDetail(BasicProbe::DETAILS_POPULATION);
|
||||
|
||||
if ($input->getOption('system')) {
|
||||
$probe->includeSystemCircles();
|
||||
|
|
|
@ -44,6 +44,7 @@ use OCA\Circles\Exceptions\RequestBuilderException;
|
|||
use OCA\Circles\Exceptions\SingleCircleNotFoundException;
|
||||
use OCA\Circles\Model\FederatedUser;
|
||||
use OCA\Circles\Model\Member;
|
||||
use OCA\Circles\Model\Probes\BasicProbe;
|
||||
use OCA\Circles\Model\Probes\CircleProbe;
|
||||
use OCA\Circles\Service\CircleService;
|
||||
use OCA\Circles\Service\ConfigService;
|
||||
|
@ -270,7 +271,8 @@ class AdminController extends OcsController {
|
|||
|
||||
$probe = new CircleProbe();
|
||||
$probe->filterHiddenCircles()
|
||||
->filterBackendCircles();
|
||||
->filterBackendCircles()
|
||||
->addDetail(BasicProbe::DETAILS_POPULATION);
|
||||
|
||||
return new DataResponse($this->serializeArray($this->circleService->getCircles($probe)));
|
||||
} catch (Exception $e) {
|
||||
|
|
|
@ -42,6 +42,7 @@ use OCA\Circles\Exceptions\RequestBuilderException;
|
|||
use OCA\Circles\Exceptions\SingleCircleNotFoundException;
|
||||
use OCA\Circles\Model\FederatedUser;
|
||||
use OCA\Circles\Model\Member;
|
||||
use OCA\Circles\Model\Probes\BasicProbe;
|
||||
use OCA\Circles\Model\Probes\CircleProbe;
|
||||
use OCA\Circles\Service\CircleService;
|
||||
use OCA\Circles\Service\ConfigService;
|
||||
|
@ -419,7 +420,8 @@ class LocalController extends OcsController {
|
|||
|
||||
$probe = new CircleProbe();
|
||||
$probe->filterHiddenCircles()
|
||||
->filterBackendCircles();
|
||||
->filterBackendCircles()
|
||||
->addDetail(BasicProbe::DETAILS_POPULATION);
|
||||
|
||||
return new DataResponse($this->serializeArray($this->circleService->getCircles($probe)));
|
||||
} catch (Exception $e) {
|
||||
|
|
|
@ -56,6 +56,7 @@ use OCA\Circles\Model\Federated\FederatedEvent;
|
|||
use OCA\Circles\Model\Federated\RemoteInstance;
|
||||
use OCA\Circles\Model\FederatedUser;
|
||||
use OCA\Circles\Model\Member;
|
||||
use OCA\Circles\Model\Probes\BasicProbe;
|
||||
use OCA\Circles\Model\Probes\CircleProbe;
|
||||
use OCA\Circles\Service\CircleService;
|
||||
use OCA\Circles\Service\ConfigService;
|
||||
|
@ -267,7 +268,8 @@ class RemoteController extends Controller {
|
|||
|
||||
$probe = new CircleProbe();
|
||||
$probe->setFilterCircle($filterCircle)
|
||||
->setFilterMember($filterMember);
|
||||
->setFilterMember($filterMember)
|
||||
->addDetail(BasicProbe::DETAILS_POPULATION);
|
||||
|
||||
$circles = $this->circleService->getCircles($probe);
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@ use OCA\Circles\IFederatedUser;
|
|||
use OCA\Circles\Model\Circle;
|
||||
use OCA\Circles\Model\FederatedUser;
|
||||
use OCA\Circles\Model\Member;
|
||||
use OCA\Circles\Model\Probes\BasicProbe;
|
||||
use OCA\Circles\Model\Probes\CircleProbe;
|
||||
|
||||
/**
|
||||
|
@ -184,7 +185,10 @@ class CircleRequest extends CircleRequestBuilder {
|
|||
$qb->limitToRemoteInstance(CoreQueryBuilder::CIRCLE, $probe->getFilterRemoteInstance(), false);
|
||||
}
|
||||
|
||||
$qb->countMembers(CoreQueryBuilder::CIRCLE);
|
||||
if ($probe->showDetail(BasicProbe::DETAILS_POPULATION)) {
|
||||
$qb->countMembers(CoreQueryBuilder::CIRCLE);
|
||||
}
|
||||
|
||||
$qb->chunk($probe->getItemsOffset(), $probe->getItemsLimit());
|
||||
|
||||
return $this->getItemsFromRequest($qb);
|
||||
|
@ -258,7 +262,10 @@ class CircleRequest extends CircleRequestBuilder {
|
|||
if ($probe->hasFilterRemoteInstance()) {
|
||||
$qb->limitToRemoteInstance(CoreQueryBuilder::CIRCLE, $probe->getFilterRemoteInstance(), false);
|
||||
}
|
||||
$qb->countMembers(CoreQueryBuilder::CIRCLE);
|
||||
|
||||
if ($probe->showDetail(BasicProbe::DETAILS_POPULATION)) {
|
||||
$qb->countMembers(CoreQueryBuilder::CIRCLE);
|
||||
}
|
||||
|
||||
return $this->getItemFromRequest($qb);
|
||||
}
|
||||
|
@ -356,7 +363,8 @@ class CircleRequest extends CircleRequestBuilder {
|
|||
|
||||
if (!is_null($initiator)) {
|
||||
$qb->setOptions(
|
||||
[CoreQueryBuilder::CIRCLE], [
|
||||
[CoreQueryBuilder::CIRCLE],
|
||||
[
|
||||
'getData' => true,
|
||||
'initiatorDirectMember' => true
|
||||
]
|
||||
|
|
|
@ -709,11 +709,6 @@ class CoreQueryBuilder extends NC22ExtendedQueryBuilder {
|
|||
return;
|
||||
}
|
||||
|
||||
$getData = $this->getBool('getData', $options, false);
|
||||
if (!$getData) {
|
||||
return;
|
||||
}
|
||||
|
||||
$expr = $this->expr();
|
||||
$this->selectAlias(
|
||||
$this->createFunction('COUNT(`' . $aliasMemberCount . '`.`member_id`)'),
|
||||
|
|
|
@ -59,11 +59,11 @@ interface IQueryProbe {
|
|||
public function getDetails(): int;
|
||||
|
||||
/**
|
||||
* @param int $details
|
||||
* @param int $detail
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function showDetails(int $details): bool;
|
||||
public function showDetail(int $detail): bool;
|
||||
|
||||
/**
|
||||
* @return Circle
|
||||
|
|
|
@ -43,7 +43,8 @@ use OCA\Circles\Model\Member;
|
|||
*/
|
||||
class BasicProbe implements IQueryProbe {
|
||||
public const DETAILS_NONE = 0;
|
||||
public const DETAILS_ALL = 64;
|
||||
public const DETAILS_POPULATION = 32;
|
||||
public const DETAILS_ALL = 127;
|
||||
|
||||
|
||||
/** @var int */
|
||||
|
@ -122,14 +123,24 @@ class BasicProbe implements IQueryProbe {
|
|||
return $this->details;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $detail
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function addDetail(int $detail): self {
|
||||
$this->details |= $detail;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $details
|
||||
* @param int $detail
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function showDetails(int $details): bool {
|
||||
return (($this->getDetails() & $details) !== 0);
|
||||
public function showDetail(int $detail): bool {
|
||||
return (($this->getDetails() & $detail) !== 0);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -450,11 +450,6 @@ class MigrationService {
|
|||
|
||||
$member->setSingleId($singleMember->getSingleId());
|
||||
|
||||
// "cached_update":"2021-05-02 12:13:22",
|
||||
// "joined":"2021-05-02 12:13:22",
|
||||
// "contact_checked":null,"
|
||||
// "circle_source":null}
|
||||
|
||||
return $member;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue