from django.conf import settings
from django.http import HttpResponseBadRequest
-from django.core.urlresolvers import reverse
-from django.utils.http import urlencode
from pithos.im.models import Invitation
from pithos.im.target.util import get_or_create_user, prepare_response
invitation.inviter.level + 1)
next = request.GET.get('next')
- if settings.FORCE_PROFILE_UPDATE and not user.is_verified:
- params = urlencode({'next': next})
- next = reverse('pithos.im.views.users_profile', args=(user.id,))
- next = next + '?' + params
return prepare_response(request, user, next, 'renew' in request.GET)
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseBadRequest
from django.conf import settings
from django.template.loader import render_to_string
-from django.core.urlresolvers import reverse
-from django.utils.http import urlencode
from pithos.im.target.util import prepare_response
from pithos.im.models import User
return HttpResponseBadRequest('Unverified account')
next = request.POST.get('next')
- if settings.FORCE_PROFILE_UPDATE and not user.is_verified:
- params = urlencode({'next': next})
- next = reverse('pithos.im.views.users_profile', args=(user.id,))
- next = next + '?' + params
return prepare_response(request, user, next)
from django.http import HttpResponseBadRequest
from django.core.urlresolvers import reverse
-from django.utils.http import urlencode
-from django.conf import settings
from pithos.im.target.util import get_or_create_user, prepare_response
affiliation = tokens.get(Tokens.SHIB_EP_AFFILIATION, '')
- user = get_or_create_user(eppn, realname, affiliation, 0)
- next = request.GET.get('next')
if settings.FORCE_PROFILE_UPDATE and not user.is_verified:
params = urlencode({'next': next})
next = reverse('pithos.im.views.users_profile', args=(user.id,))
next = next + '?' + params
return prepare_response(request,
- user,
- next,
+ get_or_create_user(eppn, realname, affiliation, 0),
+ request.GET.get('next'),
'renew' in request.GET)
uniq = '%s@twitter.com' % access_token['screen_name']
realname = access_token['user_id']
- user = get_or_create_user(uniq, realname, 'Twitter', 0)
- next = request_token.get('next')
- if settings.FORCE_PROFILE_UPDATE and not user.is_verified:
- params = urlencode({'next': next})
- next = reverse('pithos.im.views.users_profile', args=(user.id,))
- next = next + '?' + params
-
- return prepare_response(request, user, next)
+ return prepare_response(request,
+ get_or_create_user(uniq, realname, 'Twitter', 0),
+ request_token.get('next'))
from django.conf import settings
from django.http import HttpResponse
from django.utils.http import urlencode
+from django.core.urlresolvers import reverse
from pithos.im.models import User
if renew or user.auth_token_expires < datetime.datetime.now():
user.renew_token()
user.save()
+
if next:
# TODO: Avoid redirect loops.
parts = list(urlsplit(next))
parts[3] = urlencode({'user': user.uniq, 'token': user.auth_token})
next = urlunsplit(parts)
+ if settings.FORCE_PROFILE_UPDATE and not user.is_verified:
+ params = ''
+ if next:
+ params = '?' + urlencode({'next': next})
+ next = reverse('pithos.im.views.users_profile') + params
+
response = HttpResponse()
expire_fmt = user.auth_token_expires.strftime('%a, %d-%b-%Y %H:%M:%S %Z')
cookie_value = quote(user.uniq + '|' + user.auth_token)
{% block body %}
-<form action="{% url pithos.im.views.users_edit user.id %}" method="post">
+<form action="{% url pithos.im.views.users_edit%}" method="post">
<div class="clearfix">
<label for="user-id">ID</label>
<div class="input">
(r'^admin/invitations/?$', 'invitations_list'),
(r'^admin/invitations/export/?$', 'invitations_export'),
- (r'^profile/(\d+)/?$', 'users_profile'),
- (r'^profile/(\d+)/edit/?$', 'users_edit'),
+ (r'^profile/?$', 'users_profile'),
+ (r'^profile/edit/?$', 'users_edit'),
)
urlpatterns += patterns('pithos.im.target',
return func(request, *args)
return wrapper
-def requires_my_login(func):
- @wraps(func)
- def wrapper(request, *args):
- print '>', request.user, args
- if not settings.BYPASS_ADMIN_AUTH:
- if not request.user:
- next = urlencode({'next': request.build_absolute_uri()})
- login_uri = reverse(index) + '?' + next
- return HttpResponseRedirect(login_uri)
- else:
- user = User.objects.get(uniq=request.user)
- if user.id != int(args[0]):
- next = urlencode({'next': request.build_absolute_uri()})
- login_uri = reverse(index) + '?' + next
- return HttpResponseRedirect(login_uri)
- return func(request, *args)
- return wrapper
-
-
def requires_admin(func):
@wraps(func)
def wrapper(request, *args):
user.save()
return redirect(users_info, user.id)
-@requires_my_login
-def users_profile(request, user_id):
+@requires_login
+def users_profile(request):
next = request.GET.get('next')
- user = User.objects.get(id=user_id)
+ user = User.objects.get(uniq=request.user)
states = [x[0] for x in User.ACCOUNT_STATE]
return render_response('users_profile.html',
user=user,
states=states,
next=next)
-@requires_my_login
-def users_edit(request, user_id):
- user = User.objects.get(id=user_id)
+@requires_login
+def users_edit(request):
+ user = User.objects.get(uniq=request.user)
user.realname = request.POST.get('realname')
user.affiliation = request.POST.get('affiliation')
user.is_verified = True