in src/main/java/org/apache/directory/fortress/web/panel/UserDetailPanel.java [327:1155]
private void addButtons()
{
add( addPB = new SecureIndicatingAjaxButton( GlobalIds.ADD, GlobalIds.ADMIN_MGR, GlobalIds.ADD_USER )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
LOG.debug( ".onSubmit Add" );
User user = ( User ) getForm().getModel().getObject();
updateEntityWithComboData( user );
try
{
adminMgr.addUser( user );
SaveModelEvent.send( getPage(), this, user, target, SaveModelEvent.Operations.ADD );
component = editForm;
String msg = "User: " + user.getUserId() + " has been added";
display.setMessage( msg );
initAccordionLabels( user );
}
catch ( org.apache.directory.fortress.core.SecurityException se )
{
String error = ".onSubmit caught SecurityException=" + se;
LOG.error( error );
display.setMessage( error );
display.display();
}
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.info( "UserDetailPanel.add.onError" );
target.add();
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@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, GlobalIds.UPDATE_USER )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
LOG.debug( ".onSubmit commit" );
User user = ( User ) getForm().getModel().getObject();
// todo: fix this, going from string to char back to string (in ldap)?
/*
if ( pswdField != null )
{
user.setPassword( pswdField.toCharArray() );
}
else
{
user.setPassword( "".toCharArray() );
}
*/
updateEntityWithComboData( user );
try
{
adminMgr.updateUser( user );
editForm.setOutputMarkupId( true );
component = editForm;
String msg = "User: " + user.getUserId() + " has been updated";
display.setMessage( msg );
initAccordionLabels( user );
initSelectionModels();
SaveModelEvent.send( getPage(), this, user, target, SaveModelEvent.Operations.UPDATE );
}
catch ( org.apache.directory.fortress.core.SecurityException se )
{
String error = "commit caught SecurityException=" + se;
LOG.error( error );
display.setMessage( error );
display.display();
}
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "UserDetailPanel.commit.onError" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@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, GlobalIds.DELETE_USER )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
LOG.debug( ".onSubmit Commit" );
User user = ( User ) getForm().getModel().getObject();
try
{
adminMgr.deleteUser( user );
clearDetailPanel();
String msg = "User: " + user.getUserId() + " has been deleted";
display.setMessage( msg );
SaveModelEvent.send( getPage(), this, user, target, SaveModelEvent.Operations.DELETE );
}
catch ( org.apache.directory.fortress.core.SecurityException se )
{
String error = ".onSubmit caught SecurityException=" + se;
LOG.error( error );
display.setMessage( error );
}
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "UserDetailPanel.delete.onError" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new AjaxSubmitLink( GlobalIds.CANCEL )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
clearDetailPanel();
String msg = "User cancelled input form";
display.setMessage( msg );
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "UserDetailPanel.cancel.onError" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new AjaxSubmitLink( "save" )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
FileUpload fileUpload = upload.getFileUpload();
LOG.debug( ".onSubmit Save" );
User user = ( User ) getForm().getModel().getObject();
user.setJpegPhoto( fileUpload.getBytes() );
component = editForm;
String msg = "User: " + user.getUserId() + " photo uploaded successfully. Must commit for photo " +
"to be persisted on record.";
display.setMessage( msg );
initAccordionLabels( user );
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "save.onError" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
Label lockBtnLbl = new Label( "lockLabel", new PropertyModel<String>( this, "lockLabel" ) );
SecureIndicatingAjaxButton lock = new SecureIndicatingAjaxButton( "lockbtn", GlobalIds.ADMIN_MGR,
"lockUserAccount" )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
User user = ( User ) getForm().getModel().getObject();
String msg = "User: " + user.getUserId();
try
{
if ( user.isLocked() )
{
adminMgr.unlockUserAccount( user );
user.setLocked( false );
msg += " account has been unlocked";
}
else
{
adminMgr.lockUserAccount( user );
user.setLocked( true );
msg += " account has been locked";
}
display.setMessage( msg );
}
catch ( org.apache.directory.fortress.core.SecurityException se )
{
String error = ".onSubmit caught SecurityException=" + se;
LOG.error( error );
display.setMessage( error );
}
component = editForm;
initAccordionLabels( user );
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "ControlPanel.lock/unlock error" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
};
lock.add( lockBtnLbl );
add( lock );
add( new SecureIndicatingAjaxButton( "resetbtn", GlobalIds.ADMIN_MGR, "resetPassword" )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
User user = ( User ) getForm().getModel().getObject();
String msg = "User: " + user.getUserId();
try
{
adminMgr.resetPassword( user, user.getPassword() );
user.setReset( true );
msg += " account has been reset";
display.setMessage( msg );
}
catch ( org.apache.directory.fortress.core.SecurityException se )
{
String error = ".onSubmit caught SecurityException=" + se;
LOG.error( error );
display.setMessage( error );
}
component = editForm;
initAccordionLabels( user );
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "ControlPanel.reset error" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new SecureIndicatingAjaxButton( GlobalIds.ASSIGN, GlobalIds.ADMIN_MGR, GlobalIds.ASSIGN_USER )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
LOG.debug( ".onSubmit assign" );
User user = ( User ) getForm().getModel().getObject();
if( StringUtils.isNotEmpty( newUserRole ))
{
if ( assignRole( user, newUserRole ) )
{
String msg = "User: " + user.getUserId() + " has been assigned role: " + newUserRole;
display.setMessage( msg );
component = editForm;
initAccordionLabels( user );
userRoleSelection = new UserRole();
roleConstraint = new UserRole();
newUserRole = "";
}
else
{
String msg = "User: " + user.getUserId() + " assign failed for role: " + newUserRole;
display.setMessage( msg );
LOG.debug( msg );
}
}
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "assign.onError" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new SecureIndicatingAjaxButton( "assignAdminRole", GlobalIds.DEL_ADMIN_MGR, GlobalIds.ASSIGN_USER )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
LOG.debug( ".onSubmit assignAdminRole" );
User user = ( User ) getForm().getModel().getObject();
if( StringUtils.isNotEmpty( newUserAdminRole ))
{
if ( assignAdminRole( user, newUserAdminRole ) )
{
String msg = "User: " + user.getUserId() + " has been assigned adminRole: " +
newUserAdminRole;
display.setMessage( msg );
component = editForm;
initAccordionLabels( user );
userAdminRoleSelection = new UserAdminRole();
adminRoleConstraint = new UserAdminRole();
newUserAdminRole = "";
}
else
{
String msg = "User: " + user.getUserId() + " assign failed for admin role: " + newUserAdminRole;
display.setMessage( msg );
LOG.debug( msg );
}
}
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "assignAdminRole.onError" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new SecureIndicatingAjaxButton( GlobalIds.DEASSIGN, GlobalIds.ADMIN_MGR, GlobalIds.DEASSIGN_USER )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
LOG.debug( ".onSubmit deassign" );
User user = ( User ) getForm().getModel().getObject();
UserRole userRole = new UserRole( user.getUserId(), userRoleSelection.getName() );
if ( deassignRole( user, userRole ) )
{
user.delRole( userRoleSelection );
String msg = "User: " + user.getUserId() + " has been deassigned role: " + userRoleSelection.getName();
display.setMessage( msg );
component = editForm;
initAccordionLabels( user );
}
userRoleSelection = new UserRole();
roleConstraint = new UserRole();
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "deassign.onError" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new SecureIndicatingAjaxButton( "deassignAdminRole", GlobalIds.DEL_ADMIN_MGR, GlobalIds.DEASSIGN_USER )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
LOG.debug( ".onSubmit deassignAdminRole" );
User user = ( User ) getForm().getModel().getObject();
UserAdminRole userAdminRole = new UserAdminRole( user.getUserId(), userAdminRoleSelection.getName() );
if ( deassignAdminRole( user, userAdminRole ) )
{
user.delAdminRole( userAdminRole );
String msg = "User: " + user.getUserId() + " has been deassigned adminRole: " +
userAdminRoleSelection.getName();
display.setMessage( msg );
component = editForm;
initAccordionLabels( user );
}
userAdminRoleSelection = new UserAdminRole();
adminRoleConstraint = new UserAdminRole();
}
@Override
public void onError( AjaxRequestTarget target )
{
LOG.warn( "ControlPanel.deassignAdminRole.onError" );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new AjaxButton( "address.delete" )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
String msg = "clicked on address.delete";
if ( StringUtils.isNotEmpty( addressSelection ) )
{
msg += " selection:" + addressSelection;
User user = ( User ) getForm().getModel().getObject();
if ( user.getAddress() != null && user.getAddress().getAddresses() != null )
{
user.getAddress().getAddresses().remove( addressSelection );
addressSelection = "";
component = editForm;
initAccordionLabels( user );
msg += ", was removed from local, commit to persist changes on server";
}
else
{
msg += ", no action taken because user does not have address set";
}
}
else
{
msg += ", no action taken because address selection is empty";
}
display.setMessage( msg );
LOG.debug( msg );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new AjaxButton( "emails.delete" )
{
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
String msg = "clicked on emails.delete";
if ( StringUtils.isNotEmpty( emailsSelection ) )
{
msg += " selection:" + emailsSelection;
User user = ( User ) getForm().getModel().getObject();
if ( user.getEmails() != null )
{
user.getEmails().remove( emailsSelection );
emailsSelection = "";
component = editForm;
initAccordionLabels( user );
msg += ", was removed from local, commit to persist changes on server";
}
else
{
msg += ", no action taken because user does not have emails set";
}
}
else
{
msg += ", no action taken because emails selection is empty";
}
display.setMessage( msg );
LOG.debug( msg );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new AjaxButton( "phones.delete" )
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
String msg = "clicked on phones.delete";
if ( StringUtils.isNotEmpty( phonesSelection ) )
{
msg += " selection:" + phonesSelection;
User user = ( User ) getForm().getModel().getObject();
if ( user.getPhones() != null )
{
user.getPhones().remove( phonesSelection );
phonesSelection = "";
component = editForm;
initAccordionLabels( user );
msg += ", was removed from local, commit to persist changes on server";
}
else
{
msg += ", no action taken because user does not have phones set";
}
}
else
{
msg += ", no action taken because phones selection is empty";
}
display.setMessage( msg );
LOG.debug( msg );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
add( new AjaxButton( "mobiles.delete" )
{
private static final long serialVersionUID = 1L;
@Override
protected void onSubmit( AjaxRequestTarget target )
{
String msg = "clicked on mobiles.delete";
if ( StringUtils.isNotEmpty( mobilesSelection ) )
{
msg += " selection:" + mobilesSelection;
User user = ( User ) getForm().getModel().getObject();
if ( user.getMobiles() != null )
{
user.getMobiles().remove( mobilesSelection );
mobilesSelection = "";
component = editForm;
initAccordionLabels( user );
msg += ", was removed from local, commit to persist changes on server";
}
else
{
msg += ", no action taken because user does not have mobiles set";
}
}
else
{
msg += ", no action taken because mobiles selection is empty";
}
display.setMessage( msg );
LOG.debug( msg );
}
@Override
protected void updateAjaxAttributes( AjaxRequestAttributes attributes )
{
super.updateAjaxAttributes( attributes );
AjaxCallListener ajaxCallListener = new AjaxCallListener()
{
/** Default serialVersionUID */
private static final long serialVersionUID = 1L;
@Override
public CharSequence getFailureHandler( Component component )
{
return GlobalIds.WINDOW_LOCATION_REPLACE_COMMANDER_HOME_HTML;
}
};
attributes.getAjaxCallListeners().add( ajaxCallListener );
}
} );
addRoleSearchModal();
addAdminRoleSearchModal();
addPolicySearchModal();
addOUSearchModal();
}