samba4 / samba-tool patches, patch 0002 of 0002

Theresa Halloran thallora at linux.vnet.ibm.com
Wed May 18 10:58:24 MDT 2011


>From 95cf262a3d6a532a42639b6962f0816eaa3115b2 Mon Sep 17 00:00:00 2001
From: Theresa <thallora at us.ibm.com>
Date: Tue, 17 May 2011 21:18:00 -0400
Subject: [PATCH 2/2] [samba-tool]

s4/samba-tool: move samba-tool setexpiry command to samba-tool user 
setexpiry
---
  source4/scripting/python/samba/netcmd/setexpiry.py |   35 
+++++++++--------
  source4/scripting/python/samba/netcmd/user.py      |   40 
++++++++++++++++++++
  source4/setup/tests/blackbox_newuser.sh            |    8 ++--
  3 files changed, 63 insertions(+), 20 deletions(-)

diff --git a/source4/scripting/python/samba/netcmd/setexpiry.py 
b/source4/scripting/python/samba/netcmd/setexpiry.py
index bd8ea16..9ed396a 100644
--- a/source4/scripting/python/samba/netcmd/setexpiry.py
+++ b/source4/scripting/python/samba/netcmd/setexpiry.py
@@ -2,6 +2,7 @@
  #
  # Sets the user password expiry on a Samba4 server
  # Copyright Jelmer Vernooij 2008
+# Copyright Theresa Halloran <theresahalloran at gmail.com> 2011
  #
  # Based on the original in EJS:
  # Copyright Andrew Tridgell 2005
@@ -49,19 +50,21 @@ class cmd_setexpiry(Command):

      def run(self, username=None, sambaopts=None, credopts=None,
              versionopts=None, H=None, filter=None, days=None, 
noexpiry=None):
-        if username is None and filter is None:
-            raise CommandError("Either the username or '--filter' must 
be specified!")
-
-        if filter is None:
-            filter = "(&(objectClass=user)(sAMAccountName=%s))" % 
(username)
-
-        lp = sambaopts.get_loadparm()
-        creds = credopts.get_credentials(lp)
-
-        if days is None:
-            days = 0
-
-        samdb = SamDB(url=H, session_info=system_session(),
-            credentials=creds, lp=lp)
-
-        samdb.setexpiry(filter, days*24*3600, no_expiry_req=noexpiry)
+         print "This command no longer works."
+         print "Use samba-tool user setexpiry [username?] [options]"
+#        if username is None and filter is None:
+#            raise CommandError("Either the username or '--filter' must 
be specified!")
+#
+#        if filter is None:
+#            filter = "(&(objectClass=user)(sAMAccountName=%s))" % 
(username)
+#
+#        lp = sambaopts.get_loadparm()
+#        creds = credopts.get_credentials(lp)
+#
+#        if days is None:
+#            days = 0
+#
+#        samdb = SamDB(url=H, session_info=system_session(),
+#            credentials=creds, lp=lp)
+#
+#        samdb.setexpiry(filter, days*24*3600, no_expiry_req=noexpiry)
diff --git a/source4/scripting/python/samba/netcmd/user.py 
b/source4/scripting/python/samba/netcmd/user.py
index 336b2e2..da52f2d 100644
--- a/source4/scripting/python/samba/netcmd/user.py
+++ b/source4/scripting/python/samba/netcmd/user.py
@@ -74,7 +74,46 @@ class cmd_user_delete(Command):
              net.delete_user(name)
          except RuntimeError, msg:
              raise CommandError("Failed to delete user %s: %s" % (name, 
msg))
+class cmd_user_setexpiry(Command):
+    """Sets the expiration of a user account"""

+    synopsis = "%prog user setexpiry [username] <specific options = 
parms> [general options]"
+
+    takes_optiongroups = {
+        "sambaopts": options.SambaOptions,
+        "versionopts": options.VersionOptions,
+        "credopts": options.CredentialsOptions,
+    }
+
+    takes_options = [
+        Option("-H", help="LDB URL for database or target server", 
type=str),
+        Option("--filter", help="LDAP Filter to set password on", 
type=str),
+        Option("--days", help="Days to expiry", type=int),
+        Option("--noexpiry", help="Password does never expire", 
action="store_true"),
+    ]
+
+    takes_args = ["username?"]
+    def run(self, username=None, sambaopts=None, credopts=None,
+            versionopts=None, H=None, filter=None, days=None, 
noexpiry=None):
+        if username is None and filter is None:
+            raise CommandError("Either the username or '--filter' must 
be specified!")
+
+        if filter is None:
+            filter = "(&(objectClass=user)(sAMAccountName=%s))" % 
(username)
+
+        lp = sambaopts.get_loadparm()
+        creds = credopts.get_credentials(lp)
+
+        if days is None:
+            days = 0
+
+        samdb = SamDB(url=H, session_info=system_session(),
+            credentials=creds, lp=lp)
+
+        samdb.setexpiry(filter, days*24*3600, no_expiry_req=noexpiry)
+
+
+
  class cmd_user_enableaccount(Command):
      """Enables a user"""

@@ -116,4 +155,5 @@ class cmd_user(SuperCommand):
      subcommands["add"] = cmd_user_add()
      subcommands["delete"] = cmd_user_delete()
      subcommands["enableaccount"] = cmd_user_enableaccount()
+    subcommands["setexpiry"] = cmd_user_setexpiry()

diff --git a/source4/setup/tests/blackbox_newuser.sh 
b/source4/setup/tests/blackbox_newuser.sh
index 96d40ca..1ebf9aa 100755
--- a/source4/setup/tests/blackbox_newuser.sh
+++ b/source4/setup/tests/blackbox_newuser.sh
@@ -34,9 +34,9 @@ testit "setpassword" $samba_tool setpassword $CONFIG 
NewUser --newpassword=testp
  testit "setpassword" $samba_tool setpassword $CONFIG NewUser1 
--newpassword=testp at ssw0Rd2

  # check the setexpiry script
-testit "noexpiry" $samba_tool setexpiry $CONFIG NewUser --noexpiry
-testit "noexpiry" $samba_tool setexpiry $CONFIG NewUser1 --noexpiry
-testit "expiry" $samba_tool setexpiry $CONFIG NewUser --days=7
-testit "expiry" $samba_tool setexpiry $CONFIG NewUser1 --days=7
+testit "noexpiry" $samba_tool user setexpiry $CONFIG NewUser --noexpiry
+testit "noexpiry" $samba_tool user setexpiry $CONFIG NewUser1 --noexpiry
+testit "expiry" $samba_tool user setexpiry $CONFIG NewUser --days=7
+testit "expiry" $samba_tool user setexpiry $CONFIG NewUser1 --days=7

  exit $failed
-- 
1.7.3.4



More information about the samba-technical mailing list