Author: tpot Date: 2005-04-05 11:50:47 +0000 (Tue, 05 Apr 2005) New Revision: 6214
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6214 Log: 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. Modified: branches/SAMBA_4_0/source/scripting/swig/samr.py Changeset: Modified: branches/SAMBA_4_0/source/scripting/swig/samr.py =================================================================== --- branches/SAMBA_4_0/source/scripting/swig/samr.py 2005-04-05 11:48:16 UTC (rev 6213) +++ branches/SAMBA_4_0/source/scripting/swig/samr.py 2005-04-05 11:50:47 UTC (rev 6214) @@ -323,7 +323,7 @@ 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,16 +363,35 @@ 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): def DeleteUser(self): r = dcerpc.samr_DeleteUser() r.data_in.user_handle = self.handle + + call_fn(dcerpc.dcerpc_samr_DeleteUser, self.pipe, r) - call_fn(dcerpc.dcerpc_samr_DeleteUser, self.pipe, r) + self.handle = None class GroupHandle(SamrHandle):