From 7b91669da9737af20f3f44ed861a691ee5712c38 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Mon, 07 Jun 2010 09:07:09 +0000
Subject: [PATCH] Fix for issue #4556 - Make sure the skipValidationForAdministrators password policy flag applies identically for the ldap modify and password modify extended ops. Also tidy some comments and line length issues, failing the precommit target.

---
 opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java b/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
index 1692800..3cf059f 100644
--- a/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
+++ b/opends/src/server/org/opends/server/extensions/PasswordModifyExtendedOperation.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2006-2009 Sun Microsystems, Inc.
+ *      Copyright 2006-2010 Sun Microsystems, Inc.
  */
 package org.opends.server.extensions;
 import org.opends.messages.Message;
@@ -946,21 +946,25 @@
           {
             if (pwPolicyState.isPasswordInHistory(newPassword))
             {
-              if (oldPassword == null)
+              if (selfChange || (! pwPolicyState.getPolicy().
+                                      skipValidationForAdministrators()))
               {
-                operation.setResultCode(ResultCode.UNWILLING_TO_PERFORM);
+                if (oldPassword == null)
+                {
+                  operation.setResultCode(ResultCode.UNWILLING_TO_PERFORM);
 
-                operation.appendErrorMessage(
-                        ERR_EXTOP_PASSMOD_PW_IN_HISTORY.get());
-              }
-              else
-              {
-                operation.setResultCode(ResultCode.INVALID_CREDENTIALS);
+                  operation.appendErrorMessage(
+                          ERR_EXTOP_PASSMOD_PW_IN_HISTORY.get());
+                }
+                else
+                {
+                  operation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
-                operation.appendAdditionalLogMessage(
-                        ERR_EXTOP_PASSMOD_PW_IN_HISTORY.get());
+                  operation.appendAdditionalLogMessage(
+                          ERR_EXTOP_PASSMOD_PW_IN_HISTORY.get());
+                }
+                return;
               }
-              return;
             }
             else
             {

--
Gitblit v1.10.0