def create_signup_code(self, commit=True): email = self.cleaned_data["email"] expiry = datetime.now() + timedelta(hours=1) code = sha_constructor("%s%s%s%s" % ( settings.SECRET_KEY, email, str(expiry), settings.SECRET_KEY, )).hexdigest() signup_code = SignupCode(code=code, email=email, max_uses=1, expiry=expiry) if commit: signup_code.save() return signup_code
def create_signup_code(self, commit=True): email = self.cleaned_data["email"] expiry = datetime.now() + timedelta(hours=1) bits = [ settings.SECRET_KEY, email, str(expiry), ] if self.group: bits.append("%s%s" % (self.group._meta, self.group.pk)) code = sha_constructor("".join(bits)).hexdigest() signup_code = SignupCode(code=code, email=email, max_uses=1, expiry=expiry) if commit: signup_code.save() return signup_code
def clean_signup_code(self): code = self.cleaned_data.get("signup_code") signup_code = SignupCode.check(code) if signup_code: return signup_code else: if settings.ACCOUNT_OPEN_SIGNUP: return None else: raise forms.ValidationError("Signup code was not valid.")
def handle_noargs(self, **options): count = 0 for wl in WaitingList.objects.filter(invited=False): sc = SignupCode.create(wl.email, 24 * 14) sc.send() wl.invited = True wl.save() count += 1 print "Invited %s Users" % count
def invite(cls, from_user, to_email, message=None): if not from_user.invitationstat.can_send(): raise NotEnoughInvitationsError() signup_code = SignupCode.create(to_email, DEFAULT_INVITE_EXPIRATION) signup_code.inviter = from_user signup_code.save() join = cls.objects.create( from_user=from_user, message=message, status=JoinInvitation.STATUS_SENT, signup_code=signup_code ) signup_code.send() # @@@ might want to implement our own method and just set the .send field on signup_code stat = from_user.invitationstat stat.invites_sent += 1 stat.save() invite_sent.send(sender=cls, invitation=join) return join
def signup(request, **kwargs): form_class = kwargs.pop("form_class", SignupForm) template_name = kwargs.pop("template_name", "account/signup.html") template_name_failure = kwargs.pop("template_name_failure", "signup_codes/failure.html") success_url = kwargs.pop("success_url", None) group, bridge = group_and_bridge(request) ctx = group_context(group, bridge) if success_url is None: if hasattr(settings, "SIGNUP_REDIRECT_URLNAME"): fallback_url = reverse(settings.SIGNUP_REDIRECT_URLNAME) else: if hasattr(settings, "LOGIN_REDIRECT_URLNAME"): fallback_url = reverse(settings.LOGIN_REDIRECT_URLNAME) else: fallback_url = settings.LOGIN_REDIRECT_URL success_url = get_default_redirect(request, fallback_url) code = request.GET.get("code") if request.method == "POST": form = form_class(request.POST, request.FILES, group=group) if form.is_valid(): user = form.save(request=request) signup_code = form.cleaned_data["signup_code"] if signup_code: signup_code.use(user) form.login(request, user) messages.add_message(request, messages.SUCCESS, ugettext("Successfully logged in as %(username)s.") % { "username": user_display(user), } ) return HttpResponseRedirect(success_url) else: signup_code = SignupCode.check(code) if signup_code: initial = { "signup_code": code, "email": signup_code.email, } form = form_class(initial=initial, group=group) else: if not settings.ACCOUNT_OPEN_SIGNUP: ctx.update({ "code": code, }) ctx = RequestContext(request, ctx) # if account signup is not open we want to fail when there is # no sign up code or what was provided failed. return render_to_response(template_name_failure, ctx) else: form = form_class(group=group) ctx.update({ "code": code, "form": form, }) return render_to_response(template_name, RequestContext(request, ctx))
def create_signup_code(self, commit=True): email = self.cleaned_data["email"] signup_code = SignupCode.create(email, SIGNUP_CODE_EXPIRY, group=self.group) if commit: signup_code.save() return signup_code
def create_signup_code(self, commit=True): email = self.cleaned_data["email"] signup_code = SignupCode.create(email, 24, group=self.group) if commit: signup_code.save() return signup_code