Пример #1
0
 public function indexAction()
 {
     $this->noLayout(true);
     $request = $this->getRequest();
     if ($request->getPost('submit')) {
         $users = new Model_Users();
         $result = $users->checkLogin($request->getPost('username'), $request->getPost('password'));
         if (!$result) {
             $this->view->error = $this->translate('Please enter the correct username and password.');
         } else {
             if ($result['status']) {
                 JO_Session::set(array('user' => $result));
                 $this->redirect($request->getServer('HTTP_REFERER'));
             } else {
                 $this->view->error = $this->translate('This profile is not active.');
             }
         }
     }
     $this->view->base_url = $request->getBaseUrl();
 }
Пример #2
0
 public function indexAction()
 {
     $this->noLayout(true);
     $request = $this->getRequest();
     if ($request->getPost('submit')) {
         $users = new Model_Users();
         $result = $users->checkLogin($request->getPost('username'), $request->getPost('password'));
         if (!$result) {
             $this->view->error = $this->translate('Please enter the correct username and password.');
         } else {
             if ($result['status'] == 'activate') {
                 if (isset($result['access']) && count($result['access'])) {
                     $result['is_admin'] = true;
                 }
                 JO_Session::set($result);
                 header('Location: ' . $request->getServer('HTTP_REFERER'));
                 exit;
             } else {
                 $this->view->error = $this->translate('This profile is not active.');
             }
         }
     }
     $this->view->base_url = $request->getBaseUrl();
 }
Пример #3
0
 public function loginAction()
 {
     if (JO_Session::get('user_id')) {
         $this->redirect(WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=users&action=dashboard'));
     }
     if (JO_Session::issetKey('msg_error')) {
         $this->view->check_error = JO_Session::get('msg_error');
         $this->view->user = JO_Session::get('data');
         JO_Session::clear('msg_error');
         JO_Session::clear('data');
     }
     $this->view->usersCount = Model_Users::countUsers();
     $this->view->itemsCount = Model_Items::countItems();
     $this->getLayout()->meta_title = $this->translate('Login');
     $this->getLayout()->meta_description = $this->translate('Login');
     $request = $this->getRequest();
     if ($request->isPost()) {
         $result = Model_Users::checkLogin($request->getPost('username'), $request->getPost('password'));
         if ($result) {
             $result['following'] = Model_Users::getFollowers($result['user_id']);
             $groups = unserialize($result['groups']);
             if (is_array($groups) and count($groups) > 1) {
                 unset($result['groups']);
                 $fetch_all = Model_Users::getGroups($groups);
                 $result['access'] = array();
                 if ($fetch_all) {
                     foreach ($fetch_all as $row) {
                         $modules = unserialize($row['rights']);
                         if (is_array($modules)) {
                             foreach ($modules as $module => $ison) {
                                 $result['access'][$module] = $module;
                             }
                         }
                     }
                 }
             }
             if (isset($result['access']) && count($result['access'])) {
                 $result['is_admin'] = true;
             }
             JO_Session::set($result);
             if (JO_Session::get('redirect')) {
                 $this->redirect(JO_Session::get('redirect'));
             } elseif ($request->getServer('HTTP_REFERER')) {
                 $this->redirect($request->getServer('HTTP_REFERER'));
             } else {
                 $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=dashboard'));
             }
         } else {
             JO_Session::set('msg_error', $this->translate('Invalid username or password or the account is not activated.'));
             $request->setParams('username', $request->getPost('username'));
             JO_Session::set('data', $request->getParams());
             $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login'));
         }
     }
     if ($request->getRequest('command') == 'activate' and $request->getRequest('user') and $request->getRequest('key')) {
         if (Model_Users::checkActivation($request->getRequest('user'), $request->getRequest('key'))) {
             Model_Users::Activate($request->getRequest('user'));
             $result = Model_Users::getByUsername($request->getRequest('user'));
             if ($result) {
                 $groups = unserialize($result['groups']);
                 if (is_array($groups) and count($groups) > 1) {
                     unset($result['groups']);
                     $fetch_all = Model_Users::getGroups($groups);
                     $result['access'] = array();
                     if ($fetch_all) {
                         foreach ($fetch_all as $row) {
                             $modules = unserialize($row['rights']);
                             if (is_array($modules)) {
                                 foreach ($modules as $module => $ison) {
                                     $result['access'][$module] = $module;
                                 }
                             }
                         }
                     }
                 }
                 if (isset($result['access']) && count($result['access'])) {
                     $result['is_admin'] = true;
                 }
                 JO_Session::set($result);
             }
             $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=verify/completed/yes'));
         }
     }
     $facebook = new WM_Facebook_Api(array('appId' => JO_Registry::forceGet('facebook_appid'), 'secret' => JO_Registry::forceGet('facebook_secret')));
     $this->view->facebook_link = $facebook->getLoginUrl(array('redirect_uri' => WM_Router::create($request->getBaseUrl() . '?controller=users&action=callback_facebook'), 'req_perms' => JO_Registry::forceGet('facebook_req_perms'), 'scope' => JO_Registry::forceGet('facebook_req_perms')));
     $this->view->lost_username = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=users&action=lost_username');
     $this->view->reset_password = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=users&action=reset_password');
     $this->view->registration = WM_Router::create($this->getRequest()->getBaseUrl() . '?controller=users&action=registration');
     $this->view->children = array();
     $this->view->children['header_part'] = 'layout/header_part';
     $this->view->children['footer_part'] = 'layout/footer_part';
 }
Пример #4
0
 public function usernoseusaAction()
 {
     $this->noViewRenderer(true);
     $request = $this->getRequest();
     $response = $this->getResponse();
     $page = (int) $request->getRequest('page');
     if ($page < 1) {
         $page = 1;
     }
     $callback = $request->getRequest('callback');
     if (!preg_match('/^([a-z0-9_.]{1,})$/', $callback)) {
         $callback = false;
     }
     $return = array();
     if (isset($_SESSION['token']) && isset($_POST['token']) && $_POST['token'] == $_SESSION['token']) {
         //guardar o manipular datos.
         $result = Model_Users::checkLogin($request->getRequest('email'), $request->getRequest('password'));
         if ($result) {
             if ($result['status']) {
                 @setcookie('csrftoken_', md5($result['user_id'] . $request->getDomain() . $result['date_added']), time() + 86400 * 366 * 5, '/', '.' . $request->getDomain());
                 JO_Session::set(array('user' => $result));
                 $return = array('id' => $result['user_id']);
                 // $user_data;
             } else {
                 $return = array('error' => 5, 'description' => $this->translate('This profile is not active.'));
             }
         } else {
             $return = array('error' => 6, 'description' => $this->translate('E-mail address and password do not match'));
         }
     } else {
         //no existe la sesión / no existe el dato recibido por post / el token no es igual.
         $return = array('error' => 401, 'description' => $this->translate('wrong token'));
     }
     if ($callback) {
         $return = $callback . '(' . JO_Json::encode($return) . ')';
     } else {
         $response->addHeader('Cache-Control: no-cache, must-revalidate');
         $response->addHeader('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
         $response->addHeader('Content-type: application/json; charset=utf-8');
         $return = JO_Json::encode($return);
     }
     $response->appendBody($return);
 }
Пример #5
0
 public function loginAction()
 {
     $request = $this->getRequest();
     if ($request->getQuery('verify')) {
         if (Model_Users::verifyEmailCheck($request->getQuery('verify'), $request->getParam('user_id'))) {
             JO_Session::set('successful', $this->translate('You verifying your email. Now you can access with the data from e-mail!'));
             $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login'));
         } else {
             $this->view->error = $this->translate('There was a problem with the record. Please try again!');
         }
     } else {
         if (JO_Session::get('user[user_id]')) {
             $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=profile&user_id=' . JO_Session::get('user[user_id]')));
         }
     }
     $this->view->successful = false;
     if (JO_Session::get('successful')) {
         $this->view->successful = JO_Session::get('successful');
         JO_Session::clear('successful');
     }
     $this->view->error = false;
     if ($request->getParam('user_id') && $request->getQuery('key')) {
         if (Model_Users::forgotPasswordCheck($request->getQuery('key'), $request->getParam('user_id'))) {
             JO_Session::set('successful', $this->translate('You verifying forgotten password. Now you can access with the data from e-mail!'));
             $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login'));
         } else {
             $this->view->error = $this->translate('There was a problem with the record. Please try again!');
         }
     }
     $referer = $request->getServer('HTTP_REFERER');
     $this->view->next = urlencode($request->getBaseUrl());
     if ($referer) {
         $data = parse_url($referer);
         if (isset($data['host'])) {
             if (str_replace('www.', '', $data['host']) == $request->getDomain()) {
                 $this->view->next = urlencode($referer);
             }
         }
     }
     if ($request->issetPost('next')) {
         $this->view->next = html_entity_decode($request->getPost('next'));
     } elseif ($request->getQuery('popup') == 'true' && $request->issetQuery('next')) {
         $this->view->next = urlencode(html_entity_decode($request->getQuery('next')));
     }
     $this->view->is_forgot_password = (int) $request->getPost('forgot_password');
     if ($request->isPost() && $request->issetPost('login')) {
         $validate = new Helper_Validate();
         $validate->_set_rules($request->getPost('email'), $this->translate('Email Address'), 'not_empty;min_length[5];max_length[100];email');
         if ($request->getPost('forgot_password') != 1) {
             $validate->_set_rules($request->getPost('password'), $this->translate('Password'), 'not_empty;min_length[4];max_length[30]');
         }
         if ($validate->_valid_form()) {
             if ($request->getPost('forgot_password') == 1) {
                 $result = Model_Users::forgotPassword($request->getPost('email'));
                 if ($result) {
                     if ($result['status']) {
                         $new_password = Model_Users::generatePassword(8);
                         $key_forgot = md5($result['user_id'] . md5($new_password));
                         $add_new_pass = Model_Users::edit($result['user_id'], array('new_password' => $new_password, 'new_password_key' => $key_forgot));
                         if ($add_new_pass) {
                             $this->view->new_password = $new_password;
                             $this->view->user_info = $result;
                             $this->view->forgot_password_href = WM_Router::create($request->getBaseUrl() . '?controller=users&action=login&user_id=' . $result['user_id'] . '&key=' . $key_forgot);
                             $this->view->header_title = JO_Registry::get('site_name');
                             $this->view->base_href = WM_Router::create($request->getBaseUrl());
                             $result_send = Model_Email::send($result['email'], JO_Registry::get('noreply_mail'), $this->translate('Request for forgotten password') . ' ' . JO_Registry::get('site_name'), $this->view->render('send_forgot_password_request', 'mail'));
                             if ($result_send) {
                                 JO_Session::set('successful', $this->translate('Was sent the e-mail with instructions for the new password!'));
                                 $this->redirect(WM_Router::create($request->getBaseUrl() . '?controller=users&action=login'));
                             } else {
                                 $this->view->error = $this->translate('There was an error. Please try again later!');
                             }
                         } else {
                             $this->view->error = $this->translate('There was a problem with the record. Please try again!');
                         }
                     } else {
                         $this->view->error = $this->translate('This profile is not active.');
                     }
                 } else {
                     $this->view->error = $this->translate('E-mail address was not found!');
                 }
             } else {
                 $result = Model_Users::checkLogin($request->getPost('email'), $request->getPost('password'));
                 if ($result) {
                     if ($result['status']) {
                         @setcookie('csrftoken_', md5($result['user_id'] . $request->getDomain() . $result['date_added']), time() + 86400 * 366 * 5, '/', '.' . $request->getDomain());
                         JO_Session::set(array('user' => $result));
                         $this->redirect(urldecode($this->view->next));
                     } else {
                         $this->view->error = $this->translate('This profile is not active.');
                     }
                 } else {
                     $this->view->error = $this->translate('E-mail address and password do not match');
                 }
             }
         } else {
             $this->view->error = $validate->_get_error_messages();
         }
     }
     $this->view->login_facebook = WM_Router::create($request->getBaseUrl() . '?controller=facebook&next=' . $this->view->next);
     $this->view->login_twitter = WM_Router::create($request->getBaseUrl() . '?controller=twitter&next=' . $this->view->next);
     $this->view->login_instagram = WM_Router::create($request->getBaseUrl() . '?controller=instagram&next=' . $this->view->next);
     $this->view->login_login = WM_Router::create($request->getBaseUrl() . '?controller=users&action=login');
     if ($request->getQuery('popup') == 'true') {
         $this->view->site_name = JO_Registry::get('site_name');
         $this->view->meta_title = JO_Registry::get('meta_title');
         $this->view->popup = true;
         $this->view->baseUrl = $request->getBaseUrl();
         $this->view->site_logo = $request->getBaseUrl() . 'data/images/logo.png';
         if (JO_Registry::get('site_logo') && file_exists(BASE_PATH . '/uploads' . JO_Registry::get('site_logo'))) {
             $this->view->site_logo = $request->getBaseUrl() . 'uploads' . JO_Registry::get('site_logo');
         }
         $this->setViewChange('loginPopup');
         $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part');
     } else {
         $this->view->loginPopup = $this->view->render('loginPopup', 'users');
         $this->view->children = array('header_part' => 'layout/header_part', 'footer_part' => 'layout/footer_part');
     }
 }