anaconda: add option to lock root account
Not only default setting, so one could leave account locked if entered password setting spoke.
This commit is contained in:
parent
2b0bda77a8
commit
5e55b430b7
@ -40,6 +40,22 @@
|
|||||||
<object class="GtkBox" id="AnacondaSpokeWindow-action_area1">
|
<object class="GtkBox" id="AnacondaSpokeWindow-action_area1">
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkCheckButton" id="lock">
|
||||||
|
<property name="label" translatable="yes">Lock root account</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">True</property>
|
||||||
|
<property name="receives_default">False</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="draw_indicator">True</property>
|
||||||
|
<signal name="clicked" handler="on_lock_clicked" swapped="no"/>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkGrid" id="pwgrid">
|
<object class="GtkGrid" id="pwgrid">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@ -137,7 +153,7 @@
|
|||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">True</property>
|
<property name="fill">True</property>
|
||||||
<property name="position">0</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
</object>
|
</object>
|
||||||
|
@ -52,15 +52,24 @@ class PasswordSpoke(NormalSpoke):
|
|||||||
self._password = None
|
self._password = None
|
||||||
self._error = False
|
self._error = False
|
||||||
self._oldweak = None
|
self._oldweak = None
|
||||||
|
self._lock = self.data.rootpw.lock
|
||||||
|
|
||||||
def initialize(self):
|
def initialize(self):
|
||||||
NormalSpoke.initialize(self)
|
NormalSpoke.initialize(self)
|
||||||
# place holders for the text boxes
|
# place holders for the text boxes
|
||||||
self.pw = self.builder.get_object("pw")
|
self.pw = self.builder.get_object("pw")
|
||||||
self.confirm = self.builder.get_object("confirm")
|
self.confirm = self.builder.get_object("confirm")
|
||||||
|
self.lock = self.builder.get_object("lock")
|
||||||
|
|
||||||
def refresh(self):
|
def refresh(self):
|
||||||
# self.setCapsLockLabel()
|
# self.setCapsLockLabel()
|
||||||
|
self.lock.set_active(self._lock)
|
||||||
|
self.on_lock_clicked(self.lock)
|
||||||
|
|
||||||
|
def on_lock_clicked(self, lock):
|
||||||
|
self.pw.set_sensitive(not lock.get_active())
|
||||||
|
self.confirm.set_sensitive(not lock.get_active())
|
||||||
|
if not lock.get_active():
|
||||||
self.pw.grab_focus()
|
self.pw.grab_focus()
|
||||||
|
|
||||||
# Caps lock detection isn't hooked up right now
|
# Caps lock detection isn't hooked up right now
|
||||||
@ -83,9 +92,10 @@ class PasswordSpoke(NormalSpoke):
|
|||||||
return _("Root password is not set")
|
return _("Root password is not set")
|
||||||
|
|
||||||
def apply(self):
|
def apply(self):
|
||||||
|
if self._password:
|
||||||
self.data.rootpw.password = cryptPassword(self._password)
|
self.data.rootpw.password = cryptPassword(self._password)
|
||||||
self.data.rootpw.isCrypted = True
|
self.data.rootpw.isCrypted = True
|
||||||
self.data.rootpw.lock = False
|
self.data.rootpw.lock = self._lock
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def completed(self):
|
def completed(self):
|
||||||
@ -98,6 +108,14 @@ class PasswordSpoke(NormalSpoke):
|
|||||||
self._error = False
|
self._error = False
|
||||||
pw = self.pw.get_text()
|
pw = self.pw.get_text()
|
||||||
confirm = self.confirm.get_text()
|
confirm = self.confirm.get_text()
|
||||||
|
lock = self.lock.get_active()
|
||||||
|
|
||||||
|
if lock:
|
||||||
|
self._lock = True
|
||||||
|
self._password = None
|
||||||
|
self.clear_info()
|
||||||
|
self._error = False
|
||||||
|
return True
|
||||||
|
|
||||||
if not pw and not confirm:
|
if not pw and not confirm:
|
||||||
self._error = _("You must provide and confirm a password.")
|
self._error = _("You must provide and confirm a password.")
|
||||||
@ -120,6 +138,7 @@ class PasswordSpoke(NormalSpoke):
|
|||||||
|
|
||||||
# if no errors, clear the info for next time we go into the spoke
|
# if no errors, clear the info for next time we go into the spoke
|
||||||
self._password = pw
|
self._password = pw
|
||||||
|
self._lock = False
|
||||||
self.clear_info()
|
self.clear_info()
|
||||||
self._error = False
|
self._error = False
|
||||||
return True
|
return True
|
||||||
|
Loading…
Reference in New Issue
Block a user