from gtk import * from iw_gui import * from translate import _, N_ class AuthWindow (InstallWindow): htmlTag = "authconf" windowTitle = N_("Authentication Configuration") def setSensitivities (self, *args): if (not self.nis.get_active()): self.nisDomain.set_sensitive (FALSE) self.nisBroadcast.set_sensitive (FALSE) self.nisServer.set_sensitive (FALSE) self.nisDomainLabel.set_sensitive (FALSE) self.nisServerLabel.set_sensitive (FALSE) else: self.nisDomain.set_sensitive (TRUE) self.nisDomainLabel.set_sensitive (TRUE) self.nisBroadcast.set_sensitive (TRUE) if (self.nisBroadcast.get_active()): self.nisServerLabel.set_sensitive (FALSE) self.nisServer.set_sensitive (FALSE) else: self.nisServerLabel.set_sensitive (TRUE) self.nisServer.set_sensitive (TRUE) ldapactive = self.ldap.get_active() self.ldapServerLabel.set_sensitive (ldapactive) self.ldapServer.set_sensitive (ldapactive) self.ldapBasednLabel.set_sensitive (ldapactive) self.ldapBasedn.set_sensitive (ldapactive) self.ldapTLS.set_sensitive (ldapactive) krb5active = self.krb5.get_active() self.krb5RealmLabel.set_sensitive (krb5active) self.krb5Realm.set_sensitive (krb5active) self.krb5KdcLabel.set_sensitive (krb5active) self.krb5Kdc.set_sensitive (krb5active) self.krb5AdminLabel.set_sensitive (krb5active) self.krb5Admin.set_sensitive (krb5active) sambaactive = self.samba.get_active() self.sambaLabel1.set_sensitive(sambaactive) self.sambaLabel2.set_sensitive(sambaactive) self.sambaServer.set_sensitive(sambaactive) self.sambaWorkgroup.set_sensitive(sambaactive) def getNext(self): if not self.__dict__.has_key("md5"): return None self.auth.useMD5 = self.md5.get_active () self.auth.useShadow = self.shadow.get_active () self.auth.useNIS = self.nis.get_active () self.auth.nisuseBroadcast = self.nisBroadcast.get_active () self.auth.nisDomain = self.nisDomain.get_text () self.auth.nisServer = self.nisServer.get_text () self.auth.useLdap = self.ldap.get_active () self.auth.useLdapauth = self.ldap.get_active () self.auth.ldapServer = self.ldapServer.get_text () self.auth.ldapBasedn = self.ldapBasedn.get_text () self.auth.ldapTLS = self.ldapTLS.get_active () self.auth.useKrb5 = self.krb5.get_active () self.auth.krb5Realm = self.krb5Realm.get_text () self.auth.krb5Kdc = self.krb5Kdc.get_text () self.auth.krb5Admin = self.krb5Admin.get_text () self.auth.useSamba = self.samba.get_active () self.auth.sambaServer = self.sambaServer.get_text() self.auth.sambaWorkgroup = self.sambaWorkgroup.get_text() def getScreen (self, auth): self.auth = auth box = GtkVBox (FALSE, 10) nb = GtkNotebook () self.md5 = GtkCheckButton (_("Enable MD5 passwords")) self.shadow = GtkCheckButton (_("Enable shadow passwords")) # nis self.nis = GtkCheckButton (_("Enable NIS")) self.nisBroadcast = GtkCheckButton (_("Use broadcast to find NIS server")) self.nisDomain = GtkEntry () self.nisServer = GtkEntry () self.md5.set_active (self.auth.useMD5) self.shadow.set_active (self.auth.useShadow) self.nis.set_active (self.auth.useNIS) self.nisDomain.set_text (self.auth.nisDomain) self.nisBroadcast.set_active (self.auth.nisuseBroadcast) self.nisServer.set_text (self.auth.nisServer ) self.nisDomainLabel = GtkLabel (_("NIS Domain: ")) self.nisDomainLabel.set_alignment (0, 0) self.nisServerLabel = GtkLabel (_("NIS Server: ")) self.nisServerLabel.set_alignment (0, 0) self.nis.connect ("toggled", self.setSensitivities) self.nisBroadcast.connect ("toggled", self.setSensitivities) a = GtkAlignment (0, 0) a.add (self.nisBroadcast) nistable = GtkTable (10, 4, FALSE) nistable.attach (self.nis, 0, 10, 0, 1, FILL, SHRINK, 0.0, 0.5) spacer = GtkLabel("") spacer.set_usize(10, 1) nistable.attach (spacer, 0, 1, 1, 2, SHRINK, SHRINK, 0.0, 0.5) nistable.attach (self.nisDomainLabel, 2, 3, 1, 2, FILL, SHRINK, 0.0, 0.5) nistable.attach (self.nisDomain, 3, 15, 1, 2, SHRINK, SHRINK, 0.0, 0.5) nistable.attach (a, 2, 10, 2, 3, SHRINK, SHRINK, 0.0, 0.5) nistable.attach (self.nisServerLabel, 2, 5, 3, 4, FILL, SHRINK, 0.0, 0.5) nistable.attach (self.nisServer, 3, 10, 3, 4, SHRINK, SHRINK, 0.0, 0.5) # ldap self.ldap = GtkCheckButton (_("Enable LDAP")) self.ldapServer = GtkEntry () self.ldapBasedn = GtkEntry () self.ldapTLS = GtkCheckButton (_("Use TLS lookups")) self.ldapServerLabel = GtkLabel (_("LDAP Server:")) self.ldapServerLabel.set_alignment (0, 0) self.ldapBasednLabel = GtkLabel (_("LDAP Base DN:")) self.ldapBasednLabel.set_alignment (0, 0) # restore ldap settings self.ldap.set_active (self.auth.useLdap) self.ldapServer.set_text (self.auth.ldapServer) self.ldapBasedn.set_text (self.auth.ldapBasedn) ldaptable = GtkTable (10, 4, FALSE) ldaptable.attach (self.ldap, 0, 10, 0, 1, FILL, SHRINK, 0.0, 0.5) spacer = GtkLabel("") spacer.set_usize(10, 1) ldaptable.attach (spacer, 0, 1, 1, 2, SHRINK, SHRINK, 0.0, 0.5) ldaptable.attach (self.ldapServerLabel, 2, 3, 1, 2, FILL, SHRINK, 0.0, 0.5) ldaptable.attach (self.ldapServer, 3, 10, 1, 2, SHRINK, SHRINK, 0.0, 0.5) ldaptable.attach (self.ldapBasednLabel, 2, 3, 2, 3, FILL, SHRINK, 0.0, 0.5) ldaptable.attach (self.ldapBasedn, 3, 10, 2, 3, SHRINK, SHRINK, 0.0, 0.5) a = GtkAlignment (0, 0) a.add (self.ldapTLS) ldaptable.attach (a, 2, 3, 3, 4, SHRINK, SHRINK, 0.0, 0.5) self.ldap.connect ("toggled", self.setSensitivities) # krb5 self.krb5 = GtkCheckButton (_("Enable Kerberos")) self.krb5Realm = GtkEntry () self.krb5Kdc = GtkEntry () self.krb5Admin = GtkEntry () self.krb5RealmLabel = GtkLabel (_("Realm:")) self.krb5RealmLabel.set_alignment (0, 0) self.krb5KdcLabel = GtkLabel (_("KDC:")) self.krb5KdcLabel.set_alignment (0, 0) self.krb5AdminLabel = GtkLabel (_("Admin Server:")) self.krb5AdminLabel.set_alignment (0, 0) # restore krb5 settings self.krb5.set_active (self.auth.useKrb5) self.krb5Realm.set_text (self.auth.krb5Realm) self.krb5Kdc.set_text (self.auth.krb5Kdc) self.krb5Admin.set_text (self.auth.krb5Admin) krb5table = GtkTable (10, 4, FALSE) krb5table.attach (self.krb5, 0, 10, 0, 1, FILL, SHRINK, 0.0, 0.5) spacer = GtkLabel("") spacer.set_usize(10, 1) krb5table.attach (spacer, 0, 1, 1, 2, SHRINK, SHRINK, 0.0, 0.5) krb5table.attach (self.krb5RealmLabel, 2, 3, 1, 2, FILL, SHRINK, 0.0, 0.5) krb5table.attach (self.krb5Realm, 3, 10, 1, 2, SHRINK, SHRINK, 0.0, 0.5) krb5table.attach (self.krb5KdcLabel, 2, 3, 2, 3, FILL, SHRINK, 0.0, 0.5) krb5table.attach (self.krb5Kdc, 3, 10, 2, 3, SHRINK, SHRINK, 0.0, 0.5) krb5table.attach (self.krb5AdminLabel, 2, 3, 3, 4, FILL, SHRINK, 0.0, 0.5) krb5table.attach (self.krb5Admin, 3, 10, 3, 4, SHRINK, SHRINK, 0.0, 0.5) self.krb5.connect ("toggled", self.setSensitivities) # samba self.samba = GtkCheckButton (_("Enable Samba Authentication")) self.sambaServer = GtkEntry () self.sambaWorkgroup = GtkEntry () self.sambaLabel1 = GtkLabel (_("Samba Server:")) self.sambaLabel1.set_alignment (0, 0) self.sambaLabel2 = GtkLabel (_("Samba Workgroup:")) self.sambaLabel2.set_alignment (0, 0) # restore ldap settings self.samba.set_active (self.auth.useSamba) self.sambaServer.set_text (self.auth.sambaServer) self.sambaWorkgroup.set_text (self.auth.sambaWorkgroup) sambatable = GtkTable (10, 3, FALSE) sambatable.attach (self.samba, 0, 10, 0, 1, FILL, SHRINK, 0.0, 0.5) spacer = GtkLabel("") spacer.set_usize(10, 1) sambatable.attach (spacer, 0, 1, 1, 2, SHRINK, SHRINK, 0.0, 0.5) sambatable.attach (self.sambaLabel1, 2, 3, 1, 2, FILL, SHRINK, 0.0, 0.5) sambatable.attach (self.sambaServer, 3, 10, 1, 2, SHRINK, SHRINK, 0.0, 0.5) sambatable.attach (self.sambaLabel2, 2, 3, 2, 3, FILL, SHRINK, 0.0, 0.5) sambatable.attach (self.sambaWorkgroup, 3, 10, 2, 3, SHRINK, SHRINK, 0.0, 0.5) self.samba.connect ("toggled", self.setSensitivities) # pack everything self.setSensitivities() nisLabel = GtkLabel (_("NIS")) ldapLabel = GtkLabel (_("LDAP")) krb5Label = GtkLabel (_("Kerberos 5")) sambaLabel = GtkLabel (_("Samba")) nb.append_page(nistable, nisLabel) nb.append_page(ldaptable, ldapLabel) nb.append_page(krb5table, krb5Label) nb.append_page(sambatable, sambaLabel) box.pack_start (self.md5, FALSE) box.pack_start (self.shadow, FALSE) box.pack_start (nb, TRUE) box.set_border_width (5) return box