From b796dc40771f082939e491180570e9697c03cf28 Mon Sep 17 00:00:00 2001 From: Tim Potter Date: Tue, 5 Apr 2005 11:50:47 +0000 Subject: r6214: Fix typo in DomainHandle.OpenUser() function. Implement DomainHandle.LookupNames() function. UserHandle.DeleteUser() closes the handle so don't try and close it when the GC destroys the class instance. (This used to be commit 57680163bcc1aa5c707a64dcd1d0998dbc9f0659) --- source4/scripting/swig/samr.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'source4/scripting/swig') diff --git a/source4/scripting/swig/samr.py b/source4/scripting/swig/samr.py index 22b591930c..9782a9fc7b 100644 --- a/source4/scripting/swig/samr.py +++ b/source4/scripting/swig/samr.py @@ -323,7 +323,7 @@ class DomainHandle(SamrHandle): call_fn(dcerpc.dcerpc_samr_OpenUser, self.pipe, r) - return UserHandle(pipe, r.data_out.user_handle) + return UserHandle(self.pipe, r.data_out.user_handle) def OpenGroup(self, rid, access_mask = 0x02000000): @@ -363,7 +363,24 @@ class DomainHandle(SamrHandle): r.data_in.sid = sid call_fn(dcerpc.dcerpc_samr_RemoveMemberFromForeignDomain, self.pipe, r) - + + def LookupNames(self, names): + + r = dcerpc.samr_LookupNames() + r.data_in.domain_handle = self.handle + r.data_in.num_names = len(names) + r.data_in.names = dcerpc.new_samr_String_array(len(names)) + + for i in range(len(names)): + s = dcerpc.samr_String() + s.string = names[i] + dcerpc.samr_String_array_setitem(r.data_in.names, i, s) + + call_fn(dcerpc.dcerpc_samr_LookupNames, self.pipe, r) + + return ([dcerpc.uint32_array_getitem(r.data_out.rids.ids, i) for i in range(r.data_out.rids.count)], + [dcerpc.uint32_array_getitem(r.data_out.types.ids, i) for i in range(r.data_out.types.count)]) + class UserHandle(SamrHandle): @@ -371,8 +388,10 @@ class UserHandle(SamrHandle): r = dcerpc.samr_DeleteUser() r.data_in.user_handle = self.handle - + call_fn(dcerpc.dcerpc_samr_DeleteUser, self.pipe, r) + + self.handle = None class GroupHandle(SamrHandle): -- cgit