Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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.")
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
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))
Ejemplo n.º 8
0
 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
Ejemplo n.º 9
0
 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