com.ibm.commerce.collaboration.workspaces.commands
Class AddMemberToSpaceCtrlCmdImpl

java.lang.Object
  |
  +--CacheableCommandImpl
        |
        +--com.ibm.commerce.command.AbstractECTargetableCommand
              |
              +--com.ibm.commerce.command.ControllerCommandImpl
                    |
                    +--com.ibm.commerce.tools.command.ToolsControllerCommandImpl
                          |
                          +--com.ibm.commerce.collaboration.workspaces.commands.AddMemberToSpaceCtrlCmdImpl
All Implemented Interfaces:
AccCommand, AddMemberToSpaceCtrlCmd, ControllerCommand, ECCommand, ECTargetableCommand, ToolsControllerCommand

public class AddMemberToSpaceCtrlCmdImpl
extends ToolsControllerCommandImpl
implements AddMemberToSpaceCtrlCmd

Adds a list of registered members to the collaborative workspace. Each member will be automatically assigned the Author role in the collaborative workspace.

Behaviour

The command does the following for each member to be added to the collaborative workspace:

  1. Verifies that the user requesting the action has a Manager role in the collaborative workspace or a Site Administrator role in the seller organization. Otherwise, the requester does not have the authority to execute this command.
  2. Checks to make sure this member does not already have a role in the collaborative workspace. A member may have only one role in a collaborative workspace.
  3. Creates an instance of the CollabManagerAccessBean.
  4. Calls the addAuthorGroupMember method in the access bean to add the member to the collaborative workspace.
  5. If the member is added successfully and the sendEmail parameter is set to TRUE, the command will send an e-mail notification to the new member specifying the URL to access the collaborative workspace. E-mail notification is sent only if both the receiver and the sender have registered e-mail addresses.

Exception Conditions

If the collaborative workspace ID parameter is missing, the command sets the _ERR_MISSING_CMD_PARAMETER exception task to handle the error.

If the user requester does not have the authority to execute the AddMember function, the command sets the EC_ERROR_COLLAB_NO_AUTHORIZATION exception task to handle the error.

If any member in the list of members being added to the collaborative workspace already has the Author role in the specified workspace, the command sets the EC_ERROR_MEMBER_HAS_ROLE exception task to handle the error.

If any member in the list of members being added to the collaborative workspace already has the Manager or Reader role in the specified workspace, the command sets the EC_ERROR_MEMBER_HAS_ANOTHER_ROLE exception task to handle the error.

If the AddMember action was not executed successfully, the command sets the EC_ERROR_ADD_MEMBERS exception task to handle the error.

See Also:
Serialized Form

Field Summary
static java.lang.String COPYRIGHT
          Copyright statement
 
Fields inherited from class com.ibm.commerce.command. ControllerCommandImpl
requestProperties, responseProperties, retriable, viewReqProperties
 
Fields inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
commandContext
 
Fields inherited from interface com.ibm.commerce.collaboration.workspaces.commands. AddMemberToSpaceCtrlCmd
defaultCommandClassName, NAME
 
Constructor Summary
AddMemberToSpaceCtrlCmdImpl()
           
 
Method Summary
 java.lang.String getCollabSpaceId()
          Gets the unique identifier associated with the collaborative workspace.
 java.lang.String getCSCreator()
          Gets the national language-specific name of the creator of the collaborative workspace based on the language ID in the command context.
 java.lang.String getCSName()
          Gets the name of the collaborative workspace.
 java.lang.String getEmailAddressForUser(java.lang.String user)
          Deprecated. Please use com.ibm.commerce.workspaces.helper.CollabCommandHelper.getEmailAddressForUser() instead
 java.lang.String getLanguageIdForUser(java.lang.String user)
          Gets the preferred language ID of the users.
 java.util.Vector getNewMembers()
          Gets a list of members to be added to the collaborative workspace in the form of a vector.
 java.lang.String getQuickPlaceURL()
          Gets the URL to the controller command that will redirect to the QuickPlace associated with a collaborative workspace.
  AccessVector getResources()
          Gets the access control resources corresponding to the command.
 java.lang.String getWCUserId(java.lang.String fullDN)
          Deprecated. Please use com.ibm.commerce.workspaces.helper.CollabCommandHelper.DNtoUid() instead
 void performExecute()
          Contains the business logic for the command.
 boolean sendEmail(java.lang.String senderEmailAddress, java.lang.String userLogonId, java.lang.String csName, java.lang.String csCreator, java.lang.String quickPlaceURL, java.lang.String wcUserId, java.lang.String languageId)
          Sends an e-mail notification to the new member in the collaborative workspace specifying the URL to access the collaborative workspace.
 void setCollabSpaceId(java.lang.String newCollabSpaceId)
          Sets the unique identifier associated with the collaborative workspace to a local variable.
 void setNewMembers(java.util.Vector newMembers)
          Sets the list of new members to be added to the collaborative workspace to a local variable.
 void setRequestProperties( TypedProperty reqParms)
          Gets the input parameters from the requestProperties object and sets each parameter to a local variable.
 void setSendEmail(boolean newSendEmail)
          Sets the parameter specifying whether e-mail notification should be sent to the new member.
 boolean shouldSendEmail()
          Gets the parameter specifying whether e-mail notification should be sent to the new member.
 void validateParameters()
          Validates that the syntax of the input parameters are correct.
 
Methods inherited from class com.ibm.commerce.tools.command. ToolsControllerCommandImpl
getViewInputProperties
 
Methods inherited from class com.ibm.commerce.command. ControllerCommandImpl
checkPermission, fulfills, getForUserId, getGeneric, getOwner, getRequestProperties, getResolvedRequestProperties, getResourceOwners, getResponseProperties, getRetriable, isGeneric, isRetriable, mergeProperties, setForUserId, setGeneric, setOwner, setResponseProperties, setRetriable, setViewInputProperties
 
Methods inherited from class com.ibm.commerce.command. AbstractECTargetableCommand
accessControlCheck, checkIsAllowed, checkParameters, checkResourcePermission, createCommandExecutionEvent, execute, finalize, getAccCheck, getCommandContext, getCommandIfName, getCommandName, getCommandStoreId, getDefaultProperties, getStoreId, getUser, getUserId, isReadyToCallExecute, reset, setAccCheck, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.ibm.commerce.command. ControllerCommand
checkPermission, execute, getGeneric, getRequestProperties, getResolvedRequestProperties, getResponseProperties, getRetriable, getViewInputProperties, isGeneric, isRetriable, mergeProperties, setGeneric, setRetriable, setViewInputProperties
 
Methods inherited from interface com.ibm.commerce.command. AccCommand
accessControlCheck, getAccCheck, getForUserId, getResourceOwners, setAccCheck, setForUserId, setOwner
 
Methods inherited from interface com.ibm.commerce.command. ECCommand
checkIsAllowed, checkResourcePermission, createCommandExecutionEvent, getCommandContext, getCommandIfName, getCommandName, getCommandStoreId, getDefaultProperties, getStoreId, getUser, getUserId, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties
 

Field Detail
public static final java.lang.String COPYRIGHT
Copyright statement
See Also:
Constant Field Values
Constructor Detail

AddMemberToSpaceCtrlCmdImpl

public AddMemberToSpaceCtrlCmdImpl()
Method Detail

getCollabSpaceId

public java.lang.String getCollabSpaceId()
Gets the unique identifier associated with the collaborative workspace.
Returns:
The collaborative workspace ID.

getCSCreator

public java.lang.String getCSCreator()
Gets the national language-specific name of the creator of the collaborative workspace based on the language ID in the command context.
  1. If the language ID is less than -6, it is assumed that the name should be displayed in an Asian format (lastName FirstName).
  2. If the languageId is greater than or equal to -6, it is assumed that the name should be displayed in a Western format (FirstName space LastName).
Returns:
The name of the creator of the collaborative workspace.

getCSName

public java.lang.String getCSName()
Gets the name of the collaborative workspace.
Returns:
The name of the collaborative workspace.

getLanguageIdForUser

public java.lang.String getLanguageIdForUser(java.lang.String user)
Gets the preferred language ID of the users. If no language preference is associated with the user, the method returns null.
Parameters:
user - The collaborative workspace user.
Returns:
The preferred language Id of the user.

getNewMembers

public java.util.Vector getNewMembers()
Gets a list of members to be added to the collaborative workspace in the form of a vector.
Returns:
The list of new members to be added to the collaborative workspace.

getQuickPlaceURL

public java.lang.String getQuickPlaceURL()
Gets the URL to the controller command that will redirect to the QuickPlace associated with a collaborative workspace.
Returns:
The QuickPlace URL associated with a collaborative workspace.

getResources

public AccessVector getResources()
                          throws ECException
Gets the access control resources corresponding to the command.
Specified by:
getResources in interface ECCommand
Overrides:
getResources in class AbstractECTargetableCommand
Returns:
The access vector associated with the command.
Throws:
ECException - If the access control resources cannot be retrieved.

performExecute

public void performExecute()
                    throws ECException
Contains the business logic for the command.
Specified by:
performExecute in interface ECCommand
Overrides:
performExecute in class AbstractECTargetableCommand
Throws:
Exceptions - thrown by WebSphereCommerce server
ECException

sendEmail

public boolean sendEmail(java.lang.String senderEmailAddress,
                         java.lang.String userLogonId,
                         java.lang.String csName,
                         java.lang.String csCreator,
                         java.lang.String quickPlaceURL,
                         java.lang.String wcUserId,
                         java.lang.String languageId)
                  throws ECException
Sends an e-mail notification to the new member in the collaborative workspace specifying the URL to access the collaborative workspace.
Parameters:
senderEmailAddress - The e-mail address of the sender.
csName - The name of the collaborative workspace.
csCreator - The name of the creator of the collaborative workspace.
quickPlaceURL - The URL of the QuickPlace associated with the collaborative workspace.
wcUserId - The logon ID of the new member in the collaborative workspace.
languageId - The preferred language Id of the receiver of the e-mail.
Returns:
true if the e-mail was sent successfully, false if the e-mail was not sent successfully.
Throws:
Exceptions - thrown by WebSphereCommerce server
ECException

setCollabSpaceId

public void setCollabSpaceId(java.lang.String newCollabSpaceId)
Sets the unique identifier associated with the collaborative workspace to a local variable.
Parameters:
newCollabSpaceId - The collaborative workspace ID.

setNewMembers

public void setNewMembers(java.util.Vector newMembers)
Sets the list of new members to be added to the collaborative workspace to a local variable.
Parameters:
newMembers - The list of new members.

setRequestProperties

public void setRequestProperties(TypedProperty reqParms)
                          throws ECApplicationException
Gets the input parameters from the requestProperties object and sets each parameter to a local variable.
Specified by:
setRequestProperties in interface ControllerCommand
Overrides:
setRequestProperties in class ToolsControllerCommandImpl
Parameters:
reqParms - The input parameters that are received by the command.
Throws:
ECApplicationException - If the collaborative workspace ID is missing.

setSendEmail

public void setSendEmail(boolean newSendEmail)
Sets the parameter specifying whether e-mail notification should be sent to the new member.
Parameters:
newSendEmail - The variable specifying whether e-mail should be sent.

shouldSendEmail

public boolean shouldSendEmail()
Gets the parameter specifying whether e-mail notification should be sent to the new member.
Returns:
The variable specifying whether e-mail should be sent.

validateParameters

public void validateParameters()
                        throws ECException
Validates that the syntax of the input parameters are correct.
Specified by:
validateParameters in interface ECCommand
Overrides:
validateParameters in class AbstractECTargetableCommand
ECException

getWCUserId

public java.lang.String getWCUserId(java.lang.String fullDN)
Deprecated. Please use com.ibm.commerce.workspaces.helper.CollabCommandHelper.DNtoUid() instead
This method returns the WebSphereCommerce user ID given the full distinguished name (DN)
Parameters:
fullDN - the users's full distinguished name (DN)
Returns:
the user's WebSphereCommerce user ID

getEmailAddressForUser

public java.lang.String getEmailAddressForUser(java.lang.String user)
Deprecated. Please use com.ibm.commerce.workspaces.helper.CollabCommandHelper.getEmailAddressForUser() instead
Gets the e-mail address associated with a given user DN (Distinguished Name). If no e-mail address is associated with the user, the method returns null.
Parameters:
user - The distinguished name of a user (ex. uid=demoUser,o=Root Organization)
Returns:
The e-mail address associated with the user if it is specified in the database.