[Yanel-commits] rev 50213 - public/yanel/trunk/src/contributions/resources/yanel-user/src/java/org/wyona/yanel/impl/resources/yaneluser

michi at wyona.com michi at wyona.com
Mon Jun 7 13:03:06 CEST 2010


Author: michi
Date: 2010-06-07 13:03:06 +0200 (Mon, 07 Jun 2010)
New Revision: 50213

Modified:
   public/yanel/trunk/src/contributions/resources/yanel-user/src/java/org/wyona/yanel/impl/resources/yaneluser/EditYanelUserProfileResource.java
Log:
update password started

Modified: public/yanel/trunk/src/contributions/resources/yanel-user/src/java/org/wyona/yanel/impl/resources/yaneluser/EditYanelUserProfileResource.java
===================================================================
--- public/yanel/trunk/src/contributions/resources/yanel-user/src/java/org/wyona/yanel/impl/resources/yaneluser/EditYanelUserProfileResource.java	2010-06-07 10:55:33 UTC (rev 50212)
+++ public/yanel/trunk/src/contributions/resources/yanel-user/src/java/org/wyona/yanel/impl/resources/yaneluser/EditYanelUserProfileResource.java	2010-06-07 11:03:06 UTC (rev 50213)
@@ -13,24 +13,29 @@
 
 import org.apache.log4j.Logger;
 
-
 /**
  * A resource to edit/update the profile of a user
  */
 public class EditYanelUserProfileResource extends BasicXMLResource {
     
     private static Logger log = Logger.getLogger(EditYanelUserProfileResource.class);
+
+    private String transformerParameterName;
+    private String transformerParameterValue;
     
     /*
-     * This method overrides the method to create the InputStream called by BasicXMLResource
-     * Since you extend the BasicXMLResource this has to contain well-formed xml.
-     * Should return a InputStream which contains XML. 
-     * Use String, StingBuffer, dom, jdom, org.apache.commons.io.IOUtils and so on to generate the XML.
+     * @see org.wyona.yanel.impl.resources.BasicXMLResource#getContentXML(String)
      */
     protected InputStream getContentXML(String viewId) {
         if (log.isDebugEnabled()) {
             log.debug("requested viewId: " + viewId);
         }
+
+        String oldPassword = getEnvironment().getRequest().getParameter("oldPassword");
+        if (oldPassword != null) {
+            updatePassword(oldPassword);
+        }
+
         try {
             return getXMLAsStream();
         } catch(Exception e) {
@@ -40,7 +45,7 @@
     }
 
     /**
-     * Get XML as stream
+     * Get user profile as XML as stream
      */
     private java.io.InputStream getXMLAsStream() throws Exception {
         String userId = getUserId();
@@ -88,4 +93,70 @@
         }
         return userId;
     }
+
+    /**
+     * Change user password
+     *
+     * @param oldPassword Existing current password
+     */
+    private void updatePassword(String oldPassword) {
+        try {
+            String newPassword = getEnvironment().getRequest().getParameter("newPassword");
+            String newPasswordConfirmed = getEnvironment().getRequest().getParameter("newPasswordConfirmation");
+            String userId = getUserId();
+
+            if (!getRealm().getIdentityManager().getUserManager().getUser(userId).authenticate(oldPassword)) {
+                setTransformerParameter("error", "Authentication of user '" +userId + "' failed!");
+                log.error("Authentication of user '" + userId + "' failed!");
+                return;
+            }
+
+/*
+            if (getRealm().getIdentityManager().getUserManager().getUser(userId).authenticate(
+                    oldPassword)) {
+                String plainPassword = request.getParameter("newPassword");
+                boolean confirmation = plainPassword.equals(request
+                        .getParameter("newPasswordConfirmation"));
+                if (confirmation && !plainPassword.equals("")) {
+                    User user = getRealm().getIdentityManager().getUserManager().getUser(userId);
+                    user.setPassword(plainPassword);
+                    user.save();
+
+                    transformer.setParameter("success", "Password updated successfully");
+                } else {
+                    transformer.setParameter("error", "Either no new password was supplied "
+                            + "or the password supplied and its confirmation do not coincide");
+                }
+            } else {
+                transformer.setParameter("error", "Authentication failed!");
+            }
+*/
+        } catch (Exception e) {
+            log.error(e, e);
+        }
+    }
+
+    /**
+     *
+     */
+    private void setTransformerParameter(String name, String value) {
+        transformerParameterName = name;
+        transformerParameterValue = value;
+    }
+
+    /**
+     * @see org.wyona.yanel.impl.resources.BasicXMLResource#passTransformerParameters(Transformer)
+     */
+    protected void passTransformerParameters(javax.xml.transform.Transformer transformer) throws Exception {
+        super.passTransformerParameters(transformer);
+        try {
+            if (transformerParameterName != null && transformerParameterValue != null) {
+                transformer.setParameter(transformerParameterName, transformerParameterValue);
+                transformerParameterName = null;
+                transformerParameterValue = null;
+            }
+        } catch (Exception e) {
+            log.error(e, e);
+        }
+    }
 }



More information about the Yanel-commits mailing list