2013-03-22 22 views
8

Kullanıcı şifresini 30 gün gibi belirli bir aradan sonra süren zorlamak için herhangi bir django uygulaması var mı? Ben djangp'ın yetkisini kullanıyorum ve genişletmek veya bir topluluk uygulaması kullanmak istiyorum. Ben şimdiye kadar denedim neDjango zorlama son kullanma tarihi

:

  1. Eklendi son güncellendiği şifre tarihini saklamak için kullanıcı profiline bir alan.
  2. Bu tarihi kontrol etmek için giriş yöntemini genişletin ve kullanıcıyı parola değiştirme sayfasına yönlendirin. şifre değiştirildiğinde kadar

    1. siteye erişim kullanıcıyı engellemek için: Ben karıştı ne

    .

  3. Kullanıcı doğrudan giriş yapamaz veya doğrudan sayfaya erişmek için URL'leri yazamaz.

Kaynak kısıtlaması olacağından, middleware kullanmak istemediğimi lütfen unutmayın.

cevap

9

Doğru yolda görünüyorsunuz. Güncellenen son şifrenin tarihini ayarlayın, zaman çizelgesinin 30 günden daha büyük olup olmadığını kontrol edin, eğer değişiklik şifresi sayfasına yeniden yönlendirin. Oturum açma görünümünüzün esasen aynı kalması gerekir, ancak zaman çizelgesi 30 günden daha büyükse, kullanıcıyı istek nesnesine gerçekten giriş yapmadı.

from datetime import date, timedelta 
from django.contrib.auth import authenticate, login 

def my_view(request): 
    username = request.POST['username'] 
    password = request.POST['password'] 
    user = authenticate(username=username, password=password) 
    if user is not None: 
     if user.is_active: 
      if date.today() - user.password_date > timedelta(days=30): 
       # Redirect to password change page 
      else: 
       login(request, user) 
       # Redirect to a success page. 
     else: 
      # Return a 'disabled account' error message 
    else: 
    # Return an 'invalid login' error message. 
+0

Matt, mantıklı yoktur. Bunu deneyeceğim. Teşekkürler –

İlgili konular