/** * Constructor * * @param Zend_Db_Adapter_Abstract $db * @param int $user_id * @param int $post_id */ public function __construct($db, $user_id, $post_id = 0) { $this->db = $db; $this->user = new Default_Model_DbTable_User($db); $this->user->load($user_id); $this->post = new Default_Model_DbTable_BlogPost($db); $this->post->loadForUser($this->user->getId(), $post_id); if (!$this->post->isSaved()) { $this->post->user_id = $this->user->getId(); } parent::__construct(); }
/** * Action - detailscomplete * end edit detailed information about the user * * Access to the action is possible in the following paths: * - /account/detailscomplete * * @return void */ public function detailscompleteAction() { $user = new Default_Model_DbTable_User($this->db); $user_id = Zend_Auth::getInstance()->getIdentity()->user_id; $user->load($user_id); $this->view->user = $user; //Добавим путь к действию $this->_breadcrumbs->addStep($this->Translate('Редактировать профиль'), $this->getUrl('details')); $this->_breadcrumbs->addStep($this->Translate('Профиль изменен')); }
/** * Action - login * user authentication * * Access to the action is possible in the following paths: * - /admin/user/login * * @return void */ public function loginAction() { $result = true; $message = NULL; //---------------------- // Получим обьект авторизации пользователя $auth = Zend_Auth::getInstance(); // Получим параметры запроса $request = $this->getRequest(); $params = $request->getParams(); //Создадим обьект формы $loginForm = new Default_Form_UserLogin(); $urlAction = $this->getUrl('login', 'user', 'admin'); $loginForm->setAction($urlAction); $redirect = $params['redirect']; //Проверим правильность заполнения полей формы if ($loginForm->isValid($params)) { $db = Zend_Registry::get('db'); // Найдем пользователя по его имени $user = new Default_Model_DbTable_User($db); $username = $loginForm->getValue('username'); if ($user->loadByUsername($username)) { // Определим актуальность пользователя на сайте // setup the authentication adapter $adapter = new Zend_Auth_Adapter_DbTable($db, 'users', 'username', 'password', '?'); $password = $loginForm->getValue('password'); $password = $password; $adapter->setIdentity($username); $adapter->setCredential($password); // Проверим правильность аутентификации $result = $auth->authenticate($adapter); if ($result->isValid()) { //ОК - вход пользователя прошел успешно //--- Проверим актуальность пользователя --- //Получим данные о пользователе $user = new Default_Model_DbTable_User($this->db); $user_id = $adapter->getResultRowObject()->id; $user->load($user_id); // Очистим данные идентификации пользователя $auth->clearIdentity(); // Сохраним обьект идентификации пользователя // и перейдем на действие завершения авторизации $user->loginSuccess(); // Создадим обьект идентификации пользователя // и запишем его в сессию пользователя $identity = $user->createAuthIdentity(); $auth->getStorage()->write($identity); // Перейдем на страницу, которую запрашивал пользователь // или на его авторскую страницу $this->_redirector->gotoUrl($redirect, array('prependBase' => FALSE)); } else { //ERROR - ошибка валидации параметров входа // record failed login attempt Default_Model_DbTable_User::LoginFailure($username, $result->getCode()); $message = array($this->Translate("Ошибка регистрации! Имя или пароль клиента заданы неверно.")); } } else { //ERROR - нет такого пользователя // record failed login attempt Default_Model_DbTable_User::LoginFailure($username, Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND); $message = array($this->Translate("Ошибка регистрации! Имя клиента задано неверно.")); } } else { //ERROR - неверно введены параметры формы $message = $this->getFormMessages($loginForm); } if ($message) { $this->view->class_message = 'warning'; $this->view->message = $message; } //Добавим путь к действию $this->_breadcrumbs->addStep($this->Translate('Вход')); }