/** * @param string $token * @param ICLAMember $member * @return ITeam */ public function confirmInvitation($token, ICLAMember $member) { $invitation_repository = $this->invitation_repository; return $this->tx_manager->transaction(function () use($token, $member, $invitation_repository) { $invitation = $invitation_repository->findByConfirmationToken($token); if (!$invitation) { throw new NotFoundEntityException('TeamInvitation', sprintf('token %s', $token)); } if ($invitation->getMember()->getIdentifier() !== $member->getIdentifier()) { throw new InvitationBelongsToAnotherMemberException(); } $invitation->doConfirmation($token); $invitation->getTeam()->addMember($invitation->getMember()); return $invitation->getTeam(); }); }
/** * @param ICLAMember $member * @return bool */ public function isMember(ICLAMember $member) { $member_id = $member->getIdentifier(); $res = $this->Members(" MemberID = {$member_id} "); return $res->Count() > 0; }