Exemple #1
0
 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
Exemple #2
0
 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
Exemple #3
0
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
Exemple #4
0
 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
Exemple #5
0
 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
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #8
0
 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()
Exemple #9
0
 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()
Exemple #10
0
 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()
Exemple #11
0
 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()
Exemple #12
0
 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
Exemple #13
0
 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
Exemple #14
0
 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
Exemple #15
0
 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
Exemple #16
0
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
Exemple #17
0
 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
Exemple #18
0
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
Exemple #19
0
 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
Exemple #20
0
 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
Exemple #21
0
    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
Exemple #22
0
    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()
Exemple #23
0
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))
Exemple #24
0
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))
Exemple #25
0
    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()
Exemple #26
0
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))
Exemple #27
0
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))
Exemple #28
0
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))
Exemple #29
0
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))
Exemple #30
0
 def test_get_default_profile_model(self):
     self.assert_(utils.get_profile_model() is SimpleProfile)
Exemple #31
0
 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)
Exemple #33
0
 def test_get_invalid_profile_model(self):
     self.assertEqual(utils.get_profile_model("doesntexist"), None)
Exemple #34
0
 def test_get_alt_profile_model(self):
     self.assert_(utils.get_profile_model("secret") is SecretIdentityProfile)
Exemple #35
0
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)
Exemple #36
0
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)
Exemple #37
0
 def test_get_alt_profile_model(self):
     self.assert_(
         utils.get_profile_model("secret") is SecretIdentityProfile)
Exemple #38
0
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)
Exemple #39
0
 def test_get_default_profile_model(self):
     self.assert_(utils.get_profile_model() is SimpleProfile)