From 5133f4340c33425a6a2cba4b8764d6e684b37da4 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 27 Jun 2007 22:15:31 +0000
Subject: [PATCH] Add a new extended operation that can be used to interact with password policy state information for a user, including getting and setting various state variables (even those marked NO-USER-MODIFICATION, although these are typically intended for testing purposes only).  Users will be required to have the password-reset privilege in order to be able to use this extended operation, and access control will also come into play.

---
 opends/src/server/org/opends/server/core/ModifyOperation.java |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/opends/src/server/org/opends/server/core/ModifyOperation.java b/opends/src/server/org/opends/server/core/ModifyOperation.java
index 78ba9fe..e9661d4 100644
--- a/opends/src/server/org/opends/server/core/ModifyOperation.java
+++ b/opends/src/server/org/opends/server/core/ModifyOperation.java
@@ -810,7 +810,7 @@
       // If the user must change their password before doing anything else, and
       // if the target of the modify operation isn't the user's own entry, then
       // reject the request.
-      if (clientConnection.mustChangePassword())
+      if ((! isInternalOperation()) && clientConnection.mustChangePassword())
       {
         DN authzDN = getAuthorizationDN();
         if ((authzDN != null) && (! authzDN.equals(entryDN)))
@@ -2450,7 +2450,8 @@
             break modifyProcessing;
           }
         }
-        else if(pwPolicyState.mustChangePassword())
+        else if ((! isInternalOperation()) &&
+                 pwPolicyState.mustChangePassword())
         {
           // The user will not be allowed to do anything else before
           // the password gets changed.

--
Gitblit v1.10.0