2016-06-08 9 views
0

Ich möchte sperren sperren Modul für Benutzer basierend auf bestimmten Bedingung aktivieren/deaktivieren. Aktivieren Sie beispielsweise das Sperrmodul nur für Benutzer ohne Administratorrechte.kann entsperren verschließbares Modul basierend auf Bedingung aktivieren/deaktivieren

Es gab eine Methode in Confirmable Modul, confirmation_required?, die überschrieben werden kann, wenn eine Bestätigung erforderlich ist oder nicht.

http://www.rubydoc.info/github/plataformatec/devise/Devise/Models/Confirmable#confirmation_required%3F-instance_method

Lockable Modul funktioniert ähnliches Verfahren haben ?. jede mögliche Hilfe würde

Dank

Antwort

0

setzen diese in Ihnen User-Modell geschätzt werden:

def active_for_authentication? 
    super && (admin? || !access_locked?) 
end 

def valid_for_authentication? 
    return super unless persisted? && lock_strategy_enabled?(:failed_attempts) 

    # Unlock the user if the lock is expired, no matter 
    # if the user can login or not (wrong password, etc) 
    unlock_access! if lock_expired? 

    if super && (admin? || !access_locked?) 
    true 
    else 
    self.failed_attempts ||= 0 
    self.failed_attempts += 1 
    if attempts_exceeded? 
     lock_access! unless access_locked? 
    else 
     save(validate: false) 
    end 
    false 
    end 
end 

Es ist von der docs Website: http://www.rubydoc.info/github/plataformatec/devise/Devise/Models/Lockable#active_for_authentication%3F-instance_method

+0

Dank für Ihre Antwort, aber es zwei devise überschreiben Methoden, die wenig beängstigend sind, vor allem die 'valid_for_authentication?' Methode zu überschreiben. – geekdev

Verwandte Themen