diff options
author | bfox <bfox> | 2001-07-11 22:19:48 +0000 |
---|---|---|
committer | bfox <bfox> | 2001-07-11 22:19:48 +0000 |
commit | dc97c5561bf24a9eb2bf7083771ace6146e799a0 (patch) | |
tree | 0c56cf7e42f7c08092e821258946139ca45dc643 /iw/bootloaderpassword_gui.py | |
parent | 76b38094a6523e79e33cfc21ac8c35ed3998076a (diff) | |
download | anaconda-dc97c5561bf24a9eb2bf7083771ace6146e799a0.tar.gz anaconda-dc97c5561bf24a9eb2bf7083771ace6146e799a0.tar.xz anaconda-dc97c5561bf24a9eb2bf7083771ace6146e799a0.zip |
grub password screen
Diffstat (limited to 'iw/bootloaderpassword_gui.py')
-rw-r--r-- | iw/bootloaderpassword_gui.py | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/iw/bootloaderpassword_gui.py b/iw/bootloaderpassword_gui.py new file mode 100644 index 000000000..0cf274987 --- /dev/null +++ b/iw/bootloaderpassword_gui.py @@ -0,0 +1,86 @@ +from iw_gui import * + +from gtk import * +from gnome.ui import * +from translate import _, N_ +import GdkImlib +import gui + +class BootloaderPasswordWindow (InstallWindow): + + def getNext (self): + if self.usegrubpasscb.get_active(): + self.bl.setPassword(self.pw.get_text(), isCrypted = 0) + else: + self.bl.setPassword(None) + + def toggle (self, *args): + self.passtable.set_sensitive(self.usegrubpasscb.get_active()) + self.ics.setNextEnabled(not self.usegrubpasscb.get_active()) + + def rootPasswordsMatch (self, *args): + pw = self.pw.get_text () + confirm = self.confirm.get_text () + + if pw == confirm and len (pw) >= 6: + self.ics.setNextEnabled (TRUE) + self.rootStatus.set_text (_("Password accepted.")) + else: + if not pw and not confirm: + self.rootStatus.set_text ("") + elif len (pw) < 6: + self.rootStatus.set_text (_("Password is too short.")) + else: + self.rootStatus.set_text (_("Passwords do not match.")) + + self.ics.setNextEnabled (FALSE) + + def getScreen(self, bl): + self.bl = bl + + box = GtkVBox(FALSE, 5) + box.set_border_width (5) + + self.forward = lambda widget, box=box: box.focus (DIR_TAB_FORWARD) + + self.passtable = GtkTable (3, 3) + self.passtable.set_row_spacings (5) + self.passtable.set_col_spacings (5) + grubpassinfo = GtkLabel(_("A GRUB password prevents users from passing arbitrary options to the kernel. For highest security, we recommend setting a password, but this is not necessary for more casual users.")) + self.password = None + grubpassinfo.set_line_wrap(TRUE) + grubpassinfo.set_usize(400, -1) + grubpassinfo.set_alignment(0.0,0.0) + box.pack_start(grubpassinfo, FALSE) + + self.usegrubpasscb = GtkCheckButton(_("Use a GRUB Password?")) + box.pack_start(self.usegrubpasscb, FALSE) + + self.passtable.attach(GtkLabel(_("Password:")), 0, 1, 2, 3, FILL, 0, 10) + self.pw = GtkEntry (16) + self.pw.set_visibility (FALSE) + self.passtable.attach(self.pw, 1, 2, 2, 3, FILL, 0, 10) + self.passtable.attach(GtkLabel(_("Confirm:")), 0, 1, 3, 4, FILL, 0, 10) + self.confirm = GtkEntry (16) + self.confirm.set_visibility (FALSE) + self.passtable.attach(self.confirm, 1, 2, 3, 4, FILL, 0, 10) + + if self.bl.getPassword(): + passwd = self.bl.getPassword() + self.pw.set_text(passwd) + self.confirm.set_text(passwd) + self.usegrubpasscb.set_active(TRUE) + + self.pw.connect ("changed", self.rootPasswordsMatch) + self.pw.connect ("activate", self.forward) + self.confirm.connect ("changed", self.rootPasswordsMatch) + self.confirm.connect ("activate", self.forward) + self.passtable.set_sensitive(self.usegrubpasscb.get_active()) + self.usegrubpasscb.connect("toggled", self.toggle) + + self.rootStatus = GtkLabel(_("Please enter password")) + self.passtable.attach(self.rootStatus, 1, 2, 4, 5, FILL, 0, 10) + box.pack_start(self.passtable, FALSE) + + return box + |