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