
com.manydesigns.portofino.modules.AdminModule Maven / Gradle / Ivy
The newest version!
/*
* Copyright (C) 2005-2015 ManyDesigns srl. All rights reserved.
* http://www.manydesigns.com/
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 3 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package com.manydesigns.portofino.modules;
import com.manydesigns.portofino.actions.admin.SettingsAction;
import com.manydesigns.portofino.actions.admin.appwizard.ApplicationWizard;
import com.manydesigns.portofino.actions.admin.database.ConnectionProvidersAction;
import com.manydesigns.portofino.actions.admin.database.ReloadModelAction;
import com.manydesigns.portofino.actions.admin.database.TablesAction;
import com.manydesigns.portofino.actions.admin.groovy.GroovyAdminAction;
import com.manydesigns.portofino.actions.admin.mail.MailSettingsAction;
import com.manydesigns.portofino.actions.admin.modules.ModulesAction;
import com.manydesigns.portofino.actions.admin.info.InfoAction;
import com.manydesigns.portofino.actions.admin.page.RootChildrenAction;
import com.manydesigns.portofino.actions.admin.page.RootPermissionsAction;
import com.manydesigns.portofino.actions.admin.servletcontext.ServletContextAction;
import com.manydesigns.portofino.di.Inject;
import com.manydesigns.portofino.menu.MenuBuilder;
import com.manydesigns.portofino.menu.SimpleMenuAppender;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.ServletContext;
/*
* @author Paolo Predonzani - [email protected]
* @author Angelo Lupo - [email protected]
* @author Giampiero Granatella - [email protected]
* @author Alessio Stalla - [email protected]
*/
public class AdminModule implements Module {
public static final String copyright =
"Copyright (c) 2005-2015, ManyDesigns srl";
public final static String ADMIN_MENU = "com.manydesigns.portofino.menu.Menu.admin";
//**************************************************************************
// Fields
//**************************************************************************
@Inject(BaseModule.SERVLET_CONTEXT)
public ServletContext servletContext;
protected ModuleStatus status = ModuleStatus.CREATED;
//**************************************************************************
// Logging
//**************************************************************************
public static final Logger logger =
LoggerFactory.getLogger(AdminModule.class);
@Override
public String getModuleVersion() {
return ModuleRegistry.getPortofinoVersion();
}
@Override
public int getMigrationVersion() {
return 1;
}
@Override
public double getPriority() {
return 30;
}
@Override
public String getId() {
return "admin";
}
@Override
public String getName() {
return "Admin";
}
@Override
public int install() {
return 1;
}
@Override
public void init() {
logger.debug("Installing standard menu builders");
MenuBuilder adminMenu = new MenuBuilder();
SimpleMenuAppender group;
SimpleMenuAppender link;
//General configuration
group = SimpleMenuAppender.group("info", null, "info", 1.0);
adminMenu.menuAppenders.add(group);
link = SimpleMenuAppender.link(
"info", "info", null, "info", InfoAction.URL_BINDING, 1.0);
adminMenu.menuAppenders.add(link);
link = SimpleMenuAppender.link(
"info", "modules", null, "modules", ModulesAction.URL_BINDING, 2.0);
adminMenu.menuAppenders.add(link);
link = SimpleMenuAppender.link(
"info", "servlet-context", null, "servlet.context", ServletContextAction.URL_BINDING, 3.0);
adminMenu.menuAppenders.add(link);
//General configuration
group = SimpleMenuAppender.group("configuration", null, "configuration", 2.0);
adminMenu.menuAppenders.add(group);
link = SimpleMenuAppender.link(
"configuration", "settings", null, "settings", SettingsAction.URL_BINDING, 1.0);
adminMenu.menuAppenders.add(link);
link = SimpleMenuAppender.link(
"configuration", "topLevelPages", null, "top.level.pages", RootChildrenAction.URL_BINDING, 2.0);
adminMenu.menuAppenders.add(link);
link = SimpleMenuAppender.link(
"configuration", "groovy", null, "groovy", GroovyAdminAction.URL_BINDING, 3.0);
adminMenu.menuAppenders.add(link);
//Security
group = SimpleMenuAppender.group("security", null, "security", 3.0);
adminMenu.menuAppenders.add(group);
link = SimpleMenuAppender.link(
"security", "rootPermissions", null, "root.permissions", RootPermissionsAction.URL_BINDING, 1.0);
adminMenu.menuAppenders.add(link);
//Database & modeling
group = SimpleMenuAppender.group("dataModeling", null, "data.modeling", 4.0);
adminMenu.menuAppenders.add(group);
link = SimpleMenuAppender.link(
"dataModeling", "wizard", null, "wizard", ApplicationWizard.URL_BINDING, 1.0);
adminMenu.menuAppenders.add(link);
link = SimpleMenuAppender.link(
"dataModeling", "connectionProviders", null, "connection.providers", ConnectionProvidersAction.URL_BINDING, 2.0);
adminMenu.menuAppenders.add(link);
link = SimpleMenuAppender.link(
"dataModeling", "tables", null, "tables", TablesAction.BASE_ACTION_PATH, 3.0);
adminMenu.menuAppenders.add(link);
link = SimpleMenuAppender.link(
"dataModeling", "reloadModel", null, "reload.model", ReloadModelAction.URL_BINDING, 4.0);
adminMenu.menuAppenders.add(link);
//Mail
group = SimpleMenuAppender.group("mail", null, "mail", 5.0);
adminMenu.menuAppenders.add(group);
link = SimpleMenuAppender.link(
"mail", "Mail", null, "mail", MailSettingsAction.URL_BINDING, 1.0);
adminMenu.menuAppenders.add(link);
servletContext.setAttribute(ADMIN_MENU, adminMenu);
status = ModuleStatus.ACTIVE;
}
@Override
public void start() {
status = ModuleStatus.STARTED;
}
@Override
public void stop() {
status = ModuleStatus.STOPPED;
}
@Override
public void destroy() {
status = ModuleStatus.DESTROYED;
}
@Override
public ModuleStatus getStatus() {
return status;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy