r6214: Fix typo in DomainHandle.OpenUser() function.
authorTim Potter <tpot@samba.org>
Tue, 5 Apr 2005 11:50:47 +0000 (11:50 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:11:27 +0000 (13:11 -0500)
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

index 22b591930c90a89fc1f4c8df3208e70d7a19b1fb..9782a9fc7baa741c7da7278b71f79bb39d8f1222 100644 (file)
@@ -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):