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:24 UTC
[14/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/AuditAuthzListPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/AuditAuthzListPanel.java b/src/main/java/org/openldap/commander/panel/AuditAuthzListPanel.java
deleted file mode 100644
index a54b96a..0000000
--- a/src/main/java/org/openldap/commander/panel/AuditAuthzListPanel.java
+++ /dev/null
@@ -1,513 +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.datetime.DatePicker;
-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.ajax.markup.html.form.AjaxSubmitLink;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.form.CheckBox;
-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.openldap.commander.AuditAuthzListModel;
-import org.openldap.commander.AuditAuthzPage;
-import org.openldap.commander.GlobalIds;
-import org.openldap.commander.GlobalUtils;
-import org.openldap.commander.SecureIndicatingAjaxButton;
-import org.openldap.commander.SecureIndicatingAjaxLink;
-import org.openldap.commander.SelectModelEvent;
-import org.openldap.fortress.rbac.AuthZ;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.Model;
-import org.openldap.fortress.rbac.Permission;
-import org.openldap.fortress.rbac.User;
-import org.openldap.fortress.rbac.UserAudit;
-import org.openldap.fortress.util.attr.AttrHelper;
-import org.openldap.fortress.util.attr.VUtil;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.TreeNode;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-/**
- * @author Shawn McKinney
- * @version $Rev$
- * Date: 8/6/13
- */
-public class AuditAuthzListPanel extends FormComponentPanel
-{
- private static final Logger LOG = Logger.getLogger(AuditAuthzListPanel.class.getName());
- private Form listForm;
- private DefaultTreeModel treeModel;
- private DefaultMutableTreeNode node;
- private TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String> grid;
- private DefaultMutableTreeNode rootNode;
- private TextField userFld;
- private TextField objFld;
- private TextField opFld;
- protected DatePicker beginDateDP;
- protected DatePicker endDateDP;
- private Permission permission;
- private IModel<AuditAuthzListModel> pageModel;
-
- public AuditAuthzListPanel(String id, UserAudit userAudit )
- {
- super(id);
- init( userAudit );
- }
-
- private void init( UserAudit userAudit )
- {
- pageModel = new AuditAuthzListModel(userAudit, GlobalUtils.getRbacSession( this ) );
- setDefaultModel(pageModel);
- createAndLoadGrid();
- this.listForm = new Form("authzform");
- this.listForm.addOrReplace(grid);
- this.listForm.setModel( new CompoundPropertyModel<UserAudit>( userAudit ) );
- addEditFields();
- addButtons();
- add(this.listForm);
- }
-
- private void addEditFields()
- {
- userFld = new TextField(GlobalIds.USER_ID);
- userFld.setOutputMarkupId( true );
- AjaxFormComponentUpdatingBehavior ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( userFld );
- }
- };
- userFld.add( ajaxUpdater );
- this.listForm.add(userFld);
- addUserSearchModal();
-
- objFld = new TextField( GlobalIds.OBJ_NAME );
- objFld.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( objFld );
- }
- };
- objFld.add( ajaxUpdater );
- this.listForm.add( objFld );
-
- opFld = new TextField( GlobalIds.OP_NAME );
- opFld.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( opFld );
- }
- };
- opFld.add( ajaxUpdater );
- this.listForm.add( opFld );
-
- final CheckBox isAdminCB = new CheckBox( GlobalIds.ADMIN );
- isAdminCB.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( isAdminCB );
- }
- };
- isAdminCB.add( ajaxUpdater );
- isAdminCB.setRequired( false );
- this.listForm.add( isAdminCB );
- addPermSearchModal();
-
- final CheckBox failedOnlyCB = new CheckBox( GlobalIds.FAILED_ONLY );
- failedOnlyCB.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( failedOnlyCB );
- }
- };
- failedOnlyCB.add( ajaxUpdater );
- failedOnlyCB.setRequired( false );
- this.listForm.add( failedOnlyCB );
-
- // Begin Date
- beginDateDP = new DatePicker(GlobalIds.BEGIN_DATE);
- beginDateDP.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( beginDateDP );
- }
- };
- beginDateDP.add( ajaxUpdater );
- beginDateDP.setRequired( false );
- this.listForm.add( beginDateDP );
-
- // End Date
- endDateDP = new DatePicker(GlobalIds.END_DATE);
- endDateDP.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( endDateDP );
- }
- };
- endDateDP.add( ajaxUpdater );
- endDateDP.setRequired( false );
- this.listForm.add( endDateDP );
- }
-
- private void addButtons()
- {
- this.listForm.add(new SecureIndicatingAjaxButton( GlobalIds.SEARCH, GlobalIds.AUDIT_MGR, GlobalIds.GET_USER_AUTHZS )
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- LOG.debug( ".search onSubmit" );
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- if(!VUtil.isNotNullOrEmpty(userAudit.getUserId()))
- {
- userAudit.setUserId( "" );
- }
- if(permission != null)
- {
- userAudit.setDn( permission.getDn() );
- }
- setResponsePage( new AuditAuthzPage( userAudit ) );
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- LOG.warn( ".search.onError" );
- throw new RuntimeException( "error submitting form" );
- }
- @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 );
- }
- });
- this.listForm.add(new AjaxSubmitLink(GlobalIds.CLEAR)
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- setResponsePage( new AuditAuthzPage( new UserAudit() ) );
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- LOG.warn("AuditAuthzListPanel.clear.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 );
- }
- });
- }
-
- private void createAndLoadGrid()
- {
- List<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>> columns =
- new ArrayList<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>>();
- PropertyColumn reqStart = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Timestamp"), "userObject.reqStart");
- reqStart.setInitialSize(200);
- columns.add(reqStart);
-
- PropertyColumn requAuthzId = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("User ID"), "userObject.reqAuthzID");
- requAuthzId.setInitialSize(200);
- columns.add(requAuthzId);
-
- PropertyColumn reqAttr = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Object Name"), "userObject.reqAttr");
- reqAttr.setInitialSize(300);
- columns.add(reqAttr);
-
- PropertyColumn reqDerefAliases = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Object ID"), "userObject.reqDerefAliases");
- reqDerefAliases.setInitialSize(100);
- columns.add(reqDerefAliases);
-
- PropertyColumn reqAttrsOnly = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Operation"), "userObject.reqAttrsOnly");
- reqAttrsOnly.setInitialSize(120);
- columns.add(reqAttrsOnly);
-
- PropertyColumn reqResult = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Result"), "userObject.reqResult");
- reqResult.setInitialSize(80);
- columns.add(reqResult);
-
- List<AuthZ> authZs = (List<AuthZ>) getDefaultModel().getObject();
- treeModel = createTreeModel(authZs);
- grid = new TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String>("authztreegrid", treeModel, columns)
- {
- @Override
- public void selectItem(IModel itemModel, boolean selected)
- {
- node = (DefaultMutableTreeNode) itemModel.getObject();
- if(!node.isRoot())
- {
- AuthZ authZ = (AuthZ) node.getUserObject();
- LOG.debug( "TreeGrid.addGrid.selectItem selected authZ =" + authZ.getReqAuthzID() );
- 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, authZ);
- }
- }
- }
- };
-
- 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());
- grid.setOutputMarkupId(true);
- }
-
- private void addUserSearchModal()
- {
- final ModalWindow usersModalWindow;
- listForm.add( usersModalWindow = new ModalWindow( "usersearchmodal" ) );
- final UserSearchModalPanel userSearchModalPanel = new UserSearchModalPanel( usersModalWindow.getContentId(), usersModalWindow );
- usersModalWindow.setContent( userSearchModalPanel );
- usersModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
- {
- @Override
- public void onClose( AjaxRequestTarget target )
- {
- User userSelection = userSearchModalPanel.getUserSelection();
- if ( userSelection != null )
- {
- LOG.debug( "modal selected:" + userSelection.getUserId() );
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- userAudit.setUserId( userSelection.getUserId() );
- target.add( userFld );
- }
- }
- } );
- listForm.add( new SecureIndicatingAjaxLink( "userAssignLinkLbl", GlobalIds.REVIEW_MGR, GlobalIds.FIND_USERS )
- {
- public void onClick( AjaxRequestTarget target )
- {
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- String msg = "clicked on users search";
- msg += "userSelection: " + userAudit.getUserId();
- userSearchModalPanel.setSearchVal( userAudit.getUserId() );
- LOG.debug( msg );
- target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
- usersModalWindow.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 );
- }
- } );
- usersModalWindow.setTitle( "User Search Modal" );
- usersModalWindow.setInitialWidth( 1000 );
- usersModalWindow.setInitialHeight( 700 );
- usersModalWindow.setCookieName( "user-search-modal" );
- }
-
- private void addPermSearchModal()
- {
- final ModalWindow permsModalWindow;
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- listForm.add( permsModalWindow = new ModalWindow( "permsearchmodal" ) );
- final PermSearchModalPanel permSearchModalPanel = new PermSearchModalPanel( permsModalWindow.getContentId(), permsModalWindow, userAudit.isAdmin() );
- permsModalWindow.setContent( permSearchModalPanel );
- permsModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
- {
- @Override
- public void onClose( AjaxRequestTarget target )
- {
- Permission permSelection = permSearchModalPanel.getSelection();
- if ( permSelection != null )
- {
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- LOG.debug( "modal selected:" + permSelection.getAbstractName() );
- permission = permSelection;
- userAudit.setObjName( permSelection.getObjName() );
- userAudit.setOpName( permSelection.getOpName() );
- target.add( objFld );
- target.add( opFld );
- }
- }
- } );
- listForm.add( new SecureIndicatingAjaxLink( "permLinkLbl", GlobalIds.REVIEW_MGR, GlobalIds.FIND_PERMISSIONS )
- {
- public void onClick( AjaxRequestTarget target )
- {
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- String msg = "clicked on perms search";
- msg += "permSelection: " + permission;
- permSearchModalPanel.setSearchVal( userAudit.getObjName() );
- permSearchModalPanel.setAdmin( userAudit.isAdmin() );
- LOG.debug( msg );
- target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
- permsModalWindow.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 title;
- if(userAudit.isAdmin())
- title = "Admin Permission Search Modal";
- else
- title = "RBAC Permission Search Modal";
-
- permsModalWindow.setTitle( title );
- permsModalWindow.setInitialWidth( 650 );
- permsModalWindow.setInitialHeight( 450 );
- permsModalWindow.setCookieName( "perm-search-modal" );
- }
-
- private DefaultTreeModel createTreeModel(List<AuthZ> authZs)
- {
- DefaultTreeModel model;
- AuthZ root = new AuthZ();
- //root.setReqStart( "Authorizations" );
- rootNode = new DefaultMutableTreeNode(root);
- model = new DefaultTreeModel(rootNode);
- if (authZs == null)
- LOG.debug("no Authorizations found");
- else
- {
- LOG.debug("AuthZ found:" + authZs.size());
- info("Loading " + authZs.size() + " objects into list panel");
- loadTree( authZs );
- }
- return model;
- }
-
- private void loadTree(List<AuthZ> authZs)
- {
- for (AuthZ authZ : authZs)
- {
- Date start = null;
- try
- {
- start = AttrHelper.decodeGeneralizedTime( authZ.getReqStart() );
- }
- catch (ParseException pe)
- {
- LOG.warn( "ParseException=" + pe.getMessage() );
- }
- if(start != null)
- {
- SimpleDateFormat formatter = new SimpleDateFormat( GlobalIds.AUDIT_TIMESTAMP_FORMAT );
- String formattedDate = formatter.format(start);
- authZ.setReqStart( formattedDate );
- }
- if(authZ.getReqResult().equals( GlobalIds.AUTHZ_SUCCESS_CODE ))
- {
- authZ.setReqResult( GlobalIds.SUCCESS );
- }
- else
- {
- authZ.setReqResult( GlobalIds.FAILURE );
- }
- authZ.setReqAuthzID( GlobalUtils.getAuthZId( authZ.getReqAuthzID() ) );
- GlobalUtils.mapAuthZPerm( authZ );
- rootNode.add(new DefaultMutableTreeNode(authZ));
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/AuditBindDetailPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/AuditBindDetailPanel.java b/src/main/java/org/openldap/commander/panel/AuditBindDetailPanel.java
deleted file mode 100644
index d53443b..0000000
--- a/src/main/java/org/openldap/commander/panel/AuditBindDetailPanel.java
+++ /dev/null
@@ -1,135 +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 org.apache.log4j.Logger;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.event.IEvent;
-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.model.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
-import org.openldap.commander.*;
-import org.openldap.commander.GlobalIds;
-import org.openldap.fortress.*;
-import org.openldap.fortress.rbac.Bind;
-import org.openldap.fortress.rbac.User;
-import org.openldap.fortress.util.attr.VUtil;
-
-/**
- * @author Shawn McKinney
- * @version $Rev$
- * Date: 8/11/13
- */
-public class AuditBindDetailPanel extends FormComponentPanel
-{
- @SpringBean
- private AuditMgr auditMgr;
- @SpringBean
- private ReviewMgr reviewMgr;
- private static final Logger LOG = Logger.getLogger(AuditBindDetailPanel.class.getName());
- private Form detailForm;
- private Displayable display;
- private UserAuditDetailPanel userPanel;
-
- public Form getForm()
- {
- return this.detailForm;
- }
-
- public AuditBindDetailPanel( String id, Displayable display )
- {
- super(id);
- this.auditMgr.setAdmin( GlobalUtils.getRbacSession( this ) );
- this.reviewMgr.setAdmin( GlobalUtils.getRbacSession( this ) );
- this.detailForm = new AuditBindDetailForm( GlobalIds.DETAIL_FIELDS, new CompoundPropertyModel<Bind>(new Bind()));
- this.display = display;
- add( detailForm );
- }
-
- public class AuditBindDetailForm extends Form
- {
- private Component component;
-
- public AuditBindDetailForm(String id, final IModel<Bind> model)
- {
- super(id, model);
- add( new Label( GlobalIds.REQ_DN ) );
- add( new Label( GlobalIds.REQ_RESULT ) );
- add( new Label( GlobalIds.REQ_START ) );
- userPanel = new UserAuditDetailPanel( GlobalIds.USERAUDITDETAILPANEL, new CompoundPropertyModel<User>(new User()) );
- add( userPanel );
- setOutputMarkupId( true );
- }
-
- @Override
- public void onEvent(final IEvent<?> event)
- {
- if (event.getPayload() instanceof SelectModelEvent)
- {
- SelectModelEvent modelEvent = (SelectModelEvent) event.getPayload();
- Bind bind = (Bind) modelEvent.getEntity();
- this.setModelObject(bind);
- String msg = "Bind: " + bind.getReqDN() + " has been selected";
- LOG.debug( ".onEvent SelectModelEvent: " + bind.getReqDN() );
- display.setMessage(msg);
- component = detailForm;
-
- }
- 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());
- }
- }
-
- @Override
- protected void onBeforeRender()
- {
- if ( getModel() != null )
- {
- User user = null;
- // necessary to push the 'changed' model down into the aggregated panel:
- Bind bind = (Bind)detailForm.getModelObject();
- if( VUtil.isNotNullOrEmpty( bind.getReqDN() ))
- {
- user = GlobalUtils.getUser(reviewMgr, bind.getReqDN());
- }
- if(user == null)
- {
- user = new User();
- }
- IModel<User> userModel = new CompoundPropertyModel<User>(user);
- userPanel.setDefaultModel( userModel );
- }
- else
- {
- LOG.info( ".onBeforeRender null model object" );
- }
- super.onBeforeRender();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/AuditBindListPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/AuditBindListPanel.java b/src/main/java/org/openldap/commander/panel/AuditBindListPanel.java
deleted file mode 100644
index 954b38b..0000000
--- a/src/main/java/org/openldap/commander/panel/AuditBindListPanel.java
+++ /dev/null
@@ -1,382 +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.datetime.DatePicker;
-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.ajax.markup.html.form.AjaxSubmitLink;
-import org.apache.wicket.extensions.ajax.markup.html.modal.ModalWindow;
-import org.apache.wicket.markup.html.form.CheckBox;
-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.openldap.commander.AuditBindListModel;
-import org.openldap.commander.AuditBindPage;
-import org.openldap.commander.GlobalIds;
-import org.openldap.commander.GlobalUtils;
-import org.openldap.commander.SecureIndicatingAjaxButton;
-import org.openldap.commander.SecureIndicatingAjaxLink;
-import org.openldap.commander.SelectModelEvent;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.Model;
-import org.openldap.fortress.rbac.Bind;
-import org.openldap.fortress.rbac.User;
-import org.openldap.fortress.rbac.UserAudit;
-import org.openldap.fortress.util.attr.AttrHelper;
-import org.openldap.fortress.util.attr.VUtil;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.TreeNode;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-/**
- * @author Shawn McKinney
- * @version $Rev$
- * Date: 8/11/13
- */
-public class AuditBindListPanel extends FormComponentPanel
-{
- private static final Logger LOG = Logger.getLogger(AuditBindListPanel.class.getName());
- private Form listForm;
- private DefaultTreeModel treeModel;
- private DefaultMutableTreeNode node;
- private TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String> grid;
- private DefaultMutableTreeNode rootNode;
- private TextField userFld;
- protected DatePicker beginDateDP;
- protected DatePicker endDateDP;
- private IModel<AuditBindListModel> pageModel;
-
- public AuditBindListPanel(String id, UserAudit userAudit )
- {
- super( id );
- init( userAudit );
- }
-
- private void init( UserAudit userAudit )
- {
- pageModel = new AuditBindListModel(userAudit, GlobalUtils.getRbacSession( this ) );
- setDefaultModel(pageModel);
- createAndLoadGrid();
- this.listForm = new Form("bindform");
- this.listForm.addOrReplace(grid);
- this.listForm.setModel( new CompoundPropertyModel<UserAudit>( userAudit ) );
- addEditFields();
- addButtons();
- add(this.listForm);
- }
-
- private void addEditFields()
- {
- userFld = new TextField(GlobalIds.USER_ID);
- userFld.setOutputMarkupId( true );
- AjaxFormComponentUpdatingBehavior ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( userFld );
- }
- };
- userFld.add( ajaxUpdater );
- this.listForm.add(userFld);
- addUserSearchModal();
-
- final CheckBox failedOnlyCB = new CheckBox( GlobalIds.FAILED_ONLY );
- failedOnlyCB.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( failedOnlyCB );
- }
- };
- failedOnlyCB.add( ajaxUpdater );
- failedOnlyCB.setRequired( false );
- this.listForm.add( failedOnlyCB );
-
- // Begin Date
- beginDateDP = new DatePicker(GlobalIds.BEGIN_DATE);
- beginDateDP.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( beginDateDP );
- }
- };
- beginDateDP.add( ajaxUpdater );
- beginDateDP.setRequired( false );
- this.listForm.add( beginDateDP );
-
- // End Date
- endDateDP = new DatePicker(GlobalIds.END_DATE);
- endDateDP.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( endDateDP );
- }
- };
- endDateDP.add( ajaxUpdater );
- endDateDP.setRequired( false );
- this.listForm.add( endDateDP );
- }
-
- private void addButtons()
- {
- this.listForm.add(new SecureIndicatingAjaxButton( GlobalIds.SEARCH, GlobalIds.AUDIT_MGR, GlobalIds.GET_USER_BINDS )
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- LOG.debug( ".search onSubmit" );
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- if(!VUtil.isNotNullOrEmpty(userAudit.getUserId()))
- {
- userAudit.setUserId( "" );
- }
- setResponsePage( new AuditBindPage( userAudit ) );
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- LOG.warn( ".search.onError" );
- throw new RuntimeException( "error submitting form" );
- }
- @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 );
- }
- });
- this.listForm.add(new AjaxSubmitLink(GlobalIds.CLEAR)
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- setResponsePage( new AuditBindPage( new UserAudit() ) );
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- LOG.warn("AuditBindListPanel.clear.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 );
- }
- });
- }
-
- private void createAndLoadGrid()
- {
- List<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>> columns =
- new ArrayList<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>>();
- PropertyColumn reqStart = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Timestamp"), "userObject.reqStart");
- reqStart.setInitialSize(200);
- columns.add(reqStart);
-
- PropertyColumn requAuthzId = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("User ID"), "userObject.reqDN");
- requAuthzId.setInitialSize(200);
- columns.add(requAuthzId);
-
- PropertyColumn reqResult = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Result"), "userObject.reqResult");
- reqResult.setInitialSize(80);
- columns.add(reqResult);
-
- List<Bind> binds = (List<Bind>) getDefaultModel().getObject();
- treeModel = createTreeModel(binds);
- grid = new TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String>("bindtreegrid", treeModel, columns)
- {
- @Override
- public void selectItem(IModel itemModel, boolean selected)
- {
- node = (DefaultMutableTreeNode) itemModel.getObject();
- if(!node.isRoot())
- {
- Bind bind = (Bind) node.getUserObject();
- LOG.debug( "TreeGrid.addGrid.selectItem selected bind =" + bind.getReqDN() );
- 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, bind);
- }
- }
- }
- };
- 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());
- grid.setOutputMarkupId(true);
- }
-
- private void addUserSearchModal()
- {
- final ModalWindow usersModalWindow;
- listForm.add( usersModalWindow = new ModalWindow( "usersearchmodal" ) );
- final UserSearchModalPanel userSearchModalPanel = new UserSearchModalPanel( usersModalWindow.getContentId(), usersModalWindow );
- usersModalWindow.setContent( userSearchModalPanel );
- usersModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
- {
- @Override
- public void onClose( AjaxRequestTarget target )
- {
- User userSelection = userSearchModalPanel.getUserSelection();
- if ( userSelection != null )
- {
- LOG.debug( "modal selected:" + userSelection.getUserId() );
- UserAudit userAudit = ( UserAudit ) listForm.getModelObject();
- userAudit.setUserId( userSelection.getUserId() );
- target.add( userFld );
- }
- }
- } );
- listForm.add( new SecureIndicatingAjaxLink( "userAssignLinkLbl", GlobalIds.REVIEW_MGR, GlobalIds.FIND_USERS )
- {
- public void onClick( AjaxRequestTarget target )
- {
- UserAudit userAudit = ( UserAudit ) listForm.getModelObject();
- String msg = "clicked on users search";
- msg += "userSelection: " + userAudit.getUserId();
- userSearchModalPanel.setSearchVal( userAudit.getUserId() );
- LOG.debug( msg );
- target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
- usersModalWindow.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 );
- }
- } );
- usersModalWindow.setTitle( "User Search Modal" );
- usersModalWindow.setInitialWidth( 1000 );
- usersModalWindow.setInitialHeight( 700 );
- usersModalWindow.setCookieName( "user-search-modal" );
- }
-
- private DefaultTreeModel createTreeModel(List<Bind> binds)
- {
- DefaultTreeModel model;
- Bind root = new Bind();
- //root.setReqAuthzID( "Authentications" );
- rootNode = new DefaultMutableTreeNode(root);
- model = new DefaultTreeModel(rootNode);
- if (binds == null)
- LOG.debug("no Authentications found");
- else
- {
- LOG.debug("Binds found:" + binds.size());
- info("Loading " + binds.size() + " objects into list panel");
- loadTree( binds );
- }
- return model;
- }
-
- private void loadTree(List<Bind> binds)
- {
- for (Bind bind : binds)
- {
- Date start = null;
- try
- {
- start = AttrHelper.decodeGeneralizedTime( bind.getReqStart() );
- }
- catch (ParseException pe)
- {
- LOG.warn( "ParseException=" + pe.getMessage() );
- }
- if(start != null)
- {
- SimpleDateFormat formatter = new SimpleDateFormat( GlobalIds.AUDIT_TIMESTAMP_FORMAT );
- String formattedDate = formatter.format(start);
- bind.setReqStart( formattedDate );
- }
- if(bind.getReqResult().equals( GlobalIds.BIND_SUCCESS_CODE ))
- {
- bind.setReqResult( GlobalIds.SUCCESS );
- }
- else
- {
- bind.setReqResult( GlobalIds.FAILURE );
- }
- bind.setReqDN( GlobalUtils.getAuthZId( bind.getReqDN() ) );
- rootNode.add(new DefaultMutableTreeNode(bind));
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/AuditModDetailPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/AuditModDetailPanel.java b/src/main/java/org/openldap/commander/panel/AuditModDetailPanel.java
deleted file mode 100644
index 2e6e2b7..0000000
--- a/src/main/java/org/openldap/commander/panel/AuditModDetailPanel.java
+++ /dev/null
@@ -1,248 +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.core.Options;
-import com.googlecode.wicket.kendo.ui.datatable.DataTable;
-import com.googlecode.wicket.kendo.ui.datatable.column.IColumn;
-import com.googlecode.wicket.kendo.ui.datatable.column.PropertyColumn;
-import org.apache.log4j.Logger;
-import org.apache.wicket.Component;
-import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.event.IEvent;
-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.repeater.data.IDataProvider;
-import org.apache.wicket.markup.repeater.data.ListDataProvider;
-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.SelectModelEvent;
-import org.openldap.fortress.AuditMgr;
-import org.openldap.fortress.ReviewMgr;
-import org.openldap.fortress.rbac.Mod;
-import org.openldap.fortress.rbac.User;
-import org.openldap.fortress.util.attr.VUtil;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author Shawn McKinney
- * @version $Rev$
- * Date: 8/6/13
- */
-public class AuditModDetailPanel extends FormComponentPanel
-{
- public static final int MOD_OFFSET = 3;
- public static final int ROWS = 5;
- @SpringBean
- private AuditMgr auditMgr;
- @SpringBean
- private ReviewMgr reviewMgr;
- private static final Logger LOG = Logger.getLogger( AuditModDetailPanel.class.getName() );
- private Form detailForm;
- private Displayable display;
- private UserAuditDetailPanel userPanel;
-
- public Form getForm()
- {
- return this.detailForm;
- }
-
- public AuditModDetailPanel( String id, Displayable display )
- {
- super( id );
- this.auditMgr.setAdmin( GlobalUtils.getRbacSession( this ) );
- this.reviewMgr.setAdmin( GlobalUtils.getRbacSession( this ) );
- this.detailForm = new AuditAuthzDetailForm( GlobalIds.DETAIL_FIELDS, new CompoundPropertyModel<Mod>( new Mod() ) );
- this.display = display;
- add( detailForm );
- }
-
- public class AuditAuthzDetailForm extends Form
- {
- private Component component;
- private String ftModifier;
- private String ftModCode;
- private String ftModId;
- private String userId;
- private byte[] modPhoto;
- private DataTable<RequestMod> table;
- private List<IColumn> columns;
- private Options options;
-
- public AuditAuthzDetailForm( String id, final IModel<Mod> model )
- {
- super( id, model );
- add( new Label( GlobalIds.FT_MOD_ID, new PropertyModel<String>( this, GlobalIds.FT_MOD_ID ) ) );
- add( new Label( GlobalIds.FT_MOD_CODE, new PropertyModel<String>( this, GlobalIds.FT_MOD_CODE ) ) );
- // DataTable //
- columns = newColumnList();
- options = new Options();
- options.set( "height", 240 );
- options.set( "pageable", "{ pageSizes: [ 5, 10, 15, 20 ] }" );
- //table2 = new DataTable("modstable", columns, createDataProvider( null ), ROWS, options);
-
- table = new DataTable<RequestMod>( "modstable", columns, createDataProvider( null ), ROWS, options );
- table.setOutputMarkupId( true );
- add( table );
- add( new Label( "reqType" ) );
- add( new Label( GlobalIds.REQ_DN ) );
- add( new Label( GlobalIds.REQ_START ) );
- userPanel = new UserAuditDetailPanel( GlobalIds.USERAUDITDETAILPANEL, new CompoundPropertyModel<User>( new User()
- ) );
- add( userPanel );
- setOutputMarkupId( true );
- }
-
- @Override
- public void onEvent( final IEvent<?> event )
- {
- if ( event.getPayload() instanceof SelectModelEvent )
- {
- SelectModelEvent modelEvent = ( SelectModelEvent ) event.getPayload();
- Mod mod = ( Mod ) modelEvent.getEntity();
- this.setModelObject(mod);
- String msg = "Mod: " + mod.getReqAuthzID() + " has been selected";
- LOG.debug( ".onEvent SelectModelEvent: " + mod.getReqAuthzID() );
- List<RequestMod> modifications = parseRequestMods( mod.getReqMod() );
- table = new DataTable<RequestMod>( "modstable", columns, createDataProvider( modifications ), ROWS,
- options );
- User user = null;
- // necessary to push the 'changed' model down into the aggregated panel:
- int indx = modifications.indexOf( new RequestMod( GlobalIds.FT_MODIFIER ) );
- if ( indx != -1 )
- {
- ftModifier = modifications.get( indx ).getValue();
- if ( VUtil.isNotNullOrEmpty( ftModifier ) )
- {
- user = GlobalUtils.getUserByInternalId( reviewMgr, ftModifier );
- userId = user.getUserId();
- }
- }
- indx = modifications.indexOf( new RequestMod( GlobalIds.FT_MOD_CODE ) );
- if ( indx != -1 )
- {
- ftModCode = modifications.get( indx ).getValue();
- }
- indx = modifications.indexOf( new RequestMod( GlobalIds.FT_MOD_ID ) );
- if ( indx != -1 )
- {
- ftModId = modifications.get( indx ).getValue();
- }
-
- if ( user == null )
- {
- user = new User();
- }
- IModel<User> userModel = new CompoundPropertyModel<User>( user );
- userPanel.setDefaultModel( userModel );
-
- addOrReplace( table );
- display.setMessage( msg );
- component = detailForm;
- }
- 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() );
- }
- }
-
- private List<RequestMod> parseRequestMods( List<String> mods )
- {
- List<RequestMod> results = new ArrayList<RequestMod>();
- if ( VUtil.isNotNullOrEmpty( mods ) )
- {
- Mod mod = ( Mod ) detailForm.getModelObject();
- if ( mod != null && VUtil.isNotNullOrEmpty( mod.getReqMod() ) )
- {
- int ctr = 1;
- for ( String szMod : mod.getReqMod() )
- {
- int indx = szMod.indexOf( ':' );
- if ( indx != -1 )
- {
- String szName = szMod.substring( 0, indx );
- String szValue = "";
- // ensure value not blank:
- if ( szMod.length() > indx + MOD_OFFSET && !szName.equalsIgnoreCase( GlobalIds.JPEGPHOTO ) )
- {
- szValue = szMod.substring( indx + MOD_OFFSET );
- }
- RequestMod requestMod = new RequestMod( ctr++, szName, szValue );
- char type = szMod.charAt( indx + 1 );
- if ( type == '=' )
- {
- requestMod.setType( RequestMod.TYPE.UPDATE );
- }
- else if ( type == '+' )
- {
- requestMod.setType( RequestMod.TYPE.ADD );
- }
- else if ( type == '-' )
- {
- requestMod.setType( RequestMod.TYPE.DELETE );
- }
- else
- {
- requestMod.setType( RequestMod.TYPE.UNKNOWN );
- }
- results.add( requestMod );
- }
- }
- }
- }
- return results;
- }
- }
-
- private IDataProvider<RequestMod> createDataProvider( List<RequestMod> mods )
- {
- ListDataProvider<RequestMod> results;
- if ( VUtil.isNotNullOrEmpty( mods ) )
- {
- results = new ListDataProvider<RequestMod>( mods );
- }
- else
- {
- results = new ListDataProvider<RequestMod>( new ArrayList<RequestMod>() );
- }
- return results;
- }
-
- private List<IColumn> newColumnList()
- {
- List<IColumn> columns = new ArrayList<IColumn>();
- columns.add( new PropertyColumn( "#", "index", 30 ) );
- columns.add( new PropertyColumn( "Op", "type", 50 ) );
- columns.add( new PropertyColumn( "Name", "name", 80 ) );
- columns.add( new PropertyColumn( "Value", "value", 200 ) );
- return columns;
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/AuditModListPanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/AuditModListPanel.java b/src/main/java/org/openldap/commander/panel/AuditModListPanel.java
deleted file mode 100644
index df7b941..0000000
--- a/src/main/java/org/openldap/commander/panel/AuditModListPanel.java
+++ /dev/null
@@ -1,453 +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.datetime.DatePicker;
-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.ajax.markup.html.form.AjaxSubmitLink;
-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.CompoundPropertyModel;
-import org.apache.wicket.model.IModel;
-import org.openldap.commander.AuditModListModel;
-import org.openldap.commander.AuditModPage;
-import org.openldap.commander.GlobalIds;
-import org.openldap.commander.GlobalUtils;
-import org.openldap.commander.SecureIndicatingAjaxButton;
-import org.openldap.commander.SecureIndicatingAjaxLink;
-import org.openldap.commander.SelectModelEvent;
-import org.apache.wicket.markup.html.form.Form;
-import org.apache.wicket.model.Model;
-import org.openldap.fortress.rbac.Mod;
-import org.openldap.fortress.rbac.Permission;
-import org.openldap.fortress.rbac.User;
-import org.openldap.fortress.rbac.UserAudit;
-import org.openldap.fortress.util.attr.AttrHelper;
-import org.openldap.fortress.util.attr.VUtil;
-
-import javax.swing.tree.DefaultMutableTreeNode;
-import javax.swing.tree.DefaultTreeModel;
-import javax.swing.tree.TreeNode;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-/**
- * @author Shawn McKinney
- * @version $Rev$
- * Date: 8/6/13
- */
-public class AuditModListPanel extends FormComponentPanel
-{
- private static final Logger LOG = Logger.getLogger(AuditModListPanel.class.getName());
- private Form listForm;
- private DefaultTreeModel treeModel;
- private DefaultMutableTreeNode node;
- private TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String> grid;
- private DefaultMutableTreeNode rootNode;
- private TextField userFld;
- private TextField objFld;
- private TextField opFld;
- protected DatePicker beginDateDP;
- protected DatePicker endDateDP;
- private Permission permission;
- private IModel<AuditModListModel> pageModel;
-
- public AuditModListPanel(String id, UserAudit userAudit )
- {
- super(id);
- init( userAudit );
- }
-
- private void init( UserAudit userAudit )
- {
- pageModel = new AuditModListModel(userAudit, GlobalUtils.getRbacSession( this ) );
- setDefaultModel(pageModel);
- createAndLoadGrid();
- this.listForm = new Form( "modform" );
- this.listForm.addOrReplace(grid);
- this.listForm.setModel( new CompoundPropertyModel<UserAudit>( userAudit ) );
- addFormFields();
- addButtons();
- add(this.listForm);
- }
-
- private void addFormFields()
- {
- userFld = new TextField(GlobalIds.USER_ID);
- userFld.setOutputMarkupId( true );
- AjaxFormComponentUpdatingBehavior ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( userFld );
- }
- };
- userFld.add( ajaxUpdater );
- this.listForm.add(userFld);
- addUserSearchModal();
-
- objFld = new TextField(GlobalIds.OBJ_NAME );
- objFld.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( objFld );
- }
- };
- objFld.add( ajaxUpdater );
- this.listForm.add( objFld );
-
- opFld = new TextField(GlobalIds.OP_NAME);
- opFld.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( opFld );
- }
- };
- opFld.add( ajaxUpdater );
- this.listForm.add( opFld );
- addPermSearchModal();
-
- // Begin Date
- beginDateDP = new DatePicker(GlobalIds.BEGIN_DATE);
- beginDateDP.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( beginDateDP );
- }
- };
- beginDateDP.add( ajaxUpdater );
- beginDateDP.setRequired( false );
- this.listForm.add( beginDateDP );
-
- // End Date
- endDateDP = new DatePicker(GlobalIds.END_DATE);
- endDateDP.setOutputMarkupId( true );
- ajaxUpdater = new AjaxFormComponentUpdatingBehavior( GlobalIds.ONBLUR )
- {
- @Override
- protected void onUpdate(final AjaxRequestTarget target)
- {
- target.add( endDateDP );
- }
- };
- endDateDP.add( ajaxUpdater );
- endDateDP.setRequired( false );
- this.listForm.add( endDateDP );
- }
-
- private void addButtons()
- {
- this.listForm.add(new SecureIndicatingAjaxButton( GlobalIds.SEARCH, GlobalIds.AUDIT_MGR, "searchAdminMods" )
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- LOG.debug( ".search onSubmit" );
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- if(!VUtil.isNotNullOrEmpty(userAudit.getUserId()))
- {
- userAudit.setUserId( "" );
- }
- if(permission != null)
- {
- userAudit.setDn( permission.getDn() );
- }
- setResponsePage( new AuditModPage( userAudit ) );
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- LOG.warn( ".search.onError" );
- throw new RuntimeException( "error submitting form" );
- }
-
- @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 );
- }
- });
- this.listForm.add(new AjaxSubmitLink(GlobalIds.CLEAR)
- {
- @Override
- protected void onSubmit(AjaxRequestTarget target, Form form)
- {
- setResponsePage( new AuditModPage( new UserAudit() ) );
- }
-
- @Override
- public void onError(AjaxRequestTarget target, Form form)
- {
- LOG.warn("AuditModListPanel.clear.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 );
- }
- });
- }
-
- private void createAndLoadGrid()
- {
- List<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>> columns =
- new ArrayList<IGridColumn<DefaultTreeModel, DefaultMutableTreeNode, String>>();
- PropertyColumn reqStart = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Timestamp"), "userObject.reqStart");
- reqStart.setInitialSize(200);
- columns.add(reqStart);
- PropertyColumn reqAttr = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("LDAP Operation"), "userObject.reqType");
- reqAttr.setInitialSize(150);
- columns.add(reqAttr);
-
- PropertyColumn reqAttrsOnly = new PropertyColumn<DefaultTreeModel, DefaultMutableTreeNode, String, String>(
- Model.of("Target Location"), "userObject.reqDN");
- reqAttrsOnly.setInitialSize(500);
- columns.add(reqAttrsOnly);
-
- List<Mod> mods = (List<Mod>) getDefaultModel().getObject();
- treeModel = createTreeModel(mods);
- grid = new TreeGrid<DefaultTreeModel, DefaultMutableTreeNode, String>("modtreegrid", treeModel, columns)
- {
- @Override
- public void selectItem(IModel itemModel, boolean selected)
- {
- node = (DefaultMutableTreeNode) itemModel.getObject();
- if(!node.isRoot())
- {
- Mod mod = (Mod) node.getUserObject();
- LOG.debug( "TreeGrid.addGrid.selectItem selected mod =" + mod.getReqAuthzID() );
- 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, mod);
- }
- }
- }
- };
-
- 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());
- grid.setOutputMarkupId(true);
- }
-
- private void addUserSearchModal()
- {
- final ModalWindow usersModalWindow;
- listForm.add( usersModalWindow = new ModalWindow( "usersearchmodal" ) );
- final UserSearchModalPanel userSearchModalPanel = new UserSearchModalPanel( usersModalWindow.getContentId(), usersModalWindow );
- usersModalWindow.setContent( userSearchModalPanel );
- usersModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
- {
- @Override
- public void onClose( AjaxRequestTarget target )
- {
- User userSelection = userSearchModalPanel.getUserSelection();
- if ( userSelection != null )
- {
- LOG.debug( "modal selected:" + userSelection.getUserId() );
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- userAudit.setUserId( userSelection.getUserId() );
- userAudit.setInternalUserId( userSelection.getInternalId() );
- target.add( userFld );
- }
- }
- } );
- listForm.add( new SecureIndicatingAjaxLink( "userAssignLinkLbl", GlobalIds.REVIEW_MGR, GlobalIds.FIND_USERS )
- {
- public void onClick( AjaxRequestTarget target )
- {
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- String msg = "clicked on users search";
- msg += "userSelection: " + userAudit.getUserId();
- userSearchModalPanel.setSearchVal( userAudit.getUserId() );
- LOG.debug( msg );
- target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
- usersModalWindow.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 );
- }
- } );
- usersModalWindow.setTitle( "User Search Modal" );
- usersModalWindow.setInitialWidth( 1000 );
- usersModalWindow.setInitialHeight( 700 );
- usersModalWindow.setCookieName( "user-search-modal" );
- }
-
- private void addPermSearchModal()
- {
- final ModalWindow permsModalWindow;
- listForm.add( permsModalWindow = new ModalWindow( "permsearchmodal" ) );
- final PermSearchModalPanel permSearchModalPanel = new PermSearchModalPanel( permsModalWindow.getContentId(), permsModalWindow, true );
- permsModalWindow.setContent( permSearchModalPanel );
- permsModalWindow.setWindowClosedCallback( new ModalWindow.WindowClosedCallback()
- {
- @Override
- public void onClose( AjaxRequestTarget target )
- {
- Permission permSelection = permSearchModalPanel.getSelection();
- if ( permSelection != null )
- {
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- LOG.debug( "modal selected:" + permSelection.getAbstractName() );
- permission = permSelection;
- userAudit.setObjName( permSelection.getObjName() );
- userAudit.setOpName( permSelection.getOpName() );
- target.add( objFld );
- target.add( opFld );
- }
- }
- } );
- listForm.add( new SecureIndicatingAjaxLink( "permLinkLbl", GlobalIds.REVIEW_MGR, GlobalIds.FIND_PERMISSIONS )
- {
- public void onClick( AjaxRequestTarget target )
- {
- UserAudit userAudit = (UserAudit)listForm.getModelObject();
- String msg = "clicked on perms search";
- msg += "permSelection: " + permission;
- permSearchModalPanel.setSearchVal( userAudit.getOpName() );
- permSearchModalPanel.setAdmin( true );
- LOG.debug( msg );
- target.prependJavaScript( GlobalIds.WICKET_WINDOW_UNLOAD_CONFIRMATION_FALSE );
- permsModalWindow.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 );
- }
- } );
- permsModalWindow.setTitle( "Admin Permission Search Modal" );
- permsModalWindow.setInitialWidth( 650 );
- permsModalWindow.setInitialHeight( 450 );
- permsModalWindow.setCookieName( "perm-search-modal" );
- }
-
- private DefaultTreeModel createTreeModel(List<Mod> mods)
- {
- DefaultTreeModel model;
- Mod root = new Mod();
- //root.setReqAuthzID( "Modifications" );
- rootNode = new DefaultMutableTreeNode(root);
- model = new DefaultTreeModel(rootNode);
- if (mods == null)
- LOG.debug("no Modifications found");
- else
- {
- LOG.debug("AuthZ found:" + mods.size());
- info("Loading " + mods.size() + " objects into list panel");
- loadTree( mods );
- }
- return model;
- }
-
- private void loadTree(List<Mod> mods)
- {
- for (Mod mod : mods)
- {
- Date start = null;
- try
- {
- start = AttrHelper.decodeGeneralizedTime( mod.getReqStart() );
- }
- catch (ParseException pe)
- {
- LOG.warn( "ParseException=" + pe.getMessage() );
- }
- if(start != null)
- {
- SimpleDateFormat formatter = new SimpleDateFormat( GlobalIds.AUDIT_TIMESTAMP_FORMAT );
- String formattedDate = formatter.format(start);
- mod.setReqStart( formattedDate );
- }
- rootNode.add(new DefaultMutableTreeNode(mod));
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/directory-fortress-commander/blob/547b9ccd/src/main/java/org/openldap/commander/panel/ConstraintAdminRolePanel.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/openldap/commander/panel/ConstraintAdminRolePanel.java b/src/main/java/org/openldap/commander/panel/ConstraintAdminRolePanel.java
deleted file mode 100644
index 2a5d5ac..0000000
--- a/src/main/java/org/openldap/commander/panel/ConstraintAdminRolePanel.java
+++ /dev/null
@@ -1,145 +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.datetime.DatePicker;
-import com.googlecode.wicket.kendo.ui.form.datetime.TimePicker;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.model.PropertyModel;
-import org.openldap.commander.GlobalIds;
-import org.openldap.fortress.util.time.Constraint;
-
-import java.util.Date;
-
-/**
- * @author Shawn McKinney
- * @version $Rev$
- * Date: 5/24/13
- */
-public class ConstraintAdminRolePanel extends ConstraintBasePanel
-{
- private static final String BEGIN_TIME_RC = GlobalIds.BEGIN_TIME_ARC;
- private static final String END_TIME_RC = GlobalIds.END_TIME_ARC;
- private static final String BEGIN_DATE_RC = GlobalIds.BEGIN_DATE_ARC;
- private static final String END_DATE_RC = GlobalIds.END_DATE_ARC;
- private static final String BEGIN_LOCK_DATE_RC = GlobalIds.BEGIN_LOCK_DATE_ARC;
- private static final String END_LOCK_DATE_RC = GlobalIds.END_LOCK_DATE_ARC;
-
- /**
- * Constructor requires model to be passed in.
- *
- * @param id
- * @param constraint
- */
- public ConstraintAdminRolePanel( String id, final IModel constraint )
- {
- super(id, constraint);
- beginTimeTP = new TimePicker( BEGIN_TIME_RC, new PropertyModel<Date>(this, BEGIN_TIME ))
- {
- @Override
- protected void onBeforeRender()
- {
- if (this.getParent().getDefaultModelObject() != null)
- {
- super.onBeforeRender();
- Constraint constraint = (Constraint) this.getParent().getDefaultModelObject();
- beginTime = renderTime(beginTime, constraint.getBeginTime());
- }
- }
- };
- add(beginTimeTP);
-
- endTimeTP = new TimePicker( END_TIME_RC, new PropertyModel<Date>(this, END_TIME ))
- {
- @Override
- protected void onBeforeRender()
- {
- if (this.getParent().getDefaultModelObject() != null)
- {
- super.onBeforeRender();
- Constraint constraint = (Constraint) this.getParent().getDefaultModelObject();
- endTime = renderTime(endTime, constraint.getEndTime());
- }
- }
- };
- add(endTimeTP);
- endTimeTP.setRequired(false);
-
- beginDateDP = new DatePicker( BEGIN_DATE_RC, new PropertyModel<Date>(this, BEGIN_DATE ))
- {
- @Override
- protected void onBeforeRender()
- {
- if (this.getParent().getDefaultModelObject() != null)
- {
- super.onBeforeRender();
- Constraint constraint = (Constraint) this.getParent().getDefaultModelObject();
- beginDate = renderDate(beginDate, constraint.getBeginDate());
- }
- }
- };
- beginDateDP.setRequired(false);
- add(beginDateDP);
-
- endDateDP = new DatePicker( END_DATE_RC, new PropertyModel<Date>(this, END_DATE ))
- {
- @Override
- protected void onBeforeRender()
- {
- if (this.getParent().getDefaultModelObject() != null)
- {
- super.onBeforeRender();
- Constraint constraint = (Constraint) this.getParent().getDefaultModelObject();
- endDate = renderDate(endDate, constraint.getEndDate());
- }
- }
- };
- endDateDP.setRequired(false);
- add(endDateDP);
-
- beginLockDateDP = new DatePicker( BEGIN_LOCK_DATE_RC, new PropertyModel<Date>(this, BEGIN_LOCK_DATE ))
- {
- @Override
- protected void onBeforeRender()
- {
- if (this.getParent().getDefaultModelObject() != null)
- {
- super.onBeforeRender();
- Constraint constraint = (Constraint) this.getParent().getDefaultModelObject();
- beginLockDate = renderDate(beginLockDate, constraint.getBeginLockDate());
- }
- }
- };
- beginLockDateDP.setRequired(false);
- add(beginLockDateDP);
-
- endLockDateDP = new DatePicker( END_LOCK_DATE_RC, new PropertyModel<Date>(this, END_LOCK_DATE ))
- {
- @Override
- protected void onBeforeRender()
- {
- if (this.getParent().getDefaultModelObject() != null)
- {
- super.onBeforeRender();
- Constraint constraint = (Constraint) this.getParent().getDefaultModelObject();
- endLockDate = renderDate(endLockDate, constraint.getEndLockDate());
- }
- }
- };
- endLockDateDP.setRequired(false);
- add(endLockDateDP);
- }
-}
\ No newline at end of file