CCM NG: Fixed some bugs in the application lookup

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3875 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2016-02-18 13:43:04 +00:00
parent 433b5eab2d
commit 51d4fca237
12 changed files with 108 additions and 69 deletions

View File

@ -76,7 +76,7 @@ public class UserBanner extends SimpleComponent {
contentElem.addAttribute("screenName", user.getName()); contentElem.addAttribute("screenName", user.getName());
contentElem.addAttribute("primaryEmail", contentElem.addAttribute("primaryEmail",
user.getPrimaryEmailAddress() user.getPrimaryEmailAddress()
.toString()); .getAddress());
contentElem.addAttribute("userID", contentElem.addAttribute("userID",
Long.toString(user.getPartyId())); Long.toString(user.getPartyId()));
} }

View File

@ -441,7 +441,8 @@ public class LoginServlet extends BebopApplicationServlet {
* @return URL_MSG for logout page as String * @return URL_MSG for logout page as String
*/ */
public static String getLogoutPageURL() { public static String getLogoutPageURL() {
return s_loginURL + LOGOUT_PATH_INFO; return s_loginURL.substring(0,
s_loginURL.length() - 1) + LOGOUT_PATH_INFO;
} }
} }

View File

@ -46,6 +46,7 @@ import org.libreccm.web.ApplicationType;
import java.util.Iterator; import java.util.Iterator;
import java.util.Set; import java.util.Set;
import java.util.StringJoiner;
import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.spi.Bean; import javax.enterprise.inject.spi.Bean;
@ -317,9 +318,26 @@ public class CCMDispatcherServlet extends BaseServlet {
path); path);
} }
final CcmApplication application = appManager final String pathTokens[];
.findApplicationByPath(path); if (path.startsWith("/")) {
pathTokens = path.substring(1).split("/");
} else {
pathTokens = path.split("/");
}
CcmApplication application = null;
for (int i = pathTokens.length; i > 0; i--) {
final String currentPath = generatePath(i, pathTokens);
LOGGER.debug("Trying path '{}'...", currentPath);
application = appManager.findApplicationByPath(currentPath);
if (application != null) {
LOGGER.debug("Found application for path '{}'.", currentPath);
break;
}
}
// final CcmApplication application = appManager
// .findApplicationByPath(path);
if (application == null) { if (application == null) {
LOGGER.warn("No application found for path \"{}\".", path); LOGGER.warn("No application found for path \"{}\".", path);
return null; return null;
@ -328,6 +346,17 @@ public class CCMDispatcherServlet extends BaseServlet {
} }
} }
private String generatePath(final int index, final String[] pathTokens) {
final StringBuffer buffer = new StringBuffer();
buffer.append('/');
for (int i = 0; i < index; i++) {
buffer.append(pathTokens[i]);
buffer.append('/');
}
return buffer.toString();
}
public static String getContextPath() { public static String getContextPath() {
return s_contextPath; return s_contextPath;
} }

View File

@ -28,4 +28,4 @@ com.arsdigita.ui.admin.applications.desc.valiation.minmaxlength=The maximum leng
com.arsdigita.ui.admin.applications.url.label=URL com.arsdigita.ui.admin.applications.url.label=URL
com.arsdigita.ui.admin.applications.title.label=Title com.arsdigita.ui.admin.applications.title.label=Title
com.arsdigita.ui.admin.applications.desc.label=Description com.arsdigita.ui.admin.applications.desc.label=Description
ui.change_password=Change password ui.admin.change_password=Change password

View File

@ -28,4 +28,4 @@ com.arsdigita.ui.admin.applications.desc.valiation.minmaxlength=Die Beschreibung
com.arsdigita.ui.admin.applications.url.label=URL com.arsdigita.ui.admin.applications.url.label=URL
com.arsdigita.ui.admin.applications.title.label=Bezeichnung com.arsdigita.ui.admin.applications.title.label=Bezeichnung
com.arsdigita.ui.admin.applications.desc.label=Beschreibung com.arsdigita.ui.admin.applications.desc.label=Beschreibung
ui.change_password=Passwort \u00e4ndern ui.admin.change_password=Passwort \u00e4ndern

View File

@ -20,12 +20,12 @@ ui.debug.transform.off=Hide transformation
ui.debug.xml=View document XML ui.debug.xml=View document XML
ui.debug.xsl=Download XSL files ui.debug.xsl=Download XSL files
com.arsdigita.ui.admin.applications.tree.heading=Applications com.arsdigita.ui.admin.applications.tree.heading=Applications
com.arsdigita.ui.admin.applications.url.validation.not_blank= com.arsdigita.ui.admin.applications.url.validation.not_blank=The URL of an application instance can is mandatory.
com.arsdigita.ui.admin.applications.url.valiation.minmaxlength= com.arsdigita.ui.admin.applications.url.valiation.minmaxlength=The length of an URL of an application instance must be between 1 and 100 characters.
com.arsdigita.ui.admin.applications.title.validation.not_blank= com.arsdigita.ui.admin.applications.title.validation.not_blank=Title is mandatory for an application instance.
com.arsdigita.ui.admin.applications.title.valiation.minmaxlength= com.arsdigita.ui.admin.applications.title.valiation.minmaxlength=The minimum length of the title of an applicatio instance is one character, the maximum length are 200 characters
com.arsdigita.ui.admin.applications.desc.valiation.minmaxlength= com.arsdigita.ui.admin.applications.desc.valiation.minmaxlength=The maximum length of a descrption of an application instance are 4000 characters.
com.arsdigita.ui.admin.applications.url.label= com.arsdigita.ui.admin.applications.url.label=URL
com.arsdigita.ui.admin.applications.title.label= com.arsdigita.ui.admin.applications.title.label=Title
com.arsdigita.ui.admin.applications.desc.label= com.arsdigita.ui.admin.applications.desc.label=Description
ui.change_password= ui.admin.change_password=Change password

View File

@ -15,13 +15,17 @@ ui.sitemap.configure_sitemap_admin_page=TRANSLATE THIS: Configure SiteMap Admin
ui.sitemap.h4emselect_sitenode_to_view_detailsemh4=TRANSLATE THIS: <h4><em>Select SiteNode to View Details</em></h4> (ui.sitemap.h4emselect_sitenode_to_view_detailsemh4) ui.sitemap.h4emselect_sitenode_to_view_detailsemh4=TRANSLATE THIS: <h4><em>Select SiteNode to View Details</em></h4> (ui.sitemap.h4emselect_sitenode_to_view_detailsemh4)
ui.sitemap.configuration_menu_placeholder=TRANSLATE THIS: Configuration Menu Placeholder (ui.sitemap.configuration_menu_placeholder) ui.sitemap.configuration_menu_placeholder=TRANSLATE THIS: Configuration Menu Placeholder (ui.sitemap.configuration_menu_placeholder)
ui.sitemap.access_denied_to_sitemap=Vous n'avez pas acc\u00e8s au plan du site ui.sitemap.access_denied_to_sitemap=Vous n'avez pas acc\u00e8s au plan du site
com.arsdigita.ui.admin.applications.tree.heading= com.arsdigita.ui.admin.applications.tree.heading=Applications
com.arsdigita.ui.admin.applications.url.validation.not_blank= com.arsdigita.ui.admin.applications.url.validation.not_blank=The URL of an application instance can is mandatory.
com.arsdigita.ui.admin.applications.url.valiation.minmaxlength= com.arsdigita.ui.admin.applications.url.valiation.minmaxlength=The length of an URL of an application instance must be between 1 and 100 characters.
com.arsdigita.ui.admin.applications.title.validation.not_blank= com.arsdigita.ui.admin.applications.title.validation.not_blank=Title is mandatory for an application instance.
com.arsdigita.ui.admin.applications.title.valiation.minmaxlength= com.arsdigita.ui.admin.applications.title.valiation.minmaxlength=The minimum length of the title of an applicatio instance is one character, the maximum length are 200 characters
com.arsdigita.ui.admin.applications.desc.valiation.minmaxlength= com.arsdigita.ui.admin.applications.desc.valiation.minmaxlength=The maximum length of a descrption of an application instance are 4000 characters.
com.arsdigita.ui.admin.applications.url.label= com.arsdigita.ui.admin.applications.url.label=URL
com.arsdigita.ui.admin.applications.title.label= com.arsdigita.ui.admin.applications.title.label=Title
com.arsdigita.ui.admin.applications.desc.label= com.arsdigita.ui.admin.applications.desc.label=Description
ui.change_password= ui.admin.change_password=Change password
ui.debug.transform.off=Hide transformation
ui.debug.transform.on=Display transformation
ui.debug.xml=View document XML
ui.debug.xsl=Download XSL files

View File

@ -155,3 +155,4 @@ ui.admin.groups.couldnt_find_specified_group=Couldn't find the specified group
ui.admin.tab.users_groups_roles.title=Users/Groups/Roles ui.admin.tab.users_groups_roles.title=Users/Groups/Roles
ui.admin.tab.categories.title=Categories ui.admin.tab.categories.title=Categories
ui.admin.tab.registry.title=Registry ui.admin.tab.registry.title=Registry
ui.admin.change_password=Change password

View File

@ -155,3 +155,4 @@ ui.admin.groups.couldnt_find_specified_group=Konnte die spezifische Gruppe nicht
ui.admin.tab.users_groups_roles.title=Benutzer/Gruppen/Rollen ui.admin.tab.users_groups_roles.title=Benutzer/Gruppen/Rollen
ui.admin.tab.categories.title=Kategorien ui.admin.tab.categories.title=Kategorien
ui.admin.tab.registry.title=Registry ui.admin.tab.registry.title=Registry
ui.admin.change_password=Passwort \u00e4ndern

View File

@ -113,3 +113,4 @@ ui.admin.groups.couldnt_find_specified_group=Couldn't find the specified group
ui.admin.tab.users_groups_roles.title=Users/Groups/Roles ui.admin.tab.users_groups_roles.title=Users/Groups/Roles
ui.admin.tab.categories.title=Categories ui.admin.tab.categories.title=Categories
ui.admin.tab.registry.title=Registry ui.admin.tab.registry.title=Registry
ui.admin.change_password=Change password

View File

@ -98,3 +98,4 @@ ui.admin.groups.couldnt_find_specified_group=Impossible de trouver le groupe sp\
ui.admin.tab.users_groups_roles.title= ui.admin.tab.users_groups_roles.title=
ui.admin.tab.categories.title= ui.admin.tab.categories.title=
ui.admin.tab.registry.title= ui.admin.tab.registry.title=
ui.admin.change_password=Change password

View File

@ -93,7 +93,8 @@ processor, some are read from the configuration files of Foundry and some are de
</p> </p>
</foundry:doc-desc> </foundry:doc-desc>
</foundry:doc> </foundry:doc>
<xsl:param name="theme-prefix"/> <xsl:param name="theme-prefix"
select="concat($context-prefix, '/themes/libreccm-default')"/>
<foundry:doc section="devel" type="env-var"> <foundry:doc section="devel" type="env-var">
<foundry:doc-desc> <foundry:doc-desc>