2010-12-10 3 views
6

डीजेंगो-पंजीकरण कैसे सेट अप करें कि किसी खाते को किसी व्यवस्थापक द्वारा मैन्युअल रूप से सक्रिय करने की आवश्यकता है?डीजेंगो-पंजीकरण को कैसे सेट अप करें जिसे किसी खाते को मैन्युअल रूप से सक्रिय करने की आवश्यकता है?

खाता धारक ई-मेल में लिंक में क्लिक करने के बाद मैं चाहता हूं कि व्यवस्थापक को एक ई-मेल भेजा जाए, और उसे एक लिंक पर क्लिक करने की आवश्यकता है और केवल तभी खाता सक्रिय होगा।

क्या यह django-पंजीकरण के साथ संभव है, या मुझे कुछ और उपयोग करने की आवश्यकता है, और क्या उपयोग करना है?

उत्तर

5

डीजेंगो-पंजीकरण आपको कस्टम सक्रियण आवश्यकताओं को संभालने के लिए custom backend लिखने की अनुमति देता है।

तो तुम क्या चाहते हैं क्या, अपने खुद के बैकएंड बनाने register और activate खुद को लागू है।

का तरीका यहां बताया register समारोह को लागू कर सकता है की एक उदाहरण है:

def register(self, request, **kwargs): 
    username, email, password = kwargs['username'], kwargs['email'], kwargs['password1'] 
    if Site._meta.installed: 
     site = Site.objects.get_current() 
    else: 
     site = RequestSite(request) 
    new_user = RegistrationProfile.objects.create_inactive_user(username, email, 
                   password, site, 
                   send_email=False) 
    # send an email to the admins with user information 
    send_new_user_notification(new_user) # you would write this function 
    signals.user_registered.send(sender=self.__class__, 
           user=new_user, 
           request=request) 
    return new_user 

प्रमुख मुद्दा यकीन send_email गलत पर सेट है बनाने के लिए है, जो उपयोगकर्ता को सक्रियण लिंक प्राप्त करने से रोक देगा। फिर आप यह तय कर सकते हैं कि व्यवस्थापक को भेजे गए ईमेल में एक सक्रियण लिंक है या यदि आप उनके साथ व्यवस्थापक हैं और केवल "सक्रिय" बॉक्स की जांच कर रहे हैं।

आप django.contrib.auth से AuthenticationForm का उपयोग करते हैं तो उसे अपने आप जिन उपयोगकर्ताओं की is_active गलत है अस्वीकार कर देंगे, लेकिन यदि आप उपयोग नहीं कर रहे है कि तब किसी भी अनुरोध जहां एक सक्रिय उपयोगकर्ता के लिए आवश्यक है के लिए निम्नलिखित जांच चलाने के लिए सुनिश्चित करें:

def restricted_view(request): 
    if request.user and request.user.is_active: 
     #continue with the code 

आप अपना स्वयं का सजावटी भी लिख सकते हैं (पॉइंटर्स के लिए @login_required देखें)। ध्यान दें कि @login_requiredis_active के लिए जांचें।

संबंधित मुद्दे

 संबंधित मुद्दे