def get_object(self): profile_class = get_profile_model(self.kwargs.get("profile_slug")) if profile_class is None: raise Http404 if idios.settings.USE_USERNAME: self.page_user = get_object_or_404(User, username=self.kwargs["username"]) profile = get_object_or_404(profile_class, user=self.page_user) else: profile = get_object_or_404(profile_class, pk=self.kwargs["pk"]) self.page_user = profile.user private_groups = ["ContentDeveloper", "ContentQATester", "ContentProjectManager"] current_user = self.request.user # If the profile user belongs to a private groups, only the user itself # has access to it. for g in private_groups: if profile.user.groups.filter(name=g).exists() and \ profile.user != current_user: raise Http404 # Also if the profile user is a superuser if profile.user.is_superuser and profile.user != current_user: raise Http404 return profile
def get_object(self, queryset=None): profile_class = get_profile_model(self.kwargs.get("profile_slug")) if profile_class is None: raise Http404 profile = profile_class.objects.get(user=self.request.user) return profile
def create_profile(sender, instance=None, **kwargs): if instance is None: return try: profile, created = get_profile_model().objects.get_or_create(user=instance) except MultipleObjectsReturned: pass
def get_object(self, **kwargs): profile_class = get_profile_model(self.kwargs.get("profile_slug")) if profile_class is None: raise Http404 if idios.settings.USE_USERNAME: self.page_user = get_object_or_404(User, username=self.kwargs["username"]) profile = get_object_or_404(profile_class, user=self.page_user) else: profile = get_object_or_404(profile_class, pk=self.kwargs["pk"]) self.page_user = profile.user private_groups = kwargs.get("private_groups", []) current_user = self.request.user # If the profile user belongs to a private groups, only the user itself # has access to it. for g in private_groups: if profile.user.groups.filter(name=g).exists() and \ profile.user != current_user: raise Http404 # Also if the profile user is a superuser if profile.user.is_superuser and profile.user != current_user: raise Http404 return profile
def profile_by_pk(request, profile_pk, profile_slug, **kwargs): # @@@ not group-aware (need to look at moving to profile model) profile_class = get_profile_model(profile_slug) if profile_class is None: raise Http404 profile = get_object_or_404(profile_class, pk=profile_pk) page_user = profile.user return base_profile(request, profile, page_user, **kwargs)
def get_form_class(self): if self.form_class: return self.form_class profile_class = get_profile_model(self.kwargs.get("profile_slug")) if profile_class is None: raise Http404 return profile_class.get_form()
def get_object(self): queryset = get_profile_model().objects.select_related("user") slug = self.kwargs.get("slug") try: if slug: profile = get_object_or_404(queryset, slug=slug) self.page_user = profile.user return profile except: self.kwargs["username"] = slug return super(MyProfileDetailView, self).get_object()
def get_object(self): queryset = get_profile_model().objects.select_related("user") slug = self.kwargs.get("slug") try: if slug: profile = get_object_or_404(queryset, slug=slug) self.page_user = profile.user return profile except: self.kwargs['username'] = slug return super(MyProfileDetailView, self).get_object()
def get_model_class(self): profile_slug = self.kwargs.get("profile_slug", None) if self.all_profiles: profile_class = get_profile_base() else: profile_class = get_profile_model(profile_slug) if profile_class is None: raise Http404 return profile_class
def get_model_class(self): # @@@ not group-aware (need to look at moving to profile model) profile_slug = self.kwargs.get("profile_slug", None) if self.all_profiles: profile_class = get_profile_base() else: profile_class = get_profile_model(profile_slug) if profile_class is None: raise Http404 return profile_class
def get_profile_form(profile_model=None): """ Return a form class (a subclass of the default ``ModelForm``) suitable for creating/editing instances of the given user profile model. """ if profile_model is None: profile_model = get_profile_model() class _ProfileForm(forms.ModelForm): class Meta: model = profile_model exclude = ["user"] # user will be filled in by the view. return _ProfileForm
def get_object(self): profile_class = get_profile_model(self.kwargs.get("profile_slug")) if profile_class is None: raise Http404 if idios.settings.USE_USERNAME: self.page_user = get_object_or_404(User, username=self.kwargs["username"]) profile = get_object_or_404(profile_class, user=self.page_user) else: profile = get_object_or_404(profile_class, pk=self.kwargs["pk"]) self.page_user = profile.user return profile
def get_object(self): username = self.kwargs.get("username") profile_class = get_profile_model(self.kwargs.get("profile_slug")) if profile_class is None: raise Http404 if username: self.page_user = get_object_or_404(User, username=username) return get_object_or_404(profile_class, user=self.page_user) else: profile = get_object_or_404( profile_class, pk=self.kwargs.get("profile_pk") ) self.page_user = profile.user return profile
def get_object(self): profile_class = get_profile_model(self.kwargs.get("profile_slug")) if profile_class is None: raise Http404 if idios.settings.USE_USERNAME: self.page_user = get_object_or_404(User, username=self.kwargs["username"]) profile = get_object_or_404(profile_class, user=self.page_user) else: profile = get_object_or_404(profile_class, pk=self.kwargs["pk"]) self.page_user = profile.user if not self.request.user.has_perm("can_view", obj=profile): raise Http404 return profile
def get_object(self): profile_class = get_profile_model(self.kwargs.get("profile_slug")) if profile_class is None: raise Http404 if idios.settings.USE_USERNAME: self.page_user = get_object_or_404( User, username=self.kwargs["username"]) profile = get_object_or_404(profile_class, user=self.page_user) else: profile = get_object_or_404(profile_class, pk=self.kwargs["pk"]) self.page_user = profile.user if not self.request.user.has_perm("can_view", obj=profile): raise Http404 return profile
def get_object(self): queryset = get_profile_model().objects.select_related("user") slug = self.kwargs.get("slug") try: if slug: profile = get_object_or_404(queryset, slug=slug) self.page_user = profile.user profile.verified = True # If it's my profile page if self.request.user.is_authenticated() and self.request.user.id == profile.user_id: if EmailAddress.objects.filter(user=profile.user, verified=False).exists(): profile.verified = False return profile except: self.kwargs['username'] = slug return super(MyProfileDetailView, self).get_object()
def profiles(request, profile_slug=None, **kwargs): """ List all profiles of a given type (or the default type, if profile_slug is not given.) If profile_slug is the ``ALL_PROFILES`` marker object, all profiles are listed. """ template_name = kwargs.pop("template_name", "idios/profiles.html") group, bridge = group_and_bridge(kwargs) # @@@ not group-aware (need to look at moving to profile model) if profile_slug is ALL_PROFILES: profile_class = get_profile_base() else: profile_class = get_profile_model(profile_slug) if profile_class is None: raise Http404 profiles = profile_class.objects.select_related().order_by("-date_joined") search_terms = request.GET.get("search", "") order = request.GET.get("order") if not order: order = "date" if search_terms: profiles = profiles.filter(user__username__icontains=search_terms) if order == "date": profiles = profiles.order_by("-user__date_joined") elif order == "name": profiles = profiles.order_by("user__username") ctx = group_context(group, bridge) ctx.update({ "profiles": profiles, "order": order, "search_terms": search_terms, }) return render_to_response(template_name, RequestContext(request, ctx))
def get_object(self): queryset = get_profile_model().objects.select_related("user") slug = self.kwargs.get("slug") try: if slug: profile = get_object_or_404(queryset, slug=slug) self.page_user = profile.user profile.verified = True # If it's my profile page if self.request.user.is_authenticated( ) and self.request.user.id == profile.user_id: if EmailAddress.objects.filter(user=profile.user, verified=False).exists(): profile.verified = False return profile except: self.kwargs['username'] = slug return super(MyProfileDetailView, self).get_object()
def profile_edit(request, profile_slug=None, **kwargs): """ profile_edit """ template_name = kwargs.pop("template_name", "idios/profile_edit.html") form_class = kwargs.pop("form_class", None) if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "idios/profile_edit_facebox.html" ) group, bridge = group_and_bridge(kwargs) # @@@ not group-aware (need to look at moving to profile model) profile_class = get_profile_model(profile_slug) if profile_class is None: raise Http404 profile = profile_class.objects.get(user=request.user) if form_class is None: form_class = get_profile_form(profile_class) if request.method == "POST": profile_form = form_class(request.POST, instance=profile) if profile_form.is_valid(): profile = profile_form.save(commit=False) profile.user = request.user profile.save() return HttpResponseRedirect(profile.get_absolute_url(group=group)) else: profile_form = form_class(instance=profile) ctx = group_context(group, bridge) ctx.update({ "profile": profile, "profile_form": profile_form, }) return render_to_response(template_name, RequestContext(request, ctx))
def profile_edit(request, profile_slug=None, **kwargs): """ profile_edit """ template_name = kwargs.pop("template_name", "idios/profile_edit.html") form_class = kwargs.pop("form_class", None) if request.is_ajax(): template_name = kwargs.get("template_name_facebox", "idios/profile_edit_facebox.html") group, bridge = group_and_bridge(kwargs) # @@@ not group-aware (need to look at moving to profile model) profile_class = get_profile_model(profile_slug) if profile_class is None: raise Http404 profile = profile_class.objects.get(user=request.user) if form_class is None: form_class = get_profile_form(profile_class) if request.method == "POST": profile_form = form_class(request.POST, instance=profile) if profile_form.is_valid(): profile = profile_form.save(commit=False) profile.user = request.user profile.save() return HttpResponseRedirect(profile.get_absolute_url(group=group)) else: profile_form = form_class(instance=profile) ctx = group_context(group, bridge) ctx.update({ "profile": profile, "profile_form": profile_form, }) return render_to_response(template_name, RequestContext(request, ctx))
def profile_create(request, profile_slug=None, **kwargs): """ profile_create """ template_name = kwargs.pop("template_name", "idios/profile_create.html") form_class = kwargs.pop("form_class", None) if request.is_ajax(): template_name = kwargs.get( "template_name_facebox", "idios/profile_create_facebox.html" ) group, bridge = group_and_bridge(kwargs) profile_class = get_profile_model(profile_slug) if profile_class is None: raise Http404 if form_class is None: form_class = get_profile_form(profile_class) # @@@ is this the same for edit/create if request.method == "POST": profile_form = form_class(request.POST) if profile_form.is_valid(): profile = profile_form.save(commit=False) profile.user = request.user profile.save() return HttpResponseRedirect(profile.get_absolute_url(group=group)) else: profile_form = form_class() ctx = group_context(group, bridge) ctx.update({ "profile_form": profile_form, }) return render_to_response(template_name, RequestContext(request, ctx))
def profile_create(request, profile_slug=None, **kwargs): """ profile_create """ template_name = kwargs.pop("template_name", "idios/profile_create.html") form_class = kwargs.pop("form_class", None) if request.is_ajax(): template_name = kwargs.get("template_name_facebox", "idios/profile_create_facebox.html") group, bridge = group_and_bridge(kwargs) profile_class = get_profile_model(profile_slug) if profile_class is None: raise Http404 if form_class is None: form_class = get_profile_form( profile_class) # @@@ is this the same for edit/create if request.method == "POST": profile_form = form_class(request.POST) if profile_form.is_valid(): profile = profile_form.save(commit=False) profile.user = request.user profile.save() return HttpResponseRedirect(profile.get_absolute_url(group=group)) else: profile_form = form_class() ctx = group_context(group, bridge) ctx.update({ "profile_form": profile_form, }) return render_to_response(template_name, RequestContext(request, ctx))
def test_get_default_profile_model(self): self.assert_(utils.get_profile_model() is SimpleProfile)
def test_get_invalid_profile_model(self): self.assertEqual(utils.get_profile_model("doesntexist"), None)
def create_profile(sender, instance=None, **kwargs): if instance is None: return profile, created = get_profile_model().objects.get_or_create(user=instance)
def test_get_alt_profile_model(self): self.assert_(utils.get_profile_model("secret") is SecretIdentityProfile)
def create_profile(sender, instance=None, **kwargs): if instance is None or kwargs.get('raw', False) or not kwargs.get('created', True): return profile, created = get_profile_model().objects.get_or_create(user=instance)
def profile(request, username, **kwargs): # @@@ not group-aware (need to look at moving to profile model) page_user = get_object_or_404(User, username=username) profile_class = get_profile_model() profile = get_object_or_404(profile_class, user=page_user) return base_profile(request, profile, page_user, **kwargs)
def test_get_alt_profile_model(self): self.assert_( utils.get_profile_model("secret") is SecretIdentityProfile)