Использование Grails Acegi Plugin, когда для поля «Включен» пользовательских доменов установлено значение false. Пользователь все еще может войти - PullRequest
1 голос
/ 27 июля 2011

Поддерживается ли отключение пользователей изначально с помощью плагина Acegi Grails?

Из документации видно, что он поддерживает поле «enabled». Но после установки поля «enabled» Users в значение false, пользовательвсе еще может войти в систему, и исключение «пользователь отключен» не генерируется (хотя в контроллере входа по умолчанию, по-видимому, есть перехват для отключенного пользователем исключения) ...

Если эта функция поддерживается, есть ли другие изменения?нужно, кроме установки для поля «enabled» пользователей значения false?

Понимая, что это может не поддерживаться, я добавил проверку в контроллер входа в систему, чтобы проверить, включен ли пользователь, когда пользователь вошел в систему иотправка их обратно на экран входа в систему с отключенным сообщением ...

    def index = {
   if (isLoggedIn()) {
    def dc = authenticateService.principal().domainClass
        def user = User.get( dc.id )
        if (!user.enabled){
            session.invalidate()
            flash.message = "User '"+user.username+"' is disabled."
            redirect action: auth, params: params
        }else{
            setLoginDate()
            redirect uri: '/home/'
        }
    }

Однако это работает, только когда я получаю доступ к странице входа напрямую.Когда я пытаюсь войти после ввода URL (например, * / user / list) из приложения;пользователь входит в систему и получает URL, не вызывая мой чек в logincontroller ...

1 Ответ

0 голосов
/ 20 декабря 2011

Попробуйте вместо этого использовать фильтр. Я не уверен, что закрытие индекса вызывается, если вы действительно не нажмете базовый URI для этого контроллера.

http://www.grails.org/doc/1.3.x/guide/single.html#6.6%20Filters

...