From 3e5f7f8ee2dad4bf6f056843826b9295ceb93ea7 Mon Sep 17 00:00:00 2001 From: Sergey Urushkin Date: Wed, 12 Oct 2016 13:24:05 +0300 Subject: [PATCH 1/2] Add middle-name and display-name options to "samba-tool user create" command. Signed-off-by: Sergey Urushkin --- python/samba/netcmd/user.py | 14 ++++++++++---- python/samba/samdb.py | 24 ++++++++++++++++-------- python/samba/tests/samba_tool/user.py | 12 ++++++++++++ 3 files changed, 38 insertions(+), 12 deletions(-) diff --git a/python/samba/netcmd/user.py b/python/samba/netcmd/user.py index 4358170..6531270 100644 --- a/python/samba/netcmd/user.py +++ b/python/samba/netcmd/user.py @@ -237,7 +237,9 @@ Example5 shows how to create an RFC2307/NIS domain enabled user account. If type=str), Option("--surname", help="User's surname", type=str), Option("--given-name", help="User's given name", type=str), + Option("--middle-name", help="User's middle name", type=str), Option("--initials", help="User's initials", type=str), + Option("--display-name", help="User's display name", type=str), Option("--profile-path", help="User's profile path", type=str), Option("--script-path", help="User's logon script path", type=str), Option("--home-drive", help="User's home drive letter", type=str), @@ -274,8 +276,9 @@ Example5 shows how to create an RFC2307/NIS domain enabled user account. If def run(self, username, password=None, credopts=None, sambaopts=None, versionopts=None, H=None, must_change_at_next_login=False, random_password=False, use_username_as_cn=False, userou=None, - surname=None, given_name=None, initials=None, profile_path=None, - script_path=None, home_drive=None, home_directory=None, + surname=None, given_name=None, middle_name=None, initials=None, + display_name=None, profile_path=None, script_path=None, + home_drive=None, home_directory=None, job_title=None, department=None, company=None, description=None, mail_address=None, internet_address=None, telephone_number=None, physical_delivery_office=None, rfc2307_from_nss=False, @@ -339,8 +342,11 @@ Example5 shows how to create an RFC2307/NIS domain enabled user account. If samdb = SamDB(url=H, session_info=system_session(), credentials=creds, lp=lp) samdb.newuser(username, password, force_password_change_at_next_login_req=must_change_at_next_login, - useusernameascn=use_username_as_cn, userou=userou, surname=surname, givenname=given_name, initials=initials, - profilepath=profile_path, homedrive=home_drive, scriptpath=script_path, homedirectory=home_directory, + useusernameascn=use_username_as_cn, userou=userou, + surname=surname, givenname=given_name, middlename=middle_name, + initials=initials, displayname=display_name, + profilepath=profile_path, homedrive=home_drive, + scriptpath=script_path, homedirectory=home_directory, jobtitle=job_title, department=department, company=company, description=description, mailaddress=mail_address, internetaddress=internet_address, telephonenumber=telephone_number, physicaldeliveryoffice=physical_delivery_office, diff --git a/python/samba/samdb.py b/python/samba/samdb.py index 3d7ea3e..8a75cca 100644 --- a/python/samba/samdb.py +++ b/python/samba/samdb.py @@ -297,7 +297,8 @@ member: %s def newuser(self, username, password, force_password_change_at_next_login_req=False, useusernameascn=False, userou=None, surname=None, givenname=None, - initials=None, profilepath=None, scriptpath=None, homedrive=None, + middlename=None, initials=None, displayname=None, + profilepath=None, scriptpath=None, homedrive=None, homedirectory=None, jobtitle=None, department=None, company=None, description=None, mailaddress=None, internetaddress=None, telephonenumber=None, physicaldeliveryoffice=None, sd=None, @@ -314,7 +315,9 @@ member: %s :param userou: Object container (without domainDN postfix) for new user :param surname: Surname of the new user :param givenname: First name of the new user + :param middlename: Middle name of the new user :param initials: Initials of the new user + :param displayname: Display name of the new user :param profilepath: Profile path of the new user :param scriptpath: Logon script path of the new user :param homedrive: Home drive of the new user @@ -339,15 +342,17 @@ member: %s :param smartcard_required: set the UF_SMARTCARD_REQUIRED bit of the new user """ - displayname = "" - if givenname is not None: - displayname += givenname + if displayname is None: + displayname = "" - if initials is not None: - displayname += ' %s.' % initials + if givenname is not None: + displayname += givenname - if surname is not None: - displayname += ' %s' % surname + if initials is not None: + displayname += ' %s.' % initials + + if surname is not None: + displayname += ' %s' % surname cn = username if useusernameascn is None and displayname is not "": @@ -374,6 +379,9 @@ member: %s if givenname is not None: ldbmessage["givenName"] = givenname + if middlename is not None: + ldbmessage["middleName"] = middlename + if displayname is not "": ldbmessage["displayName"] = displayname ldbmessage["name"] = displayname diff --git a/python/samba/tests/samba_tool/user.py b/python/samba/tests/samba_tool/user.py index 10e4f6c..43ed081 100644 --- a/python/samba/tests/samba_tool/user.py +++ b/python/samba/tests/samba_tool/user.py @@ -86,6 +86,8 @@ class UserCmdTestCase(SambaToolCmdTest): "--use-username-as-cn", "--surname=%s" % user["surname"], "--given-name=%s" % user["given-name"], + "--middle-name=%s" % user["middle-name"], + "--display-name=%s" % user["display-name"], "--job-title=%s" % user["job-title"], "--department=%s" % user["department"], "--description=%s" % user["description"], @@ -401,6 +403,8 @@ class UserCmdTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("user", "create", user["name"], user["password"], "--surname=%s" % user["surname"], "--given-name=%s" % user["given-name"], + "--middle-name=%s" % user["middle-name"], + "--display-name=%s" % user["display-name"], "--job-title=%s" % user["job-title"], "--department=%s" % user["department"], "--description=%s" % user["description"], @@ -426,6 +430,8 @@ class UserCmdTestCase(SambaToolCmdTest): (result, out, err) = self.runsubcmd("user", "create", user["name"], user["password"], "--surname=%s" % user["surname"], "--given-name=%s" % user["given-name"], + "--middle-name=%s" % user["middle-name"], + "--display-name=%s" % user["display-name"], "--job-title=%s" % user["job-title"], "--department=%s" % user["department"], "--description=%s" % user["description"], @@ -453,6 +459,8 @@ class UserCmdTestCase(SambaToolCmdTest): "password": self.randomPass(), "surname": self.randomName(), "given-name": self.randomName(), + "middle-name": self.randomName(), + "display-name": self.randomName(), "job-title": self.randomName(), "department": self.randomName(), "company": self.randomName(), @@ -506,6 +514,8 @@ class UserCmdTestCase(SambaToolCmdTest): return self.runsubcmd("user", "create", user["name"], user["password"], "--surname=%s" % user["surname"], "--given-name=%s" % user["given-name"], + "--middle-name=%s" % user["middle-name"], + "--display-name=%s" % user["display-name"], "--job-title=%s" % user["job-title"], "--department=%s" % user["department"], "--description=%s" % user["description"], @@ -517,6 +527,8 @@ class UserCmdTestCase(SambaToolCmdTest): return self.runsubcmd("user", "create", user["name"], user["password"], "--surname=%s" % user["surname"], "--given-name=%s" % user["given-name"], + "--middle-name=%s" % user["middle-name"], + "--display-name=%s" % user["display-name"], "--job-title=%s" % user["job-title"], "--department=%s" % user["department"], "--description=%s" % user["description"], -- 2.7.4