def post(self, request, slug): """ Save the user and profile, login and send the right signals. """ from socialregistration.contrib.openid.models import OpenIDProfile user = get_object_or_404(User, username=slug) allowed_access = user_is_self_or_admin(request, user) if not allowed_access == True: return allowed_access try: profile = OpenIDProfile.objects.get(user=user) except OpenIDProfile.DoesNotExist: profile = OpenIDProfile.objects.get_or_create(user=user) client = None form = self.get_form()(request.POST, request.FILES, initial={"profile_picture": user.profile.profile_picture}) if not form.is_valid(): return self.render_to_response( dict(form=self.get_form()(request.POST, initial={"profile_picture": user.profile.profile_picture})) ) user, profile = form.save(request, user, profile, client) profile.authenticate() return redirect(reverse("cloud9:employee_detail", kwargs={"slug": user.username}))
def get(self, request, slug): """ Overriden Get process, allows for the User.profile object @TODO is probably redundant now thanks to django-annoying.AutoOneToOneField field useage """ user = get_object_or_404(User, username=slug) allowed_access = user_is_self_or_admin(request, user) if not allowed_access == True: return allowed_access try: profile = user.profile except AdcloudInfo.DoesNotExist: profile = AdcloudInfo.objects.get_or_create(user=user) client = None form = self.get_form()(initial=self.get_initial_data(request, user, profile, client)) return self.render_to_response(dict(form=form, object=user))