diff options
author | Simo Sorce <ssorce@redhat.com> | 2007-12-11 14:19:10 -0500 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2007-12-11 14:19:10 -0500 |
commit | 5215b21ea404f2370bfdd4a2e452577e065a718c (patch) | |
tree | 8893bdeebf94979c66febd0d1f84fde9d311ed4e /ipa-python/ipaclient.py | |
parent | 4f0b2154146cc3ed3b32b34713089323d96c1c74 (diff) | |
parent | 01131e2a37a9aec197b4e286e0559165d403fe73 (diff) | |
download | freeipa.git-5215b21ea404f2370bfdd4a2e452577e065a718c.tar.gz freeipa.git-5215b21ea404f2370bfdd4a2e452577e065a718c.tar.xz freeipa.git-5215b21ea404f2370bfdd4a2e452577e065a718c.zip |
merge with upstream
Diffstat (limited to 'ipa-python/ipaclient.py')
-rw-r--r-- | ipa-python/ipaclient.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/ipa-python/ipaclient.py b/ipa-python/ipaclient.py index 426f6681..d815afa7 100644 --- a/ipa-python/ipaclient.py +++ b/ipa-python/ipaclient.py @@ -27,6 +27,7 @@ import user import group import ipa import config +import radius_util class IPAClient: @@ -399,3 +400,68 @@ class IPAClient: def get_keytab(self, princ_name): return self.transport.get_keytab(princ_name) +# radius support + def get_radius_client_by_ip_addr(self, ip_addr, container=None, sattrs=None): + result = self.transport.get_radius_client_by_ip_addr(ip_addr, container, sattrs) + return radius_util.RadiusClient(result) + + def add_radius_client(self, client, container=None): + client_dict = client.toDict() + + # dn is set on the server-side + del client_dict['dn'] + + # convert to a regular dict before sending + result = self.transport.add_radius_client(client_dict, container) + return result + + def update_radius_client(self, client): + result = self.transport.update_radius_client(client.origDataDict(), client.toDict()) + return result + + def delete_radius_client(self, ip_addr, container=None): + return self.transport.delete_radius_client(ip_addr, container) + + def find_radius_clients(self, criteria, container=None, sattrs=None, searchlimit=0, timelimit=-1): + result = self.transport.find_radius_clients(criteria, container, sattrs, searchlimit, timelimit) + counter = result[0] + + users = [counter] + for attrs in result[1:]: + if attrs is not None: + users.append(user.User(attrs)) + + return users + + def get_radius_profile_by_uid(self, uid, user_profile=None, sattrs=None): + result = self.transport.get_radius_profile_by_uid(uid, user_profile, sattrs) + return radius_util.RadiusClient(result) + + def add_radius_profile(self, profile, user_profile=None): + profile_dict = profile.toDict() + + # dn is set on the server-side + del profile_dict['dn'] + + # convert to a regular dict before sending + result = self.transport.add_radius_profile(profile_dict, user_profile) + return result + + def update_radius_profile(self, profile): + result = self.transport.update_radius_profile(profile.origDataDict(), profile.toDict()) + return result + + def delete_radius_profile(self, ip_addr, user_profile=None): + return self.transport.delete_radius_profile(ip_addr, user_profile) + + def find_radius_profiles(self, criteria, user_profile=None, sattrs=None, searchlimit=0, timelimit=-1): + result = self.transport.find_radius_profiles(criteria, user_profile, sattrs, searchlimit, timelimit) + counter = result[0] + + users = [counter] + for attrs in result[1:]: + if attrs is not None: + users.append(user.User(attrs)) + + return users + |