2011-05-14 23 views

cevap

118

ilginizi çekebilir benziyor:

User modeli için is_active adında bir sütun oluşturun.

Sonra User modeline için aşağıdaki kodu ekleyin:

class User < ActiveRecord::Base 
    #this method is called by devise to check for "active" state of the model 
    def active_for_authentication? 
    #remember to call the super 
    #then put our own check to determine "active" state using 
    #our own "is_active" column 
    super and self.is_active? 
    end 
end 

GÜNCELLEME Matt Huggins belirttiği gibi, yöntem artık active_for_authentication? (Documentation)

+0

teşekkürler! ihtiyacım olan buydu. –

+17

Bunun, yalnızca "etkin" yerine "active_for_authentication?" Olarak yeniden adlandırıldığı anlaşılıyor. –

+0

Güncelleme için teşekkürler! –

0

Yetkilendirmeyi değil, yetkilendirmeyi yapmak istiyorsunuz. Öte yandan, sadece authetication yapar.
I.e. Sadece bir kullanıcının size söylediği kişi olduğunu söyler.
Siteyi kullanmasını yasaklayan başka bir şeye ihtiyacınız var.

Yetkilendirme popüler bir konudur ve onunla size yardımcı olabilecek taşlar bir bütün listesi var:
http://ruby-toolbox.com/categories/rails_authorization.html
Seçiminizi yapın.

+5

Farkı biliyorum. Mesele şu ki, belirli denetleyiciye erişemeyen, kullanıcının imzalamasını yasaklamak istiyorum. –

11

denir

bir sütun ekleyin User model: allowed_to_log_in.

Sonra /app/models/user.rb bu ekleyin:

def active_for_authentication? 
    super and self.allowed_to_log_in? 
end 

özel bir mesaj ile kullanıcıya bilgi isterseniz siz de bu ekleyebilirsiniz:

def inactive_message 
    "You are not allowed to log in." 
end 

Ben oldukça önemli olduğunu düşünüyorum çünkü Standart mesajdan Devise şöyle diyor:

"Hesabınız henüz aktif değil." kullanıcılar ve gerçek bir nedenle kafa karıştırıcı

Giriş yaparken onları "yasaklı" olmasıdır

+0

için basitleştirilebilir, ancak kullanıcı oturum açma özelliği için çalışıyorum, ancak inactive_message "Hesabınız şu anda askıya alındı", şimdi de kullanıcı kayıtlarında görüntülenir. Yeni hesap aktivasyonu ve kullanıcı askıya alınması için farklı etkin olmayan mesajlar alabilir miyim? – Dercni

+0

http://kiprosh.com/blog/customizing-devise-authentication-to-disable-or-enable-user-authentication – Dercni

İlgili konular