portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rwat...@apache.org
Subject svn commit: r925650 - in /portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE: components/portal/src/java/org/apache/jetspeed/administration/ jetspeed-api/src/java/org/apache/jetspeed/administration/
Date Sat, 20 Mar 2010 18:37:07 GMT
Author: rwatler
Date: Sat Mar 20 18:37:07 2010
New Revision: 925650

URL: http://svn.apache.org/viewvc?rev=925650&view=rev
Log:
Add user and base folder path access methods to PortalAdministration component API

Modified:
    portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/portal/src/java/org/apache/jetspeed/administration/PortalAdministrationImpl.java
    portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/administration/PortalAdministration.java

Modified: portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/portal/src/java/org/apache/jetspeed/administration/PortalAdministrationImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/portal/src/java/org/apache/jetspeed/administration/PortalAdministrationImpl.java?rev=925650&r1=925649&r2=925650&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/portal/src/java/org/apache/jetspeed/administration/PortalAdministrationImpl.java
(original)
+++ portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/components/portal/src/java/org/apache/jetspeed/administration/PortalAdministrationImpl.java
Sat Mar 20 18:37:07 2010
@@ -292,31 +292,7 @@ public class PortalAdministrationImpl im
             String userFolderPath = null;
             if ((subsite == null) && (serverName != null))
             {
-                // setup profiler and portal site to determine template
-                // folders paths generate mock request for new user to profile
-                RequestContext request = new MockRequestContext("/");
-                request.setSubject(user.getSubject());
-                request.setLocale((locale != null) ? locale : Locale.getDefault());
-                MockHttpServletRequest servletRequest = new MockHttpServletRequest();
-                servletRequest.setServerName(serverName);
-                request.setRequest(servletRequest);
-                
-                // get profile locators map for new user request
-                Principal principal = SecurityHelper.getBestPrincipal(user.getSubject(),
UserPrincipal.class);
-                Map locators = profiler.getProfileLocators(request, principal);
-                if (locators.size() == 0)
-                {
-                    locators = profiler.getDefaultProfileLocators(request);             
  
-                }
-                if (locators.size() == 0)
-                {
-                    locators.put(ProfileLocator.PAGE_LOCATOR, profiler.getProfile(request,
ProfileLocator.PAGE_LOCATOR));
-                }
-                
-                // get user folder path from profiler site component
-                // using the profile locators for new user request
-                PortalSiteSessionContext sessionContext = portalSite.newSessionContext();
-                PortalSiteRequestContext requestContext = sessionContext.newRequestContext(locators,
userName);
+                PortalSiteRequestContext requestContext = getMockPortalSiteRequestContext(userName,
user, locale, serverName);
                 userFolderPath = requestContext.getUserFolderPath();
             }
             else if (subsite != null)
@@ -563,9 +539,86 @@ public class PortalAdministrationImpl im
             forgottenPasswordData.remove(guid);
         }
     }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.administration.PortalAdministration#getUserFolderPath(java.lang.String,
java.util.Locale, java.lang.String)
+     */
+    public String getUserFolderPath(String userName, Locale locale, String serverName)
+    {
+        try
+        {
+            User user = userManager.getUser(userName);
+            PortalSiteRequestContext requestContext = getMockPortalSiteRequestContext(userName,
user, locale, serverName);
+            return requestContext.getUserFolderPath();
+        }
+        catch (Exception e)
+        {
+            log.error("Unexpected exception getting user folder path for "+userName+": "+e,
e);
+            return null;
+        }        
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.administration.PortalAdministration#getBaseFolderPath(java.lang.String,
java.util.Locale, java.lang.String)
+     */
+    public String getBaseFolderPath(String userName, Locale locale, String serverName)
+    {
+        try
+        {
+            User user = userManager.getUser(userName);
+            PortalSiteRequestContext requestContext = getMockPortalSiteRequestContext(userName,
user, locale, serverName);
+            return requestContext.getBaseFolderPath();
+        }
+        catch (Exception e)
+        {
+            log.error("Unexpected exception getting base folder path for "+userName+": "+e,
e);
+            return null;
+        }
+    }
     
-    
-    
-    
-    
+    /**
+     * Returns temporary mock portal site request context for
+     * specified user for use in constructing user or base PSML
+     * folder paths or accessing other profiled site data.
+     * 
+     * @param userName portal user name
+     * @param user portal user
+     * @param locale optional locale, (defaults to system locale, for language
+     *               profiling rules)
+     * @param serverName server name, (required for subsite profiling rules)
+     * @return portal site request context
+     * @throws Exception
+     */
+    private PortalSiteRequestContext getMockPortalSiteRequestContext(String userName, User
user, Locale locale, String serverName) throws Exception
+    {
+        // setup profiler and portal site to determine template
+        // folders paths generate mock request for new user to profile
+        RequestContext request = new MockRequestContext("/");
+        request.setSubject(user.getSubject());
+        request.setLocale((locale != null) ? locale : Locale.getDefault());
+        MockHttpServletRequest servletRequest = new MockHttpServletRequest();
+        if (serverName != null)
+        {
+            servletRequest.setServerName(serverName);
+        }
+        request.setRequest(servletRequest);
+
+        // get profile locators map for new user request, (taken from
+        // ProfilerValveImpl)
+        Principal principal = SecurityHelper.getBestPrincipal(user.getSubject(), UserPrincipal.class);
+        Map locators = profiler.getProfileLocators(request, principal);
+        if (locators.size() == 0)
+        {
+            locators = profiler.getDefaultProfileLocators(request);                
+        }
+        if (locators.size() == 0)
+        {
+            locators.put(ProfileLocator.PAGE_LOCATOR, profiler.getProfile(request, ProfileLocator.PAGE_LOCATOR));
+        }
+
+        // get new portal site request context from portal site
+        // component using the profile locators for new user request
+        PortalSiteSessionContext sessionContext = portalSite.newSessionContext();
+        return sessionContext.newRequestContext(locators, userName);
+    }    
 }

Modified: portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/administration/PortalAdministration.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/administration/PortalAdministration.java?rev=925650&r1=925649&r2=925650&view=diff
==============================================================================
--- portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/administration/PortalAdministration.java
(original)
+++ portals/jetspeed-2/portal/branches/JETSPEED-2.1.3-POSTRELEASE/jetspeed-api/src/java/org/apache/jetspeed/administration/PortalAdministration.java
Sat Mar 20 18:37:07 2010
@@ -181,5 +181,28 @@ public interface PortalAdministration
      */
     public void removeNewLoginInfo(String guid);
         
+    /**
+     * Returns PSML user folder path for specified user by
+     * running full profiler and portal site rules.
+     * 
+     * @param userName existing portal user name
+     * @param locale optional locale, (defaults to system locale, for language
+     *               profiling rules)
+     * @param serverName server name, (required for subsite profiling rules)
+     * @return PSML user folder path
+     */
+    public String getUserFolderPath(String userName, Locale locale, String serverName);
+
+    /**
+     * Returns PSML base folder path for specified user by
+     * running full profiler and portal site rules.
+     * 
+     * @param userName existing portal user name
+     * @param locale optional locale, (defaults to system locale, for language
+     *               profiling rules)
+     * @param serverName server name, (required for subsite profiling rules)
+     * @return PSML base folder path
+     */
+    public String getBaseFolderPath(String userName, Locale locale, String serverName);
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org


Mime
View raw message