From c44f3035dcf6eefce85719b8eaf78dabb784e803 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 22 Sep 2015 09:52:43 +0000
Subject: [PATCH] OPENDJ-2294 ldapmodify ds-pwp-account-disabled does not generate account status notifications

---
 opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
index ff86f19..2e360c7 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -755,7 +755,7 @@
 
       // If the attribute type is marked "NO-USER-MODIFICATION" then fail unless
       // this is an internal operation or is related to synchronization in some way.
-      final boolean isInternalOrSynchro = isInternalOperation() || isSynchronizationOperation() || m.isInternal();
+      final boolean isInternalOrSynchro = isInternalOrSynchro(m);
       if (t.isNoUserModification() && !isInternalOrSynchro)
       {
         throw newDirectoryException(currentEntry,
@@ -795,6 +795,11 @@
     }
   }
 
+  private boolean isInternalOrSynchro(Modification m)
+  {
+    return isInternalOperation() || m.isInternal() || isSynchronizationOperation();
+  }
+
   private boolean isPassword(AttributeType t)
   {
     return pwPolicyState != null
@@ -954,6 +959,12 @@
 
         processInitialSchema(m.getModificationType(), a);
       }
+      else if (!isInternalOrSynchro(m)
+          && t.equals(getAttributeTypeOrDefault(OP_ATTR_ACCOUNT_DISABLED)))
+      {
+        enabledStateChanged = true;
+        isEnabled = pwPolicyState != null && !pwPolicyState.isDisabled();
+      }
     }
   }
 

--
Gitblit v1.10.0