def create_user(self, username, email=None, password=None, force_email_valid=False, send_email_confirmation=True): """ Creates and saves a User with the given username, email and password. """ now = timezone.now() if not username: raise ValueError('The given username must be set') email = UserManager.normalize_email(email) user = self.model(username=username, email=email, is_staff=False, is_active=True, is_superuser=False, last_login=now, date_joined=now) if force_email_valid: user.is_valid_email = True send_email_confirmation = False password = self.make_random_password() current_site = Site.objects.get_current() subject = _(u'You just created account on %(site)s') % {'site': current_site.name} context = { 'email': user.email, 'password': password, 'current_site': current_site } send_templated_email(user.email, subject, 'accounts/email_new_user.html', context, fail_silently=settings.DEBUG) user.set_password(password) user.save(using=self._db, send_email_confirmation=send_email_confirmation) return user
def send_confirmation(self, user): assert user.email self.filter(user=user).delete() salt = sha_constructor(str(random.random()) + settings.SECRET_KEY).hexdigest()[:5] confirmation_key = sha_constructor(salt + user.email.encode('utf8')).hexdigest() try: current_site = Site.objects.get_current() except Site.DoesNotExist: return path = reverse("accounts:confirm_email", args=[confirmation_key]) activate_url = u"http://%s%s" % (unicode(current_site.domain), path) context = { "user": user, "activate_url": activate_url, "current_site": current_site, "confirmation_key": confirmation_key, } subject = _(u'Please confirm your email address for %(site)s') % {'site': current_site.name} send_templated_email(user.email, subject, 'accounts/email_confirmation_message.html', context, fail_silently=settings.DEBUG) return self.create( user=user, sent=timezone.now(), confirmation_key=confirmation_key)
def create_user(self, username, email=None, password=None, force_email_valid=False, send_email_confirmation=True): """ Creates and saves a User with the given username, email and password. """ now = timezone.now() if not username: raise ValueError('The given username must be set') email = UserManager.normalize_email(email) user = self.model(username=username, email=email, is_staff=False, is_active=True, is_superuser=False, last_login=now, date_joined=now) if force_email_valid: user.is_valid_email = True send_email_confirmation = False password = self.make_random_password() current_site = Site.objects.get_current() subject = _('You just created account on %(site)s') % {'site': current_site.name} context = { 'email': user.email, 'password': password, 'current_site': current_site } send_templated_email(user.email, subject, 'accounts/email_new_user.html', context, fail_silently=settings.DEBUG) user.set_password(password) user.save(using=self._db, send_email_confirmation=send_email_confirmation) return user
def send_confirmation(self, user): assert user.email self.filter(user=user).delete() salt = hashlib.sha1(str(random.random()) + settings.SECRET_KEY).hexdigest()[:5] confirmation_key = hashlib.sha1(salt + user.email.encode('utf8')).hexdigest() try: current_site = Site.objects.get_current() except Site.DoesNotExist: return path = reverse('accounts:confirm_email', args=[confirmation_key]) activate_url = 'http://%s%s' % (unicode(current_site.domain), path) context = { 'user': user, 'activate_url': activate_url, 'current_site': current_site, 'confirmation_key': confirmation_key, } subject = _('Please confirm your email address for %(site)s') % {'site': current_site.name} send_templated_email(user.email, subject, 'accounts/email_confirmation_message.html', context, fail_silently=settings.DEBUG) return self.create( user=user, sent=timezone.now(), confirmation_key=confirmation_key)
def send_email_about_post(self, post): if not self.do_send_notification(): return subject = _(u'New post for your topic "%(topic)s"') % {'topic': self} context = {'post': post} send_templated_email(self.user.email, subject, 'djforum/email_new_post.html', context, fail_silently=settings.DEBUG)
def send_email_about_post(self, post): if not self.do_send_notification(): return subject = _(u'New post for your topic "%(topic)s"') % {'topic': self} context = { 'post': post } send_templated_email( self.user.email, subject, 'djforum/email_new_post.html', context, fail_silently=settings.DEBUG )