Пример #1
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeInit(sfWebRequest $request)
 {
     //Check if kernel init went fine:
     $this->status = $this->getContext()->get('KernelStatus');
     $this->getContext()->getUser()->setAttribute('relativeUrlRoot', $request->getRelativeUrlRoot());
     //Add the log entry corresponding to the Kernel status:
     $log_ok = $this->getContext()->get('Kernel')->addLogIf(empty($this->status), array('info' => 'Application startup successful', 'error' => 'Application startup failed.'));
     //Check if error occured while logging:
     if (!$log_ok) {
         $this->status['log'] = 'Log files are unreachable, please check permissions on the log directory.';
     }
     //Edit the databases.yml file:
     ParametersConfiguration::editYaml();
     //Redirect to the localized homepage if everything went fine:
     $usersAuth = new usersAuth();
     /*Depending on the user Type (disconnected, admin, viewer), a redirection is done*/
     if ($usersAuth->isAdmin()) {
         $this->redirectIf(empty($this->status), '@localized_homepage');
     } else {
         if ($usersAuth->isViewer()) {
             $this->redirectIf(empty($this->status), '@localized_homepage');
         } else {
             $this->redirectIf(empty($this->status), '@authentification');
         }
     }
 }
Пример #2
0
 public function executePost(sfWebRequest $request)
 {
     $this->forward400Unless($request['target'], 'target not specified.');
     $this->forward400Unless($request['target_id'], 'target_id not specified.');
     $this->forward400Unless($request['member_id'], 'member_id not specified.');
     $foreignTable = $request['target'];
     $foreignId = $request['target_id'];
     $foreignMemberId = $request['member_id'];
     $toMember = Doctrine::getTable('Member')->findOneById($foreignMemberId);
     $this->forward400Unless($toMember, 'member does not exist.');
     $this->forward400If(1 < strlen($foreignTable), 'must be a single character.');
     $alreadyLike = Doctrine::getTable('Nice')->isAlreadyNiced($this->memberId, $foreignTable, $foreignId);
     $this->forward400If($alreadyLike, 'It has already been registered');
     $fromMember = $this->getUser()->getMember();
     $baseUrl = $request->getRelativeUrlRoot();
     switch ($foreignTable) {
         case 'A':
             $this->forward400Unless($activity = Doctrine::getTable('ActivityData')->find($foreignId));
             $timelineId = $activity->in_reply_to_activity_id ? $activity->in_reply_to_activity_id : $activity->id;
             $url = $baseUrl . '/timeline/show/id/' . $timelineId;
             break;
         case 'D':
             $url = $baseUrl . '/diary/' . $foreignId;
             break;
         case 'd':
             $diaryComment = Doctrine::getTable('DiaryComment')->findOneById($foreignId);
             $this->forward400Unless($diaryComment, 'diary comment does not exist.');
             $url = $baseUrl . '/diary/' . $diaryComment->getDiaryId();
             break;
         case 'e':
             $eventComment = Doctrine::getTable('CommunityEventComment')->findOneById($foreignId);
             $this->forward400Unless($eventComment, 'event comment does not exist.');
             $url = $baseUrl . '/communityEvent/' . $eventComment->getCommunityEventId();
             break;
         case 't':
             $topicComment = Doctrine::getTable('CommunityTopicComment')->findOneById($foreignId);
             $this->forward400Unless($topicComment, 'topic comment does not exist.');
             $url = $baseUrl . '/communityTopic/' . $topicComment->getCommunityTopicId();
             break;
         default:
             $url = '#';
             break;
     }
     $like = new Nice();
     $like->setMemberId($this->memberId);
     $like->setForeignTable($foreignTable);
     $like->setForeignId($foreignId);
     $like->save();
     $this->like = $like;
     if ($fromMember->getId() !== $toMember->getId()) {
         opLikePluginUtil::sendNotification($fromMember, $toMember, $url);
     }
 }
Пример #3
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfWebRequest $request)
 {
     $this->structure = Doctrine::getTable('Structure')->createQuery('a')->fetchOne();
     sfContext::getInstance()->getUser()->setAttribute('relativeUrlRoot', $request->getRelativeUrlRoot());
     if ($request->isMethod(sfRequest::POST)) {
         /*$context=sfContext::getInstance();*/
         $login = $this->getRequestParameter('login');
         $password = $this->getRequestParameter('password');
         $usersAuth = new usersAuth();
         $checked = $usersAuth->verifyAuth($login, $password);
         //if the authentification is done
         if ($checked == 1 || $checked == 2) {
             ParametersConfiguration::setUserPrefix(sfContext::getInstance()->getUser()->getAttribute('login'));
             $loginDisplay = ParametersConfiguration::getDefault('default_follow_moderator');
             /*According to the 'default_follow_moderator' parameter, the login will appear in logs or not*/
             if ($loginDisplay == 1) {
                 $this->getContext()->get('Kernel')->addLog("info", "Authentification success for the login \"" . $login . "\".");
             } else {
                 $this->getContext()->get('Kernel')->addLog("info", "Authentification success.");
             }
             //Get the preferred culture of the user, based on those which are installed:
             $culture = ParametersConfiguration::getDefault('default_language');
             $this->getUser()->setCulture($culture);
             $request->setParameter('sf_culture', $culture);
             $this->redirect('@localized_homepage');
         } else {
             if ($checked === 0) {
                 // this delay complicates a brute force attack
                 sleep(1);
                 $this->getUser()->setFlash('error', 'Login or password incorrect. Please try again.', true);
                 $this->getContext()->get('Kernel')->addLog("error", "Authentification denied for the login \"" . $login . "\".");
             } else {
                 if ($checked === -2) {
                     $this->getUser()->setFlash('error', 'Login and password are correct but your account is locked.', true);
                     $this->getContext()->get('Kernel')->addLog("error", "Authentification denied for the login \"" . $login . "\". Account is locked.");
                 } else {
                     //The error message is copied in the error log
                     $this->getContext()->get('Kernel')->addLog("error", "Connection to the database failed:\"" . $checked . "\".");
                     $this->getUser()->setFlash('error', 'Impossible authentification. Check the connection to the database.', true);
                 }
             }
         }
     } else {
         $this->login = null;
         $this->password = null;
     }
 }
Пример #4
0
 public function executeWidgetOuter(sfWebRequest $request)
 {
     $this->fetchWidget();
     $petition = $this->widget['Petition'];
     /* @var $petition Petition */
     $petition_text = $this->widget['PetitionText'];
     /* @var $petition_text PetitionText */
     $this->count = $petition->getCount(60);
     $this->target = $this->count . '-' . Petition::calcTarget($this->count, $this->widget->getPetition()->getTargetNum());
     $image_prefix = ($request->isSecure() ? 'https://' : 'http://') . $request->getHost() . '/' . $request->getRelativeUrlRoot() . 'images/';
     $this->kind = $this->widget->getPetition()->getKind();
     $this->lang = $this->widget->getPetitionText()->getLanguageId();
     $this->getUser()->setCulture($this->lang);
     $this->label_mode = $this->widget->getPetition()->getLabelMode();
     $stylings = json_decode($this->widget->getStylings(), true);
     if (!is_array($stylings)) {
         $stylings = array();
     }
     $widget_colors = $petition->getWidgetIndividualiseDesign();
     foreach (array('title_color', 'body_color', 'button_color', 'bg_left_color', 'bg_right_color', 'form_title_color') as $style) {
         if (!$widget_colors || !isset($stylings[$style]) || !$stylings[$style]) {
             $stylings[$style] = $petition['style_' . $style];
         }
     }
     $this->stylings = $stylings;
     $this->keyvisual = $this->widget->getPetition()->getKeyVisual() ? $image_prefix . 'keyvisual/' . $this->widget->getPetition()->getKeyVisual() : null;
     $this->sprite = $image_prefix . 'policat.spr.png';
     $this->url = $this->getContext()->getRouting()->generate('sign', array('id' => $this->widget['id'], 'hash' => $this->widget->getLastHash(true)), true);
     $this->getResponse()->setContentType('text/javascript');
     $this->setLayout(false);
     $title = $this->widget->getTitle();
     if (!$petition->getWidgetIndividualiseText()) {
         $title = $petition_text->getTitle();
     }
     $this->title = Util::enc($title);
 }
 protected function smtPost(sfWebRequest $request)
 {
     $this->publicFlags = Doctrine::getTable('Diary')->getPublicFlags();
     unset($this->publicFlags[4]);
     $this->relativeUrlRoot = $request->getRelativeUrlRoot();
     $this->setLayout('smtLayoutSns');
     $this->setTemplate('smtPost');
 }