Esempio n. 1
0
from django import http
from django.contrib import auth
from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required
from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import smart_str

from turbion.bits.openid import forms, utils, models, backend
from turbion.bits.utils.urls import uri_reverse
from turbion.bits.profiles import get_profile
from turbion.bits.utils.decorators import templated, special_titled

titled = special_titled(section=_("OpenID authentication"))

def get_redirect(request):
    redirect = request.REQUEST.get("next", request.META.get("HTTP_REFERER", "/"))

    return redirect

@templated('turbion/openid/login.html')
@titled(page=_("OpendID login"))
def login(request):
    if request.method == 'POST':
        form = forms.OpenidLoginForm(request, data=request.POST)
        if form.is_valid():
            after_auth_redirect = form.auth_redirect(get_redirect(request))
            return http.HttpResponseRedirect(after_auth_redirect)
    else:
        form = forms.OpenidLoginForm(request)
Esempio n. 2
0
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.utils.translation import ugettext_lazy as _
from django import http
from django.core.urlresolvers import reverse

from turbion.bits.blogs.models import Post
from turbion.bits.profiles.models import Profile
from turbion.bits.utils.decorators import special_titled, templated, paged
from turbion.bits import watchlist
from turbion.bits.profiles import get_profile
from turbion.bits.utils.pagination import paginate
from turbion.bits.utils.views import status_redirect
from turbion.bits.watchlist.forms import SubscriptionForm

titled = special_titled(section=_('Watchlist'))

@paged
@login_required
@templated('turbion/watchlist/index.html')
@titled(page=_('Recent comments'))
def index(request):
    profile = get_profile(request)
    return {
        'profile': profile,
        'comments_page': paginate(
            watchlist.get_subcription_comments(profile),
            request.page,
            settings.TURBION_BLOG_POSTS_PER_PAGE
        ),
        'subscriptions': profile.subscriptions.filter(event__name='new_comment').\
Esempio n. 3
0
import re

from django.conf import settings
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django.http import Http404, HttpResponsePermanentRedirect
from django.shortcuts import *

from turbion.bits.blogs.models import Post
from turbion.bits.utils.decorators import special_titled
from turbion.bits.profiles import get_profile

titled = special_titled(section=settings.TURBION_BLOG_NAME)

def post_view(view_func):
    def _decor(request, *args, **kwargs):
        if request.user.is_authenticated():
            query_set = Post.objects.all()
        else:
            query_set = Post.published.all()

            if not get_profile(request).is_trusted():
                query_set = query_set.filter(showing=Post.show_settings.everybody)

        published_on = dict(
            published_on__year=int(kwargs.pop('year_id')),
            published_on__month=int(kwargs.pop('month_id')),
            published_on__day=int(kwargs.pop('day_id')),
        )
        query_set = query_set.filter(slug=kwargs.pop('post_slug'), **published_on)
Esempio n. 4
0
from django.http import HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from django.utils.translation import ugettext_lazy as _
from django.shortcuts import get_object_or_404

from turbion.bits.profiles import get_profile, forms
from turbion.bits.profiles.models import Profile

from turbion.bits.utils.decorators import special_titled, templated

titled = special_titled(section=_("Profile {{profile}}"))

@templated('turbion/profiles/profile.html')
@titled(page=_("Profile"))
def profile(request, profile_id):
    profile = get_object_or_404(Profile, pk=profile_id)

    return {
        "profile": profile
    }

@login_required
@templated('turbion/profiles/edit.html')
@titled(page=_("Edit"))
def edit_profile(request):
    profile = get_profile(request)

    updated = False
    if request.method == "POST":
        profile_form = forms.ProfileForm(
            data=request.POST,
Esempio n. 5
0
from django.utils.translation import ugettext_lazy as _
from django.utils.encoding import force_unicode
from django.conf import settings

from turbion.bits.profiles import get_profile
from turbion.bits.openid import forms, utils, models
from turbion.bits.utils.urls import uri_reverse
from turbion.bits.utils.decorators import templated, special_titled
from turbion.bits.utils.views import status_redirect

# Maps sreg data fields to Turbion's profile if not equal
SREG_TO_PROFILE_MAP = {
    'fullname': 'full_name',
}

titled = special_titled(section=_("OpenID Server"))

def is_identity_profile(request):
    return get_profile(request).pk == int(settings.TURBION_OPENID_IDENTITY_PROFILE)

def identity_profile_required(view):
    def _decorator(request, *args, **kwargs):
        if not is_identity_profile(request):
            return http.HttpResponseForbidden('Access restricted')
        return view(request, *args, **kwargs)
    return _decorator

def is_trust(url):
    try:
        trust = models.Trust.objects.get(url=url)
        return True