src/com/netscape/admin/dirserv/panel/AccountLockoutPanel.java | 6
src/com/netscape/admin/dirserv/panel/BlankPanel.java | 4
src/com/netscape/admin/dirserv/panel/PasswordPolicyPanel.java | 88 +++++-----
3 files changed, 54 insertions(+), 44 deletions(-)
New commits:
commit f4ec34b172bbcd1d0585ca2c4ccbdc668e063acd
Author: Mark Reynolds <mreynolds(a)redhat.com>
Date: Wed Oct 5 15:50:30 2016 -0400
Ticket 48926 - Fixed reset & save button behavior in the password/account lockout
panels
Bug Description: Hitting the "reset" button would put the panel into an
odd
state that caused the "save" button to remain disabled.
Fix Description: First, we needed to properly enable/disable all the components
when initializing the password policy and account lock panels.
Then when validating an update, only check enabled components.
Finally, when enabling/disabling the account lock out, make sure
the lockout duration is also updated.
https://fedorahosted.org/389/ticket/48926
Reviewed by: nhosoi(Thanks!)
diff --git a/src/com/netscape/admin/dirserv/panel/AccountLockoutPanel.java
b/src/com/netscape/admin/dirserv/panel/AccountLockoutPanel.java
index ee92948..833c63a 100644
--- a/src/com/netscape/admin/dirserv/panel/AccountLockoutPanel.java
+++ b/src/com/netscape/admin/dirserv/panel/AccountLockoutPanel.java
@@ -140,7 +140,7 @@ public class AccountLockoutPanel extends BlankPanel {
_items.addElement( _rbLockoutMinutes );
_tfLockoutMinutesValue = makeNumericalJTextField(_section,
- "lockoutduration", null, 8);
+ "lockoutduration",
LOCKOUT_DURATION_DEFAULT_VAL, 8);
_items.addElement( _tfLockoutMinutesValue );
_lockoutMinutesLabel =
@@ -175,7 +175,7 @@ public class AccountLockoutPanel extends BlankPanel {
entries.add( _policyspecdn, LOCKOUT_FOREVER_ATTR_NAME, lo );
setComponentTable(_rbLockoutForever, lo);
- DSEntryInteger lockoutDSEntry1 = new DSEntryInteger(null,
+ DSEntryInteger lockoutDSEntry1 = new
DSEntryInteger(LOCKOUT_DURATION_DEFAULT_VAL,
_tfLockoutMinutesValue, _lockoutMinutesLabel,
LOCKOUT_DURATION_NUM_MIN_VAL,
DSUtil.epochConstraint(LOCKOUT_DURATION_NUM_MAX_VAL, MIN_TO_DAY_FACTOR),
MIN_TO_SEC_FACTOR);
@@ -299,6 +299,7 @@ public class AccountLockoutPanel extends BlankPanel {
viewInitialized ();
enableLockout();
+ enableDuration();
}
}
class DurationEntryBoolean extends DSEntryBoolean {
@@ -373,6 +374,7 @@ public class AccountLockoutPanel extends BlankPanel {
"passwordLockoutDuration";
private static final int LOCKOUT_DURATION_NUM_MIN_VAL = 1;
private static final int LOCKOUT_DURATION_NUM_MAX_VAL = 35791394;
+ private static final String LOCKOUT_DURATION_DEFAULT_VAL = "60";
private static final int MIN_TO_SEC_FACTOR = 60;
private static final int MIN_TO_DAY_FACTOR = 1440;
diff --git a/src/com/netscape/admin/dirserv/panel/BlankPanel.java
b/src/com/netscape/admin/dirserv/panel/BlankPanel.java
index 875ba7f..fc5ff7e 100644
--- a/src/com/netscape/admin/dirserv/panel/BlankPanel.java
+++ b/src/com/netscape/admin/dirserv/panel/BlankPanel.java
@@ -382,6 +382,10 @@ public class BlankPanel extends JPanel
while (components.hasMoreElements()) {
int thisResult = DSEntry.DSE_VALID_NOMOD;
JComponent comp = (JComponent)components.nextElement();
+ if (comp.isEnabled() == false){
+ // No need to validate disabled components
+ continue;
+ }
Vector v = (Vector)_componentMapDSEntryTable.get( comp );
Enumeration entries = v.elements();
if (_verbose) {
diff --git a/src/com/netscape/admin/dirserv/panel/PasswordPolicyPanel.java
b/src/com/netscape/admin/dirserv/panel/PasswordPolicyPanel.java
index 1a94362..6c02fb2 100644
--- a/src/com/netscape/admin/dirserv/panel/PasswordPolicyPanel.java
+++ b/src/com/netscape/admin/dirserv/panel/PasswordPolicyPanel.java
@@ -249,6 +249,9 @@ public class PasswordPolicyPanel extends BlankPanel {
rememberPanel.add(_tfRememberValue);
rememberPanel.add(Box.createHorizontalStrut(space));
rememberPanel.add(_rememberLabel2);
+
+ enableChange();
+ enableHistory();
}
protected void createSyntaxArea( Container myContainer ) {
@@ -475,6 +478,7 @@ public class PasswordPolicyPanel extends BlankPanel {
1, 1, 1.0, 0.0,
GridBagConstraints.WEST, GridBagConstraints.NONE,
0, 0, SuiConstants.COMPONENT_SPACE, 0);
+ enableSyntax();
}
@@ -582,7 +586,8 @@ public class PasswordPolicyPanel extends BlankPanel {
_graceLoginLabel2.add(Box.createHorizontalStrut(space));
_graceLoginLabel2.setHorizontalAlignment(SwingConstants.LEFT);
graceLoginPanel.add(_graceLoginLabel2);
-
+
+ enableExpire();
}
class DSEntryExpire extends DSEntryBoolean{
@@ -888,47 +893,46 @@ public class PasswordPolicyPanel extends BlankPanel {
} else {
enable = _cbCheckSyntax.isSelected();
}
-
- _minLengthLabel.setEnabled( enable );
- _minLengthLabel.repaint();
- _tfMinLengthValue.setEnabled( enable );
- _tfMinLengthValue.repaint();
- _minDigitsLabel.setEnabled( enable );
- _minDigitsLabel.repaint();
- _tfMinDigitsValue.setEnabled( enable );
- _tfMinDigitsValue.repaint();
- _minAlphasLabel.setEnabled( enable );
- _minAlphasLabel.repaint();
- _tfMinAlphasValue.setEnabled( enable );
- _tfMinAlphasValue.repaint();
- _minUppersLabel.setEnabled( enable );
- _minUppersLabel.repaint();
- _tfMinUppersValue.setEnabled( enable );
- _tfMinUppersValue.repaint();
- _minLowersLabel.setEnabled( enable );
- _minLowersLabel.repaint();
- _tfMinLowersValue.setEnabled( enable );
- _tfMinLowersValue.repaint();
- _minSpecialsLabel.setEnabled( enable );
- _minSpecialsLabel.repaint();
- _tfMinSpecialsValue.setEnabled( enable );
- _tfMinSpecialsValue.repaint();
- _min8bitLabel.setEnabled( enable );
- _min8bitLabel.repaint();
- _tfMin8bitValue.setEnabled( enable );
- _tfMin8bitValue.repaint();
- _maxRepeatsLabel.setEnabled( enable );
- _maxRepeatsLabel.repaint();
- _tfMaxRepeatsValue.setEnabled( enable );
- _tfMaxRepeatsValue.repaint();
- _minCategoriesLabel.setEnabled( enable );
- _minCategoriesLabel.repaint();
- _tfMinCategoriesValue.setEnabled( enable );
- _tfMinCategoriesValue.repaint();
- _minTokenLengthLabel.setEnabled( enable );
- _minTokenLengthLabel.repaint();
- _tfMinTokenLengthValue.setEnabled( enable );
- _tfMinTokenLengthValue.repaint();
+ _minLengthLabel.setEnabled( enable );
+ _minLengthLabel.repaint();
+ _tfMinLengthValue.setEnabled( enable );
+ _tfMinLengthValue.repaint();
+ _minDigitsLabel.setEnabled( enable );
+ _minDigitsLabel.repaint();
+ _tfMinDigitsValue.setEnabled( enable );
+ _tfMinDigitsValue.repaint();
+ _minAlphasLabel.setEnabled( enable );
+ _minAlphasLabel.repaint();
+ _tfMinAlphasValue.setEnabled( enable );
+ _tfMinAlphasValue.repaint();
+ _minUppersLabel.setEnabled( enable );
+ _minUppersLabel.repaint();
+ _tfMinUppersValue.setEnabled( enable );
+ _tfMinUppersValue.repaint();
+ _minLowersLabel.setEnabled( enable );
+ _minLowersLabel.repaint();
+ _tfMinLowersValue.setEnabled( enable );
+ _tfMinLowersValue.repaint();
+ _minSpecialsLabel.setEnabled( enable );
+ _minSpecialsLabel.repaint();
+ _tfMinSpecialsValue.setEnabled( enable );
+ _tfMinSpecialsValue.repaint();
+ _min8bitLabel.setEnabled( enable );
+ _min8bitLabel.repaint();
+ _tfMin8bitValue.setEnabled( enable );
+ _tfMin8bitValue.repaint();
+ _maxRepeatsLabel.setEnabled( enable );
+ _maxRepeatsLabel.repaint();
+ _tfMaxRepeatsValue.setEnabled( enable );
+ _tfMaxRepeatsValue.repaint();
+ _minCategoriesLabel.setEnabled( enable );
+ _minCategoriesLabel.repaint();
+ _tfMinCategoriesValue.setEnabled( enable );
+ _tfMinCategoriesValue.repaint();
+ _minTokenLengthLabel.setEnabled( enable );
+ _minTokenLengthLabel.repaint();
+ _tfMinTokenLengthValue.setEnabled( enable );
+ _tfMinTokenLengthValue.repaint();
}
private void enableChange (){