GlobalNavigation

Erweitert um einen AdminCenter Eintrag.

git-svn-id: https://svn.libreccm.org/ccm/trunk@2394 8810af33-2d31-482b-a856-94f89814c4df
master
quasi 2013-10-29 07:59:28 +00:00
parent 231ec5abf7
commit 66758056a2
1 changed files with 77 additions and 63 deletions

View File

@ -22,7 +22,13 @@ import com.arsdigita.bebop.PageState;
import com.arsdigita.bebop.SimpleComponent; import com.arsdigita.bebop.SimpleComponent;
import com.arsdigita.cms.CMS; import com.arsdigita.cms.CMS;
import com.arsdigita.cms.ContentCenter; import com.arsdigita.cms.ContentCenter;
import com.arsdigita.kernel.Kernel;
import com.arsdigita.kernel.permissions.PermissionDescriptor;
import com.arsdigita.kernel.permissions.PermissionService;
import com.arsdigita.kernel.permissions.PrivilegeDescriptor;
import com.arsdigita.ui.UI; import com.arsdigita.ui.UI;
import com.arsdigita.ui.admin.Admin;
import com.arsdigita.ui.login.LoginServlet;
import com.arsdigita.web.URL; import com.arsdigita.web.URL;
import com.arsdigita.xml.Element; import com.arsdigita.xml.Element;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
@ -38,10 +44,9 @@ import javax.servlet.http.HttpServletRequest;
// Made public (instead of unspecified, resulting in protected) in 6.6.8 // Made public (instead of unspecified, resulting in protected) in 6.6.8
public class GlobalNavigation extends SimpleComponent { public class GlobalNavigation extends SimpleComponent {
private static final Logger s_log = Logger.getLogger private static final Logger s_log = Logger.getLogger(GlobalNavigation.class);
(GlobalNavigation.class);
private final String m_centerPath; private final String m_centerPath;
private final String m_adminPath;
private final String m_wspcPath; private final String m_wspcPath;
private final String m_signOutPath; private final String m_signOutPath;
private final String m_helpPath; private final String m_helpPath;
@ -51,8 +56,9 @@ public class GlobalNavigation extends SimpleComponent {
*/ */
public GlobalNavigation() { public GlobalNavigation() {
m_centerPath = ContentCenter.getURL(); m_centerPath = ContentCenter.getURL();
m_adminPath = Admin.getInstance().getServletPath();
m_wspcPath = UI.getWorkspaceURL(); m_wspcPath = UI.getWorkspaceURL();
m_signOutPath = UI.getLogoutPageURL(); m_signOutPath = LoginServlet.getLogoutPageURL();
m_helpPath = "/nowhere"; // We don't have this yet XXX. m_helpPath = "/nowhere"; // We don't have this yet XXX.
} }
@ -66,15 +72,23 @@ public class GlobalNavigation extends SimpleComponent {
if (isVisible(state)) { if (isVisible(state)) {
final HttpServletRequest sreq = state.getRequest(); final HttpServletRequest sreq = state.getRequest();
final Element nav = parent.newChildElement final Element nav = parent.newChildElement("cms:globalNavigation", CMS.CMS_XML_NS);
("cms:globalNavigation", CMS.CMS_XML_NS);
final String centerTitle = lz("cms.ui.content_center"); final String centerTitle = lz("cms.ui.content_center");
final String adminTitle = lz("cms.ui.admin_center");
final String wspcTitle = lz("cms.ui.my_workspace"); final String wspcTitle = lz("cms.ui.my_workspace");
final String signOutTitle = lz("cms.ui.sign_out"); final String signOutTitle = lz("cms.ui.sign_out");
final String helpTitle = lz("cms.ui.help"); final String helpTitle = lz("cms.ui.help");
link(sreq, nav, "cms:contentCenter", m_centerPath, centerTitle); link(sreq, nav, "cms:contentCenter", m_centerPath, centerTitle);
/* If the current user has admin permissions, insert a link to the admin center */
if (PermissionService.checkPermission(new PermissionDescriptor(
PrivilegeDescriptor.ADMIN,
Admin.getInstance(),
Kernel.getContext().getParty()))) {
link(sreq, nav, "cms:adminCenter", m_adminPath, adminTitle);
}
link(sreq, nav, "cms:workspace", m_wspcPath, wspcTitle); link(sreq, nav, "cms:workspace", m_wspcPath, wspcTitle);
link(sreq, nav, "cms:signOut", m_signOutPath, signOutTitle); link(sreq, nav, "cms:signOut", m_signOutPath, signOutTitle);
link(sreq, nav, "cms:help", m_helpPath, helpTitle); link(sreq, nav, "cms:help", m_helpPath, helpTitle);