diff --git a/main/views.py b/main/views.py index e810ccb..392d0de 100644 --- a/main/views.py +++ b/main/views.py @@ -3,7 +3,7 @@ import simplejson as json from django.http import HttpResponse, HttpResponseRedirect from django.contrib.auth import login, logout as auth_logout -from django.contrib.auth.decorators import login_required +from django.contrib.auth.decorators import login_required, permission_required from django.contrib.auth.forms import SetPasswordForm, AuthenticationForm from django.contrib.auth.models import User from django.contrib.auth.tokens import default_token_generator @@ -46,6 +46,19 @@ def profile(request): return render_to_response('private/profile.html', locals(), context_instance=RequestContext(request)) +@permission_required('main.is_superuser') +def user_profile(request, username): + ldap_user = None + try: + ldap_user = LdapUser.objects.get(username=username) + except: + return render_to_response('private/profile.html', locals(), context_instance=RequestContext(request)) + + groups = LdapGroup.objects.filter(usernames__contains=username) + private_group = LdapGroup.objects.filter(gid=ldap_user.group)[0] + + return render_to_response('private/profile.html', locals(), context_instance=RequestContext(request)) + #todo security def client_status(request): krb5_principal = utils.get_kerberos_principal(request.user) diff --git a/urls.py b/urls.py index 1325b41..0464174 100644 --- a/urls.py +++ b/urls.py @@ -8,6 +8,7 @@ urlpatterns = patterns('', (r'^admin/', include(admin.site.urls)), (r'^admin/doc/', include('django.contrib.admindocs.urls')), (r'^accounts/profile/$', 'main.views.profile'), + (r'^accounts/profile/(?P\w+)$', 'main.views.user_profile'), (r'^accounts/login/$', 'django.contrib.auth.views.login'), (r'^accounts/logout/$', 'main.views.logout'), # Change password