예제 #1
0
def endpoint(request):
    openid_request = get_server().decodeRequest(dict(request.REQUEST.items()))
    if openid_request is None:
        return HttpResponse("This was not valid OpenID request")

    if openid_request.mode not in ("checkid_immediate", "checkid_setup"):
        return convertToHttpResponse(
            get_server().handleRequest(openid_request))

    djangoid = get_djangoid_user_from_identity()
    if not request.user.is_authenticated():
        if openid_request.claimed_id is None:
            openid_request.claimed_id = openid_request.identity
        return redirect_to_login(urllib.quote(
            openid_request.encodeToURL(request.build_absolute_uri())),
                                 login_url=reverse('login'))
    if request.user != djangoid.user:
        raise Exception("Logged in as %s while expecting %s" %
                        (request.user, djangoid.user))

    # Is the user authenticated, and does he trust this trust_root?
    # user logged in (using openid_request.identity and openid_request.trust_root)
    if djangoid.authenticate(openid_request.trust_root):
        response = openid_request.answer(True)
    elif openid_request.immediate:
        response = openid_request.answer(False, request.META["HTTP_HOST"])
    else:
        if openid_request.claimed_id is None:
            openid_request.claimed_id = openid_request.identity
        redirect = openid_request.encodeToURL(reverse('openid_accept'))
        return HttpResponseRedirect(redirect)
    return convertToHttpResponse(response)
예제 #2
0
파일: views.py 프로젝트: gvidon/blombum
def endpoint(request):
    openid_request = get_server().decodeRequest(dict(request.REQUEST.items()))
    if openid_request is None:
        return HttpResponse("This was not valid OpenID request")

    if openid_request.mode not in ("checkid_immediate", "checkid_setup"):
        return convertToHttpResponse(get_server().handleRequest(openid_request))

    djangoid = get_djangoid_user_from_identity()
    if not request.user.is_authenticated():
        if openid_request.claimed_id is None:
            openid_request.claimed_id = openid_request.identity
        return redirect_to_login(
            urllib.quote(openid_request.encodeToURL(request.build_absolute_uri())),
            login_url=reverse('login'))
    if request.user != djangoid.user:
        raise Exception("Logged in as %s while expecting %s" % (request.user, djangoid.user))

    # Is the user authenticated, and does he trust this trust_root?
    # user logged in (using openid_request.identity and openid_request.trust_root)
    if djangoid.authenticate(openid_request.trust_root):
        response = openid_request.answer(True)
    elif openid_request.immediate:
        response = openid_request.answer(False, request.META["HTTP_HOST"])
    else:
        if openid_request.claimed_id is None:
            openid_request.claimed_id = openid_request.identity
        redirect = openid_request.encodeToURL(reverse('openid_accept'))
        return HttpResponseRedirect(redirect)
    return convertToHttpResponse(response)
예제 #3
0
def revcanonical(obj):
    url = reverse('revcanonical', encode(obj))
    site = getattr(settings, 'REVCANONICAL_SITE', None)
    if not site:
        site = Site.objects.get_current().domain
    return mark_safe(u'<link rev="canonical" href="http://%s%s" />' %
                     (site, url))
예제 #4
0
 def feed_links(self):
     return ({
         'rel': u'alternate',
         'href': self.feed_id()
     }, {
         'rel': u'self',
         'href': link(reverse(get_feed_type(type), 'blog'))
     })
예제 #5
0
 def feed_id(self, bits):
     try:
         tags, union = bits
     except TypeError:
         raise Http404
     if not tags:
         raise Http404
     return link(reverse('post_by_tag', tag=get_tags_bit(tags, union)))
예제 #6
0
 def feed_id(self, bits):
     try:
         tags, union = bits
     except TypeError:
         raise Http404
     if not tags:
         raise Http404
     return link(reverse('post_by_tag', tag=get_tags_bit(tags, union)))
예제 #7
0
def datelinks(value, prefix=''):
    """
    This filter formats date as "day.month.year" and sets links to
    day/month/year-based archives.

    For correct work there must be defined urls with names:
        - day_archive
        - month_archive
        - year_archive
    """
    ctx = {'year': reverse(prefix+'year_archive', year=value.year),
           'month': reverse(prefix+'month_archive', year=value.year,
                            month=value.strftime('%m')),
           'day': reverse(prefix+'day_archive', year=value.year,
                          month=value.strftime('%m'),
                          day=value.strftime('%d')),
           'date': value}
    return mark_safe(loader.render_to_string('templatetags/datelinks.html', ctx))
예제 #8
0
def friends_fetch_feeds(request):
    """
    Manually fetch feeds
    (if don't want to use crontab)
    """
    if not request.user.is_superuser:
        return HttpResponseForbidden("Only superuser can fetch friends feeds")
    FriendBlog.objects.fetch_feeds()
    return HttpResponseRedirect(reverse('friends_index'))
예제 #9
0
파일: views.py 프로젝트: ixth/blombum
def life_fetch_feeds(request):
    """
    Manually fetch feeds
    (if don't want to use crontab)
    """
    if not request.user.is_superuser:
        return HttpResponseForbidden("Only superuser can fetch life feeds")
    LifeFlow.objects.fetch_feeds()
    return HttpResponseRedirect(reverse('life_index'))
예제 #10
0
파일: views.py 프로젝트: gvidon/blombum
def life_fetch_feeds(request):
    """
    Manually fetch feeds
    (if don't want to use crontab)
    """
    if not request.user.is_superuser:
        return HttpResponseForbidden("Only superuser can fetch life feeds")
    LifeFlow.objects.fetch_feeds()
    return HttpResponseRedirect(reverse('life_index'))
예제 #11
0
파일: views.py 프로젝트: gvidon/blombum
def friends_fetch_feeds(request):
    """
    Manually fetch feeds
    (if don't want to use crontab)
    """
    if not request.user.is_superuser:
        return HttpResponseForbidden("Only superuser can fetch friends feeds")
    FriendBlog.objects.fetch_feeds()
    return HttpResponseRedirect(reverse('friends_index'))
예제 #12
0
 def feed_links(self, author):
     return ({
         'rel': u'alternate',
         'href': self.feed_id(author)
     }, {
         'rel':
         u'self',
         'href':
         link(
             reverse(get_feed_type(type),
                     'author/%s' % author.username))
     })
예제 #13
0
 def feed_links(self, obj):
     return ({
         'rel': u'alternate',
         'href': self.feed_id(obj)
     }, {
         'rel':
         u'self',
         'href':
         link(
             reverse(get_feed_type(type),
                     'comments/%s' % str(getattr(obj, 'id', ''))))
     })
예제 #14
0
def merge(request):
    """Merges accounts and switches to a new merged account"""
    if request.POST:
        form = MergeForm(request, request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse("profile_edit"))
        else:
            return {'form':form}
    else:
        form = MergeForm(request)
        return {'form':form}
예제 #15
0
파일: views.py 프로젝트: ixth/blombum
def merge(request):
    """Merges accounts and switches to a new merged account"""
    if request.POST:
        form = MergeForm(request, request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse("profile_edit"))
        else:
            return {'form': form}
    else:
        form = MergeForm(request)
        return {'form': form}
예제 #16
0
def _PostsByTag(Feed, type='atom'):
    class PostsByTag(Feed):
        def get_object(self, bits):
            if len(bits) != 1:
                raise Http404
            else:
                return list_and_is_union(bits[0])

        def feed_id(self, bits):
            try:
                tags, union = bits
            except TypeError:
                raise Http404
            if not tags:
                raise Http404
            return link(reverse('post_by_tag', tag=get_tags_bit(tags, union)))

        link = feed_id

        def feed_title(self, (tags, union)):
            site = Site.objects.get_current()
            if tags:
                filter_type = union and ' union' or ' intersection'
            else:
                filter_type = ''
            return u"%s blog posts with tag%s%s %s" % (
                site.name, pluralize(len(tags)), filter_type, ', '.join(
                    [tag.name for tag in tags]))

        title = feed_title

        def feed_authors(self):
            return ({
                "name": user.name
            } for user in User.objects.filter(is_staff=True))

        def feed_links(self, (tags, union)):
            return ({
                'rel': u'alternate',
                'href': self.feed_id((tags, union))
            }, {
                'rel':
                u'self',
                'href':
                link(
                    reverse(get_feed_type(type),
                            'tag/%s' % get_tags_bit(tags, union)))
            })
예제 #17
0
def _PostsByTag(Feed, type='atom'):
    class PostsByTag(Feed):
        def get_object(self, bits):
            if len(bits) != 1:
                raise Http404
            else:
                return list_and_is_union(bits[0])

        def feed_id(self, bits):
            try:
                tags, union = bits
            except TypeError:
                raise Http404
            if not tags:
                raise Http404
            return link(reverse('post_by_tag', tag=get_tags_bit(tags, union)))
        link = feed_id

        def feed_title(self, (tags, union)):
            site = Site.objects.get_current()
            if tags:
                filter_type = union and ' union' or ' intersection'
            else:
                filter_type = ''
            return u"%s blog posts with tag%s%s %s" % (
                site.name,
                pluralize(len(tags)),
                filter_type,
                ', '.join([tag.name for tag in tags]))
        title = feed_title

        def feed_authors(self):
            return ({"name": user.name} for user in User.objects.filter(is_staff=True))

        def feed_links(self, (tags, union)):
            return ({'rel': u'alternate', 'href': self.feed_id((tags, union))},
                    {'rel': u'self', 'href': link(reverse(
                            get_feed_type(type),
                            'tag/%s' % get_tags_bit(tags, union)))})
예제 #18
0
파일: models.py 프로젝트: gvidon/blombum
 def get_absolute_url(self):
     return reverse('wpimport.views.post_detail', self.id)
예제 #19
0
 def feed_id(self, obj):
     if obj:
         return link(obj.get_absolute_url())
     else:
         return link('%s#comments' % reverse('post_list'))
예제 #20
0
def shorturl(obj):
    return reverse('revcanonical', encode(obj))
예제 #21
0
 def feed_id(self):
     return link(reverse('post_list'))
예제 #22
0
 def feed_id(self, author):
     return link(reverse('post_by_author', author=author.username))
예제 #23
0
 def feed_id(self):
     return link(reverse('post_list'))
예제 #24
0
 def feed_id(self, obj):
     if obj:
         return link(obj.get_absolute_url())
     else:
         return link('%s#comments' % reverse('post_list'))
예제 #25
0
def shorturl(obj):
    return reverse('revcanonical', encode(obj))
예제 #26
0
 def feed_id(self):
     return link(reverse('life_index'))
예제 #27
0
파일: feeds.py 프로젝트: ixth/blombum
 def feed_id(self):
     return link(reverse('friends_index'))
예제 #28
0
def get_server():
    url = 'http://%s%s' % (Site.objects.get_current().domain,
                           reverse('openid_endpoint'))
    return server.Server(DjangoidStore(), url)
예제 #29
0
파일: models.py 프로젝트: ixth/blombum
 def get_absolute_url(self):
     return reverse('post_by_tag', tag=self.name)
예제 #30
0
 def get_absolute_url(self):
     return reverse('post_detail',
                    year=self.date.year,
                    month=self.date.strftime('%m'),
                    day=self.date.strftime('%d'),
                    slug=self.slug)
예제 #31
0
 def feed_links(self, author):
     return ({'rel': u'alternate', 'href': self.feed_id(author)},
             {'rel': u'self', 'href': link(reverse(
                     get_feed_type(type),
                     'author/%s' % author.username))})
예제 #32
0
 def location(self, obj):
     return reverse(obj)
예제 #33
0
def unsubscribe_type_url(content_type):
    return reverse('wl_unsubscribe_type',
                   content_type='.'.join(
                       (content_type.app_label, content_type.model)))
예제 #34
0
파일: sitemaps.py 프로젝트: gvidon/blombum
 def location(self, obj):
     return reverse(obj)
예제 #35
0
 def feed_links(self, obj):
     return ({'rel': u'alternate', 'href': self.feed_id(obj)},
             {'rel': u'self', 'href': link(reverse(
                     get_feed_type(type),
                     'comments/%s' % str(getattr(obj, 'id', ''))))})
예제 #36
0
파일: urls.py 프로젝트: ixth/blombum
def redirect_to_feed(request, url):
    from django.views.generic.simple import redirect_to
    from lib.helpers import reverse
    return redirect_to(request, url=reverse('feed', url=url))
예제 #37
0
 def feed_links(self):
     return ({'rel': u'alternate', 'href': self.feed_id()},
             {'rel': u'self', 'href': link(reverse(get_feed_type(type), 'blog'))})
예제 #38
0
def subscribe_url(obj):
    ctype = ContentType.objects.get_for_model(obj)
    return reverse('wl_subscribe',
                   content_type='.'.join((ctype.app_label, ctype.model)),
                   object_id=obj.pk)
예제 #39
0
파일: models.py 프로젝트: gvidon/blombum
 def get_absolute_url(self):
     return reverse('post_by_tag', tag=self.name)
예제 #40
0
 def feed_id(self, author):
     return link(reverse('post_by_author', author=author.username))
예제 #41
0
def tag_struct(tag):
    return {'name': tag.name,
            'description': tag.name,
            'htmlUrl': tag.get_absolute_url(),
            'rssUrl': reverse('feed', 'tag/%s' % tag.name)}
예제 #42
0
 def get_absolute_url(self):
     return reverse('post_detail', year=self.date.year,
                    month=self.date.strftime('%m'),
                    day=self.date.strftime('%d'),
                    slug=self.slug)
예제 #43
0
 def location(self, obj):
     return reverse('post_by_tag', tag=obj.name)
예제 #44
0
파일: urls.py 프로젝트: gvidon/blombum
def redirect_to_feed(request, url):
    from django.views.generic.simple import redirect_to
    from lib.helpers import reverse
    return redirect_to(request, url=reverse('feed', url=url))
예제 #45
0
파일: sitemaps.py 프로젝트: gvidon/blombum
 def location(self, obj):
     return reverse('post_by_tag', tag=obj.name)
예제 #46
0
def revcanonical(obj):
    url = reverse('revcanonical', encode(obj))
    site = getattr(settings, 'REVCANONICAL_SITE', None)
    if not site:
        site = Site.objects.get_current().domain
    return mark_safe(u'<link rev="canonical" href="http://%s%s">' % (site, url))
예제 #47
0
파일: tests.py 프로젝트: ixth/blombum
 def testEmailChange(self):
     self.assertEquals(self.client.login(email=self.old_email, password=self.name), True)
     check_redirect(lambda: self.client.post(reverse('profile_edit'),
                                             {'email': self.new_email}))
     self.assertEqual(len(mail.outbox), 1)
예제 #48
0
파일: views.py 프로젝트: gvidon/blombum
def get_server():
    url = 'http://%s%s' % (Site.objects.get_current().domain,
                           reverse('openid_endpoint'))
    return server.Server(DjangoidStore(), url)