Created
January 5, 2012 10:22
-
-
Save katjakarhu/1564606 to your computer and use it in GitHub Desktop.
Random stuff
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from django.contrib.auth.models import User | |
| from django.db.models.signals import post_save | |
| from django.dispatch import receiver | |
| @receiver(post_save, sender=User) | |
| def user_created_callback(sender, instance, created, **kwargs): | |
| if created: | |
| # do stuff |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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/f\ | |
| ailure.html") | |
| redirect_field_name = kwargs.pop("redirect_field_name", "next") | |
| 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, redirect_fiel\ | |
| d_name) | |
| code = request.GET.get("code") | |
| if request.method == "POST": | |
| form = form_class(request.POST, 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, | |
| "redirect_field_name": redirect_field_name, | |
| "redirect_field_value": request.REQUEST.get(redirect_field_name), | |
| }) | |
| return render_to_response(template_name, RequestContext(request, ctx)) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment