Master812
2.03.2019 - 18:34
Всем привет!
Продолжаю писать свой движок и тут возникла очередная проблема. Вот захожу я в админку своего движка и назначаю администратором еще одного пользователя, чтобы у него тоже был доступ в админку. В самой админке доступ проверяается по $_SESSION['right'] - в этой сессии хранятся твои права, то есть определяется админ ты или обычный пользователь. Если я только что сделал простого юзера админом, а он в данный момент сидит на сайте, то он сразу не сможет попасть в админку, ему придется выходить из своего аккаунта и заходить заново, чтобы обновилась $_SESSION['right'].
Тоже самое только наоборот будет, если я одному из админов прикрою доступ в админку. Если он будет в данный момент сидит на сайте, то пока жива его $_SESSION['right'] он будет продолжать заходить в админку.
В связи с этим вопрос: можно ли как-нибудь удалить их $_SESSION['right'], чтобы изменения вступили в силу сразу а не после перезахода в аккаунт?
В коде добавить функцию на рефреш $_SESSION
Master812, сессия нужна лишь для идентификации юзера между запросами к серверу. Постоянным является лишь идентификатор пользователя, он ни при каких обстоятельствах измениться не может, все остальные проверки никто не мешает делать, в том числе и проверку роли пользователя. Никто не заставляет брать данные из сессии, а не из бд.
_____________
Стимулятор ~yoomoney - 41001303250491
Master812
2.03.2019 - 19:47
Цитата (Эли4ка @ 2.03.2019 - 19:06) |
В коде добавить функцию на рефреш $_SESSION |
Эли4ка, это как? Я могу обновить только свою сессию, а не сессию юзера. Искал в интернете как это сделать, но так и не нашел.
Цитата |
Master812, сессия нужна лишь для идентификации юзера между запросами к серверу. Постоянным является лишь идентификатор пользователя, он ни при каких обстоятельствах измениться не может, все остальные проверки никто не мешает делать, в том числе и проверку роли пользователя. Никто не заставляет брать данные из сессии, а не из бд. |
Valick, ну я примерно так и полагал, что придётся делать проверку прав юзера и брат данные из БД.
Цитата (Master812 @ 2.03.2019 - 18:47) |
Искал в интернете как это сделать, но так и не нашел |
Цитата (Master812 @ 2.03.2019 - 18:47) |
Эли4ка, это как? Я могу обновить только свою сессию, а не сессию юзера. |
Делается все так же как и при выходе пользователя с сайта.
Удаляете старые сессии, куки и записываете новые. Только нужно придумать куда вставить это. Например если пользователь откроет страницу при выборе всяких данных заодно и это сделать.
Эли4ка, тебе уже сказал
Master812, что
это не те дроиды которых вы ищите это не та сессия. Админ из своей сессии (стандартной реализации) никак не может влиять на сессию другого юзверя, он только свою сессию может отрефрешить, другому от этого ни горячо ни холодно.
Начинай уже наконец читать книги, и читать внимательно.
PS про разделяемую память молчу, не надо оно тут
_____________
Стимулятор ~yoomoney - 41001303250491
Цитата (Valick @ 2.03.2019 - 20:46) |
Эли4ка, тебе уже сказал Master812, что это не те дроиды которых вы ищите это не та сессия. Админ из своей сессии (стандартной реализации) никак не может влиять на сессию другого юзверя, он только свою сессию может отрефрешить, другому от этого ни горячо ни холодно. Начинай уже наконец читать книги, и читать внимательно.
PS про разделяемую память молчу, не надо оно тут |
Что за бред? Вы призадумайтесь, как вы пользователя авторизуете и разлогинивате и все будет понятно. Или там тоже не влияет на сессию?
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.