/* * Zed Attack Proxy (ZAP) and its related class files. * * ZAP is an HTTP/HTTPS proxy for assessing web application security. * * Copyright 2012 The ZAP Development Team * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.zaproxy.zap.extension.stdmenus; import org.parosproxy.paros.model.SiteNode; import org.zaproxy.zap.model.Context; import org.zaproxy.zap.users.User; import org.zaproxy.zap.view.messagecontainer.http.HttpMessageContainer; import org.zaproxy.zap.view.popup.PopupMenuItemSiteNodeContainer; /** * The PopupMenu corresponding to a User valid in a Context. */ public abstract class PopupUserMenu extends PopupMenuItemSiteNodeContainer { /** The Constant serialVersionUID. */ private static final long serialVersionUID = 1608127089952566119L; /** The user. */ private User user; /** The parent menu name. */ private String parentMenuName; /** The context. */ private Context context; public PopupUserMenu(Context context, User user, String parentMenu) { super(context.getName() + ": " + user.getName(), true); this.user = user; this.parentMenuName = parentMenu; this.context = context; if (!user.isEnabled()) this.setText(this.getText() + " (disabled)"); } @Override protected boolean isButtonEnabledForSiteNode(SiteNode siteNode) { return this.user.isEnabled() && context.isInContext(siteNode); } @Override public String getParentMenuName() { return parentMenuName; } @Override public boolean isSubMenu() { return true; } @Override protected boolean isEnableForInvoker(Invoker invoker, HttpMessageContainer httpMessageContainer) { switch (invoker) { case ALERTS_PANEL: case ACTIVE_SCANNER_PANEL: case FORCED_BROWSE_PANEL: case FUZZER_PANEL: return false; case HISTORY_PANEL: case SITES_PANEL: case SEARCH_PANEL: default: return true; } } @Override public boolean isSafe() { return true; } /** * Gets the user. * * @return the user */ public User getUser() { return user; } public Context getContext() { return context; } }