toplevel.add (TextboxReflowed(37, _("Pick a root password. You must "
"type it twice to ensure you know "
"what it is and didn't make a mistake "
"in typing. Remember that the "
"root password is a critical part "
"of system security!")), 0, 0, (0, 0, 0, 1))
pw = todo.rootpassword.getPure()
if not pw: pw = ""
if rc == "cancel":
return INSTALL_BACK
if not len(pass1.value()) and not len(pass2.value()) and \
not len(userid.value()) and not len(fullname.value()):
return INSTALL_OK
if len (pass1.value ()) < 6:
ButtonChoiceWindow(self.screen, _("Password Length"),
_("The password must be at least 6 characters "
"long."),
buttons = [ _("OK") ], width = 50)
pass1.set ("")
pass2.set ("")
continue
elif pass1.value () != pass2.value ():
ButtonChoiceWindow(self.screen, _("Password Mismatch"),
_("The passwords you entered were different. Please "
"try again."),
buttons = [ _("OK") ], width = 50)
pass1.set ("")
pass2.set ("")
continue
if self.users.has_key (userid.value ()) and \
userid.value () != currentid:
ButtonChoiceWindow(self.screen, _("User Exists"),
_("This user id already exists. Choose another."),
buttons = [ _("OK") ], width = 50)
continue
for (account, name, password) in todo.getUserList():
user['id'] = account
user['name'] = name
user['password'] = password
self.users[account] = user
del user
user = { "id" : "", "name" : "", "password" : "" }
if not self.users.keys():
rc = self.editWindow(user, _("You should use a normal user "
"account for most activities on your system. By not using the "
"root account casually, you'll reduce the chance of "
"disrupting your system's configuration."),
cancelText = _("Back"))
if (rc == INSTALL_BACK):
return INSTALL_BACK
if (not user['id']):
return INSTALL_OK
self.users[user["id"]] = user
g = GridForm (screen, _("User Account Setup"), 1, 4)
t = TextboxReflowed(60, _("What user account would you like to have "
"on the system? You should have at least one non-root account "
"for normal work, but multi-user systems can have any number "
"of accounts set up."))
g.add(t, 0, 0, anchorLeft = 1, padding = (0, 0, 0, 1))
if rc == "add":
user = { "id" : "", "name" : "", "password" : "" }
self.editWindow (user,
_("Enter the information for the user."), 0)
listbox.append (userformat % user, user["id"])
listbox.setCurrent (user["id"])
self.users[user["id"]] = user
elif rc == "delete":
current = listbox.current ()
listbox.delete (current)
del self.users [current]
elif rc == "edit" or result == listbox:
current = listbox.current()
user = self.users[current]
self.editWindow (user,
_("Change the information for this user."), 1)
# if the user id changed, we need to delete the old key
# and insert this new one.
if user["id"] != current:
del self.users [current]
listbox.insert (userformat % user, user["id"], current)
listbox.delete (current)
# and if the user id didn't change, just replace the old
# listbox entry.
else:
listbox.replace (userformat % user, user["id"])
self.users [user["id"]] = user
listbox.setCurrent(user["id"])
elif rc == "ok" or result == "F12":
dir = INSTALL_OK
break
elif rc == "back":
dir = INSTALL_BACK
break
else:
raise NeverGetHereError, "I shouldn't be here w/ rc %s..." % rc
screen.popWindow ()
list = []
for n in self.users.values():
info = ( n['id'], n['name'], n['password'] )
list.append(info)
todo.setUserList(list)
return dir
class AuthConfigWindow:
def setsensitive (self):
server = FLAGS_RESET
flag = FLAGS_RESET
if self.broadcast.selected ():
server = FLAGS_SET
if not self.nis.selected ():
flag = FLAGS_SET
server = FLAGS_SET