From 88159498990e88994922b858167eae42525a9df5 Mon Sep 17 00:00:00 2001 From: Michael Spang Date: Fri, 2 Feb 2007 21:27:50 -0500 Subject: [PATCH] Bug fix: build_gecos() did not include enough commas between fields. --- pylib/csc/adm/accounts.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pylib/csc/adm/accounts.py b/pylib/csc/adm/accounts.py index 52eeb99..caa111e 100644 --- a/pylib/csc/adm/accounts.py +++ b/pylib/csc/adm/accounts.py @@ -891,14 +891,18 @@ def build_gecos(fullname=None, roomnumber=None, workphone=None, homephone=None, if other and ':' in str(other): raise InvalidArgument('other', other, "invalid characters") - # append each field + # join the fields if fullname is not None: gecos_data = str(fullname) - for field in (roomnumber, workphone, homephone, other): - if field is not None: - gecos_data += ',' + str(field) - - return gecos_data + fields = [ fullname, roomnumber, workphone, homephone, other ] + for idx in xrange(len(fields), 0, -1): + if not fields[idx-1]: + fields.pop() + else: + break + while None in fields: + fields[fields.index(None)] = '' + return ','.join(map(str, fields)) def check_id_nss(ugid):