mango r212 - in branches/django: . mango



Author: ovitters
Date: Sat Jun 21 23:45:50 2008
New Revision: 212
URL: http://svn.gnome.org/viewvc/mango?rev=212&view=rev

Log:
	* mango/urls.py: Add new view 'edit_user'.
	* mango/views.py (edit_user): Add new view. Get uid information from
	ldap and give it to the template. Doesn't show everything in the
	template and also fails to do actually do anything.


Modified:
   branches/django/   (props changed)
   branches/django/ChangeLog
   branches/django/mango/urls.py
   branches/django/mango/views.py

Modified: branches/django/mango/urls.py
==============================================================================
--- branches/django/mango/urls.py	(original)
+++ branches/django/mango/urls.py	Sat Jun 21 23:45:50 2008
@@ -1,6 +1,6 @@
 from django.conf.urls.defaults import *
 
-from mango.views import current_datetime, list_users, test_index, list_accounts
+from mango.views import current_datetime, list_users, test_index, list_accounts, edit_user
 import mango.settings
 
 urlpatterns = patterns('',
@@ -8,6 +8,7 @@
     (r'^%susers/$' % mango.settings.SITE_ROOT, list_users),
     (r'^%stest/$' % mango.settings.SITE_ROOT, test_index),
     (r'^%saccounts/$' % mango.settings.SITE_ROOT, list_accounts),
+    (r'^%susers/edit/(?P<user>\w+)/$' % mango.settings.SITE_ROOT, edit_user),
     # Example:
     # (r'^mango/', include('mango.foo.urls')),
 

Modified: branches/django/mango/views.py
==============================================================================
--- branches/django/mango/views.py	(original)
+++ branches/django/mango/views.py	Sat Jun 21 23:45:50 2008
@@ -3,6 +3,7 @@
 import datetime
 
 import ldap
+import ldap.filter
 import models
 
 try:
@@ -67,6 +68,41 @@
 
     return get_xmlresponse(doc, "../www/list_users.xsl")
 
+def edit_user(request, user):
+    doc, root = get_xmldoc('Update user %s' % user, request)
+    el = ET.SubElement(root, 'updateuser')
+
+    
+    l = models.LdapUtil().handle
+    if not l:
+        return HttpResponseServerError('Cannot connect to LDAP?')
+
+    filter = ldap.filter.filter_format('(&(objectClass=posixAccount)(uid=%s))', (user,))
+    users = l.search_s(settings.MANGO_CFG['ldap_users_basedn'],
+                       ldap.SCOPE_SUBTREE, filter, None)
+
+    if len(users) != 1:
+        raise Http404()
+
+    user = users[0][1]
+
+    for item in ('uid', 'cn', 'mail', 'description'):
+        node = ET.SubElement(el, item)
+        node.text = user[item][0]
+
+    for key in user.get('authorizedKey', [''])[0].splitlines():
+        if key != "":
+            node = ET.SubElement(el, 'authorizedKey')
+            node.text = key
+
+    # TODO:
+    #  - add fingerprint of above keys
+    #  - add groups
+
+    return get_xmlresponse(doc, "../../../www/update_user.xsl")
+
+
+
 def test_index(request):
     doc, root = get_xmldoc('Login Page', request)
     root.append(ET.Element('homepage'))



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]