Author: mor
Date: Mon Sep  1 04:44:10 2008
New Revision: 690942

URL: http://svn.apache.org/viewvc?rev=690942&view=rev
Log:
Added a new event that set userloginId from an email address. If user edit 
email address then set it as a new userLoginId and 
disabled date to far in the future for existing userLoginId.
This is a new feature to new profile page.

Thanks to Rishi Solanki for this work and Sumit Pandit and Mridul Pathak for 
review.


Modified:
    
ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
    ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml

Modified: 
ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml?rev=690942&r1=690941&r2=690942&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
 (original)
+++ 
ofbiz/trunk/applications/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
 Mon Sep  1 04:44:10 2008
@@ -1493,4 +1493,47 @@
         <call-simple-method method-name="createUpdateEmailAddress"/>
     </simple-method>
 
+    <simple-method method-name="setUserLoginFromEmail" short-description="Set 
userloginId from email. If user edit email address then set it as a new 
userLoginId and disabled date to far in the future for existing userLoginId">
+        <if-compare field="parameters.userLoginId" operator="not-equals" 
value="userLogin.userLoginId">
+            <set-service-fields service-name="updateUserLoginId" 
map-name="parameters" to-map-name="serviceContext"/>
+            <set field="serviceContext.userLogin" from-field="userLogin"/>
+            <call-service service-name="updateUserLoginId" 
in-map-name="serviceContext">
+                <result-to-field result-name="newUserLogin"/>
+            </call-service>
+            <set-current-user-login value-name="newUserLogin"/>
+            <call-bsh>
+                <![CDATA[
+                    
org.ofbiz.webapp.control.LoginWorker.doBasicLogin(newUserLogin, request);
+                    org.ofbiz.webapp.control.LoginWorker.autoLoginSet(request, 
response);
+                ]]>
+            </call-bsh>
+            <!-- disabledDateTime/disableForYears set time until a user login 
remains disabled -->
+            <if-not-empty field="parameters.disabledDateTime">
+                <set field="disabledDateTime" 
from-field="parameters.disabledDateTime" type="Date"/>
+            <else>
+                <now-date-to-env env-name="nowTimeStamp"/>
+                <if-not-empty field="parameters.disableForYear">
+                    <set-calendar field="disabledDateTime" 
from-field="nowTimeStamp" years="${parameters.disableForYear}"/>
+                <else>
+                    <set-calendar field="disabledDateTime" 
from-field="nowTimeStamp" years="20"/>
+                </else>
+                </if-not-empty>
+            </else>
+            </if-not-empty>
+            <set field="loggedInUser.disabledDateTime" 
from-field="disabledDateTime"/>
+            <set field="loggedInUser.enabled" value="N"/>
+            <store-value value-name="loggedInUser"/>
+        </if-compare>
+    </simple-method>
+
+    <simple-method method-name="updateProfileAndUserLoginFromEmail" 
short-description="Update a customer profile and userloginId from email">
+        <set field="partyId" from-field="userLogin.partyId"/>
+        <set field="parameters.userLoginId" 
from-field="parameters.emailAddress"/>
+        <set field="loggedInUser" from-field="userLogin"/>
+        <call-simple-method method-name="createUpdatePerson"/>
+        <call-simple-method method-name="setUserLoginFromEmail"/>
+        <call-simple-method method-name="createUpdateUserLogin"/>
+        <call-simple-method method-name="createUpdateEmailAddress"/>
+    </simple-method>
+
 </simple-methods>
\ No newline at end of file

Modified: 
ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml?rev=690942&r1=690941&r2=690942&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml 
(original)
+++ ofbiz/trunk/applications/ecommerce/webapp/ecommerce/WEB-INF/controller.xml 
Mon Sep  1 04:44:10 2008
@@ -1719,6 +1719,8 @@
     <request-map uri="updateCustomerProfile">
         <security https="true" auth="true"/>
         <event type="simple" 
path="org/ofbiz/ecommerce/customer/CustomerEvents.xml" 
invoke="updateCustomerProfile"/>
+        <!-- Use following event only if email address will be used as 
userLoginId. Updating email address will set it as new userLoginId and disable 
existing userLoginId -->
+        <!--event type="simple" 
path="org/ofbiz/ecommerce/customer/CustomerEvents.xml" 
invoke="updateProfileAndUserLoginFromEmail"/-->
         <response name="success" type="view" value="viewprofile"/>
         <response name="error" type="view" value="EditProfile"/>
     </request-map>


Reply via email to