summaryrefslogtreecommitdiffstats
path: root/ipa-python/ipaclient.py
diff options
context:
space:
mode:
authorSimo Sorce <ssorce@redhat.com>2007-08-17 10:41:45 -0400
committerSimo Sorce <ssorce@redhat.com>2007-08-17 10:41:45 -0400
commit9238e3cb4af0b5ac490bb4b2f15d4d1b553e079c (patch)
tree31c881505d97c2eb01b5117287b1665b08bb4845 /ipa-python/ipaclient.py
parentd41db21a09b80968f22c2211bf6472fe95b34b3f (diff)
parent0ddf0699a5dd47c575a7e757f38819c8c74340f9 (diff)
downloadfreeipa.git-9238e3cb4af0b5ac490bb4b2f15d4d1b553e079c.tar.gz
freeipa.git-9238e3cb4af0b5ac490bb4b2f15d4d1b553e079c.tar.xz
freeipa.git-9238e3cb4af0b5ac490bb4b2f15d4d1b553e079c.zip
Merge with upstream
Diffstat (limited to 'ipa-python/ipaclient.py')
-rw-r--r--ipa-python/ipaclient.py45
1 files changed, 33 insertions, 12 deletions
diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py
index 626e0a11..28e56001 100644
--- a/ipa-python/ipaclient.py
+++ b/ipa-python/ipaclient.py
@@ -41,31 +41,36 @@ class IPAClient:
self.transport = rpcclient.RPCClient()
def set_principal(self,princ):
+ """Set the name of the principal that will be used for
+ LDAP proxy authentication"""
if self.local:
self.transport.set_principal(princ)
- def get_user(self,uid):
- result = self.transport.get_user(uid)
+ def get_user(self,uid,sattrs=None):
+ """Get a specific user by uid. If sattrs is set then only those
+ attributes will be returned."""
+ result = self.transport.get_user(uid,sattrs)
return user.User(result)
def add_user(self,user):
+ """Add a user. user is a dict of attribute/value pairs"""
realm = config.config.get_realm()
# FIXME: This should be dynamic and can include just about anything
# Let us add in some missing attributes
- if user.get('homeDirectory') is None:
- user['homeDirectory'] ='/home/%s' % user['uid']
+ if user.get('homedirectory') is None:
+ user['homedirectory'] ='/home/%s' % user['uid']
if user.get('gecos') is None:
user['gecos'] = user['uid']
# FIXME: This can be removed once the DS plugin is installed
- user['uidNumber'] ='501'
+ user['uidnumber'] ='501'
# FIXME: What is the default group for users?
- user['gidNumber'] ='501'
- user['krbPrincipalName'] = "%s@%s" % (user['uid'], realm)
- user['cn'] = "%s %s" % (user['givenName'], user['sn'])
+ user['gidnumber'] ='501'
+ user['krbprincipalname'] = "%s@%s" % (user['uid'], realm)
+ user['cn'] = "%s %s" % (user['givenname'], user['sn'])
if user.get('gn'):
del user['gn']
@@ -73,32 +78,48 @@ class IPAClient:
return result
def get_all_users(self):
+ """Get as a list of User objects all users in the directory"""
result = self.transport.get_all_users()
all_users = []
for (attrs) in result:
- if attrs is not None:
- all_users.append(user.User(attrs))
+ if attrs is not None:
+ all_users.append(user.User(attrs))
return all_users
def get_add_schema(self):
+ """Prototype for the GUI. Specify in the directory fields to
+ be displayed and what data to get for new users."""
result = self.transport.get_add_schema()
return result
def find_users(self, criteria, sattrs=None):
+ """Find users whose uid matches the criteria. Wildcards are
+ acceptable. Returns a list of User objects."""
result = self.transport.find_users(criteria, sattrs)
users = []
for (attrs) in result:
- if attrs is not None:
- users.append(user.User(attrs))
+ if attrs is not None:
+ users.append(user.User(attrs))
return users
def update_user(self,olduser,newuser):
+ """Update a user entry. olduser is a dict of attribute/value pairs
+ of the original entry. newuser is a dict of attribute/value pairs
+ of the new entry."""
realm = config.config.get_realm()
result = self.transport.update_user(olduser,newuser)
return result
+
+ def mark_user_deleted(self,uid):
+ """Set a user as inactive by uid."""
+
+ realm = config.config.get_realm()
+
+ result = self.transport.mark_user_deleted(uid)
+ return result