Exemple #1
0
 public function before_store()
 {
     // формирование ссылки на категорию блогов
     $new_slug = joosRequest::param('slug', false);
     $this->slug = $new_slug ? $new_slug : joosText::text_to_url($this->title);
     return true;
 }
 /**
  * Разлогинивание епользователя
  */
 public function logout()
 {
     joosCSRF::check_code(1);
     modelUsers::logout();
     $return = joosRequest::param('return');
     if ($return && !(strpos($return, 'registration') || strpos($return, 'login'))) {
         joosRoute::redirect($return);
     } elseif (isset($_SERVER['HTTP_REFERER'])) {
         joosRoute::redirect($_SERVER['HTTP_REFERER']);
     } else {
         joosRoute::redirect(JPATH_SITE);
     }
 }
Exemple #3
0
 public static function autoajax()
 {
     //$option = joosRequest::param('option');
     // выполняемая задача
     $task = joosRequest::param('task');
     // идентификатор запрашиваемого элемента
     $obj_id = joosRequest::int('obj_id', 0, $_POST);
     // ключ-название запрашиваемого элемента
     $obj_key = joosRequest::post('obj_key');
     // название объекта запрашиваемого элемента
     $model = joosRequest::param('obj_model');
     if (!$model) {
         return false;
     }
     // пустой объект для складирования результата
     $return_onj = new stdClass();
     if (class_exists($model)) {
         // создаём объект класса
         $obj = new $model();
         switch ($task) {
             case 'status_change':
                 $obj->load($obj_id);
                 // меняем состояние объекта на противоположное
                 $obj->change_state($obj_key);
                 // получаем настройки полей
                 $fields_info = $obj->get_fieldinfo();
                 $fields_info[$obj_key] = array_merge_recursive($fields_info[$obj_key], array('html_table_element_param' => array('statuses' => array(0 => 'Скрыто', 1 => 'Опубликовано'), 'images' => array(0 => 'publish_x.png', 1 => 'publish_g.png'))));
                 // формируем ответ из противоположных элементов текущему состоянию
                 $return_onj->image = isset($fields_info[$obj_key]['html_table_element_param']['images'][!$obj->{$obj_key}]) ? $fields_info[$obj_key]['html_table_element_param']['images'][!$obj->{$obj_key}] : 'error.png';
                 $return_onj->mess = isset($fields_info[$obj_key]['html_table_element_param']['statuses'][!$obj->{$obj_key}]) ? $fields_info[$obj_key]['html_table_element_param']['statuses'][!$obj->{$obj_key}] : 'ERROR';
                 $return_onj->new_class = $obj->{$obj_key} ? 'icon-remove' : 'icon-ok';
                 break;
             default:
                 return false;
                 break;
         }
         echo json_encode($return_onj);
         return true;
     }
     $return_onj->image = 'error.png';
     $return_onj->mess = 'error-class';
     echo json_encode($return_onj);
     return false;
 }
Exemple #4
0
    <?php 
joosModuleAdmin::load_by_name('flash_message');
?>

    <div id="component"><?php 
echo joosDocument::get_body();
?>
</div>

</div>
    <script type="text/javascript">
        var _live_site = '<?php 
echo JPATH_SITE;
?>
';
        var _option = '<?php 
echo joosRequest::param('option');
?>
';
        var _cur_template = '<?php 
echo JTEMPLATE_ADMIN;
?>
';
    </script>
    <?php 
echo joosDocument::footer_data();
?>
</body>
</html>
Exemple #5
0
 /**
  * @static
  * @param $user_name
  * @param  bool   $password
  * @param  array  $params
  * @return string
  *
  * @todo требуется рефакторинг, модуль должен возвращать true или false
  */
 public function login($user_name, $password = false, array $params = array())
 {
     $params += array('redirect' => true);
     $return = (string) joosRequest::param('return');
     if ($return && !(strpos($return, 'com_registration') || strpos($return, 'com_login'))) {
         //$return = $return;
     } elseif (isset($_SERVER['HTTP_REFERER'])) {
         $return = $_SERVER['HTTP_REFERER'];
     } else {
         $return = JPATH_SITE;
     }
     $user = new modelUsers();
     $user->user_name = $user_name;
     $user->find();
     // если акаунт заблокирован
     if (!$user->id) {
         if (isset($params['return'])) {
             return json_encode(array('error' => 'Такого пользователя нет'));
         } else {
             joosRoute::redirect($return, 'Такого пользователя нет');
         }
     }
     // если акаунт заблокирован
     if ($user->state == 0) {
         if (isset($params['return'])) {
             return json_encode(array('error' => _LOGIN_BLOCKED));
         } else {
             joosRoute::redirect($return, _LOGIN_BLOCKED);
         }
     }
     //Проверям пароль
     if (!self::check_password($password, $user->password)) {
         if (isset($params['return'])) {
             return json_encode(array('error' => _LOGIN_INCORRECT));
         } else {
             joosRoute::redirect($return, _LOGIN_INCORRECT);
         }
     }
     // пароль проверили, теперь можно заводить сессиию и ставить куки авторизации
     $session = new modelUsersSession();
     $session->time = time();
     $session->guest = 0;
     $session->user_name = $user->user_name;
     $session->user_id = $user->id;
     $session->is_admin = 0;
     // сгенерием уникальный ID, захеширем его через sessionCookieValue и запишем в базу
     $session->generate_id();
     // записываем в базу данные о авторизованном пользователе и его сессии
     $session->store();
     // формируем и устанавливаем пользователю куку что он автоизован
     $sessionCookieName = joosSession::session_cookie_name();
     // в значении куки - НЕ хешированное session_id из базы
     setcookie($sessionCookieName, $session->get_cookie(), false, '/', JPATH_COOKIE);
     // очищаем базу от всех прежних сессий вновь авторизовавшегося пользователя
     $query = "DELETE FROM #__users_session WHERE  is_admin=0 AND session_id != " . $session->_db->get_quoted($session->session_id) . " AND user_id = " . (int) $user->id;
     joosDatabase::instance()->set_query($query)->query();
     // обновляем дату последнего визита авторизованного пользователя
     $user->lastvisit_date = JCURRENT_SERVER_TIME;
     $user->store();
     $token = new modelUsersTokens();
     $token->generate_token($user->id);
     if (isset($params['return'])) {
         return json_encode(array('user' => $user));
     } else {
         joosRoute::redirect($return);
     }
 }
Exemple #6
0
 /**
  * Смена статуса (поля 'state')
  */
 public static function publish_unpublish($state = 1)
 {
     joosCSRF::check_code();
     $cid = (array) joosRequest::array_param('cid');
     $option = joosRequest::param('option');
     $obj_data = joosAutoadmin::get_active_model_obj();
     $obj_data->set_state_group($cid, $state) ? joosRoute::redirect('index2.php?option=' . $option . '&menu=' . static::$active_menu, 'Выполнено успешно') : joosRoute::redirect('index2.php?option=' . $option . '&menu=' . static::$active_menu, 'Ошибка смены статуса');
 }
Exemple #7
0
 * Для получения информации о используемых расширениях и замечаний об авторском праве, смотрите файл help/copyright.php.
 */
// Установка флага родительского файла
define('_JOOS_CORE', 1);
// корень файлов панели управления
define('JPATH_BASE_ADMIN', __DIR__);
require_once dirname(JPATH_BASE_ADMIN) . DIRECTORY_SEPARATOR . 'core' . DIRECTORY_SEPARATOR . 'joostina.php';
require_once JPATH_BASE . DS . 'app' . DS . 'bootstrap.php';
require_once JPATH_BASE . DS . 'core' . DS . 'admin.root.php';
joosDocument::header();
// работа с сессиями начинается до создания главного объекта взаимодействия с ядром
joosCoreAdmin::start();
// стартуем пользователя
joosCoreAdmin::init_user();
if (helperAcl::is_allowed('admin_panel::use')) {
    echo json_encode(array('code' => 500, 'message' => 'Ошибка прав доступа'));
    die;
}
$option = joosRequest::param('option');
ob_start();
// файл обработки Ajax запросов конкретного компонента
$file_com = JPATH_BASE . DS . 'app' . DS . 'components' . DS . $option . DS . 'controller.admin.' . $option . '.ajax.php';
// проверяем, какой файл необходимо подключить, данные берутся из пришедшего GET запроса
if (file_exists($file_com)) {
    include_once $file_com;
    joosAutoadmin::dispatch_ajax();
} else {
    echo json_encode(array('code' => 500, 'message' => sprintf('Файл контроллера для %s не найден', $file_com)));
    die;
}
ob_end_flush();