def create_user(): """ Create a user with random data """ User = get_user_model() password = random_token(10) username = random_token(8) user = User(username=username, email=username + '@example.com') user.set_password(password) user.is_active = True user.save() return user, password
def create_user(): """ Create a user with random data """ User = get_user_model() password = random_token(10) username = random_token(8) user = User(username=username, email=username + "@example.com") user.set_password(password) user.is_active = True user.save() return user, password
def create_user(self, form): User = get_user_model() user = User() username = form.cleaned_data['username'] self._check_username(username) user.username = username email_addr = form.cleaned_data['email'] user.email = email_addr user.set_password(form.cleaned_data['password1']) user.is_active = False user.full_clean() try: user.save() except IntegrityError as e: if 'django_auth_unique_email' in str(e): # this was not caught by the form validation, but now validates # the DB's unique constraint raise DuplicateEmail(email_addr) from e else: raise user.profile.activation_key = random_token() user.profile.save() return user
def create_new_token(self, token_name): """ resets a token """ if token_name not in TOKEN_NAMES: raise TokenException('Invalid token name %s' % token_name) setattr(self, token_name, random_token())
def create_user(self, form): User = get_user_model() user = User() username = form.cleaned_data['username'] self._check_username(username) user.username = username email_addr = form.cleaned_data['email'] user.email = email_addr user.set_password(form.cleaned_data['password1']) user.is_active = False user.full_clean() try: user.save() except IntegrityError as e: if 'django_auth_unique_email' in str(e): # this was not caught by the form validation, but now validates # the DB's unique constraint raise DuplicateEmail(email_addr) from e else: raise user.profile.activation_key = random_token() user.profile.save() return user
def create_user(self, form): User = get_user_model() user = User() user.username = form.cleaned_data['username'] email_addr = form.cleaned_data['email'] user.email = email_addr user.set_password(form.cleaned_data['password1']) user.is_active = False user.full_clean() try: user.save() except IntegrityError as e: if 'django_auth_unique_email' in str(e): # this was not caught by the form validation, but now validates # the DB's unique constraint raise ValidationError('The email address {0} is ' 'already in use.'.format(email_addr)) else: raise user.profile.activation_key = random_token() user.profile.save() return user
def create_new_token(self, token_name): """ resets a token """ if token_name not in TOKEN_NAMES: raise TokenException('Invalid token name %s' % token_name) setattr(self, token_name, random_token())
def restore_password(request): if request.method == "GET": form = RestorePasswordForm() return render(request, "restore_password.html", {"form": form}) form = RestorePasswordForm(request.POST) if not form.is_valid(): return HttpResponseRedirect("/login/") try: user = UserProxy.objects.all().by_username_or_email(form.cleaned_data["username"], form.cleaned_data["email"]) except UserProxy.DoesNotExist: messages.error(request, _("User does not exist.")) return render(request, "password_reset_failed.html") if not user.is_active: send_activation_email(user, request) messages.error(request, _("Please activate your account first. " "We have just re-sent your activation email")) return HttpResponseRedirect(reverse("login")) site = RequestSite(request) pwd = random_token(length=16) user.set_password(pwd) user.save() subject = render_to_string("reset-pwd-subj.txt", {"site": site}).strip() message = render_to_string("reset-pwd-msg.txt", {"username": user.username, "site": site, "password": pwd}) user.email_user(subject, message) return render(request, "password_reset.html")
def subscribe(podcast, feedurl, huburl, base_url, mode='subscribe'): """ Subscribe to the feed at a Hub """ logger.info('subscribing for {feed} at {hub}'.format(feed=feedurl, hub=huburl)) verify = 'sync' token_max_len = HubSubscription._meta.get_field('verify_token').max_length subscription, created = HubSubscription.objects.get_or_create( topic_url=feedurl, defaults={ 'verify_token': random_token(token_max_len), 'mode': '', 'podcast': podcast, } ) if subscription.mode == mode: if subscription.verified: logger.info('subscription already exists') return else: logger.info('subscription exists but has wrong mode: ' + 'old: %(oldmode)s, new: %(newmode)s. Overwriting.' % dict(oldmode=subscription.mode, newmode=mode)) subscription.topic_url = feedurl subscription.mode = mode subscription.save() data = { "hub.callback": callback_url(feedurl, base_url), "hub.mode": mode, "hub.topic": feedurl, "hub.verify": verify, "hub.verify_token": subscription.verify_token, } data = urllib.urlencode(data.items()) logger.debug('sending request: %s' % repr(data)) resp = None try: resp = urllib2.urlopen(huburl, data) except urllib2.HTTPError, e: if e.code != 204: # we actually expect a 204 return code msg = 'Could not send subscription to Hub: HTTP Error %d: %s' % \ (e.code, e.reason) logger.warn(msg) raise SubscriptionError(msg)
def restore_password(request): if request.method == 'GET': form = RestorePasswordForm() return render(request, 'restore_password.html', { 'form': form, }) form = RestorePasswordForm(request.POST) if not form.is_valid(): return HttpResponseRedirect('/login/') try: user = UserProxy.objects.all().by_username_or_email( form.cleaned_data['username'], form.cleaned_data['email'] ) except UserProxy.DoesNotExist: messages.error(request, _('User does not exist.')) return render(request, 'password_reset_failed.html') if not user.is_active: send_activation_email(user, request) messages.error(request, _('Please activate your account first. ' 'We have just re-sent your activation email')) return HttpResponseRedirect(reverse('login')) site = RequestSite(request) pwd = random_token(length=16) user.set_password(pwd) user.save() subject = render_to_string('reset-pwd-subj.txt', {'site': site}).strip() message = render_to_string('reset-pwd-msg.txt', { 'username': user.username, 'site': site, 'password': pwd, }) user.email_user(subject, message) return render(request, 'password_reset.html')
def restore_password(request): if request.method == 'GET': form = RestorePasswordForm() return render(request, 'restore_password.html', { 'form': form, }) form = RestorePasswordForm(request.POST) if not form.is_valid(): return HttpResponseRedirect('/login/') try: user = UserProxy.objects.all().by_username_or_email( form.cleaned_data['username'], form.cleaned_data['email'] ) except UserProxy.DoesNotExist: messages.error(request, _('User does not exist.')) return render(request, 'password_reset_failed.html') if not user.is_active: send_activation_email(user, request) messages.error(request, _('Please activate your account first. ' 'We have just re-sent your activation email')) return HttpResponseRedirect(reverse('login')) site = RequestSite(request) pwd = random_token(length=16) user.set_password(pwd) user.save() subject = render_to_string('reset-pwd-subj.txt', {'site': site}).strip() message = render_to_string('reset-pwd-msg.txt', { 'username': user.username, 'site': site, 'password': pwd, }) user.email_user(subject, message) return render(request, 'password_reset.html')
def restore_password(request): if request.method == "GET": form = RestorePasswordForm() return render(request, "restore_password.html", {"form": form}) form = RestorePasswordForm(request.POST) if not form.is_valid(): return HttpResponseRedirect("/login/") try: user = UserProxy.objects.all().by_username_or_email( form.cleaned_data["username"], form.cleaned_data["email"]) except UserProxy.DoesNotExist: messages.error(request, _("User does not exist.")) return render(request, "password_reset_failed.html") if not user.is_active: send_activation_email(user, request) messages.error( request, _("Please activate your account first. " "We have just re-sent your activation email"), ) return HttpResponseRedirect(reverse("login")) site = RequestSite(request) pwd = random_token(length=16) user.set_password(pwd) user.save() subject = render_to_string("reset-pwd-subj.txt", {"site": site}).strip() message = render_to_string("reset-pwd-msg.txt", { "username": user.username, "site": site, "password": pwd }) user.email_user(subject, message) return render(request, "password_reset.html")
def subscribe(podcast, feedurl, huburl, base_url, mode="subscribe"): """Subscribe to the feed at a Hub""" logger.info("subscribing for {feed} at {hub}".format(feed=feedurl, hub=huburl)) verify = "sync" token_max_len = HubSubscription._meta.get_field("verify_token").max_length subscription, created = HubSubscription.objects.get_or_create( topic_url=feedurl, defaults={ "verify_token": random_token(token_max_len), "mode": "", "podcast": podcast, }, ) if subscription.mode == mode: if subscription.verified: logger.info("subscription already exists") return else: logger.info( "subscription exists but has wrong mode: " + "old: %(oldmode)s, new: %(newmode)s. Overwriting." % dict(oldmode=subscription.mode, newmode=mode) ) subscription.topic_url = feedurl subscription.mode = mode subscription.save() data = { "hub.callback": callback_url(feedurl, base_url), "hub.mode": mode, "hub.topic": feedurl, "hub.verify": verify, "hub.verify_token": subscription.verify_token, } data = urllib.parse.urlencode(list(data.items())) logger.debug("sending request: %s" % repr(data)) resp = None try: resp = urllib.request.urlopen(huburl, data) except urllib.error.HTTPError as e: if e.code != 204: # we actually expect a 204 return code msg = "Could not send subscription to Hub: HTTP Error %d: %s" % ( e.code, e.reason, ) logger.warning(msg) raise SubscriptionError(msg) except Exception as e: msg = "Could not send subscription to Hub: %s" % repr(e) logger.warning(msg) raise SubscriptionError(msg) if resp: status = resp.code if status != 204: logger.warning("received incorrect status %d" % status) raise SubscriptionError("Subscription has not been accepted by " "the Hub")