2016-07-20 4 views
0

Я делаю приложение Scala - Play, и я хочу отключить пользователя, когда администратор изменит его право. Например, пользователь регистрируется и администратор обновляет свою учетную запись до типа администратора, я хочу отключить этого пользователя. Как я могу это сделать?Play Framework - Отключить пользователя

+0

Это зависит, как определить, вошел пользователь вошел? Вы сохраняете userId в сеансе? – vdebergue

+0

Y'es Я храню userId –

ответ

0

Если вы сохранили userId в Session, вам необходимо будет добавить права пользователя в Session.

Так что, когда пользователь подключается, вы можете проверить его права с сеанса на сеансы в своей базе данных. Если они не совпадают, вы можете перенаправить пользователя на страницу входа в систему.

+0

Хорошо, но моя проблема не в том, когда пользователь подключается, но если он уже подключен, и я меняю его право на менее разрешительное право, он может проконсультироваться со старой страницей из своей прежней роли, как он это делал 't отключен –

+0

Когда пользователь запрашивает страницу на сервере, вы уже проверяете, подключен ли пользователь: возможно, с помощью 'SecuredAction' и проверки, если в сеансе определен' userId'. Вам нужно добавить другую проверку: если у него нет роли, вы отправляете сообщение об ошибке, иначе вы отправляете страницу – vdebergue

0

, чтобы покрыть все основания, так как здесь ответ зависит конкретно от того, как приложение определяет, если пользователь вошел в систему:

если пользователь аутентификации выполняется с помощью маркера, порожденного секрет, который хранится на вашем пользователе модели и проверяется на достоверность по каждому запросу, вы можете создать новый секрет для пользователя, и все существующие токены станут недействительными.

Смежные вопросы