public static function create(Member $login, array $data, PropelPDO $con) { $formData = \Invitation::initInvitationForm($data); $invitationsCount = InvitationQuery::create()->count(); $hash = \Tbmt\Cryption::getInvitationHash($login, $formData['type'], $invitationsCount . time()); $invitation = new Invitation(); $invitation->setHash($hash)->setMemberId($login->getId())->setType($formData['type'])->setFreeSignup($formData['free_signup'] ? 1 : 0)->setCreationDate(time())->save($con); return $invitation; }
public function render(array $params = array()) { if (!isset($params['member']) && !$params['member'] instanceof \Member) { throw new \Exception('Invalid param member for account index view.'); } $this->member = $params['member']; $this->formVal = \Invitation::initInvitationForm(isset($params['formVal']) ? $params['formVal'] : $_REQUEST); $this->formErrors = isset($params['formErrors']) ? $params['formErrors'] : []; $this->invitations = \InvitationQuery::create()->filterByMemberId($this->member->getId())->orderBy('AcceptedDate', \Criteria::DESC)->orderBy('CreationDate', \Criteria::DESC)->limit(100)->find(); $this->invitationDateFormat = \Tbmt\Localizer::get('datetime_format_php.long'); return $this->renderFile(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tab.invitation.account.html', $params); }
public static function validateSignupForm(array $data = array()) { $data = self::initSignupForm($data); // Email is not required if ($data['email'] === '') { unset($data['email']); } if ($data['password'] !== $data['password2']) { return [false, ['password' => \Tbmt\Localizer::get('error.password_unequal')], null, null]; } $res = \Tbmt\Validator::getErrors($data, self::$SIGNUP_FORM_FILTERS); if ($res !== false) { return [false, $res, null, null]; } // Validate member number exists $parentMember = \MemberQuery::create()->filterByDeletionDate(null, Criteria::ISNULL)->filterByType(self::TYPE_SYSTEM, Criteria::NOT_EQUAL)->findOneByNum($data['referral_member_num']); if ($parentMember == null) { return [false, ['referral_member_num' => \Tbmt\Localizer::get('error.referral_member_num')], null, null]; } // else if ( $parentMember->hadPaid() ) { // return [false, ['referral_member_num' => \Tbmt\Localizer::get('error.referer_paiment_outstanding')], null]; // } $invitation = null; if ($data['invitation_code'] !== '') { $invitation = \InvitationQuery::create()->findOneByHash($data['invitation_code']); if ($parentMember == null) { return [false, ['invitation_code' => \Tbmt\Localizer::get('error.invitation_code_inexisting')], null, null]; } if ($invitation->getMemberId() !== $parentMember->getId()) { return [false, ['invitation_code' => \Tbmt\Localizer::get('error.invitation_code_invalid')], null, null]; } if ($invitation->getAcceptedMemberId()) { return [false, ['invitation_code' => \Tbmt\Localizer::get('error.invitation_code_used')], null, null]; } } if (!isset($data['email'])) { $data['email'] = ''; } return [true, $data, $parentMember, $invitation]; }