Ejemplo n.º 1
0
 protected function _validateTargetUser()
 {
     if (Zend_Registry::isRegistered('targetUser')) {
         // used by unit tests to inject the target user
         $this->targetUser = Zend_Registry::get('targetUser');
     } else {
         $userId = $this->_getParam('userid');
         if (is_null($userId)) {
             $this->targetUser = $this->user;
         } elseif ($this->_getParam('userid') == 0) {
             $users = new Users_Model_Users();
             $this->targetUser = $users->createRow();
         } else {
             if ($userId != $this->user->id && $this->user->role != Users_Model_User::ROLE_ADMIN) {
                 $this->_helper->FlashMessenger->addMessage($this->view->translate('Error: Invalid user id'));
                 $this->_redirect('profile/edit');
             }
             $users = new Users_Model_Users();
             $this->targetUser = $users->getRowInstance($userId);
             if ($this->_config->ldap->enabled) {
                 $ldap = Monkeys_Ldap::getInstance();
                 $ldapUserData = $ldap->get("cn={$this->targetUser->username},{$this->_config->ldap->baseDn}");
                 $this->targetUser->overrideWithLdapData($ldapUserData, true);
             }
         }
     }
     $this->view->targetUser = $this->targetUser;
 }
Ejemplo n.º 2
0
 public function init()
 {
     Zend_Registry::get('logger')->log('Route used: ' . Application::$front->getRouter()->getCurrentRouteName(), Zend_Log::DEBUG);
     $this->_config = Zend_Registry::get('config');
     $this->_settings = new Model_Settings();
     if ($this->_request->getModuleName() != 'install' && strtoupper(get_class($this)) != 'ERRORCONTROLLER' && $this->_needsUpgrade()) {
         $this->_redirect('/install/upgrade');
         return;
     }
     if (!Zend_Registry::isRegistered('user')) {
         // guest user
         $users = new Users_Model_Users();
         $user = $users->createRow();
         Zend_Registry::set('user', $user);
     }
     $this->user = Zend_Registry::get('user');
     $this->view->user = $this->user;
     $this->_validateTargetUser();
     $this->_checkMaintenanceMode();
     $this->view->controller = $this;
     $this->view->addHelperPath('libs/Monkeys/View/Helper', 'Monkeys_View_Helper');
     $this->view->setUseStreamWrapper(true);
     $this->_addCustomTemplatePath();
     $this->view->addBasePath(APP_DIR . '/views');
     $this->_addCustomTemplatePath();
     $this->_setBase();
     $this->view->numCols = $this->_numCols;
     $this->view->module = $this->getRequest()->getModuleName();
     if ($this->_getParam('subtitle')) {
         $this->view->pageSubtitle = $this->view->escape($this->_getParam('subtitle'));
     }
     if ($this->getRequest()->getParam('next')) {
         $this->view->nextAction = $this->getRequest()->getParam('next');
     } else {
         $this->view->nextAction = '';
     }
     $this->view->messages = $this->_helper->FlashMessenger->getMessages();
     if ($this->getRequest()->isXmlHttpRequest()) {
         $slowdown = $this->_config->environment->ajax_slowdown;
         if ($slowdown > 0) {
             sleep($slowdown);
         }
         $this->_helper->layout->disableLayout();
     } else {
         $this->view->version = Application::VERSION;
         $this->view->loaderCombine = $this->_config->environment->YDN ? 'true' : 'false';
         $this->view->loaderBase = $this->_config->environment->YDN ? 'http://yui.yahooapis.com/2.7.0/build/' : $this->view->base . '/javascript/yui/';
     }
     $this->view->min = $this->_config->environment->production ? '-min' : '';
 }
 private function _createAdmin(Install_Form_Install $form)
 {
     $users = new Users_Model_Users();
     $user = $users->createRow();
     $user->username = $form->getValue('username');
     $user->accepted_eula = 1;
     $user->registration_date = date('Y-m-d');
     $user->openid = '';
     $user->setClearPassword($form->getValue('password1'));
     $user->firstname = 'Admin';
     $user->lastname = 'User';
     $user->email = $form->getValue('supportemail');
     $user->role = Users_Model_User::ROLE_ADMIN;
     $user->save();
 }
 public function saveAction()
 {
     $form = new Users_Form_Register(null, $this->view->base);
     $formData = $this->_request->getPost();
     $form->populate($formData);
     if (!$form->isValid($formData)) {
         $appSession = Zend_Registry::get('appSession');
         $appSession->registerForm = $form;
         return $this->_forward('index', null, null);
     }
     $users = new Users_Model_Users();
     if ($users->getUserWithUsername($form->getValue('username'), false, $this->view)) {
         $form->username->addError($this->view->translate('This username is already in use'));
         $appSession = Zend_Registry::get('appSession');
         $appSession->registerForm = $form;
         return $this->_forward('index', null, null);
     }
     if ($users->getUserWithEmail($form->getValue('email'))) {
         $form->email->addError($this->view->translate('This E-mail is already in use'));
         $appSession = Zend_Registry::get('appSession');
         $appSession->registerForm = $form;
         return $this->_forward('index', null, null);
     }
     $user = $users->createRow();
     $user->firstname = $form->getValue('firstname');
     $user->lastname = $form->getValue('lastname');
     $user->email = $form->getValue('email');
     $user->username = $form->getValue('username');
     preg_match('#(.*)/users/register/save#', Zend_OpenId::selfURL(), $matches);
     $user->generateOpenId($matches[1]);
     if ($this->_config->ldap->enabled) {
         // when using ldap, unconfirmed users' password is saved unhashed temporarily, while he registers,
         // and then it's stored in LDAP and cleared from the db
         $user->setPassword($form->getValue('password1'));
     } else {
         $user->setClearPassword($form->getValue('password1'));
     }
     $user->role = Users_Model_User::ROLE_GUEST;
     $user->token = Users_Model_User::generateToken();
     $user->accepted_eula = 0;
     $user->registration_date = date('Y-m-d');
     $mail = self::getMail($user, $this->view->translate('Community-ID registration confirmation'));
     try {
         $mail->send();
         $user->save();
         $user->createDefaultProfile($this->view);
         $this->_helper->FlashMessenger->addMessage($this->view->translate('Thank you.'));
         $this->_helper->FlashMessenger->addMessage($this->view->translate('You will receive an E-mail with instructions to activate the account.'));
     } catch (Zend_Mail_Exception $e) {
         if ($this->_config->environment->production) {
             $this->_helper->FlashMessenger->addMessage($this->view->translate('The confirmation E-mail could not be sent, so the account creation was cancelled. Please contact support.'));
         } else {
             $this->_helper->FlashMessenger->addMessage($this->view->translate('The account was created but the E-mail could not be sent'));
             // I still wanna create the user when in development mode
             $user->save();
         }
         if ($this->_config->logging->level == Zend_Log::DEBUG) {
             $this->_helper->FlashMessenger->addMessage($e->getMessage());
         }
     }
     $this->_redirect('');
 }