This is an automated email from the ASF dual-hosted git repository.

dixitdeepak pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 8d3a63cb35 Added migration service to populate the user full name from 
the UserLogin associated Party (OFBIZ-13418) (#1269)
8d3a63cb35 is described below

commit 8d3a63cb3537ccba3dc726fdf30921254721597c
Author: Deepak Dixit <[email protected]>
AuthorDate: Tue May 26 12:23:34 2026 +0530

    Added migration service to populate the user full name from the UserLogin 
associated Party (OFBIZ-13418) (#1269)
---
 applications/securityext/servicedef/services.xml   |  6 ++
 .../securityext/migrate/MigrationServices.java     | 79 ++++++++++++++++++++++
 2 files changed, 85 insertions(+)

diff --git a/applications/securityext/servicedef/services.xml 
b/applications/securityext/servicedef/services.xml
index 587385e26b..37e6f7c091 100644
--- a/applications/securityext/servicedef/services.xml
+++ b/applications/securityext/servicedef/services.xml
@@ -35,5 +35,11 @@ under the License.
         <attribute name="importIssuer" type="String" mode="IN" 
optional="true"/>
         <attribute name="alias" type="String" mode="IN" optional="false"/>
     </service>
+    <service name="migrateUserLoginUserFullName" engine="java" auth="true" 
transaction-timeout="7200"
+            location="org.apache.ofbiz.securityext.migrate.MigrationServices" 
invoke="migrateUserLoginUserFullName">
+        <description>Migration service to populate the user full name from the 
UserLogin associated Party</description>
+        <attribute name="userLoginId" type="String" mode="IN" optional="true"/>
+        <attribute name="partyId" type="String" mode="IN" optional="true"/>
+    </service>
 
 </services>
diff --git 
a/applications/securityext/src/main/java/org/apache/ofbiz/securityext/migrate/MigrationServices.java
 
b/applications/securityext/src/main/java/org/apache/ofbiz/securityext/migrate/MigrationServices.java
new file mode 100644
index 0000000000..8d58fa2c77
--- /dev/null
+++ 
b/applications/securityext/src/main/java/org/apache/ofbiz/securityext/migrate/MigrationServices.java
@@ -0,0 +1,79 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ 
*******************************************************************************/
+package org.apache.ofbiz.securityext.migrate;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ofbiz.base.util.Debug;
+import org.apache.ofbiz.base.util.UtilMisc;
+import org.apache.ofbiz.base.util.UtilValidate;
+import org.apache.ofbiz.entity.Delegator;
+import org.apache.ofbiz.entity.GenericEntityException;
+import org.apache.ofbiz.entity.GenericValue;
+import org.apache.ofbiz.entity.condition.EntityCondition;
+import org.apache.ofbiz.entity.condition.EntityOperator;
+import org.apache.ofbiz.entity.transaction.TransactionUtil;
+import org.apache.ofbiz.entity.util.EntityListIterator;
+import org.apache.ofbiz.entity.util.EntityQuery;
+import org.apache.ofbiz.party.party.PartyHelper;
+import org.apache.ofbiz.service.DispatchContext;
+import org.apache.ofbiz.service.ServiceUtil;
+
+public class MigrationServices {
+    private static final String MODULE = MigrationServices.class.getName();
+
+    public static Map<String, Object> 
migrateUserLoginUserFullName(DispatchContext dctx, Map<String, Object> context) 
{
+        Delegator delegator = dctx.getDelegator();
+        List<EntityCondition> conditions = 
UtilMisc.toList(EntityCondition.makeCondition("userFullName", null));
+        if (UtilValidate.isNotEmpty(context.get("userLoginId"))) {
+            conditions.add(EntityCondition.makeCondition("userLoginId", 
context.get("userLoginId")));
+        }
+        if (UtilValidate.isNotEmpty(context.get("partyId"))) {
+            conditions.add(EntityCondition.makeCondition("partyId", 
context.get("partyId")));
+        } else {
+            conditions.add(EntityCondition.makeCondition("partyId", 
EntityOperator.NOT_EQUAL, null));
+        }
+        EntityQuery eq = 
EntityQuery.use(delegator).from("UserLogin").where(conditions);
+
+        try (EntityListIterator eli = eq.queryIterator()) {
+            GenericValue userLogin;
+            while ((userLogin = eli.next()) != null) {
+                GenericValue userLoginToUpdate = userLogin;
+                String userLoginId = 
userLoginToUpdate.getString("userLoginId");
+                String errorMessage = "Error populating userFullName for 
userLoginId [" + userLoginId + "]";
+                try {
+                    TransactionUtil.doNewTransaction(() -> {
+                        String userFullName = 
PartyHelper.getPartyName(delegator, userLoginToUpdate.getString("partyId"), 
false);
+                        userLoginToUpdate.set("userFullName", userFullName);
+                        userLoginToUpdate.store();
+                        Debug.logInfo("Populated userFullName for userLoginId 
[" + userLoginId + "]", MODULE);
+                        return null;
+                    }, errorMessage, 0, false);
+                } catch (Exception e) {
+                    Debug.logError(e, errorMessage, MODULE);
+                }
+            }
+        } catch (GenericEntityException e) {
+            Debug.logError(e, MODULE);
+            return ServiceUtil.returnError(e.getMessage());
+        }
+        return ServiceUtil.returnSuccess();
+    }
+}

Reply via email to