public function actionIndex() { $model = new Invitations(); if (isset($_POST['Invitations'])) { $model->attributes = $_POST['Invitations']; $model->guid = trim($model->guid); $isAvailable = Invitations::model()->checkAvaliable($model->guid); if (!$isAvailable) { Yii::app()->user->setFlash('error', Yii::t('AuthModule.main', 'Invitation is not available')); $this->renderIndex($model); return; } //invitation ok, redirect to registration Yii::app()->user->setFlash('info', Yii::t('AuthModule.main', 'Invitation is available')); Yii::app()->user->setState('invitationGuid', $model->guid); $this->redirect(array('user/registration')); } else { //new form $model = new Invitations(); $this->renderIndex($model); return; } }
public function actionRegistration() { $model = new Users(); $useInvitations = AuthCommon::getParam('useInvitations'); if ($useInvitations) { if (Yii::app()->user->hasState('invitationGuid')) { $invitationGuid = Yii::app()->user->getState('invitationGuid'); } else { $invitationGuid = null; } if (empty($invitationGuid)) { //invitation is empty so we neet to show invitation enter page $this->redirect(array('invitations/index')); } $model->invitationGuid = $invitationGuid; } if (isset($_POST['Users'])) { //this is a second call this action but with form data, //so we need to update and save User model $model->attributes = $_POST['Users']; if ($model->termsSigned > 0) { $model->terms_version = 1; } if (!$model->validate()) { //have not pass validators Yii::app()->user->setFlash('error', Yii::t('AuthModule.main', 'Incorrect form data')); $this->render('change', array('model' => $model)); return; } $model->created_manually = true; if (!$model->saveModel()) { $this->render('change', array('model' => $model)); return; } if ($useInvitations) { //mark invintation used if (!Invitations::setUsed($model->invitationGuid, $model->username)) { Yii::app()->user->setFlash('error', Yii::t('AuthModule.main', 'Invitation occupy error')); $this->redirect(array('invitations/index')); } Yii::app()->user->setState('invitationGuid', null); } $email = $model->email; $user_id = $model->id; Yii::app()->user->setState('formUsername', $model->username); $guid = AuthCommon::getGUID(); $validations = new Validations(); $validations->guid = $guid; $validations->user_id = $user_id; $validations->email = $email; $validations->type = self::VALIDATOR_ACTIVATE; $date = new DateTime(); $date->modify("+24 hours"); $exp_time = $date->format(AuthCommon::getParam('dateFormat')); $validations->exp_datetime = $exp_time; $validations->comments = 'Activate new user'; if (!$validations->validate() || !$validations->save()) { Yii::app()->user->setFlash('error', Yii::t('AuthModule.main', 'Form validation error')); $this->redirect(array('user/registration')); } if (AuthCommon::sendActivationtEmail($model->email, $guid, $model->username)) { Yii::app()->user->setFlash('success', sprintf(Yii::t('AuthModule.main', 'Activation email has been sent to address'), $email)); $this->redirect(array('user/activation')); } else { Yii::app()->user->setFlash('error', sprintf(Yii::t('AuthModule.main', 'Error sending email'), $email)); Helpers::showError('Ошибка отправки письма', 'Регистрация пользователя', true); } } else { $this->render('change', array('model' => $model)); } }
/** * Add an invitation for the given invitee, from the given inviter. * @param string $feature The feature to invite to. * @param object $invitee The user to be invited. * @param object $inviter The inviting user, or null for $wgUser. * @return integer One of the INVITE_RESULT constants. */ public static function inviteUser($feature, $invitee, $inviter = null) { global $wgUser, $wgInvitationTypes; if ($inviter === null) { $inviter = $wgUser; } if (($res = Invitations::checkInviteOperation($feature, $invitee, $inviter)) != INVITE_RESULT_OK) { return $res; } // We /should/ be OK to go. $dbw = wfGetDB(DB_MASTER); $dbw->update('invite_count', array('ic_count=ic_count-1'), array('ic_user' => $inviter->getId(), 'ic_type' => $feature), __METHOD__); $dbw->insert('invitation', array('inv_invitee' => $invitee->getId(), 'inv_inviter' => $inviter->getId(), 'inv_type' => $feature), __METHOD__); // Log it. $log = new LogPage('invite'); $log->addEntry('invite', $invitee->getUserPage(), '', array($feature)); Invitations::insertCountRow($feature, $invitee); }
function buildFeatureView($feature, $error = false, $success = false) { global $wgUser, $wgOut, $wgInvitationTypes, $wgLang; $friendlyname = wfMsg("invitation-type-{$feature}"); $wgOut->setPageTitle(wfMsg('invitations-feature-pagetitle', $friendlyname)); $wgOut->setRobotPolicy("noindex,nofollow"); $wgOut->setArticleRelated(false); $wgOut->enableClientCache(false); if (Invitations::hasInvite($feature)) { $wgOut->addWikiMsg('invitations-feature-access', $friendlyname); $numleft = Invitations::getRemainingInvites($feature); $numLeftFmt = $wgLang->formatNum($numleft); if ($numleft > 0) { $allocation = $wgLang->formatNum($wgInvitationTypes[$feature]['reserve']); $wgOut->addWikiMsg('invitations-feature-numleft', $numleftFmt, $allocation); } else { if ($numleft == -1) { # Do nothing. } else { if (!Invitations::checkDelay($feature)) { $wgOut->addWikiMsg('invitations-feature-noneyet'); } else { $wgOut->addWikiMsg('invitations-feature-noneleft'); } } } // Successes and errors if ($error) { $wgOut->wrapWikiMsg('<div class="error">$1</div>', $error); } else { if ($success) { $wgOut->wrapWikiMsg('<big>$1</big>', $success); } } // Invitation form if ($numleft != 0) { $wgOut->addHTML($this->buildInvitationForm($feature, $error)); } } else { $wgOut->addWikiMsg('invitations-feature-notallowed', $friendlyname); } }
protected final function process_request() { // Process // if ($this->request_noun === REQUEST_NOUN_USERS) { if ($this->request_verb === 'show') { // Show // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_GET) { Users::show($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'search' && $this->http_method === HTTP_METHOD_GET) { // Search // Users::search($this->inputter, $this->outputter); } else { if ($this->request_verb === 'lookup' && $this->http_method === HTTP_METHOD_GET) { // Lookup // Users::lookup($this->inputter, $this->outputter); } else { $this->invalid_process_verb(); } } } } else { if ($this->request_noun === REQUEST_NOUN_FRIENDS) { if ($this->request_verb === 'list' && $this->http_method === HTTP_METHOD_GET) { // List // Friends::_list($this->inputter, $this->outputter); } else { if ($this->request_verb === 'ids' && $this->http_method === HTTP_METHOD_GET) { // User IDs // Friends::ids($this->inputter, $this->outputter); } else { $this->invalid_process_verb(); } } } else { if ($this->request_noun === REQUEST_NOUN_FOLLOWERS) { if ($this->request_verb === 'list' && $this->http_method === HTTP_METHOD_GET) { // List // Followers::_list($this->inputter, $this->outputter); } else { if ($this->request_verb === 'ids' && $this->http_method === HTTP_METHOD_GET) { // User IDs // Followers::ids($this->inputter, $this->outputter); } else { $this->invalid_process_verb(); } } } else { if ($this->request_noun === REQUEST_NOUN_IN_PRODUCT_PROMOTIONS) { if ($this->request_verb === 'show') { // Show // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_GET) { // In Product Promotion ID // InProductPromotions::show($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { // Create // InProductPromotions::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'update' && $this->http_method === HTTP_METHOD_POST) { // Update // InProductPromotions::update($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy') { // Destroy // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_DELETE) { // In Product Promotion ID // InProductPromotions::destroy($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { $this->invalid_process_verb(); } } } } } else { if ($this->request_noun === REQUEST_NOUN_INVITATIONS) { if ($this->request_verb === 'show') { // Show // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_GET) { Invitations::show($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { // Create // Invitations::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'update' && $this->http_method === HTTP_METHOD_POST) { // Update // Invitations::update($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy') { // Destroy // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_DELETE) { // Invitation ID // Invitations::destroy($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'incoming') { // Incoming // if (count($this->inputter->additional_uri_arguments) === 1 && $this->inputter->additional_uri_arguments[0] === 'list' && $this->http_method === HTTP_METHOD_GET) { // List // Invitations::incoming_list($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'outgoing') { // Outgoing // if (count($this->inputter->additional_uri_arguments) === 1 && $this->inputter->additional_uri_arguments[0] === 'list' && $this->http_method === HTTP_METHOD_GET) { // List // Invitations::outgoing_list($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { $this->invalid_process_verb(); } } } } } } } else { if ($this->request_noun === REQUEST_NOUN_EVENT_OCCURRENCES) { // Event Occurrences // if ($this->request_verb === 'show') { // Show // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_GET) { EventOccurrences::show($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { // Create // EventOccurrences::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'update' && $this->http_method === HTTP_METHOD_POST) { // Update // EventOccurrences::update($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy') { // Destroy // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_DELETE) { // Event Occurrence ID // EventOccurrences::destroy($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'list') { // List // if (count($this->inputter->additional_uri_arguments) === 1 && $this->inputter->additional_uri_arguments[0] === 'event' && $this->http_method === HTTP_METHOD_GET) { // Created // EventOccurrences::list_event($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { $this->invalid_process_verb(); } } } } } } else { if ($this->request_noun === REQUEST_NOUN_PHOTOS) { if ($this->request_verb === 'show') { // Show // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_GET) { // Photo ID // Photos::show($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { // Create // Photos::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'update' && $this->http_method === HTTP_METHOD_POST) { // Update // Photos::update($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy') { // Destroy // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_DELETE) { // Photo ID // Photos::destroy($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'list' && $this->http_method === HTTP_METHOD_GET) { // List // Photos::_list($this->inputter, $this->outputter); } else { $this->invalid_process_verb(); } } } } } } else { if ($this->request_noun === REQUEST_NOUN_ALBUMS) { if ($this->request_verb === 'show') { // Show // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_GET) { // Album ID // Albums::show($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { // Create // Albums::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'update' && $this->http_method === HTTP_METHOD_POST) { // Update // Albums::update($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy') { // Destroy // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_DELETE) { // Album ID // Albums::destroy($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'list' && $this->http_method === HTTP_METHOD_GET) { // List // Albums::_list($this->inputter, $this->outputter); } else { $this->invalid_process_verb(); } } } } } } else { if ($this->request_noun === REQUEST_NOUN_SEARCH) { if ($this->http_method === HTTP_METHOD_GET) { if ($this->request_verb === 'list') { // Search // Search::search_list($this->inputter, $this->outputter); } } } else { if ($this->request_noun === REQUEST_NOUN_FOLLOWINGS) { if ($this->request_verb === 'list' && $this->http_method === HTTP_METHOD_GET) { // List // Followings::_list($this->inputter, $this->outputter); } else { if ($this->request_verb === 'ids' && $this->http_method === HTTP_METHOD_GET) { // User IDs // Followings::ids($this->inputter, $this->outputter); } else { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { // Create // Followings::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy' && $this->http_method === HTTP_METHOD_POST) { // User IDs // Followings::destroy($this->inputter, $this->outputter); } else { $this->invalid_process_verb(); } } } } } else { if ($this->request_noun === REQUEST_NOUN_ACCOUNT) { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { Account::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'update' && $this->http_method === HTTP_METHOD_POST) { Account::update($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy' && $this->http_method === HTTP_METHOD_DELETE) { // Destroy // if (isset($this->inputter->additional_uri_arguments[0]) && count($this->inputter->additional_uri_arguments) === 1) { Account::destroy($this->inputter, $this->outputter); } else { // Throw error, identification is required // $error = Error::withDomain(PRIVATE_EVENTS_REST_CONTROLLER_ERROR_DOMAIN, ERROR_CODE_VALIDATION_PROPERTY_NOT_SET, 'A user identification is required.'); $this->outputter->print_error($error); } } else { if ($this->request_verb === 'authenticate' && $this->http_method === HTTP_METHOD_POST) { Account::authenticate($this->inputter, $this->outputter); } else { if ($this->request_verb === 'unauthenticate' && $this->http_method === HTTP_METHOD_POST) { Account::unauthenticate($this->inputter, $this->outputter); } else { $this->invalid_process_verb(); } } } } } } else { if ($this->request_noun === REQUEST_NOUN_EVENTS) { if ($this->request_verb === 'show') { // Show // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_POST) { Events::show($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { // Create // Events::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'update' && $this->http_method === HTTP_METHOD_POST) { // Update // Events::update($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy') { // Destroy // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_DELETE) { // Event ID // Events::destroy($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'attend' && $this->http_method === HTTP_METHOD_POST) { // Attend // Events::attend($this->inputter, $this->outputter); } else { if ($this->request_verb === 'search' && $this->http_method === HTTP_METHOD_GET) { // Search // Events::search($this->inputter, $this->outputter); } else { if ($this->request_verb === 'list') { // List // if (count($this->inputter->additional_uri_arguments) === 1 && $this->inputter->additional_uri_arguments[0] === 'event_type' && $this->http_method === HTTP_METHOD_GET) { // Event Type // Events::list_event_type($this->inputter, $this->outputter); } else { if (count($this->inputter->additional_uri_arguments) === 1 && $this->inputter->additional_uri_arguments[0] === 'created' && $this->http_method === HTTP_METHOD_GET) { // Created // Events::list_created($this->inputter, $this->outputter); } else { if (count($this->inputter->additional_uri_arguments) === 1 && $this->inputter->additional_uri_arguments[0] === 'invited' && $this->http_method === HTTP_METHOD_GET) { // Invited // Events::list_invited($this->inputter, $this->outputter); } else { if (count($this->inputter->additional_uri_arguments) === 1 && $this->inputter->additional_uri_arguments[0] === 'nearby' && $this->http_method === HTTP_METHOD_GET) { // Nearby // Events::list_nearby($this->inputter, $this->outputter); } else { if (count($this->inputter->additional_uri_arguments) === 1 && $this->inputter->additional_uri_arguments[0] === 'popular' && $this->http_method === HTTP_METHOD_GET) { // Popular // Events::list_popular($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } } } } } else { $this->invalid_process_verb(); } } } } } } } } else { if ($this->request_noun === REQUEST_NOUN_LOCATIONS) { if ($this->request_verb === 'show') { // Show // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_GET) { // Location ID // Locations::show($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { // Create // Locations::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'update' && $this->http_method === HTTP_METHOD_POST) { // Update // Locations::update($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy') { // Destroy // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_DELETE) { // Location ID // Locations::destroy($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { $this->invalid_process_verb(); } } } } } else { if ($this->request_noun === REQUEST_NOUN_TICKETS) { if ($this->request_verb === 'show') { // Show // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_GET) { // Ticket ID // Tickets::show($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'create' && $this->http_method === HTTP_METHOD_POST) { // Create // Tickets::create($this->inputter, $this->outputter); } else { if ($this->request_verb === 'update' && $this->http_method === HTTP_METHOD_POST) { // Update // Tickets::update($this->inputter, $this->outputter); } else { if ($this->request_verb === 'destroy') { // Destroy // if (count($this->inputter->additional_uri_arguments) === 1 && isset($this->inputter->additional_uri_arguments[0]) && $this->http_method === HTTP_METHOD_DELETE) { // Ticket ID // Tickets::destroy($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { if ($this->request_verb === 'outgoing') { // Outgoing // if (count($this->inputter->additional_uri_arguments) === 1 && $this->inputter->additional_uri_arguments[0] === 'list' && $this->http_method === HTTP_METHOD_GET) { // List // Tickets::outgoing_list($this->inputter, $this->outputter); } else { $this->invalid_process_additional_argument(count($this->inputter->additional_uri_arguments) - 1); } } else { $this->invalid_process_verb(); } } } } } } else { $this->invalid_process_noun(); } } } } } } } } } } } } } } }