Package com.adito.table

Source Code of com.adito.table.TableItemActionMenuTree

        /*
*  Adito
*
*  Copyright (C) 2003-2006 3SP LTD. All Rights Reserved
*
*  This program is free software; you can redistribute it and/or
*  modify it under the terms of the GNU General Public License
*  as published by the Free Software Foundation; either version 2 of
*  the License, or (at your option) any later version.
*  This program 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 General Public License for more details.
*
*  You should have received a copy of the GNU General Public
*  License along with this program; if not, write to the Free Software
*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
     
package com.adito.table;

import javax.servlet.http.HttpServletRequest;

import com.adito.core.AvailableMenuItem;
import com.adito.core.MenuItem;
import com.adito.extensions.itemactions.DisableExtensionAction;
import com.adito.extensions.itemactions.EnableExtensionAction;
import com.adito.extensions.itemactions.ExtensionInformationAction;
import com.adito.extensions.itemactions.InstallExtensionAction;
import com.adito.extensions.itemactions.RemoveExtensionAction;
import com.adito.extensions.itemactions.StartExtensionAction;
import com.adito.extensions.itemactions.StopExtensionAction;
import com.adito.extensions.itemactions.UpdateExtensionAction;
import com.adito.navigation.MenuTree;
import com.adito.navigation.itemactions.RemoveFavoriteAction;
import com.adito.policyframework.Permission;
import com.adito.policyframework.PolicyConstants;
import com.adito.policyframework.ResourceType;
import com.adito.policyframework.itemactions.CloneResourceAction;
import com.adito.policyframework.itemactions.EditResourceAction;
import com.adito.policyframework.itemactions.RemovePolicyAction;
import com.adito.policyframework.itemactions.RemoveResourceAction;
import com.adito.properties.itemactions.RemoveProfileAction;
import com.adito.properties.itemactions.ViewProfileAction;
import com.adito.security.LogonController;
import com.adito.security.SessionInfo;
import com.adito.security.UserItem;
import com.adito.security.itemactions.DisableAuthenticationSchemeAction;
import com.adito.security.itemactions.EditAccountTableAction;
import com.adito.security.itemactions.EnableAuthenticationSchemeAction;
import com.adito.security.itemactions.MoveAuthenticationSchemeDownAction;
import com.adito.security.itemactions.MoveAuthenticationSchemeUpAction;
import com.adito.security.itemactions.RemoveAuthenticationSchemeAction;

/**
* Extension of {@link com.adito.navigation.MenuTree} used for the main
* menu navigation (i.e. the bar on the left in the default UI).
*/
public class TableItemActionMenuTree extends MenuTree {
    /**
     * Menu tree name
     */
    public static final String MENU_TABLE_ITEM_ACTION_MENU_TREE = "tableItemAction";

    /**
     * Constructor.
     */
    public TableItemActionMenuTree() {
        super(TableItemActionMenuTree.MENU_TABLE_ITEM_ACTION_MENU_TREE);
        addFavorites();
        addProfiles();
        addPersonalProfiles();
        addExtensions();
        addAccessRights();
        addUsers();
        addAuthenticationSchemes();
        addPolicies();
    }

    private void addFavorites() {
        addMenuItem(null, new MenuItem("favorites", "navigation", null, 100, false, SessionInfo.USER_CONSOLE_CONTEXT));
        addMenuItem("favorites", new RemoveFavoriteAction());
    }

    private void addProfiles() {
        addMenuItem(null, new MenuItem("profiles", "policyframework", null, 100, false, SessionInfo.ALL_CONTEXTS));
        addMenuItem("profiles", new ViewProfileAction());
        addMenuItem("profiles", new RemoveProfileAction());
        addMenuItem("profiles", new EditResourceAction(SessionInfo.ALL_CONTEXTS, "properties"));
        addMenuItem("profiles", new CloneResourceAction(SessionInfo.ALL_CONTEXTS, "properties"));
    }

    private void addPersonalProfiles() {
        addMenuItem(null, new MenuItem("personalProfiles", "policyframework", null, 100, false, SessionInfo.USER_CONSOLE_CONTEXT));
        addMenuItem("personalProfiles", new ViewProfileAction());
        addMenuItem("personalProfiles", new RemoveProfileAction());
        addMenuItem("personalProfiles", new EditResourceAction(SessionInfo.USER_CONSOLE_CONTEXT, "properties"));
        addMenuItem("personalProfiles", new CloneResourceAction(SessionInfo.USER_CONSOLE_CONTEXT, "properties"));
    }

    private void addAuthenticationSchemes() {
        addMenuItem(null, new MenuItem("authenticationSchemes", "security", null, 100, false, SessionInfo.ALL_CONTEXTS));
        addMenuItem("authenticationSchemes", new RemoveAuthenticationSchemeAction(SessionInfo.MANAGEMENT_CONSOLE_CONTEXT,
                        "security"));
        addMenuItem("authenticationSchemes", new EditResourceAction(SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, "security"));
        addMenuItem("authenticationSchemes", new CloneResourceAction(SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, "security"));
        addMenuItem("authenticationSchemes", new EnableAuthenticationSchemeAction());
        addMenuItem("authenticationSchemes", new DisableAuthenticationSchemeAction());
        addMenuItem("authenticationSchemes", new MoveAuthenticationSchemeUpAction());
        addMenuItem("authenticationSchemes", new MoveAuthenticationSchemeDownAction());
    }

    private void addPolicies() {
        addMenuItem(null, new MenuItem("policies", "security", null, 100, false, SessionInfo.ALL_CONTEXTS));
        addMenuItem("policies", new RemovePolicyAction(SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, "policyframework"));
        addMenuItem("policies", new EditResourceAction(SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, "policyframework"));
        addMenuItem("policies", new CloneResourceAction(SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, "policyframework"));
    }

    private void addExtensions() {
        addMenuItem(null, new MenuItem("extensionStore", "extensions", null, 100, false, SessionInfo.ALL_CONTEXTS));
        addMenuItem("extensionStore", new InstallExtensionAction());
        addMenuItem("extensionStore", new UpdateExtensionAction());
        addMenuItem("extensionStore", new RemoveExtensionAction());
        addMenuItem("extensionStore", new ExtensionInformationAction());
        addMenuItem("extensionStore", new EnableExtensionAction());
        addMenuItem("extensionStore", new DisableExtensionAction());
        addMenuItem("extensionStore", new StartExtensionAction());
        addMenuItem("extensionStore", new StopExtensionAction());
    }

    private void addUsers() {
        addMenuItem(null, new MenuItem("accounts", null, null, 100, false, SessionInfo.ALL_CONTEXTS));
        addMenuItem("accounts", getEditAccountAction());
        addMenuItem("accounts", getDeleteAccountAction());
        addMenuItem("accounts", getSetPasswordAction());
        addMenuItem("accounts", getEnableAccountAction());
        addMenuItem("accounts", getDisableAccountAction());
        addMenuItem("accounts", getResetPrivateKey());
        addMenuItem("accounts", getSendUserMessage());
    }

    private void addAccessRights() {
        addMenuItem(null, new MenuItem("accessRights", "policyframework", null, 100, false, SessionInfo.ALL_CONTEXTS));
        addMenuItem("accessRights", new EditResourceAction(SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, "policyframework"));
        addMenuItem("accessRights", new CloneResourceAction(SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, "policyframework"));
        addMenuItem("accessRights", new RemoveResourceAction(SessionInfo.MANAGEMENT_CONSOLE_CONTEXT, "policyframework"));
    }

    private static TableItemAction getEditAccountAction() {
        return new EditAccountTableAction("edit", 100, true, "/editAccount.do?actionTarget=edit&username={0}");
    }

    private static TableItemAction getDeleteAccountAction() {
        return new EditAccountTableAction("remove", 150, true,
                        "/showAvailableAccounts.do?actionTarget=confirmAccountDeletion&username={0}", false, true) {
            @Override
            public Permission[] getPermissions(ResourceType resourceType) {
                return new Permission[] { resourceType.getPermission(PolicyConstants.PERM_DELETE_ID) };
            }
        };
    }

    private static TableItemAction getSetPasswordAction() {
        return new EditAccountTableAction("setPassword", 210, false,
                        "/showAvailableAccounts.do?actionTarget=password&username={0}", true, false);
    }

    private static TableItemAction getEnableAccountAction() {
        return new EditAccountTableAction("enable", 200, false, "/showAvailableAccounts.do?actionTarget=enable&username={0}") {
            @Override
            public boolean isEnabled(UserItem userItem) throws Exception {
                return LogonController.ACCOUNT_LOCKED == userItem.getStatus()
                                || (LogonController.ACCOUNT_LOCKED != userItem.getStatus() && !userItem.getEnabled());
            }
        };
    }

    private static TableItemAction getDisableAccountAction() {
        return new EditAccountTableAction("disable", 200, false, "/showAvailableAccounts.do?actionTarget=disable&username={0}") {
            @Override
            public boolean isEnabled(UserItem userItem) throws Exception {
                return LogonController.ACCOUNT_LOCKED != userItem.getStatus() && userItem.getEnabled();
            }
        };
    }

    private static TableItemAction getResetPrivateKey() {
        return new EditAccountTableAction("resetPrivateKey", 240, false,
                        "/showAvailableAccounts.do?actionTarget=confirmResetPrivateKey&username={0}") {
            @Override
            public Permission[] getPermissions(ResourceType resourceType) {
                return new Permission[] {};
            }
        };
    }

    private static TableItemAction getSendUserMessage() {
        return new EditAccountTableAction("sendUserMessage", 290, false,
                        "/showAvailableAccounts.do?actionTarget=sendMessage&username={0}") {
            @Override
            public Permission[] getPermissions(ResourceType resourceType) {
                return new Permission[] {};
            }
        };
    }

    /*
     * (non-Javadoc)
     *
     * @see com.adito.navigation.MenuTree#createAvailableMenuItem(com.adito.core.MenuItem,
     *      com.adito.core.AvailableMenuItem,
     *      javax.servlet.http.HttpServletRequest, java.lang.String, int,
     *      com.adito.security.SessionInfo)
     */
    public AvailableMenuItem createAvailableMenuItem(MenuItem item, AvailableMenuItem parent, HttpServletRequest request,
                                                     String referer, int checkNavigationContext, SessionInfo info) {
        return new AvailableTableItemAction(item, parent, request, referer, checkNavigationContext, info);
    }
}
TOP

Related Classes of com.adito.table.TableItemActionMenuTree

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.