Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 2169 Просмотров
*

anmiles

  • Новичок
  • 5
  • 0 / 0
Если на публичную страницу заходит пользователь, залогиненный как администратор, то компонент должен выводить для него дополнительную информацию.
Как определить права текущего пользователя на публичной странице?

В F.A.Q. нашёл тред Как определить права пользователя?, но для версии 2.5 указанное решение не работает.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

anmiles

  • Новичок
  • 5
  • 0 / 0
Попробуйте:

Код: php
if (array_key_exists(8, JFactory::getUser()->groups)) 
{
echo 'Super User';
}
Работает только если я нахожусь в админке. Как только захожу на публичную страницу - groups оказывается пустым массивом. Если после этого захожу в /administrator - groups снова содержит восьмёрку.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
*

anmiles

  • Новичок
  • 5
  • 0 / 0
Убрал текст из предыдущих сообщений, чтобы собрать всё в одно.

Ставлю строку
Код: php
<?php print_r(JFactory::getUser()->groups); ?>
в страницу /administrator/index.php
Логинюсь администратором. Попадаю на страницу http://site:88/administrator.
Вижу
Код: php
Array ( [8] => 8 )
.
Вставляю этот же код перед закрывающим тегом </body> в файле /templates/atomic/index.php шаблона, который я использую на сайте.
Захожу в той же вкладке браузера на публичную страницу http://site:88/another и обновляю её. Вижу
Код: php
Array ( )
После этого захожу на страницу администратора http://site:88/administrator и вижу снова
Код: php
Array ( [8] => 8 )
.

Далее. На обоих страницах - публичной и админской - куки идентичны и имеют путь "/".
А вот содержимое массива $_SESSION - разное.
Я покопался и нашёл, что это из-за разного session_name(), который отличается для разных режимов. Имя сессии задаётся в конструкторе класса JApplication, из поля $_name, которое назначается в методе JFactory::getApplication путём передачи туда строкового параметра.
В паблике он вызывается так:
Код: php
$app = JFactory::getApplication('site');
А в админке так:
Код: php
$app = JFactory::getApplication('administrator');

Для проверки я задал в обеих местах 'administrator', а потом распечатал массив JFactory::getUser()->groups, предварительно залогинившись.
Везде получил
Код: php
Array ( [8] => 8 ) 
. Массивы $_SESSION так же совпадали.

Что мне делать?
« Последнее редактирование: 18.12.2012, 19:14:36 от anmiles »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

anmiles

  • Новичок
  • 5
  • 0 / 0
Код: php-brief
<?php
$user_id =  JFactory::getUser()->id;
if ($user_id == 0) {
echo "Залогинься";
} else {
print_r(JFactory::getUser($user_id)->groups);
}
?>

Не помогает. У меня на паблике в любом случае анонимный юзер с пустыми полями и нулевым id.

Вопрос "что делать" относился к двум сессиям. Насколько я понимаю, менять имя аппликейшена - нельзя, Joomla должна понимать, какой именно аппликейшен мы вызываем, так?
А можно ли просто отвязать имя сессии от имени аппликейшена?
*

SmokerMan

  • Гуру
  • 5290
  • 720 / 26
Это тоже самое что положить в 2 разные директории два разных сайта. Авторизоваться на одном и удивляться почему я не авторизован на другом))
Причем здесь сессии? Админская сессия - это админка, фронт - это фронт.
Т.е. нужно авторизоваться на фронте и все будет работать.
*

anmiles

  • Новичок
  • 5
  • 0 / 0
Тогда возвращаюсь к изначальному вопросу: как на фронтэнде определить админа, залогинившегося в бэкенд, чтобы отрисовать ему дополнительные контролы?
Если б это было физически два разных сайта, я б как положено написал сервис, без вопросов. Но здесь общая база, общее ядро и один клиент, имеющий куки с общим путём. У него есть две сессии, а меня в принципе есть возможность вытащить любую из них. Похоже, так и придется делать.

Всё это затевалось ради линка редактирования у материалов. Для удобства. Логическая связь между отображением объекта и его редактированием заставила меня искать очевидное решение.
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод информации в личный кабинет пользователя

Автор zndm

Ответов: 17
Просмотров: 6990
Последний ответ 22.09.2022, 18:51:44
от beliyadm
как выводить категории на главной странице.

Автор makarovse

Ответов: 7
Просмотров: 3842
Последний ответ 03.04.2022, 19:50:42
от THE KILLERS
Материалы пользователя (контакта)

Автор katerina37

Ответов: 5
Просмотров: 1786
Последний ответ 18.02.2022, 11:53:02
от katerina37
Руководство пользователя Joomla! 2.5 + 10 легких шагов к освоению Joomla! 3 (книги в pdf)

Автор Marques

Ответов: 68
Просмотров: 228714
Последний ответ 08.01.2021, 13:41:45
от artemnaum
Определение города пользователя по IP

Автор ria_andy

Ответов: 8
Просмотров: 7654
Последний ответ 05.12.2019, 15:20:40
от nikolaevevge