mirror of
https://github.com/netzbegruenung/circles.git
synced 2024-04-29 02:14:51 +02:00
IEntity and getLink()
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
This commit is contained in:
parent
e65dfc8145
commit
d68ca65322
|
@ -344,9 +344,10 @@ class CirclesReport extends Base implements IInteractiveShellClient {
|
|||
$federatedUser->setBasedOn($this->obfuscateCircle($federatedUser->getBasedOn()));
|
||||
}
|
||||
|
||||
if ($federatedUser->hasLink()) {
|
||||
$federatedUser->setLink($this->obfuscateMembership($federatedUser->getLink()));
|
||||
}
|
||||
// what was that for ?
|
||||
// if ($federatedUser->hasLink()) {
|
||||
// $federatedUser->setLink($this->obfuscateMembership($federatedUser->getLink()));
|
||||
// }
|
||||
|
||||
if ($federatedUser->hasMemberships()) {
|
||||
$memberships = [];
|
||||
|
|
|
@ -31,6 +31,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace OCA\Circles;
|
||||
|
||||
use OCA\Circles\Exceptions\MembershipNotFoundException;
|
||||
use OCA\Circles\Model\Membership;
|
||||
|
||||
/**
|
||||
|
@ -38,7 +39,7 @@ use OCA\Circles\Model\Membership;
|
|||
*
|
||||
* @package OCA\Circles
|
||||
*/
|
||||
interface IMemberships {
|
||||
interface IEntity {
|
||||
|
||||
/**
|
||||
* @return string
|
||||
|
@ -56,4 +57,13 @@ interface IMemberships {
|
|||
* @return Membership[]
|
||||
*/
|
||||
public function getMemberships(): array;
|
||||
|
||||
/**
|
||||
* @param string $singleId
|
||||
* @param bool $detailed
|
||||
*
|
||||
* @return Membership
|
||||
* @throws MembershipNotFoundException
|
||||
*/
|
||||
public function getLink(string $singleId, bool $detailed = false): Membership;
|
||||
}
|
|
@ -39,13 +39,25 @@ use OCA\Circles\Model\Circle;
|
|||
* @package OCA\Circles
|
||||
*/
|
||||
interface IFederatedUser extends IFederatedModel {
|
||||
public function getSingleId(): string;
|
||||
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getUserId(): string;
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getUserType(): int;
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function getDisplayName(): string;
|
||||
|
||||
/**
|
||||
* @return Circle|null
|
||||
*/
|
||||
public function getBasedOn(): ?Circle;
|
||||
}
|
||||
|
|
|
@ -113,7 +113,7 @@ class RemovingMember implements IEventListener {
|
|||
|
||||
foreach ($singleIds as $singleId) {
|
||||
try {
|
||||
$member->getMembership($singleId);
|
||||
$member->getLink($singleId);
|
||||
continue;
|
||||
} catch (MembershipNotFoundException $e) {
|
||||
}
|
||||
|
|
|
@ -40,13 +40,14 @@ use DateTime;
|
|||
use JsonSerializable;
|
||||
use OCA\Circles\Exceptions\CircleNotFoundException;
|
||||
use OCA\Circles\Exceptions\FederatedItemException;
|
||||
use OCA\Circles\Exceptions\MembershipNotFoundException;
|
||||
use OCA\Circles\Exceptions\OwnerNotFoundException;
|
||||
use OCA\Circles\Exceptions\RemoteInstanceException;
|
||||
use OCA\Circles\Exceptions\RemoteNotFoundException;
|
||||
use OCA\Circles\Exceptions\RemoteResourceNotFoundException;
|
||||
use OCA\Circles\Exceptions\RequestBuilderException;
|
||||
use OCA\Circles\Exceptions\UnknownRemoteException;
|
||||
use OCA\Circles\IMemberships;
|
||||
use OCA\Circles\IEntity;
|
||||
|
||||
/**
|
||||
* Class Circle
|
||||
|
@ -76,7 +77,7 @@ use OCA\Circles\IMemberships;
|
|||
*
|
||||
* @package OCA\Circles\Model
|
||||
*/
|
||||
class Circle extends ManagedModel implements IMemberships, IDeserializable, INC22QueryRow, JsonSerializable {
|
||||
class Circle extends ManagedModel implements IEntity, IDeserializable, INC22QueryRow, JsonSerializable {
|
||||
use TArrayTools;
|
||||
use TNC22Deserialize;
|
||||
|
||||
|
@ -430,7 +431,7 @@ class Circle extends ManagedModel implements IMemberships, IDeserializable, INC2
|
|||
*
|
||||
* @return self
|
||||
*/
|
||||
public function setMembers(array $members): IMemberships {
|
||||
public function setMembers(array $members): self {
|
||||
$this->members = $members;
|
||||
|
||||
return $this;
|
||||
|
@ -454,7 +455,7 @@ class Circle extends ManagedModel implements IMemberships, IDeserializable, INC2
|
|||
*
|
||||
* @return self
|
||||
*/
|
||||
public function setInheritedMembers(array $members, bool $detailed): IMemberships {
|
||||
public function setInheritedMembers(array $members, bool $detailed): self {
|
||||
$this->inheritedMembers = $members;
|
||||
$this->detailedInheritedMember = $detailed;
|
||||
|
||||
|
@ -464,9 +465,9 @@ class Circle extends ManagedModel implements IMemberships, IDeserializable, INC2
|
|||
/**
|
||||
* @param array $members
|
||||
*
|
||||
* @return IMemberships
|
||||
* @return Circle
|
||||
*/
|
||||
public function addInheritedMembers(array $members): IMemberships {
|
||||
public function addInheritedMembers(array $members): self {
|
||||
$knownIds = array_map(
|
||||
function (Member $member): string {
|
||||
return $member->getId();
|
||||
|
@ -527,7 +528,7 @@ class Circle extends ManagedModel implements IMemberships, IDeserializable, INC2
|
|||
*
|
||||
* @return self
|
||||
*/
|
||||
public function setMemberships(array $memberships): IMemberships {
|
||||
public function setMemberships(array $memberships): IEntity {
|
||||
$this->memberships = $memberships;
|
||||
|
||||
return $this;
|
||||
|
@ -545,6 +546,21 @@ class Circle extends ManagedModel implements IMemberships, IDeserializable, INC2
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $singleId
|
||||
* @param bool $detailed
|
||||
*
|
||||
* @return Membership
|
||||
* @throws MembershipNotFoundException
|
||||
* @throws RequestBuilderException
|
||||
*/
|
||||
public function getLink(string $singleId, bool $detailed = false): Membership {
|
||||
$this->getManager()->getLink($this, $singleId, $detailed);
|
||||
|
||||
throw new MembershipNotFoundException();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Member|null $initiator
|
||||
*
|
||||
|
|
|
@ -38,10 +38,12 @@ use ArtificialOwl\MySmallPhpTools\Traits\Nextcloud\nc22\TNC22Deserialize;
|
|||
use ArtificialOwl\MySmallPhpTools\Traits\TArrayTools;
|
||||
use JsonSerializable;
|
||||
use OCA\Circles\Exceptions\FederatedUserNotFoundException;
|
||||
use OCA\Circles\Exceptions\MembershipNotFoundException;
|
||||
use OCA\Circles\Exceptions\OwnerNotFoundException;
|
||||
use OCA\Circles\Exceptions\RequestBuilderException;
|
||||
use OCA\Circles\Exceptions\UnknownInterfaceException;
|
||||
use OCA\Circles\IFederatedUser;
|
||||
use OCA\Circles\IMemberships;
|
||||
use OCA\Circles\IEntity;
|
||||
|
||||
/**
|
||||
* Class FederatedUser
|
||||
|
@ -50,7 +52,7 @@ use OCA\Circles\IMemberships;
|
|||
*/
|
||||
class FederatedUser extends ManagedModel implements
|
||||
IFederatedUser,
|
||||
IMemberships,
|
||||
IEntity,
|
||||
IDeserializable,
|
||||
INC22QueryRow,
|
||||
JsonSerializable {
|
||||
|
@ -79,9 +81,6 @@ class FederatedUser extends ManagedModel implements
|
|||
/** @var string */
|
||||
private $instance;
|
||||
|
||||
/** @var Membership */
|
||||
private $link;
|
||||
|
||||
/** @var Membership[] */
|
||||
private $memberships = null;
|
||||
|
||||
|
@ -283,7 +282,7 @@ class FederatedUser extends ManagedModel implements
|
|||
*
|
||||
* @return self
|
||||
*/
|
||||
public function setMemberships(array $memberships): IMemberships {
|
||||
public function setMemberships(array $memberships): IEntity {
|
||||
$this->memberships = $memberships;
|
||||
|
||||
return $this;
|
||||
|
@ -301,29 +300,19 @@ class FederatedUser extends ManagedModel implements
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return bool
|
||||
*/
|
||||
public function hasLink(): bool {
|
||||
return !is_null($this->link);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Membership $link
|
||||
* @param string $singleId
|
||||
* @param bool $detailed
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function setLink(Membership $link): self {
|
||||
$this->link = $link;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Membership
|
||||
* @throws MembershipNotFoundException
|
||||
* @throws RequestBuilderException
|
||||
*/
|
||||
public function getLink(): Membership {
|
||||
return $this->link;
|
||||
public function getLink(string $singleId, bool $detailed = false): Membership {
|
||||
$this->getManager()->getLink($this, $singleId, $detailed);
|
||||
|
||||
throw new MembershipNotFoundException();
|
||||
}
|
||||
|
||||
|
||||
|
@ -429,10 +418,6 @@ class FederatedUser extends ManagedModel implements
|
|||
$arr['basedOn'] = $this->getBasedOn();
|
||||
}
|
||||
|
||||
if ($this->hasLink()) {
|
||||
$arr['link'] = $this->getLink();
|
||||
}
|
||||
|
||||
if (!is_null($this->memberships)) {
|
||||
$arr['memberships'] = $this->getMemberships();
|
||||
}
|
||||
|
|
|
@ -42,10 +42,11 @@ use OCA\Circles\AppInfo\Capabilities;
|
|||
use OCA\Circles\Exceptions\MemberNotFoundException;
|
||||
use OCA\Circles\Exceptions\MembershipNotFoundException;
|
||||
use OCA\Circles\Exceptions\ParseMemberLevelException;
|
||||
use OCA\Circles\Exceptions\RequestBuilderException;
|
||||
use OCA\Circles\Exceptions\UnknownInterfaceException;
|
||||
use OCA\Circles\Exceptions\UserTypeNotFoundException;
|
||||
use OCA\Circles\IFederatedUser;
|
||||
use OCA\Circles\IMemberships;
|
||||
use OCA\Circles\IEntity;
|
||||
use OCA\Circles\Model\Federated\RemoteInstance;
|
||||
|
||||
/**
|
||||
|
@ -54,7 +55,7 @@ use OCA\Circles\Model\Federated\RemoteInstance;
|
|||
* @package OCA\Circles\Model
|
||||
*/
|
||||
class Member extends ManagedModel implements
|
||||
IMemberships,
|
||||
IEntity,
|
||||
IFederatedUser,
|
||||
IDeserializable,
|
||||
INC22QueryRow,
|
||||
|
@ -707,7 +708,7 @@ class Member extends ManagedModel implements
|
|||
*
|
||||
* @return self
|
||||
*/
|
||||
public function setMemberships(array $memberships): IMemberships {
|
||||
public function setMemberships(array $memberships): IEntity {
|
||||
$this->memberships = $memberships;
|
||||
|
||||
return $this;
|
||||
|
@ -724,22 +725,34 @@ class Member extends ManagedModel implements
|
|||
return $this->memberships;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $circleId
|
||||
* @param string $singleId
|
||||
* @param bool $detailed
|
||||
*
|
||||
* @return Membership
|
||||
* @throws MembershipNotFoundException
|
||||
* @throws RequestBuilderException
|
||||
*/
|
||||
public function getMembership(string $circleId): Membership {
|
||||
foreach ($this->getMemberships() as $membership) {
|
||||
if ($membership->getCircleId() === $circleId) {
|
||||
return $membership;
|
||||
}
|
||||
}
|
||||
public function getLink(string $singleId, bool $detailed = false): Membership {
|
||||
$this->getManager()->getLink($this, $singleId, $detailed);
|
||||
|
||||
throw new MembershipNotFoundException();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $circleId
|
||||
* @param bool $detailed
|
||||
*
|
||||
* @return Membership
|
||||
* @throws MembershipNotFoundException
|
||||
* @throws RequestBuilderException
|
||||
* @deprecated - use getLink();
|
||||
*/
|
||||
public function getMembership(string $circleId, bool $detailed = false): Membership {
|
||||
return $this->getLink($circleId, $detailed);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param Member $member
|
||||
|
|
|
@ -50,10 +50,11 @@ use OCA\Circles\Exceptions\RemoteResourceNotFoundException;
|
|||
use OCA\Circles\Exceptions\RequestBuilderException;
|
||||
use OCA\Circles\Exceptions\UnknownInterfaceException;
|
||||
use OCA\Circles\Exceptions\UnknownRemoteException;
|
||||
use OCA\Circles\IMemberships;
|
||||
use OCA\Circles\IEntity;
|
||||
use OCA\Circles\Model\Federated\RemoteInstance;
|
||||
use OCA\Circles\Service\ConfigService;
|
||||
use OCA\Circles\Service\InterfaceService;
|
||||
use OCA\Circles\Service\MembershipService;
|
||||
use OCA\Circles\Service\RemoteService;
|
||||
use OCP\IURLGenerator;
|
||||
|
||||
|
@ -84,6 +85,9 @@ class ModelManager {
|
|||
/** @var InterfaceService */
|
||||
private $interfaceService;
|
||||
|
||||
/** @var MembershipService */
|
||||
private $membershipService;
|
||||
|
||||
/** @var RemoteService */
|
||||
private $remoteService;
|
||||
|
||||
|
@ -104,6 +108,7 @@ class ModelManager {
|
|||
* @param MemberRequest $memberRequest
|
||||
* @param MembershipRequest $membershipRequest
|
||||
* @param InterfaceService $interfaceService
|
||||
* @param MembershipService $membershipService
|
||||
* @param RemoteService $remoteService
|
||||
* @param ConfigService $configService
|
||||
*/
|
||||
|
@ -114,6 +119,7 @@ class ModelManager {
|
|||
MemberRequest $memberRequest,
|
||||
MembershipRequest $membershipRequest,
|
||||
InterfaceService $interfaceService,
|
||||
MembershipService $membershipService,
|
||||
RemoteService $remoteService,
|
||||
ConfigService $configService
|
||||
) {
|
||||
|
@ -123,6 +129,7 @@ class ModelManager {
|
|||
$this->memberRequest = $memberRequest;
|
||||
$this->membershipRequest = $membershipRequest;
|
||||
$this->interfaceService = $interfaceService;
|
||||
$this->membershipService = $membershipService;
|
||||
$this->remoteService = $remoteService;
|
||||
$this->configService = $configService;
|
||||
|
||||
|
@ -197,14 +204,28 @@ class ModelManager {
|
|||
|
||||
|
||||
/**
|
||||
* @param IMemberships $member
|
||||
* @param IEntity $member
|
||||
*/
|
||||
public function getMemberships(IMemberships $member): void {
|
||||
public function getMemberships(IEntity $member): void {
|
||||
$memberships = $this->membershipRequest->getMemberships($member->getSingleId());
|
||||
$member->setMemberships($memberships);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param IEntity $member
|
||||
* @param string $circleId
|
||||
* @param bool $detailed
|
||||
*
|
||||
* @return Membership
|
||||
* @throws MembershipNotFoundException
|
||||
* @throws RequestBuilderException
|
||||
*/
|
||||
public function getLink(IEntity $member, string $circleId, bool $detailed = false): Membership {
|
||||
return $this->membershipService->getMembership($circleId, $member->getSingleId(), $detailed);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param ManagedModel $model
|
||||
* @param array $data
|
||||
|
|
Loading…
Reference in a new issue