summaryrefslogtreecommitdiffstats
path: root/textw/userauth_text.py
diff options
context:
space:
mode:
authorChris Lumens <clumens@redhat.com>2005-08-29 20:49:55 +0000
committerChris Lumens <clumens@redhat.com>2005-08-29 20:49:55 +0000
commit4c7abe447d798b9191fc7446687206fb189e680e (patch)
tree6187ad4fa17bdb9ad75d1b7af2355e0ac98f6ba6 /textw/userauth_text.py
parent19dd52d5196dc1185c9a621e8e68769b78e1dfbe (diff)
downloadanaconda-4c7abe447d798b9191fc7446687206fb189e680e.tar.gz
anaconda-4c7abe447d798b9191fc7446687206fb189e680e.tar.xz
anaconda-4c7abe447d798b9191fc7446687206fb189e680e.zip
Simplified the authconfig step to store data as a string to be passed to
authconfig in its entirety, rather than handling it as a series of arguments we need to process. We weren't really doing anything with it anyway.
Diffstat (limited to 'textw/userauth_text.py')
-rw-r--r--textw/userauth_text.py386
1 files changed, 0 insertions, 386 deletions
diff --git a/textw/userauth_text.py b/textw/userauth_text.py
index 5a7a2e776..cc394b57a 100644
--- a/textw/userauth_text.py
+++ b/textw/userauth_text.py
@@ -14,8 +14,6 @@
from snack import *
from constants_text import *
from rhpl.translate import _
-import iutil
-from flags import flags
def has_bad_chars(pw):
allowed = string.digits + string.ascii_letters + string.punctuation + " "
@@ -81,387 +79,3 @@ class RootPasswordWindow:
screen.popWindow()
rootPw.set (entry1.value ())
return INSTALL_OK
-
-class UsersWindow:
- def editWindow (self, user, text, edit = 0, cancelText = None):
- if (not cancelText):
- cancelText = _("Cancel")
-
- systemUsers = ['root', 'bin', 'daemon', 'adm', 'lp', 'sync', 'shutdown', 'halt', 'mail',
- 'news', 'uucp', 'operator', 'games', 'gopher', 'ftp', 'nobody', 'nscd',
- 'mailnull', 'rpm', 'ident', 'rpc', 'rpcuser', 'radvd', 'xfs', 'gdm', 'apache',
- 'squid']
-
- username = Entry (16, user["id"], scroll=0)
- currentid = user["id"]
- pass1 = Entry (10, user["password"], password = 1)
- pass2 = Entry (10, user["password"], password = 1)
- fullname = Entry (20, user["name"], scroll = 1)
-
- if edit:
- title = _("Edit User")
- helptag = "edituser"
- else:
- title = _("Add User")
- helptag = "adduser"
-
- while 1:
- (rc, ent) = EntryWindow (self.screen, title, text,
- [ (_("User Name"), username),
- (_("Password"), pass1),
- (_("Password (confirm)"), pass2),
- (_("Full Name"), fullname)],
- buttons = [ TEXT_OK_BUTTON, (cancelText, "cancel") ],
- help = helptag)
-
- if rc == "cancel":
- return INSTALL_BACK
-
- if not len(pass1.value()) and not len(pass2.value()) and \
- not len(username.value()) and not len(fullname.value()):
- return INSTALL_OK
-
- if (not iutil.validUser(username.value())):
- ButtonChoiceWindow(self.screen, _("Bad User Name"),
- _("User names must "
- "contain only characters "
- "A-Z, a-z, and 0-9."),
- buttons = [ TEXT_OK_BUTTON ], width = 50)
- continue
-
- if not username.value ():
- ButtonChoiceWindow(self.screen, _("Missing User Name"),
- _("You must provide a user name"),
- buttons = [ TEXT_OK_BUTTON ], width = 50)
- continue
- if len (pass1.value ()) < 6:
- ButtonChoiceWindow(self.screen, _("Password Length"),
- _("The password must be at least 6 characters "
- "long."),
- buttons = [ TEXT_OK_BUTTON ], 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 = [ TEXT_OK_BUTTON ], width = 50)
- pass1.set ("")
- pass2.set ("")
- continue
-
- if username.value() == "root":
- ButtonChoiceWindow(self.screen, _("User Exists"),
- _("The root user is already configured. You don't "
- "need to add this user here."),
- buttons = [ TEXT_OK_BUTTON ], width = 50)
- continue
-
- if username.value() in systemUsers :
- ButtonChoiceWindow(self.screen, _("User Exists"),
- _("This system user is already configured. You don't "
- "need to add this user here."),
- buttons = [ TEXT_OK_BUTTON ], width = 50)
- continue
-
- if self.users.has_key (username.value ()) and \
- username.value () != currentid:
- ButtonChoiceWindow(self.screen, _("User Exists"),
- _("This user id already exists. Choose another."),
- buttons = [ TEXT_OK_BUTTON], width = 50)
- continue
-
- # XXX FIXME - more data validity checks
-
- user["id"] = username.value ()
- user["name"] = fullname.value ()
- user["password"] = pass1.value ()
- break
-
- return INSTALL_OK
-
- def __call__ (self, screen, rootPw, accounts):
- self.users = {}
- self.screen = screen
- user = { "id" : "", "name" : "", "password" : "" }
-
- for (account, name, password) in accounts.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 = GridFormHelp (screen, _("User Account Setup"), "newusers", 1, 4)
-
- t = TextboxReflowed(60, _("What other user accounts 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))
-
- listformat = "%-15s %-40s"
- userformat = "%(id)-15s %(name)-40s"
-
- subgrid = Grid(1, 2)
- header = listformat % (_("User name"), _("Full Name"))
- label = Label (header)
- subgrid.setField (label, 0, 0, anchorLeft = 1)
- listbox = Listbox (5, scroll = 1, returnExit = 1, width = 54)
- subgrid.setField (listbox, 0, 1, (0, 0, 0, 1), anchorLeft = 1)
-
- g.add(subgrid, 0, 1)
-
- self.numusers = 0
-
- for user in self.users.values ():
- self.numusers = self.numusers + 1
- listbox.append (userformat % user, user["id"])
-
- bb = ButtonBar (screen, ((_("Add"), "add"), (_("Delete"), "delete"),
- (_("Edit"), "edit"), TEXT_OK_BUTTON, TEXT_BACK_BUTTON))
-
- g.add (bb, 0, 3, growx = 1)
-
- while 1:
- result = g.run ()
-
- rc = bb.buttonPressed (result)
-
- if rc == "add":
- user = { "id" : "", "name" : "", "password" : "" }
- if self.editWindow (user,
- _("Enter the information for the user."), 0) != INSTALL_BACK:
- listbox.append (userformat % user, user["id"])
- listbox.setCurrent (user["id"])
- self.users[user["id"]] = user
- self.numusers = self.numusers + 1
- elif rc == "delete":
- # if there are no users in the list, don't try to delete one
- if self.numusers > 0:
- current = listbox.current ()
- listbox.delete (current)
- del self.users [current]
- self.numusers = self.numusers - 1
- elif rc == "edit" or result == listbox:
- # if there are no users in the list, don't try to edit one
- if self.numusers > 0:
- current = listbox.current()
- user = self.users[current]
- if self.editWindow (user,
- _("Change the information for this user."), 1) != INSTALL_BACK:
- # 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 == TEXT_OK_CHECK or result == TEXT_F12_CHECK:
- dir = INSTALL_OK
- break
- elif rc == TEXT_BACK_CHECK:
- dir = INSTALL_BACK
- break
- else:
- raise RuntimeError, "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)
-
- accounts.setUserList(list)
-
- return dir
-
-class AuthConfigWindow:
- def nissetsensitive (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
-
- self.nisDomain.setFlags (FLAG_DISABLED, flag)
- self.broadcast.setFlags (FLAG_DISABLED, flag)
- self.nisServer.setFlags (FLAG_DISABLED, server)
-
- def ldapsetsensitive (self):
- # handle other forms here...
- server = FLAGS_RESET
- if not self.ldap.selected():
- server = FLAGS_SET
-
- self.ldapServer.setFlags (FLAG_DISABLED, server)
- self.ldapBasedn.setFlags (FLAG_DISABLED, server)
- self.ldapTLS.setFlags (FLAG_DISABLED, server)
-
- def krb5setsensitive (self):
- # handle other forms here...
- server = FLAGS_RESET
- if not self.krb5.selected():
- server = FLAGS_SET
-
- self.krb5Realm.setFlags (FLAG_DISABLED, server)
- self.krb5Kdc.setFlags (FLAG_DISABLED, server)
- self.krb5Admin.setFlags (FLAG_DISABLED, server)
-
- def __call__(self, screen, auth):
- bb = ButtonBar (screen, (TEXT_OK_BUTTON, TEXT_BACK_BUTTON))
-
- toplevel = GridFormHelp (screen, _("Authentication Configuration"),
- "authconfig", 1, 10)
- self.shadow = Checkbox (_("Use Shadow Passwords"), auth.useShadow)
- toplevel.add (self.shadow, 0, 0, (0, 0, 0, 0), anchorLeft = 1)
- self.md5 = Checkbox (_("Enable MD5 Passwords"), auth.useMD5)
- toplevel.add (self.md5, 0, 1, (0, 0, 0, 1), anchorLeft = 1)
-
- # nis support
- subgrid = Grid (3, 3)
- self.nis = Checkbox (_("Enable NIS"), auth.useNIS)
- subgrid.setField (self.nis, 0, 0)
-
- subgrid.setField (Label (""), 0, 1)
- subgrid.setField (Label (""), 0, 2)
-
- subgrid.setField (Label (_("NIS Domain:")),
- 1, 0, (2, 0, 1, 0), anchorRight = 1)
- subgrid.setField (Label (_("NIS Server:")),
- 1, 1, (2, 0, 1, 0), anchorRight = 1)
- subgrid.setField (Label (_("or use:")),
- 1, 2, (2, 0, 1, 0), anchorRight = 1)
-
- text = _("Request server via broadcast")
- entrywid = len(text) + 4
-
- self.nisDomain = Entry (entrywid)
- self.nisDomain.set (auth.nisDomain)
- self.broadcast = Checkbox (text, auth.nisuseBroadcast)
- self.nisServer = Entry (entrywid)
- self.nisServer.set (auth.nisServer)
- subgrid.setField (self.nisDomain, 2, 0, anchorLeft = 1)
- subgrid.setField (self.broadcast, 2, 1, anchorLeft = 1)
- subgrid.setField (self.nisServer, 2, 2, anchorLeft = 1)
-
- toplevel.add (subgrid, 0, 2, (0, 0, 0, 0), anchorLeft=1)
-
- # set up callbacks
- self.nis.setCallback (self.nissetsensitive)
- self.broadcast.setCallback (self.nissetsensitive)
-
- # ldap support next
- subgrid2 = Grid (3, 3)
-
- self.ldap = Checkbox (_("Enable LDAP"), auth.useLdap)
- subgrid2.setField(self.ldap, 0, 0)
-
- subgrid2.setField (Label (""), 0, 1)
- subgrid2.setField (Label (""), 0, 2)
-
- subgrid2.setField (Label (_("LDAP Server:")),
- 1, 0, (2, 0, 1, 0), anchorRight = 1)
- subgrid2.setField (Label (_("LDAP Base DN:")),
- 1, 1, (2, 0, 1, 0), anchorRight = 1)
-
- self.ldapServer = Entry (entrywid)
- self.ldapServer.set (auth.ldapServer)
- self.ldapBasedn = Entry (entrywid)
- self.ldapBasedn.set (auth.ldapBasedn)
- subgrid2.setField (self.ldapServer, 2, 0, anchorLeft = 1)
- subgrid2.setField (self.ldapBasedn, 2, 1, anchorLeft = 1)
-
- self.ldapTLS = Checkbox (_("Use TLS connections"), 0)
- subgrid2.setField (self.ldapTLS, 2, 2, anchorLeft = 1)
-
- toplevel.add (subgrid2, 0, 3, (0, 0, 0, 0))
-
- # set up callbacks
- self.ldap.setCallback (self.ldapsetsensitive)
-
- # kerberos last support next
- subgrid3 = Grid (3, 4)
-
- self.krb5 = Checkbox (_("Enable Kerberos"), auth.useKrb5)
- subgrid3.setField(self.krb5, 0, 0)
-
- subgrid3.setField (Label (""), 0, 1)
- subgrid3.setField (Label (""), 0, 2)
- subgrid3.setField (Label (""), 0, 3)
-
- subgrid3.setField (Label (_("Realm:")),
- 1, 0, (-2, 0, 1, 0), anchorRight = 1)
- subgrid3.setField (Label (_("KDC:")),
- 1, 1, (-2, 0, 1, 0), anchorRight = 1)
- subgrid3.setField (Label (_("Admin Server:")),
- 1, 2, (-2, 0, 1, 0), anchorRight = 1)
- self.krb5Realm = Entry (entrywid)
- self.krb5Realm.set (auth.krb5Realm)
- self.krb5Kdc = Entry (entrywid)
- self.krb5Kdc.set (auth.krb5Kdc)
- self.krb5Admin = Entry (entrywid)
- self.krb5Admin.set (auth.krb5Admin)
- subgrid3.setField (self.krb5Realm, 2, 0, anchorLeft = 1)
- subgrid3.setField (self.krb5Kdc, 2, 1, anchorLeft = 1)
- subgrid3.setField (self.krb5Admin, 2, 2, anchorLeft = 1)
-
- self.krb5.setCallback (self.krb5setsensitive)
-
- toplevel.add (subgrid3, 0, 4, (0, 0, 0, 0))
-
- # put button box at bottom
- toplevel.add (bb, 0, 5, growx = 1)
-
- # enable entire form now
- self.nissetsensitive ()
- self.ldapsetsensitive ()
- self.krb5setsensitive ()
-
- result = toplevel.runOnce ()
-
- auth.useMD5 = self.md5.value ()
- auth.useShadow = self.shadow.value ()
- auth.useNIS = self.nis.selected ()
- auth.nisDomain = self.nisDomain.value ()
- auth.nisuseBroadcast = self.broadcast.selected ()
- auth.nisServer = self.nisServer.value ()
- auth.useLdap = self.ldap.selected ()
- auth.useLdapauth = self.ldap.selected ()
- auth.ldapServer = self.ldapServer.value()
- auth.ldapBasedn = self.ldapBasedn.value()
- auth.ldapTLS = self.ldapTLS.selected ()
- auth.useKrb5 = self.krb5.selected()
- auth.krb5Realm = self.krb5Realm.value()
- auth.krb5Kdc = self.krb5Kdc.value()
- auth.krb5Admin = self.krb5Admin.value()
-
- rc = bb.buttonPressed (result)
-
- if rc == TEXT_BACK_CHECK:
- return INSTALL_BACK
- return INSTALL_OK
-