summaryrefslogtreecommitdiffstats
path: root/ipa-server/xmlrpc-server
diff options
context:
space:
mode:
authorRob Crittenden <rcritten@redhat.com>2007-10-22 17:06:52 -0400
committerRob Crittenden <rcritten@redhat.com>2007-10-22 17:06:52 -0400
commit04636b8ae7b759291fe0c49991b3df760d6ad4c2 (patch)
tree5ef85e2b057c2dc94c5744492ddd83f70efa3a2b /ipa-server/xmlrpc-server
parenta47f893957a2b07b87f26429183f61d781a257fc (diff)
downloadfreeipa.git-04636b8ae7b759291fe0c49991b3df760d6ad4c2.tar.gz
freeipa.git-04636b8ae7b759291fe0c49991b3df760d6ad4c2.tar.xz
freeipa.git-04636b8ae7b759291fe0c49991b3df760d6ad4c2.zip
Add an LDAP attribute -> label mapping function to XML-RPC layer
Move some ACI functions around in preparation for cli delegation
Diffstat (limited to 'ipa-server/xmlrpc-server')
-rw-r--r--ipa-server/xmlrpc-server/Makefile.am1
-rw-r--r--ipa-server/xmlrpc-server/attrs.py53
-rw-r--r--ipa-server/xmlrpc-server/funcs.py11
-rw-r--r--ipa-server/xmlrpc-server/ipaxmlrpc.py1
4 files changed, 66 insertions, 0 deletions
diff --git a/ipa-server/xmlrpc-server/Makefile.am b/ipa-server/xmlrpc-server/Makefile.am
index 97d57ca1..5e9da065 100644
--- a/ipa-server/xmlrpc-server/Makefile.am
+++ b/ipa-server/xmlrpc-server/Makefile.am
@@ -12,6 +12,7 @@ html_DATA = \
serverdir = $(IPA_DATA_DIR)/ipaserver
server_PYTHON = \
+ attrs.py \
funcs.py \
ipaxmlrpc.py \
$(NULL)
diff --git a/ipa-server/xmlrpc-server/attrs.py b/ipa-server/xmlrpc-server/attrs.py
new file mode 100644
index 00000000..239b8d8f
--- /dev/null
+++ b/ipa-server/xmlrpc-server/attrs.py
@@ -0,0 +1,53 @@
+# Authors: Rob Crittenden <rcritten@redhat.com>
+#
+# Copyright (C) 2007 Red Hat
+# see file 'COPYING' for use and warranty information
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; version 2 only
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+attr_label_list = {
+ "givenname":"Given Name",
+ "sn":"Family Name",
+ "cn":"Common Name",
+ "title":"Title",
+ "displayname":"Display Name",
+ "initials":"Initials",
+ "uid":"Login",
+ "userpassword":"Password",
+ "uidnumber":"UID",
+ "gidnumber":"GID",
+ "homedirectory":"Home Directory",
+ "loginshell":"Login Shell",
+ "gecos":"GECOS",
+ "mail":"E-mail Address",
+ "telephonenumber":"Work Number",
+ "facsimiletelephonenumber":"Fax Number",
+ "mobile":"Cell Number",
+ "homephone":"Home Number",
+ "street":"Street Address",
+ "l":"City",
+ "st":"State",
+ "postalcode":"ZIP",
+ "ou":"Org Unit",
+ "businesscategory":"Tags",
+ "description":"Description",
+ "employeetype":"Employee Type",
+ "manager":"Manager",
+ "roomnumber":"Room Number",
+ "secretary":"Secretary",
+ "carlicense":"Car License",
+ "labelduri":"Home Page",
+ "nsaccountlock":"Account Status"
+}
diff --git a/ipa-server/xmlrpc-server/funcs.py b/ipa-server/xmlrpc-server/funcs.py
index f62a6aba..7ce83d57 100644
--- a/ipa-server/xmlrpc-server/funcs.py
+++ b/ipa-server/xmlrpc-server/funcs.py
@@ -28,6 +28,7 @@ import ipaserver.ipaldap
import ipa.ipautil
import xmlrpclib
import copy
+import attrs
from ipa import ipaerror
import string
@@ -1051,6 +1052,16 @@ class IPAServer:
raise
return ret
+ def attrs_to_labels(self, attr_list, opts=None):
+ """Take a list of LDAP attributes and convert them to more friendly
+ labels."""
+ label_list = {}
+
+ for a in attr_list:
+ label_list[a] = attrs.attr_label_list.get(a,a)
+
+ return label_list
+
def ldap_search_escape(match):
"""Escapes out nasty characters from the ldap search.
See RFC 2254."""
diff --git a/ipa-server/xmlrpc-server/ipaxmlrpc.py b/ipa-server/xmlrpc-server/ipaxmlrpc.py
index 2785c680..64e5fa68 100644
--- a/ipa-server/xmlrpc-server/ipaxmlrpc.py
+++ b/ipa-server/xmlrpc-server/ipaxmlrpc.py
@@ -349,6 +349,7 @@ def handler(req, profiling=False):
h.register_function(f.remove_groups_from_user)
h.register_function(f.update_group)
h.register_function(f.delete_group)
+ h.register_function(f.attrs_to_labels)
h.handle_request(req)
finally:
pass