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; }
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(''); }