[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как удалить сессию другого юзера, если я админ
Master812
Всем привет!
Продолжаю писать свой движок и тут возникла очередная проблема. Вот захожу я в админку своего движка и назначаю администратором еще одного пользователя, чтобы у него тоже был доступ в админку. В самой админке доступ проверяается по $_SESSION['right'] - в этой сессии хранятся твои права, то есть определяется админ ты или обычный пользователь. Если я только что сделал простого юзера админом, а он в данный момент сидит на сайте, то он сразу не сможет попасть в админку, ему придется выходить из своего аккаунта и заходить заново, чтобы обновилась $_SESSION['right'].
Тоже самое только наоборот будет, если я одному из админов прикрою доступ в админку. Если он будет в данный момент сидит на сайте, то пока жива его $_SESSION['right'] он будет продолжать заходить в админку.
В связи с этим вопрос: можно ли как-нибудь удалить их $_SESSION['right'], чтобы изменения вступили в силу сразу а не после перезахода в аккаунт?
Эли4ка
В коде добавить функцию на рефреш $_SESSION
Valick
Master812, сессия нужна лишь для идентификации юзера между запросами к серверу. Постоянным является лишь идентификатор пользователя, он ни при каких обстоятельствах измениться не может, все остальные проверки никто не мешает делать, в том числе и проверку роли пользователя. Никто не заставляет брать данные из сессии, а не из бд.


_____________
Стимулятор ~yoomoney - 41001303250491
Master812
Цитата (Эли4ка @ 2.03.2019 - 19:06)
В коде добавить функцию на рефреш $_SESSION

Эли4ка, это как? Я могу обновить только свою сессию, а не сессию юзера. Искал в интернете как это сделать, но так и не нашел.

Цитата
Master812, сессия нужна лишь для идентификации юзера между запросами к серверу. Постоянным является лишь идентификатор пользователя, он ни при каких обстоятельствах измениться не может, все остальные проверки никто не мешает делать, в том числе и проверку роли пользователя. Никто не заставляет брать данные из сессии, а не из бд.


Valick, ну я примерно так и полагал, что придётся делать проверку прав юзера и брат данные из БД.
Valick
Цитата (Master812 @ 2.03.2019 - 18:47)
Искал в интернете как это сделать, но так и не нашел

для этого надо написать свою реализацию сессии и переопределить
http://php.net/manual/ru/class.sessionhandler.php

_____________
Стимулятор ~yoomoney - 41001303250491
Эли4ка
Цитата (Master812 @ 2.03.2019 - 18:47)
Эли4ка, это как? Я могу обновить только свою сессию, а не сессию юзера.

Делается все так же как и при выходе пользователя с сайта.
Удаляете старые сессии, куки и записываете новые. Только нужно придумать куда вставить это. Например если пользователь откроет страницу при выборе всяких данных заодно и это сделать.
Valick
Эли4ка, тебе уже сказал Master812, что это не те дроиды которых вы ищите это не та сессия. Админ из своей сессии (стандартной реализации) никак не может влиять на сессию другого юзверя, он только свою сессию может отрефрешить, другому от этого ни горячо ни холодно.
Начинай уже наконец читать книги, и читать внимательно.

PS про разделяемую память молчу, не надо оно тут

_____________
Стимулятор ~yoomoney - 41001303250491
Эли4ка
Цитата (Valick @ 2.03.2019 - 20:46)
Эли4ка, тебе уже сказал Master812, что это не те дроиды которых вы ищите это не та сессия. Админ из своей сессии (стандартной реализации) никак не может влиять на сессию другого юзверя, он только свою сессию может отрефрешить, другому от этого ни горячо ни холодно.
Начинай уже наконец читать книги, и читать внимательно.

PS про разделяемую память молчу, не надо оно тут

Что за бред? Вы призадумайтесь, как вы пользователя авторизуете и разлогинивате и все будет понятно. Или там тоже не влияет на сессию? laugh.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.