svn commit: samba r5368 - in branches/SAMBA_4_0/source/scripting/swig: .

tpot at samba.org tpot at samba.org
Sun Feb 13 00:58:28 GMT 2005


Author: tpot
Date: 2005-02-13 00:58:28 +0000 (Sun, 13 Feb 2005)
New Revision: 5368

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5368

Log:
Fix ups for domain_name field name change.

Implement GetDomPwInfo(), CreateUser2(), RemoveMemberFromForeignDomain(),
DeleteUser().

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-02-13 00:52:45 UTC (rev 5367)
+++ branches/SAMBA_4_0/source/scripting/swig/samr.py	2005-02-13 00:58:28 UTC (rev 5368)
@@ -93,6 +93,7 @@
     """Wrap up a RPC call and throw an exception is an error was returned."""
     
     result = fn(pipe, args);
+
     if result & 0xc0000000:
         raise dcerpc.NTSTATUS(result, dcerpc.nt_errstr(result));
 
@@ -146,7 +147,7 @@
 
         r = dcerpc.samr_EnumDomains()
         r.data_in.connect_handle = self.handle
-        r.data_in.resume_handle = 1
+        r.data_in.resume_handle = 0
         r.data_in.buf_size = -1
 
         domains = []
@@ -169,8 +170,8 @@
 
         r = dcerpc.samr_LookupDomain()
         r.data_in.connect_handle = self.handle
-        r.data_in.domain = dcerpc.samr_String()
-        r.data_in.domain.string = domain_name
+        r.data_in.domain_name = dcerpc.samr_String()
+        r.data_in.domain_name.string = domain_name
 
         call_fn(dcerpc.dcerpc_samr_LookupDomain, self.pipe, r)
 
@@ -194,7 +195,17 @@
 
         call_fn(dcerpc.dcerpc_samr_Shutdown, self.pipe, r)
 
+    def GetDomPwInfo(self, system_name):
 
+        r = dcerpc.samr_GetDomPwInfo()
+        r.data_in.domain_name = dcerpc.samr_String()
+        r.data_in.domain_name.string = system_name
+
+        call_fn(dcerpc.dcerpc_samr_GetDomPwInfo, self.pipe, r)
+
+        return r.data_out.info
+
+
 class DomainHandle(SamrHandle):
 
     def QueryDomainInfo(self, level = 2):
@@ -286,7 +297,23 @@
 
         return (r.data_out.user_handle,
                 dcerpc.uint32_array_getitem(r.data_out.rid, 0))
-        
+
+    def CreateUser2(self, account_name, acct_flags = 0x00000010,
+                    access_mask = 0x02000000):
+
+        r = dcerpc.samr_CreateUser2()
+        r.data_in.domain_handle = self.handle
+        r.data_in.account_name = dcerpc.samr_String()
+        r.data_in.account_name.string = account_name
+        r.data_in.acct_flags = acct_flags
+        r.data_in.access_mask = access_mask
+
+        call_fn(dcerpc.dcerpc_samr_CreateUser2, self.pipe, r)
+
+        return (r.data_out.user_handle,
+                dcerpc.uint32_array_getitem(r.data_out.access_granted, 0),
+                dcerpc.uint32_array_getitem(r.data_out.rid, 0))
+
     def OpenUser(self, rid, access_mask = 0x02000000):
 
         r = dcerpc.samr_OpenUser()
@@ -329,9 +356,23 @@
 
         return sid_to_string(r.data_out.sid)
 
+    def RemoveMemberFromForeignDomain(self, sid):
 
+        r = dcerpc.samr_RemoveMemberFromForeignDomain()
+        r.data_in.domain_handle = self.handle
+        r.data_in.sid = sid
+
+        call_fn(dcerpc.dcerpc_samr_RemoveMemberFromForeignDomain, self.pipe, r)
+    
+
 class UserHandle(SamrHandle):
-    pass
+
+    def DeleteUser(self):
+
+        r = dcerpc.samr_DeleteUser()
+        r.data_in.user_handle = self.handle
+
+        call_fn(dcerpc.dcerpc_samr_DeleteUser, self.pipe, r)
     
 
 class GroupHandle(SamrHandle):
@@ -353,6 +394,7 @@
 
     return ConnectHandle(pipe, r.data_out.connect_handle)
 
+
 def Connect2(pipe, system_name = '', access_mask = 0x02000000):
     """Connect to the SAMR pipe."""
 
@@ -364,6 +406,7 @@
 
     return ConnectHandle(pipe, r.data_out.connect_handle)
 
+
 def Connect3(pipe, system_name = '', access_mask = 0x02000000):
 
     r = dcerpc.samr_Connect3()
@@ -375,6 +418,7 @@
 
     return ConnectHandle(pipe, r.data_out.connect_handle)
 
+
 def Connect4(pipe, system_name = '', access_mask = 0x02000000):
 
     r = dcerpc.samr_Connect4()
@@ -386,6 +430,7 @@
 
     return ConnectHandle(pipe, r.data_out.connect_handle)
 
+
 def Connect5(pipe, system_name = '', access_mask = 0x02000000):
 
     r = dcerpc.samr_Connect5()
@@ -418,7 +463,6 @@
 # AddAliasMember
 # DeleteAliasMember
 # GetMembersinAlias
-# DeleteUser
 # QueryUserInfo
 # SetUserInfo
 # ChangePasswordUser
@@ -433,13 +477,11 @@
 # QueryUserInfo2
 # QueryDisplayInfo2
 # GetDisplayEnumerationIndex2
-# CreateUser2
 # QueryDisplayInfo3
 # AddMultipleMembersToAlias
 # RemoveMultipleMembersFromAlias
 # OemChangePasswordUser2
 # ChangePasswordUser2
-# GetDomPwInfo
 # SetUserInfo2
 # SetBootKeyInformation
 # GetBootKeyInformation



More information about the samba-cvs mailing list