Как обновить данные текущего пользователя без его повторной авторизации

0
174

Предположим, что вы хотите обновить какие-то данные пользователя, сохранить их в базу и сразу же отобразить их пользователю. После обновления данных вы получаете объект пользователя JUser через JFactory::getUser(), но данные в объекте по прежнему старые и обновляютя они только после того, как пользователь пройдет повторную авторизацию. Как же обновить эти данные, не заставляя пользователя выходить/входить на сайт заново?

Загвоздка в том, что при вызове JFactory::getUser() объект JUser берется из сессии, поэтому для его обновления вы должны получить объект из сессии, обновить необходимые свойства и записать объект обратно в сессию:

1
2
3
4
5
6
7
8
9
10
// Получем объект пользователя из сессии
$session = JFactory::getSession();
$tmpUser = $session->get('user');
 
// Обновляем необходимые данные
$tmpUser->name = $data['name'];
$tmpUser->email = $data['email'];
 
// Обновляем объект пользователя в сессии
$session->set('user', $tmpUser);

Удачной разработки!

Похожие записи

07.07.2019
0
247

5 Калькуляторов Joomla под любые задачи, обзор и настройка

Сегодня при помощи сторонних разработок для joomla можно рассчитать всё, что угодно: стоимость ...
06.07.2019
0
158

Меню в Joomla — добавление вложенного или выпадающего меню

В шаблоне позиции для меню обычно предусмотрены слева или справа, а так же и в верху (горизонт...
08.07.2019
0
197

Тестируем Joomla 4: административная панель, разделы, поле работы вебмастера

Концепция оформления административной панели joomla4 разработана веб-студией JoomShaper, специализ...

Комментарии

Ваш комментарий будет отправлен на модерацию.
  • Комментарии не найдены