public function preDispatch(Zend_Controller_Request_Abstract $request) { if (!isset($_SERVER['HTTP_USER_AGENT']) || isset($_SERVER['HTTP_USER_AGENT']) && false === strpos($_SERVER['HTTP_USER_AGENT'], 'sanmax-crawler-bot')) { return; } $config = array('accept_schemes' => 'basic', 'realm' => 'crawler', 'digest_domains' => '/', 'nonce_timeout' => 3600); $adapter = new Zend_Auth_Adapter_Http($config); $basicResolver = new Zend_Auth_Adapter_Http_Resolver_File(APPLICATION_PATH . '/var/bot-basic'); $adapter->setBasicResolver($basicResolver); $response = Zend_Controller_Front::getInstance()->getResponse(); $adapter->setRequest($request); $adapter->setResponse($response); $auth = Zend_Auth::getInstance(); $result = $auth->authenticate($adapter); if (!$result->isValid()) { $response->sendHeaders(); exit; } $user = new SxCms_User(); $gMapper = new SxCms_Group_DataMapper(); $groups = $gMapper->getAll(); foreach ($groups as $group) { $user->addGroup($group); } $storage = $auth->getStorage(); $storage->write($user); $front = Zend_Controller_Front::getInstance(); $front->setParam('isBot', true); $mvc = Zend_Layout::getMvcInstance(); $view = $mvc->getView(); $view->isBot = true; return; }
public function addAction() { SxCms_Acl::requireAcl('account', 'account.add'); $gMapper = new SxCms_Group_DataMapper(); $this->view->groups = $gMapper->getAll(); $user = new SxCms_User(); if ($this->getRequest()->isPost()) { $user->setEmail($this->_getParam('email'))->setFirstName($this->_getParam('first_name'))->setLastName($this->_getParam('last_name'))->setPassword($this->_getParam('password')); foreach ($this->_getParam('group') as $groupId) { $group = new SxCms_Group(); $group->setId($groupId); $user->addGroup($group); } $validator = new SxCms_User_BaseValidator(); $validator->setPasswordRepeat($this->_getParam('password_repeat')); if ($validator->validate($user)) { $user->save(); $this->_helper->redirector->gotoSimple('index', 'account'); } } $this->view->user = $user; $this->view->messages = Sanmax_MessageStack::getInstance('SxCms_User'); }