/*
* Zed Attack Proxy (ZAP) and its related class files.
*
* ZAP is an HTTP/HTTPS proxy for assessing web application security.
*
* Copyright 2013 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.forceduser;
import java.awt.CardLayout;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JLabel;
import javax.swing.border.EmptyBorder;
import org.parosproxy.paros.Constant;
import org.parosproxy.paros.model.Session;
import org.zaproxy.zap.model.Context;
import org.zaproxy.zap.users.User;
import org.zaproxy.zap.view.AbstractContextPropertiesPanel;
import org.zaproxy.zap.view.LayoutHelper;
import org.zaproxy.zap.view.widgets.ContextPanelUsersSelectComboBox;
public class ContextForcedUserPanel extends AbstractContextPropertiesPanel {
private static final long serialVersionUID = -6668491574669367809L;
/** The Constant PANEL NAME. */
private static final String PANEL_NAME = Constant.messages.getString("forceduser.panel.title");
private ExtensionForcedUser extension;
private ContextPanelUsersSelectComboBox usersComboBox;
public ContextForcedUserPanel(ExtensionForcedUser extensionForcedUser, int contextId) {
super(contextId);
this.extension = extensionForcedUser;
initialize();
}
/**
* Initialize the panel.
*/
private void initialize() {
this.setLayout(new CardLayout());
this.setName(getContextIndex() + ": " + PANEL_NAME);
this.setLayout(new GridBagLayout());
this.setBorder(new EmptyBorder(2, 2, 2, 2));
this.add(new JLabel("<html><p>" + Constant.messages.getString("forceduser.panel.label.description")
+ "</p></html>"), LayoutHelper.getGBC(0, 0, 1, 1.0D));
// Forced User combo box
this.add(getUsersComboBox(), LayoutHelper.getGBC(0, 2, 1, 1.0D, new Insets(5, 0, 0, 0)));
// Padding
this.add(new JLabel(), LayoutHelper.getGBC(0, 99, 1, 1.0D, 1.0D));
}
private ContextPanelUsersSelectComboBox getUsersComboBox() {
if (usersComboBox == null) {
usersComboBox = new ContextPanelUsersSelectComboBox(getContextIndex());
}
return usersComboBox;
}
@Override
public void initContextData(Session session, Context uiSharedContext) {
usersComboBox.setSelectedInternalItem(extension.getForcedUser(getContextIndex()));
}
@Override
public void validateContextData(Session session) throws Exception {
// Nothing to validate
}
@Override
public void saveTemporaryContextData(Context uiSharedContext) {
// Nothing to save in the context
}
@Override
public void saveContextData(Session session) throws Exception {
extension.setForcedUser(getContextIndex(), (User) getUsersComboBox().getSelectedItem());
}
@Override
public String getHelpIndex() {
// TODO Needs to be filled
return null;
}
}