Revision b4c241e6 pithos/im/views.py
b/pithos/im/views.py | ||
---|---|---|
76 | 76 |
return func(request, *args) |
77 | 77 |
return wrapper |
78 | 78 |
|
79 |
def requires_my_login(func): |
|
80 |
@wraps(func) |
|
81 |
def wrapper(request, *args): |
|
82 |
print '>', request.user, args |
|
83 |
if not settings.BYPASS_ADMIN_AUTH: |
|
84 |
if not request.user: |
|
85 |
next = urlencode({'next': request.build_absolute_uri()}) |
|
86 |
login_uri = reverse(index) + '?' + next |
|
87 |
return HttpResponseRedirect(login_uri) |
|
88 |
else: |
|
89 |
user = User.objects.get(uniq=request.user) |
|
90 |
if user.id != int(args[0]): |
|
91 |
next = urlencode({'next': request.build_absolute_uri()}) |
|
92 |
login_uri = reverse(index) + '?' + next |
|
93 |
return HttpResponseRedirect(login_uri) |
|
94 |
return func(request, *args) |
|
95 |
return wrapper |
|
96 |
|
|
79 | 97 |
|
80 | 98 |
def requires_admin(func): |
81 | 99 |
@wraps(func) |
... | ... | |
455 | 473 |
user.renew_token() |
456 | 474 |
user.save() |
457 | 475 |
return redirect(users_info, user.id) |
476 |
|
|
477 |
@requires_my_login |
|
478 |
def users_profile(request, user_id): |
|
479 |
next = request.GET.get('next') |
|
480 |
user = User.objects.get(id=user_id) |
|
481 |
states = [x[0] for x in User.ACCOUNT_STATE] |
|
482 |
return render_response('users_profile.html', |
|
483 |
user=user, |
|
484 |
states=states, |
|
485 |
next=next) |
|
486 |
|
|
487 |
@requires_my_login |
|
488 |
def users_edit(request, user_id): |
|
489 |
user = User.objects.get(id=user_id) |
|
490 |
user.realname = request.POST.get('realname') |
|
491 |
user.affiliation = request.POST.get('affiliation') |
|
492 |
user.is_verified = True |
|
493 |
user.save() |
|
494 |
next = request.POST.get('next') |
|
495 |
if next: |
|
496 |
return redirect(next) |
|
497 |
|
|
498 |
status = 'success' |
|
499 |
message = _('Profile has been updated') |
|
500 |
html = render_to_string('users_profile.html', { |
|
501 |
'user': user, |
|
502 |
'status': status, |
|
503 |
'message': message}) |
|
504 |
return HttpResponse(html) |
|
505 |
|
Also available in: Unified diff