You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by sm...@apache.org on 2014/11/11 21:35:21 UTC
[11/27] directory-fortress-commander git commit: change package
structure and names, pom improvements, license
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/ObjectListPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/ObjectListPanel.java b/src/main/java/org/openldap/commander/panel/ObjectListPanel.java
deleted file mode 100644
index d516d49..0000000
--- a/src/main/java/org/openldap/commander/panel/ObjectListPanel.java
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 1998-2014 The OpenLDAP Foundation.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License.
- *
- * A copy of this license is available in the file LICENSE in the
- * top-level directory of the distribution or, alternatively, at
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-package org.openldap.commander.panel;
-
-import com.inmethod.grid.IGridColumn;
-import com.inmethod.grid.SizeUnit;
-import com.inmethod.grid.column.PropertyColumn;
-import com.inmethod.grid.treegrid.TreeGrid;
-import org.apache.log4j.Logger;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.attributes.AjaxCallListener;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.event.IEvent;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.form.FormComponentPanel;
-import org.apache.wicket.markup.html.form.Radio;
-import org.apache.wicket.markup.html.form.RadioGroup;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.PropertyModel;
-import org.openldap.commander.GlobalIds;
-import org.openldap.commander.GlobalUtils;
-import org.openldap.commander.ObjectListModel;
-import org.openldap.commander.SaveModelEvent;
-import org.openldap.commander.SecureIndicatingAjaxButton;
-import org.openldap.commander.SecureIndicatingAjaxLink;
-import org.openldap.commander.SelectModelEvent;
-import org.openldap.fortress.rbac.FortEntity;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.Model;
-import org.openldap.fortress.rbac.OrgUnit;
-import org.openldap.fortress.rbac.PermObj;
-import org.openldap.fortress.util.attr.VUtil;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.TreeNode;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-/**
- *
- * @author Shawn McKinney
- * @version $Rev$
- */
-public class ObjectListPanel extends FormComponentPanel
-{
- private static final Logger log = Logger.getLogger(ObjectListPanel.class.getName());
- private Form listForm;
- private DefaultTreeModel treeModel;
- private DefaultMutableTreeNode node;
- private TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String> grid;
- private DefaultMutableTreeNode rootNode;
- private TextField searchValFld;
- private RadioGroup radioGroup;
- private String searchVal;
- private char selectedRadioButton;
- private static final char NAMES = 'N';
- private static final char OUS = 'O';
- private boolean isAdmin;
-
- public ObjectListPanel(String id, final boolean isAdmin)
- {
- super( id );
- this.isAdmin = isAdmin;
- ObjectListModel objectListModel = new ObjectListModel( new PermObj( "" ), isAdmin, GlobalUtils.getRbacSession( this ) );
- setDefaultModel(objectListModel);
- addGrid();
- radioGroup = new RadioGroup("searchOptions", new PropertyModel(this, "selectedRadioButton"));
- add( radioGroup );
- Radio objectRb = new Radio("objectRb", new Model(new Character(NAMES)));
- radioGroup.add(objectRb);
- Radio ouRb = new Radio("ouRb", new Model(new Character(OUS)));
- radioGroup.add(ouRb);
- addOUSearchModal(ouRb);
- radioGroup.setOutputMarkupId( true );
- radioGroup.setRenderBodyOnly( false );
- searchValFld = new TextField(GlobalIds.SEARCH_VAL, new PropertyModel<String>(this, GlobalIds.SEARCH_VAL));
- searchValFld.setOutputMarkupId( true );
- AjaxFormComponentUpdatingBehavior ajaxUpdater = new AjaxFormComponentUpdatingBehavior(GlobalIds.ONBLUR)
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( searchValFld );
- }
- };
- searchValFld.add(ajaxUpdater);
- radioGroup.add( searchValFld );
-
- this.listForm.add(radioGroup);
- selectedRadioButton = NAMES;
-
- this.listForm.add( new SecureIndicatingAjaxButton( GlobalIds.SEARCH, GlobalIds.REVIEW_MGR, "findPermObjs" )
- {
- @Override
- protected void onSubmit( AjaxRequestTarget target, Form form )
- {
- log.debug( ".search.onSubmit selected radio button: " + selectedRadioButton );
- info( "Searching Permission Objects..." );
- if ( !VUtil.isNotNullOrEmpty( searchVal ) )
- {
- searchVal = "";
- }
- PermObj srchObject = new PermObj();
- switch ( selectedRadioButton )
- {
- case NAMES:
- log.debug( ".onSubmit OBJECT RB selected" );
- srchObject.setObjName( searchVal );
- break;
- case OUS:
- log.debug( ".onSubmit OUS RB selected" );
- srchObject.setOu( searchVal );
- break;
- }
- setDefaultModel( new ObjectListModel<PermObj>( srchObject, isAdmin,
- GlobalUtils.getRbacSession( this ) ) );
- treeModel.reload();
- rootNode.removeAllChildren();
- List<PermObj> permObjs = ( List<PermObj> ) getDefaultModelObject();
- if ( VUtil.isNotNullOrEmpty( permObjs ) )
- {
- for ( PermObj permObj : permObjs )
- rootNode.add( new DefaultMutableTreeNode( permObj ) );
- info( "Search returned " + permObjs.size() + " matching objects" );
- }
- else
- {
- info( "No matching objects found" );
- }
- target.add( grid );
- }
-
- @Override
- public void onError( AjaxRequestTarget target, Form form )
- {
- log.warn( ".search.onError" );
- target.add();
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- } );
- }
-
- @Override
- public void onEvent(IEvent event)
- {
- if (event.getPayload() instanceof SaveModelEvent)
- {
- SaveModelEvent modelEvent = (SaveModelEvent) event.getPayload();
- switch (modelEvent.getOperation())
- {
- case ADD:
- add(modelEvent.getEntity());
- break;
- case UPDATE:
- modelChanged();
- break;
- case DELETE:
- prune();
- break;
- default:
- log.error( "onEvent caught invalid operation" );
- break;
- }
- AjaxRequestTarget target = ((SaveModelEvent) event.getPayload()).getAjaxRequestTarget();
- log.debug(".onEvent AJAX - ObjectListPanel - SaveModelEvent: " + target.toString());
- }
- }
-
- private void removeSelectedItems(TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String> grid)
- {
- Collection<IModel<DefaultMutableTreeNode>> selected = grid.getSelectedItems();
- for (IModel<DefaultMutableTreeNode> model : selected)
- {
- DefaultMutableTreeNode node = model.getObject();
- treeModel.removeNodeFromParent(node);
- PermObj permObj = (PermObj) node.getUserObject();
- log.debug(".removeSelectedItems user node: " + permObj.getObjName());
- List<PermObj> permObjs = ((List<PermObj>) getDefaultModel().getObject());
- permObjs.remove(permObj.getObjName());
- }
- }
-
- private DefaultTreeModel createTreeModel(List<PermObj> permObjs)
- {
- DefaultTreeModel model;
- PermObj rootObject = new PermObj( );
- //rootObject.setObjName( "Permission Objects" );
- rootNode = new DefaultMutableTreeNode(rootObject);
- model = new DefaultTreeModel(rootNode);
- if (permObjs == null)
- log.debug("no Permission Objects found");
- else
- {
- log.debug(".createTreeModel Permission Objects found:" + permObjs.size());
- for (PermObj permObj : permObjs)
- rootNode.add(new DefaultMutableTreeNode(permObj));
- }
- return model;
- }
-
- private void addGrid()
- {
- List<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>> columns =
- new ArrayList<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>>();
-
-
- PropertyColumn objName = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Object Name"), "userObject.ObjName");
- objName.setInitialSize( 300 );
- columns.add(objName);
-
- PropertyColumn ou = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Perm Organization"), "userObject.Ou");
- ou.setInitialSize(200);
- columns.add(ou);
-
- PropertyColumn description = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Description"), "userObject.Description");
- description.setInitialSize( 500 );
- columns.add(description);
-
- PropertyColumn type = new PropertyColumn(new Model("Type"), "userObject.Type");
- type.setInitialSize( 200 );
- columns.add(type);
-
- List<PermObj> permObjs = (List<PermObj>) getDefaultModel().getObject();
- treeModel = createTreeModel(permObjs);
- grid = new TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String>("objecttreegrid", treeModel, columns)
- {
- @Override
- public void selectItem(IModel itemModel, boolean selected)
- {
- node = (DefaultMutableTreeNode) itemModel.getObject();
- if(!node.isRoot())
- {
- PermObj permObj = (PermObj) node.getUserObject();
- log.debug("TreeGrid.addGrid.selectItem selected permission object =" + permObj.getObjName());
- if (super.isItemSelected(itemModel))
- {
- log.debug("TreeGrid.addGrid.selectItem item is selected");
- super.selectItem(itemModel, false);
- }
- else
- {
- super.selectItem(itemModel, true);
- SelectModelEvent.send(getPage(), this, permObj);
- }
- }
- }
- };
- grid.setContentHeight(50, SizeUnit.EM);
- grid.setAllowSelectMultiple(false);
- grid.setClickRowToSelect(true);
- grid.setClickRowToDeselect(false);
- grid.setSelectToEdit(false);
- // expand the root node
- grid.getTreeState().expandNode((TreeNode) treeModel.getRoot());
- this.listForm = new Form("objectlistform");
- this.listForm.add(grid);
- add(this.listForm);
- grid.setOutputMarkupId(true);
- }
-
- private void addOUSearchModal(Radio ouRb)
- {
- final ModalWindow ousModalWindow;
- listForm.add( ousModalWindow = new ModalWindow( "ousearchmodal" ) );
- final OUSearchModalPanel ouSearchModalPanel = new OUSearchModalPanel( ousModalWindow.getContentId(), ousModalWindow, false );
- ousModalWindow.setContent( ouSearchModalPanel );
- ousModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
- {
- @Override
- public void onClose( AjaxRequestTarget target )
- {
- OrgUnit ou = ouSearchModalPanel.getSelection();
- if ( ou != null )
- {
- searchVal = ou.getName();
- selectedRadioButton = OUS;
- target.add( radioGroup );
- }
- }
- } );
-
- ouRb.add( new SecureIndicatingAjaxLink( "ouAssignLinkLbl", GlobalIds.DEL_REVIEW_MGR, "searchOU" )
- {
- public void onClick(AjaxRequestTarget target)
- {
- String msg = "clicked on ou search";
- msg += "ouSelection: " + searchVal;
- ouSearchModalPanel.setSearchVal( searchVal );
- log.debug( msg );
- target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
- ousModalWindow.show( target );
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- });
-
- ousModalWindow.setTitle( "Permission Object Organizational Unit Search Modal" );
- ousModalWindow.setInitialWidth( 450 );
- ousModalWindow.setInitialHeight( 450 );
- ousModalWindow.setCookieName( "permou-modal" );
- }
-
- public void add(FortEntity entity)
- {
- if (getDefaultModelObject() != null)
- {
- List<PermObj> permObjs = ((List<PermObj>) getDefaultModelObject());
- permObjs.add( ( PermObj ) entity );
- treeModel.insertNodeInto(new DefaultMutableTreeNode(entity), rootNode, 0);
- //treeModel.insertNodeInto(new DefaultMutableTreeNode(entity), rootNode, permObjs.size());
- }
- }
-
- public void prune()
- {
- removeSelectedItems(grid);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/ObjectSearchModalPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/ObjectSearchModalPanel.java b/src/main/java/org/openldap/commander/panel/ObjectSearchModalPanel.java
deleted file mode 100644
index 7e4670f..0000000
--- a/src/main/java/org/openldap/commander/panel/ObjectSearchModalPanel.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 1998-2014 The OpenLDAP Foundation.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License.
- *
- * A copy of this license is available in the file LICENSE in the
- * top-level directory of the distribution or, alternatively, at
- * <http://www.OpenLDAP.org/license.html>.
- */
-package org.openldap.commander.panel;
-
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.PageableListView;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.openldap.commander.GlobalUtils;
-import org.openldap.fortress.ReviewMgr;
-import org.openldap.fortress.rbac.PermObj;
-
-/**
- *
- * @author Shawn McKinney
- * @version $Rev$
- */
-public class ObjectSearchModalPanel extends Panel
-{
- @SpringBean
- private ReviewMgr reviewMgr;
- private static final Logger LOG = Logger.getLogger(ObjectSearchModalPanel.class.getName());
- private ModalWindow window;
- private PermObj objectSelection;
- private String objectSearchVal;
- private boolean isAdmin;
-
- /**
- * @param id
- */
- public ObjectSearchModalPanel( String id, ModalWindow window, final boolean isAdmin )
- {
- super( id );
- this.reviewMgr.setAdmin( GlobalUtils.getRbacSession( this ) );
- this.window = window;
- loadPanel();
- }
-
- public void loadPanel()
- {
- LoadableDetachableModel requests = getListViewModel();
- PageableListView ouView = createListView( requests );
- add( ouView );
- add( new AjaxPagingNavigator( "navigator", ouView ) );
- }
-
- private PageableListView createListView( final LoadableDetachableModel requests )
- {
- final PageableListView listView = new PageableListView( "dataview", requests, 16 )
- {
- @Override
- protected void populateItem( final ListItem item )
- {
- final PermObj modelObject = ( PermObj ) item.getModelObject();
- item.add( new AjaxLink<Void>( "select" )
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onClick(AjaxRequestTarget target)
- {
- objectSelection = modelObject;
- window.close( target );
- }
- } );
- item.add( new Label( "objName", new PropertyModel( item.getModel(), "objName" ) ) );
- item.add( new Label( "description", new PropertyModel( item.getModel(), "description" ) ) );
- item.add( new Label( "ou", new PropertyModel( item.getModel(), "ou" ) ) );
- item.add( new Label( "type", new PropertyModel( item.getModel(), "type" ) ) );
- }
- };
- return listView;
- }
-
- private LoadableDetachableModel getListViewModel()
- {
- final LoadableDetachableModel ret = new LoadableDetachableModel()
- {
- @Override
- protected Object load()
- {
- List<?> objects = null;
- try
- {
- objectSelection = null;
- if(objectSearchVal == null)
- objectSearchVal = "";
-
- PermObj permObj = new PermObj( objectSearchVal );
- permObj.setAdmin( isAdmin );
- objects = reviewMgr.findPermObjs( permObj );
- }
- catch ( org.openldap.fortress.SecurityException se )
- {
- String error = "loadPanel caught SecurityException=" + se;
- LOG.error( error );
- }
- return objects;
- }
- };
- return ret;
- }
-
- public void setAdmin( boolean admin )
- {
- isAdmin = admin;
- }
-
- public PermObj getSelection()
- {
- return objectSelection;
- }
-
- public void setSearchVal( String objectSearchVal )
- {
- this.objectSearchVal = objectSearchVal;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/PermDetailPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/PermDetailPanel.java b/src/main/java/org/openldap/commander/panel/PermDetailPanel.java
deleted file mode 100644
index 5859dc5..0000000
--- a/src/main/java/org/openldap/commander/panel/PermDetailPanel.java
+++ /dev/null
@@ -1,557 +0,0 @@
-/*
- * This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 1998-2014 The OpenLDAP Foundation.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License.
- *
- * A copy of this license is available in the file LICENSE in the
- * top-level directory of the distribution or, alternatively, at
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-package org.openldap.commander.panel;
-
-import com.googlecode.wicket.kendo.ui.form.button.AjaxButton;
-import com.googlecode.wicket.kendo.ui.form.combobox.ComboBox;
-import org.apache.log4j.Logger;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.attributes.AjaxCallListener;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
-import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
-import org.apache.wicket.event.IEvent;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.FormComponentPanel;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.openldap.commander.GlobalIds;
-import org.openldap.commander.GlobalUtils;
-import org.openldap.commander.SaveModelEvent;
-import org.openldap.commander.SecureIndicatingAjaxButton;
-import org.openldap.commander.SelectModelEvent;
-import org.openldap.fortress.AdminMgr;
-import org.openldap.fortress.DelAdminMgr;
-import org.openldap.fortress.rbac.AdminRole;
-import org.openldap.fortress.rbac.PermObj;
-import org.openldap.fortress.rbac.Permission;
-import org.openldap.fortress.rbac.UserRole;
-import org.openldap.fortress.util.attr.VUtil;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created with IntelliJ IDEA.
- * User: kpmckinn
- * Date: 2/26/13
- * Time: 9:27 PM
- * To change this template use File | Settings | File Templates.
- */
-public class PermDetailPanel extends FormComponentPanel
-{
- @SpringBean
- private AdminMgr adminMgr;
- private static final String ROLES_SELECTION = "rolesSelection";
- private static final Logger log = Logger.getLogger(PermDetailPanel.class.getName());
- private Form editForm;
- private Displayable display;
- private boolean isAdmin;
-
- @SpringBean
- private DelAdminMgr delAdminMgr;
-
- public Form getForm()
- {
- return this.editForm;
- }
-
- public PermDetailPanel(String id, Displayable display, final boolean isAdmin)
- {
- super(id);
- this.isAdmin = isAdmin;
- this.adminMgr.setAdmin( GlobalUtils.getRbacSession( this ) );
- this.editForm = new PermDetailForm(GlobalIds.EDIT_FIELDS, new CompoundPropertyModel<Permission>(new Permission()));
- this.display = display;
- add(editForm);
- }
-
- public class PermDetailForm extends Form
- {
- private ComboBox<String> rolesCB;
- private Component component;
- private String rolesSelection;
- private List<String> roles = new ArrayList<String>();
- private UserRole roleConstraint = new UserRole();
- private TextField objectTF;
-
-
- public PermDetailForm(String id, final IModel<Permission> model)
- {
- super(id, model);
- add( new SecureIndicatingAjaxButton( GlobalIds.ADD, GlobalIds.ADMIN_MGR, "addPermission" )
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- log.debug(".onSubmit Add");
- Permission perm = (Permission)form.getModel().getObject();
- perm.setAdmin( isAdmin );
- updateEntityWithComboData(perm);
- try
- {
- adminMgr.addPermission(perm);
- roles.add( rolesSelection );
- rolesSelection = "";
- component = editForm;
- SaveModelEvent.send(getPage(), this, perm, target, SaveModelEvent.Operations.ADD);
- String msg = "Perm objName: " + perm.getObjName() + " opName: " + perm.getOpName() + " has been added";
- display.setMessage(msg);
- }
- catch (org.openldap.fortress.SecurityException se)
- {
- String error = ".onSubmit caught SecurityException=" + se;
- log.error(error);
- display.setMessage(error);
- display.display();
- }
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- log.info("PermDetailPanel.add.onError caught");
- target.add();
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- });
- add( new SecureIndicatingAjaxButton( GlobalIds.COMMIT, GlobalIds.ADMIN_MGR, "updatePermission" )
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- log.debug(".onSubmit Commit");
- Permission perm = (Permission)form.getModel().getObject();
- perm.setAdmin( isAdmin );
- updateEntityWithComboData(perm);
- try
- {
- if(isAdmin )
- {
- if(VUtil.isNotNullOrEmpty( rolesSelection ) )
- {
- delAdminMgr.grantPermission( perm, new AdminRole(rolesSelection) );
- }
- else
- {
- delAdminMgr.updatePermission(perm);
- }
- }
- else
- {
- adminMgr.updatePermission(perm);
- }
- roles.add( rolesSelection );
- String msg = "Perm objName: " + perm.getObjName() + " opName: " + perm.getOpName() + " has been updated";
- SaveModelEvent.send(getPage(), this, perm, target, SaveModelEvent.Operations.UPDATE);
- rolesSelection = "";
- component = editForm;
- display.setMessage(msg);
- }
- catch (org.openldap.fortress.SecurityException se)
- {
- String error = ".onSubmit caught SecurityException=" + se;
- log.error(error);
- display.setMessage(error);
- display.display();
- }
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- log.warn("PermDetailPanel.commit.onError");
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- });
- add( new SecureIndicatingAjaxButton( GlobalIds.DELETE, GlobalIds.ADMIN_MGR, "deletePermission" )
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- log.debug(".onSubmit Delete");
- Permission perm = (Permission)form.getModel().getObject();
- perm.setAdmin( isAdmin );
- try
- {
- adminMgr.deletePermission(perm);
- form.setModelObject( new Permission() );
- rolesSelection = "";
- roles = new ArrayList<String>();
- rolesCB = new ComboBox<String>( "roles", new PropertyModel<String>( editForm, ROLES_SELECTION ),roles );
- editForm.addOrReplace(rolesCB);
- modelChanged();
- String msg = "Perm objName: " + perm.getObjName() + " opName: " + perm.getOpName() + " has been deleted";
- SaveModelEvent.send(getPage(), this, perm, target, SaveModelEvent.Operations.DELETE);
- component = editForm;
- display.setMessage(msg);
- }
- catch (org.openldap.fortress.SecurityException se)
- {
- String error = ".onSubmit caught SecurityException=" + se;
- log.error(error);
- display.setMessage(error);
- display.display();
- }
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- log.warn("ControlPanel.delete.onError");
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- });
- add(new AjaxSubmitLink(GlobalIds.CANCEL)
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- setModelObject(new Permission());
- modelChanged();
- rolesSelection = "";
- roles = new ArrayList<String>();
- rolesCB = new ComboBox<String>( "roles", new PropertyModel<String>( editForm, ROLES_SELECTION ),roles );
- editForm.addOrReplace(rolesCB);
- String msg = "Perm cancelled input form";
- component = editForm;
- display.setMessage(msg);
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- log.warn("ControlPanel.cancel.onError");
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- });
-
- objectTF = new TextField( GlobalIds.OBJ_NAME );
- // making this required prevents the object modal from opening when field empty:
- //objectTF.setRequired( true );
- objectTF.setOutputMarkupId( true );
- add( objectTF );
- addObjectSearchModal();
-
- if(isAdmin)
- {
- add( new Label( "permDetailLabel", "Administrative Permission Operation Detail" ) );
- }
- else
- {
- add( new Label( "permDetailLabel", "RBAC Permission Operation Detail" ) );
- }
-
- TextField opName = new TextField(GlobalIds.OP_NAME);
- add(opName);
- opName.setRequired(false);
- TextField objId = new TextField( GlobalIds.OBJECT_ID );
- add(objId);
- Label internalId = new Label("internalId");
- add(internalId);
- rolesCB = new ComboBox<String>( "roles", new PropertyModel<String>( this, ROLES_SELECTION ), roles );
- add(rolesCB);
- setOutputMarkupId(true);
- addRoleSearchModal();
- add( new AjaxButton( "roles.delete" )
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onSubmit( AjaxRequestTarget target, Form<?> form )
- {
- String msg = "clicked on roles.delete";
- if ( VUtil.isNotNullOrEmpty( rolesSelection ) )
- {
- msg += " selection:" + rolesSelection;
- Permission perm = ( Permission ) form.getModel().getObject();
- if ( perm.getRoles() != null )
- {
- perm.getRoles().remove( rolesSelection );
- roles.remove( rolesSelection );
- rolesSelection = "";
- component = editForm;
- msg += ", was removed from local, commit to persist changes on server";
- }
- else
- {
- msg += ", no action taken because permission does not have role set";
- }
- }
- else
- {
- msg += ", no action taken because role selection is empty";
- }
- display.setMessage( msg );
- log.debug( msg );
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- } );
- }
-
- private void addObjectSearchModal()
- {
- final ModalWindow objectsModalWindow;
- add( objectsModalWindow = new ModalWindow( "objectsmodal" ) );
- final ObjectSearchModalPanel objectSearchModalPanel = new ObjectSearchModalPanel( objectsModalWindow.getContentId(), objectsModalWindow, isAdmin );
- objectsModalWindow.setContent( objectSearchModalPanel );
- objectsModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
- {
- @Override
- public void onClose( AjaxRequestTarget target )
- {
- PermObj permObj = objectSearchModalPanel.getSelection();
- if ( permObj != null )
- {
- Permission perm = ( Permission ) editForm.getModel().getObject();
- perm.setObjName( permObj.getObjName() );
- target.add( objectTF );
- }
- }
- } );
-
- add( new AjaxButton( "objName.search" )
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onSubmit( AjaxRequestTarget target, Form<?> form )
- {
- String msg = "clicked on ObjectNames search";
- Permission perm = ( Permission ) editForm.getModel().getObject();
- msg += perm.getObjName() != null ? ": " + perm.getObjName() : "";
- objectSearchModalPanel.setSearchVal( perm.getObjName() );
- objectSearchModalPanel.setAdmin( isAdmin );
- display.setMessage( msg );
- log.debug( msg );
- target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
- objectsModalWindow.show( target );
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- } );
-
- String modalLabel;
- if(isAdmin)
- {
- modalLabel = "Admin Permission Object Selection Modal";
- }
- else
- {
- modalLabel = "RBAC Permission Object Selection Modal";
- }
- objectsModalWindow.setTitle( modalLabel );
- objectsModalWindow.setInitialWidth( 700 );
- objectsModalWindow.setInitialHeight( 450 );
- objectsModalWindow.setCookieName( "objects-modal" );
- }
-
- private void addRoleSearchModal()
- {
- final ModalWindow rolesModalWindow;
- add( rolesModalWindow = new ModalWindow( "permrolesmodal" ) );
- final RoleSearchModalPanel roleSearchModalPanel = new RoleSearchModalPanel( rolesModalWindow.getContentId(), rolesModalWindow, isAdmin );
- rolesModalWindow.setContent( roleSearchModalPanel );
- rolesModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
- {
- @Override
- public void onClose( AjaxRequestTarget target )
- {
- roleConstraint = roleSearchModalPanel.getRoleSelection();
- if ( roleConstraint != null )
- {
- rolesSelection = roleConstraint.getName();
- component = editForm;
- }
- }
- } );
-
- add( new AjaxButton( "permroles.search" )
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- protected void onSubmit( AjaxRequestTarget target, Form<?> form )
- {
- String msg = "clicked on roles search";
- msg += rolesSelection != null ? ": " + rolesSelection : "";
- roleSearchModalPanel.setRoleSearchVal( rolesSelection );
- display.setMessage( msg );
- log.debug( msg );
- target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
- rolesModalWindow.show( target );
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- } );
-
- String modalLabel;
- if(isAdmin)
- {
- modalLabel = "Admin Role Selection Modal";
- }
- else
- {
- modalLabel = "RBAC Role Selection Modal";
- }
- rolesModalWindow.setTitle( modalLabel );
- rolesModalWindow.setInitialWidth( 700 );
- rolesModalWindow.setInitialHeight( 450 );
- rolesModalWindow.setCookieName( "role-assign-modal" );
- }
-
- private void updateEntityWithComboData(Permission perm)
- {
- String szValue = rolesCB.getModelObject();
- if(VUtil.isNotNullOrEmpty(szValue))
- {
- perm.setRole(szValue);
- }
- }
-
- @Override
- public void onEvent(final IEvent<?> event)
- {
- if (event.getPayload() instanceof SelectModelEvent)
- {
- SelectModelEvent modelEvent = (SelectModelEvent) event.getPayload();
- Permission perm = (Permission) modelEvent.getEntity();
- this.setModelObject(perm);
- rolesSelection = "";
- if(VUtil.isNotNullOrEmpty(perm.getRoles()))
- {
- roles = new ArrayList<String>(perm.getRoles());
- rolesCB = new ComboBox<String>( "roles", new PropertyModel<String>( this, ROLES_SELECTION ),roles );
- }
- else
- {
- roles = new ArrayList<String>();
- rolesCB = new ComboBox<String>( "roles", new PropertyModel<String>( this, ROLES_SELECTION ),roles );
- }
- editForm.addOrReplace(rolesCB);
- String msg = "Perm objName: " + perm.getObjName() + " opName: " + perm.getOpName() + " has been selected";
- log.debug(msg);
- component = editForm;
- }
- else if (event.getPayload() instanceof AjaxRequestTarget)
- {
- if (component != null)
- {
- AjaxRequestTarget target = ((AjaxRequestTarget) event.getPayload());
- log.debug(".onEvent AjaxRequestTarget: " + target.toString());
- target.add(component);
- component = null;
- }
-
- display.display((AjaxRequestTarget) event.getPayload());
- }
- }
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/PermListPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/PermListPanel.java b/src/main/java/org/openldap/commander/panel/PermListPanel.java
deleted file mode 100644
index 3ea0258..0000000
--- a/src/main/java/org/openldap/commander/panel/PermListPanel.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- * This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 1998-2014 The OpenLDAP Foundation.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License.
- *
- * A copy of this license is available in the file LICENSE in the
- * top-level directory of the distribution or, alternatively, at
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-package org.openldap.commander.panel;
-
-import com.inmethod.grid.IGridColumn;
-import com.inmethod.grid.SizeUnit;
-import com.inmethod.grid.column.PropertyColumn;
-import com.inmethod.grid.treegrid.TreeGrid;
-import org.apache.log4j.Logger;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.attributes.AjaxCallListener;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
-import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
-import org.apache.wicket.event.IEvent;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.form.FormComponentPanel;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.PropertyModel;
-import org.openldap.commander.GlobalIds;
-import org.openldap.commander.GlobalUtils;
-import org.openldap.commander.PermListModel;
-import org.openldap.commander.SaveModelEvent;
-import org.openldap.commander.SecureIndicatingAjaxButton;
-import org.openldap.commander.SecureIndicatingAjaxLink;
-import org.openldap.commander.SelectModelEvent;
-import org.openldap.fortress.rbac.FortEntity;
-import org.openldap.fortress.rbac.PermObj;
-import org.openldap.fortress.rbac.Permission;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.Model;
-import org.openldap.fortress.util.attr.VUtil;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.TreeNode;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-/**
- *
- * @author Shawn McKinney
- * @version $Rev$
- */
-public class PermListPanel extends FormComponentPanel
-{
- private static final Logger log = Logger.getLogger(PermListPanel.class.getName());
- private Form listForm;
- private DefaultTreeModel treeModel;
- private DefaultMutableTreeNode node;
- private TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String> grid;
- private DefaultMutableTreeNode rootNode;
- private String permOperation;
- private String permObject;
- private TextField permObjectFld;
- private boolean isAdmin;
-
- public PermListPanel(String id, final boolean isAdmin)
- {
- super(id);
- this.isAdmin = isAdmin;
- PermListModel permListModel = new PermListModel(new Permission("", ""), isAdmin, GlobalUtils.getRbacSession(
- this ));
- setDefaultModel(permListModel);
- List<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>> columns =
- new ArrayList<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>>();
- PropertyColumn objName = new PropertyColumn(new Model("Object Name"), "userObject.ObjName");
- objName.setInitialSize( 250 );
- columns.add(objName);
- columns.add(new PropertyColumn(new Model("Object Id"), "userObject.ObjId"));
- columns.add(new PropertyColumn(new Model("Operation Name"), "userObject.OpName"));
- String roleAssignLabel;
- if(isAdmin)
- {
- roleAssignLabel = "Admin Role Assignments";
- }
- else
- {
- roleAssignLabel = "RBAC Role Assignments";
- }
-
- PropertyColumn roles = new PropertyColumn(new Model(roleAssignLabel), "userObject.Roles");
- roles.setInitialSize(500);
- columns.add(roles);
- PropertyColumn abstractPermName = new PropertyColumn(new Model("Abstract Perm Name"), "userObject.AbstractName");
- abstractPermName.setInitialSize( 300 );
- columns.add(abstractPermName);
-
- List<Permission> perms = (List<Permission>) getDefaultModel().getObject();
- treeModel = createTreeModel(perms);
- grid = new TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String>("permtreegrid", treeModel, columns)
- {
- @Override
- public void selectItem(IModel itemModel, boolean selected)
- {
- node = (DefaultMutableTreeNode) itemModel.getObject();
- if(!node.isRoot())
- {
- Permission perm = (Permission) node.getUserObject();
- log.debug("TreeGrid.addGrid.selectItem selected perm objNm: " + perm.getObjName() + " opNm: " + perm.getOpName());
- if (super.isItemSelected(itemModel))
- {
- log.debug("TreeGrid.addGrid.selectItem item is selected");
- super.selectItem(itemModel, false);
- }
- else
- {
- super.selectItem(itemModel, true);
- SelectModelEvent.send(getPage(), this, perm);
- }
- }
- }
- };
- grid.setContentHeight(50, SizeUnit.EM);
- grid.setAllowSelectMultiple(false);
- grid.setClickRowToSelect(true);
- grid.setClickRowToDeselect(false);
- grid.setSelectToEdit(false);
- // expand the root node
- grid.getTreeState().expandNode((TreeNode) treeModel.getRoot());
- this.listForm = new Form("form");
- this.listForm.add(grid);
- grid.setOutputMarkupId(true);
- add(this.listForm);
- permObjectFld = new TextField("permObject", new PropertyModel<String>(this, "permObject"));
- permObjectFld.setOutputMarkupId( true );
- AjaxFormComponentUpdatingBehavior ajaxUpdater = new AjaxFormComponentUpdatingBehavior(GlobalIds.ONBLUR)
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( permObjectFld );
- }
- };
- permObjectFld.add( ajaxUpdater );
- this.listForm.add(permObjectFld);
- TextField permOperationFld = new TextField("permOperation", new PropertyModel<String>(this, "permOperation"));
- this.listForm.add(permOperationFld);
- addObjectSearchModal();
-
- this.listForm.add( new SecureIndicatingAjaxButton( GlobalIds.SEARCH, GlobalIds.REVIEW_MGR, GlobalIds.FIND_PERMISSIONS )
- {
- @Override
- protected void onSubmit( AjaxRequestTarget target, Form form )
- {
- log.debug( ".search onSubmit" );
- info( "Searching Perms..." );
- if ( !VUtil.isNotNullOrEmpty( permObject ) )
- {
- permObject = "";
- }
- if ( !VUtil.isNotNullOrEmpty( permOperation ) )
- {
- permOperation = "";
- }
- Permission srchPerm = new Permission( permObject, permOperation );
- setDefaultModel( new PermListModel( srchPerm, isAdmin, GlobalUtils.getRbacSession( this ) ) );
- treeModel.reload();
- rootNode.removeAllChildren();
- List<Permission> perms = ( List<Permission> ) getDefaultModelObject();
- if ( VUtil.isNotNullOrEmpty( perms ) )
- {
- for ( Permission perm : perms )
- rootNode.add( new DefaultMutableTreeNode( perm ) );
- info( "Search returned " + perms.size() + " matching objects" );
- }
- else
- {
- info( "No matching objects found" );
- }
- target.add( grid );
- }
-
- @Override
- public void onError( AjaxRequestTarget target, Form form )
- {
- log.warn( ".search.onError" );
- target.add();
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- } );
- }
-
- private void addObjectSearchModal()
- {
- final ModalWindow objectsModalWindow;
- listForm.add( objectsModalWindow = new ModalWindow( "objectsearchmodal" ) );
- final ObjectSearchModalPanel objectSearchModalPanel = new ObjectSearchModalPanel( objectsModalWindow.getContentId(), objectsModalWindow, isAdmin );
- objectsModalWindow.setContent( objectSearchModalPanel );
- objectsModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
- {
- @Override
- public void onClose( AjaxRequestTarget target )
- {
- PermObj permObj = objectSearchModalPanel.getSelection();
- if ( permObj != null )
- {
- permObject = permObj.getObjName();
- target.add( permObjectFld );
- }
- }
- } );
-
- listForm.add( new SecureIndicatingAjaxLink( "objectAssignLinkLbl", GlobalIds.REVIEW_MGR, "findPermObjs" )
- {
- public void onClick( AjaxRequestTarget target )
- {
- String msg = "clicked on object search";
- msg += "objectSelection: " + permObject;
- objectSearchModalPanel.setSearchVal( permObject );
- objectSearchModalPanel.setAdmin( isAdmin );
- log.debug( msg );
- target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
- objectsModalWindow.show( target );
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- } );
-
- String modalLabel;
- if(isAdmin)
- {
- modalLabel = "Admin Permission Object Search Modal";
- }
- else
- {
- modalLabel = "RBAC Permission Object Search Modal";
- }
- objectsModalWindow.setTitle( modalLabel );
- objectsModalWindow.setInitialWidth( 700 );
- objectsModalWindow.setInitialHeight( 450 );
- objectsModalWindow.setCookieName( "objects-modal" );
- }
-
- @Override
- public void onEvent(IEvent event)
- {
- if (event.getPayload() instanceof SaveModelEvent)
- {
- SaveModelEvent modelEvent = (SaveModelEvent) event.getPayload();
- switch(modelEvent.getOperation())
- {
- case ADD:
- add(modelEvent.getEntity());
- break;
- case UPDATE:
- /*
- grid.markItemDirty(itemThatHasChanged);
- grid.update();
- */
- modelChanged();
- break;
- case DELETE:
- prune();
- break;
- case SEARCH:
- setDefaultModel(new PermListModel((Permission) modelEvent.getEntity(), isAdmin, GlobalUtils.getRbacSession( this )));
- treeModel.reload();
- rootNode.removeAllChildren();
- for (Permission perm : (List<Permission>) getDefaultModelObject())
- rootNode.add(new DefaultMutableTreeNode(perm));
- break;
- default:
- break;
- }
- AjaxRequestTarget target = ((SaveModelEvent) event.getPayload()).getAjaxRequestTarget();
- target.add(grid);
- log.debug(".onEvent SaveModelEvent: " + target.toString());
- }
- }
-
- private void removeSelectedItems(TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String> grid)
- {
- Collection<IModel<DefaultMutableTreeNode>> selected = grid.getSelectedItems();
- for (IModel<DefaultMutableTreeNode> model : selected)
- {
- DefaultMutableTreeNode node = model.getObject();
- treeModel.removeNodeFromParent(node);
- Permission perm = (Permission) node.getUserObject();
- log.debug(".removeSelectedItems perm objNm: " + perm.getObjName() + " opNm: " + perm.getOpName());
- List<Permission> perms = ((List<Permission>) getDefaultModel().getObject());
- perms.remove(perm);
- }
- }
-
- private DefaultTreeModel createTreeModel(List<Permission> perms)
- {
- DefaultTreeModel model;
- //Permission root = new Permission("Perms");
- Permission root = new Permission();
- rootNode = new DefaultMutableTreeNode(root);
- model = new DefaultTreeModel(rootNode);
- if (perms == null)
- log.debug(".createTreeModel no Perms found");
- else
- {
- log.debug(".createTreeModel Perms found:" + perms.size());
- for (Permission perm : perms)
- rootNode.add(new DefaultMutableTreeNode(perm));
- }
- return model;
- }
-
- public void add(FortEntity entity)
- {
- if (getDefaultModelObject() != null)
- {
- List<Permission> perms = ((List<Permission>) getDefaultModelObject());
- perms.add((Permission) entity);
- treeModel.insertNodeInto(new DefaultMutableTreeNode(entity), rootNode, perms.size());
- }
- }
-
- public void prune()
- {
- removeSelectedItems(grid);
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/PermSearchModalPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/PermSearchModalPanel.java b/src/main/java/org/openldap/commander/panel/PermSearchModalPanel.java
deleted file mode 100644
index 63074fc..0000000
--- a/src/main/java/org/openldap/commander/panel/PermSearchModalPanel.java
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- * This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 1998-2014 The OpenLDAP Foundation.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License.
- *
- * A copy of this license is available in the file LICENSE in the
- * top-level directory of the distribution or, alternatively, at
- * <http://www.OpenLDAP.org/license.html>.
- */
-package org.openldap.commander.panel;
-
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.markup.html.AjaxLink;
-import org.apache.wicket.ajax.markup.html.navigation.paging.AjaxPagingNavigator;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.basic.Label;
-import org.apache.wicket.markup.html.list.ListItem;
-import org.apache.wicket.markup.html.list.PageableListView;
-import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.model.LoadableDetachableModel;
-import org.apache.wicket.model.PropertyModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.openldap.commander.GlobalUtils;
-import org.openldap.fortress.ReviewMgr;
-import org.openldap.fortress.rbac.Permission;
-
-/**
- *
- * @author Shawn McKinney
- * @version $Rev$
- */
-public class PermSearchModalPanel extends Panel
-{
- @SpringBean
- private ReviewMgr reviewMgr;
- private static final Logger LOG = Logger.getLogger(PermSearchModalPanel.class.getName());
- private ModalWindow window;
- private Permission permSelection;
- private String objectSearchVal;
- private String opSearchVal;
- private boolean isAdmin;
-
- /**
- * @param id
- */
- public PermSearchModalPanel( String id, ModalWindow window, final boolean isAdmin )
- {
- super( id );
- this.reviewMgr.setAdmin( GlobalUtils.getRbacSession( this ) );
- this.isAdmin = isAdmin;
- this.window = window;
- loadPanel();
- }
-
- public void loadPanel()
- {
- LoadableDetachableModel requests = getListViewModel();
- PageableListView ouView = createListView( requests );
- add( ouView );
- add( new AjaxPagingNavigator( "navigator", ouView ) );
- }
-
- private PageableListView createListView( final LoadableDetachableModel requests )
- {
- final PageableListView listView = new PageableListView( "dataview", requests, 16 )
- {
- @Override
- protected void populateItem( final ListItem item )
- {
- final Permission modelObject = ( Permission ) item.getModelObject();
- item.add( new AjaxLink<Void>( "select" )
- {
- private static final long serialVersionUID = 1L;
-
- @Override
- public void onClick(AjaxRequestTarget target)
- {
- permSelection = modelObject;
- window.close( target );
- }
- } );
- item.add( new Label( "objName", new PropertyModel( item.getModel(), "objName" ) ) );
- item.add( new Label( "objId", new PropertyModel( item.getModel(), "objId" ) ) );
- item.add( new Label( "opName", new PropertyModel( item.getModel(), "opName" ) ) );
- item.add( new Label( "type", new PropertyModel( item.getModel(), "type" ) ) );
- item.add( new Label( "admin", new PropertyModel( item.getModel(), "admin" ) ) );
- }
- };
- return listView;
- }
-
- private LoadableDetachableModel getListViewModel()
- {
- final LoadableDetachableModel ret = new LoadableDetachableModel()
- {
- @Override
- protected Object load()
- {
- List<?> objects = null;
- try
- {
- permSelection = null;
- if(objectSearchVal == null)
- objectSearchVal = "";
-
- Permission permission = new Permission( objectSearchVal, "" );
- permission.setAdmin( isAdmin );
- objects = reviewMgr.findPermissions( permission );
- }
- catch ( org.openldap.fortress.SecurityException se )
- {
- String error = "getListViewModel caught SecurityException=" + se;
- LOG.error( error );
- }
- return objects;
- }
- };
- return ret;
- }
-
- public void setAdmin( boolean admin )
- {
- isAdmin = admin;
- }
-
- public Permission getSelection()
- {
- return permSelection;
- }
-
- public void setSearchVal( String objectSearchVal )
- {
- this.objectSearchVal = objectSearchVal;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/PwPolicyDetailPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/PwPolicyDetailPanel.java b/src/main/java/org/openldap/commander/panel/PwPolicyDetailPanel.java
deleted file mode 100644
index 335e204..0000000
--- a/src/main/java/org/openldap/commander/panel/PwPolicyDetailPanel.java
+++ /dev/null
@@ -1,309 +0,0 @@
-/*
- * This work is part of OpenLDAP Software <http://www.openldap.org/>.
- *
- * Copyright 1998-2014 The OpenLDAP Foundation.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted only as authorized by the OpenLDAP
- * Public License.
- *
- * A copy of this license is available in the file LICENSE in the
- * top-level directory of the distribution or, alternatively, at
- * <http://www.OpenLDAP.org/license.html>.
- */
-
-package org.openldap.commander.panel;
-
-import com.googlecode.wicket.jquery.ui.form.spinner.Spinner;
-import org.apache.log4j.Logger;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.ajax.attributes.AjaxCallListener;
-import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
-import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
-import org.apache.wicket.event.IEvent;
-import org.apache.wicket.markup.html.form.CheckBox;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.markup.html.form.FormComponentPanel;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.apache.wicket.validation.validator.RangeValidator;
-import org.openldap.commander.GlobalIds;
-import org.openldap.commander.GlobalUtils;
-import org.openldap.commander.SaveModelEvent;
-import org.openldap.commander.SecureIndicatingAjaxButton;
-import org.openldap.commander.SelectModelEvent;
-import org.openldap.fortress.PwPolicyMgr;
-import org.openldap.fortress.rbac.PwPolicy;
-
-/**
- * @author Shawn McKinney
- * @version $Rev$
- * Date: 6/12/13
- */
-public class PwPolicyDetailPanel extends FormComponentPanel
-{
- @SpringBean
- private PwPolicyMgr pwPolicyMgr;
- private static final Logger log = Logger.getLogger(PwPolicyDetailPanel.class.getName());
- private Form editForm;
- private Displayable display;
-
- public Form getForm()
- {
- return this.editForm;
- }
-
- public PwPolicyDetailPanel(String id, Displayable display)
- {
- super(id);
- this.pwPolicyMgr.setAdmin( GlobalUtils.getRbacSession( this ) );
- this.editForm = new PwPolicyDetailForm(GlobalIds.EDIT_FIELDS, new CompoundPropertyModel<PwPolicy>(new PwPolicy()));
- this.display = display;
- add(editForm);
- }
-
- public class PwPolicyDetailForm extends Form
- {
- private Component component;
-
- public PwPolicyDetailForm(String id, final IModel<PwPolicy> model)
- {
- super(id, model);
-
- add( new SecureIndicatingAjaxButton( GlobalIds.ADD, GlobalIds.PWPOLICY_MGR, GlobalIds.ADD )
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- log.debug(".onSubmit Add");
- PwPolicy policy = (PwPolicy)form.getModel().getObject();
- try
- {
- policy.setCheckQuality( (short)2 );
- pwPolicyMgr.add(policy);
- SaveModelEvent.send(getPage(), this, policy, target, SaveModelEvent.Operations.ADD);
- component = editForm;
- String msg = "Policy: " + policy.getName() + " has been added";
- display.setMessage(msg);
- }
- catch (org.openldap.fortress.SecurityException se)
- {
- String error = ".onSubmit caught SecurityException=" + se;
- log.error(error);
- display.setMessage(error);
- display.display();
- }
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- log.info("PwPolicyPanel.add.onError caught");
- target.add();
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- });
- add( new SecureIndicatingAjaxButton( GlobalIds.COMMIT, GlobalIds.PWPOLICY_MGR, "update" )
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- log.debug(".onSubmit Commit");
- PwPolicy policy = (PwPolicy)form.getModel().getObject();
- try
- {
- pwPolicyMgr.update(policy);
- String msg = "Policy: " + policy.getName() + " has been updated";
- SaveModelEvent.send(getPage(), this, policy, target, SaveModelEvent.Operations.UPDATE);
- component = editForm;
- display.setMessage(msg);
- }
- catch (org.openldap.fortress.SecurityException se)
- {
- String error = ".onSubmit caught SecurityException=" + se;
- log.error(error);
- display.setMessage(error);
- display.display();
- }
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- log.warn("PwPolicyPanel.update.onError");
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- });
- add( new SecureIndicatingAjaxButton( GlobalIds.DELETE, GlobalIds.PWPOLICY_MGR, GlobalIds.DELETE )
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- log.debug(".onSubmit Commit");
- PwPolicy role = (PwPolicy)form.getModel().getObject();
-
- try
- {
- pwPolicyMgr.delete(role);
- form.setModelObject( new PwPolicy() );
- modelChanged();
- String msg = "Role: " + role.getName() + " has been deleted";
- SaveModelEvent.send(getPage(), this, role, target, SaveModelEvent.Operations.DELETE);
- component = editForm;
- display.setMessage(msg);
- }
- catch (org.openldap.fortress.SecurityException se)
- {
- String error = ".onSubmit caught SecurityException=" + se;
- log.error(error);
- display.setMessage(error);
- display.display();
- }
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- log.warn("PwPolicyPanel.commit.onError");
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- });
- add(new AjaxSubmitLink(GlobalIds.CANCEL)
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- setModelObject(new PwPolicy());
- modelChanged();
- component = editForm;
- String msg = "Role cancelled input form";
- display.setMessage(msg);
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- log.warn("ControlPanel.cancel.onError");
- }
- @Override
- protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
- {
- super.updateAjaxAttributes( attributes );
- AjaxCallListener ajaxCallListener = new AjaxCallListener()
- {
- @Override
- public CharSequence getFailureHandler( Component component )
- {
- return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
- }
- };
- attributes.getAjaxCallListeners().add( ajaxCallListener );
- }
- });
-
- add(new TextField("name").setRequired( true ));
-
- add(new TextField<Integer>("minAge").add(new RangeValidator<Integer>(0, Integer.MAX_VALUE)).setRequired( true ));
-
- add(new TextField<Long>("maxAge").add(new RangeValidator<Long>((long)0, Long.MAX_VALUE)).setRequired( true ));
- final Spinner<Integer> inHistorySP = new Spinner<Integer>("inHistory");
- inHistorySP.setRequired(false);
- inHistorySP.add(new RangeValidator<Short>((short)0, (short)100));
- add(inHistorySP);
-
- final Spinner<Integer> minLengthSP = new Spinner<Integer>("minLength");
- minLengthSP.setRequired(false);
- minLengthSP.add(new RangeValidator<Short>((short)0, (short)100));
- add(minLengthSP);
-
- add(new TextField<Long>("expireWarning").add(new RangeValidator<Long>((long)0, Long.MAX_VALUE)).setRequired( true ));
- final Spinner<Integer> graceLoginLimitSP = new Spinner<Integer>("graceLoginLimit");
- graceLoginLimitSP.setRequired(false);
- graceLoginLimitSP.add(new RangeValidator<Short>((short)0, (short)100));
- add(graceLoginLimitSP);
-
- add(new CheckBox("lockout").setRequired( true ));
- add(new TextField<Integer>("lockoutDuration").add(new RangeValidator<Integer>(0, Integer.MAX_VALUE)).setRequired( true ));
- final Spinner<Integer> maxFailureSP = new Spinner<Integer>("maxFailure");
- maxFailureSP.setRequired(false);
- maxFailureSP.add(new RangeValidator<Short>((short)0, (short)100));
- add(maxFailureSP);
-
- add(new TextField<Short>("failureCountInterval").add(new RangeValidator<Short>((short)0, Short.MAX_VALUE)).setRequired( true ));
- add(new CheckBox("mustChange").setRequired( true ));
- add(new CheckBox("allowUserChange").setRequired( true ));
- add(new CheckBox("safeModify").setRequired( true ));
- setOutputMarkupId(true);
- }
-
- @Override
- public void onEvent(final IEvent<?> event)
- {
- if (event.getPayload() instanceof SelectModelEvent)
- {
- SelectModelEvent modelEvent = (SelectModelEvent) event.getPayload();
- PwPolicy policy = (PwPolicy) modelEvent.getEntity();
- this.setModelObject(policy);
- String msg = "Policy: " + policy.getName() + " has been selected";
- log.debug(".onEvent SelectModelEvent: " + policy.getName());
- display.setMessage(msg);
- component = editForm;
- }
- else if (event.getPayload() instanceof AjaxRequestTarget)
- {
- // only add the form to ajax target if something has changed...
- if (component != null)
- {
- AjaxRequestTarget target = ((AjaxRequestTarget) event.getPayload());
- log.debug(".onEvent AjaxRequestTarget: " + target.toString());
- target.add(component);
- component = null;
- }
- display.display((AjaxRequestTarget) event.getPayload());
- }
- }
- }
-}