From: Martin Zobel-Helas Date: Sun, 14 Dec 2008 01:12:28 +0000 (+0100) Subject: Patch by Thomas Viehmann: remove code copy of getpass X-Git-Tag: userdir-ldap-0.3.54~1 X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap.git;a=commitdiff_plain;h=480ae4d6dbb4efa7d73cc70ca8598cf0841df670 Patch by Thomas Viehmann: remove code copy of getpass --- diff --git a/debian/changelog b/debian/changelog index 64fb068..3ab4ed0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,9 @@ userdir-ldap (0.3.54) unstable; urgency=low only boolean values are acceptable * ud-generate: Add IPv6 addresses to debianhosts (Patch by Thomas Viehmann) + * ud-info, userdir_ldap.py: remove function getpass and use the one + from python standard library getpass + (Patch by Thomas Viehmann) -- diff --git a/ud-info b/ud-info index 73e040d..c5a45ea 100755 --- a/ud-info +++ b/ud-info @@ -18,13 +18,13 @@ # restricted variables. # Copyright (c) 1999-2001 Jason Gunthorpe -# Copyright (c) 2004-2005,7 Joey Schulze +# Copyright (c) 2004-2005,7,8 Joey Schulze # Copyright (c) 2001-2006 Ryan Murray # Copyright (c) 2008 Peter Palfrader # Copyright (c) 2008 Martin Zobel-Helas # Copyright (c) 2008 Marc 'HE' Brockschmidt # Copyright (c) 2008 Mark Hymers -# Copyright (c) 2008 Joey Schulze +# Copyright (c) 2008 Thomas Viehmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -40,7 +40,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -import time, os, pwd, sys, getopt, ldap, crypt, readline, copy; +import time, os, pwd, sys, getopt, ldap, crypt, readline, copy, getpass from userdir_ldap import *; RootMode = 0; @@ -346,17 +346,21 @@ if (BindUser != User): print "as '" + BindUser + "'"; else: print; -if (BindUser != ""): - Password = getpass(BindUser + "'s password: "); # Connect to the ldap server l = connectLDAP() -UserDn = "uid=" + BindUser + "," + BaseDn; if (BindUser != ""): - l.simple_bind_s(UserDn,Password); + Password = getpass.getpass(BindUser + "'s password: ") + UserDn = "uid=" + BindUser + "," + BaseDn else: - l.simple_bind_s("",""); -UserDn = "uid=" + User + "," + BaseDn; + Password = "" + UserDn = "" +try: + l.simple_bind_s(UserDn,Password) +except ldap.LDAPError,e: + print >> sys.stderr, "LDAP error:", e.args[0]['desc'] + print >> sys.stderr, " ", e.args[0]['info'] + sys.exit(1) # Enable changing of supplementary gid's if (RootMode == 1): @@ -417,8 +421,8 @@ while(1): print "contain spaces and other special characters. No checking is done on the"; print "strength of the passwords so pick good ones please!"; - Pass1 = getpass(User + "'s new password: "); - Pass2 = getpass(User + "'s new password again: "); + Pass1 = getpass.getpass(User + "'s new password: ") + Pass2 = getpass.getpass(User + "'s new password again: ") if Pass1 != Pass2: print "Passwords did not match"; raw_input("Press a key"); diff --git a/userdir_ldap.py b/userdir_ldap.py index babfce0..d1881f7 100644 --- a/userdir_ldap.py +++ b/userdir_ldap.py @@ -2,6 +2,7 @@ # Copyright (c) 2001-2003 Ryan Murray # Copyright (c) 2004-2005 Joey Schulze # Copyright (c) 2008 Peter Palfrader +# Copyright (c) 2008 Thomas Viehmann # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -18,7 +19,7 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # Some routines and configuration that are used by the ldap progams -import termios, re, imp, ldap, sys, crypt, rfc822, pwd, os; +import termios, re, imp, ldap, sys, crypt, rfc822, pwd, os, getpass import userdir_gpg import hmac import sha as sha1_module @@ -117,28 +118,6 @@ def connectLDAP(server = None): l.start_tls_s(); return l; -# Function to prompt for a password -def getpass(prompt = "Password: "): - import termios, sys; - fd = sys.stdin.fileno(); - old = termios.tcgetattr(fd); - new = termios.tcgetattr(fd); - new[3] = new[3] & ~termios.ECHO; # lflags - try: - termios.tcsetattr(fd, termios.TCSADRAIN, new); - try: - passwd = raw_input(prompt); - except KeyboardInterrupt: - termios.tcsetattr(fd, termios.TCSADRAIN, old); - print - sys.exit(0) - except EOFError: - passwd = "" - finally: - termios.tcsetattr(fd, termios.TCSADRAIN, old); - print; - return passwd; - def passwdAccessLDAP(BaseDn, AdminUser): """ Ask for the AdminUser's password and connect to the LDAP server. @@ -146,7 +125,7 @@ def passwdAccessLDAP(BaseDn, AdminUser): """ print "Accessing LDAP directory as '" + AdminUser + "'"; while (1): - Password = getpass(AdminUser + "'s password: "); + Password = getpass.getpass(AdminUser + "'s password: ") if len(Password) == 0: sys.exit(0)