com.ibm.commerce.usermanagement.commands
Class UserRegistrationAddPreApprovalCmdImpl
java.lang.Object
CacheableCommandImpl
com.ibm.commerce.command.AbstractECTargetableCommand
com.ibm.commerce.command.ControllerCommandImpl
com.ibm.commerce.usermanagement.commands.UserRegistrationCmdImpl
com.ibm.commerce.usermanagement.commands.UserRegistrationAddCmdImpl
com.ibm.commerce.usermanagement.commands.UserRegistrationAddPreApprovalCmdImpl
- All Implemented Interfaces:
- AccCommand, ControllerCommand, ECCommand, ECTargetableCommand, Protectable, UserRegistrationAddCmd, UserRegistrationAddPreApprovalCmd, UserRegistrationCmd
- public class UserRegistrationAddPreApprovalCmdImpl
- extends UserRegistrationAddCmdImpl
- implements UserRegistrationAddPreApprovalCmd
The UserRegistrationAddPreApprovalCmd command register a guest user. This command is called by Unified Business Flow (UBF) framework if the URL command UserRegistrationAdd is called.
This command replaces UserRegistrationAddCmd in WCS V5.1. After the user is regisetered, the user automatically logs on.
A B2B user can be created by specified profileType equals to 'B'. B2B user may needed to be approved. To register a user under an organization or organizational unit, specify the parameter parentMember.
The information of the new user is stored in the MEMBER, USERS, USERREG, MBRREL, USERPROF, BUSPROF, USERDEMO and ADDRESS tables.
Use this command with SSL (Secure Sockets Layer) to ensure that the information are encrypted. To do so type the command with the HTTPS secure protocol.
The parameter URL, logonId, logonPassword and logonPasswordVerify are mandatory. The rest of the parameters are all optional.
Behavior
- Calls an empty task command PreUserRegistrationAddCmd. Store Developers can overwrite it change the input to the command.
- Updates the record of the current guest user in USERS table and changes the registration type from 'G' (guest) to 'R' (registered) and populates Distinguished Name.
- Create a new record in USERREG table. If Authentication Mode is 'LDAP', the logonId field in USERREG table stores the Distinguished Name of the user and the logon password is only stored in LDAP server, not in the USERREG table.
- Member relationship information is stored in MBRREL table.
- If any field related to USERPROF, BUSPROF and USERDEMO is specified, a new record will be created in these tables, otherwise, no record will be created.
- If any field related to ADDRESS table is specified, a self address (also called register address, with selfAddress field set to '1' and nickname is same as logonId) will be created. Otherwise no record will be created in the ADDRESS table.
Each user can have at most one self address.
- Calls a task command ProcessParentMemberCmd to validate parentMember.
If parentMember is null, the default parent is Default Organization (orgEntityId = -2000). If parentMember is not null, it can take two different type of values:
- Encrypted orgEntityId (using "nc_crypt -e ")
- Distinguished Name of the organization or organizational unit (eg. "o=Default Organization,o=Root Organization").
- Calls a task command ProcessProfileTypeCmd to determinate and validate profileType.
If profileType is not specified, and parentMember is not specified or is Default Organization, by default, the profileType is set to "C" and a B2C user will be created;
If profileType is not specified and parentMember is not Default Organization, by default, the profiletype is set to"B" and a B2B user will be created.
- Calls a task command AuthenticationPolicyCmd to performs verification or update of a user credentials.
- If preferredCurrency is not specified, default is the preferred currency in command context.
- If a new address need to be created but addressType is not specified, default is 'SB' (Shipping and Billing address).
- Check the required registration information parameters.
- Calls a task command AuditUserRegistrationCmd to check the additional parameters. Store Developers need to add new code to the task command if they want to customerizable check.
- Calls a task command SetCurrencyPrefCmd to set preferred currency to command context.
- Calls a task command UserRegistrationRoleAssignCmd to assign roles during self-registration. Currently this task command does nothing and it needs to be overiden by customers if they want to assign roles during self-registration.
- If the authentication mode is 'LDAP', a user entry will be created in the LDAP server.
- If the command fails, the UserRegistrationErrorView view command is called. Upon successful completion, the specified URL is called.
- Calls an empty task command PostUserRegistrationAddCmd. Store Developers can overwrite it to perform additional operations.
Exception Conditions
- URL is null (_ERR_CMD_MISSING_PARAM).
- The length of URL length equals 0 (_ERR_CMD_INVALID_PARAM).
- logonId is null (_ERR_CMD_MISSING_PARAM).
- The length of logonId equals 0 (_ERR_CMD_INVALID_PARAM).
- logonId already exists in database (EC_UREG_ERR_LOGONID_EXISTS).
- In LDAP Mode, the formulated Distinguished Name already exist in LDAP Sever or WCS Database (_ERR_RDN_ALREADY_EXIST).
- logonPassword is null (_ERR_CMD_MISSING_PARAM).
- The length of logonPassword equals 0 or greater than 70 (_ERR_CMD_INVALID_PARAM).
- logonPasswordVerify is null (_ERR_CMD_MISSING_PARAM).
- logonPassword is not equal to logonPasswordVerify (EC_UREG_ERR_PASSWORDS_NOT_SAME).
- profileType is not null and not equal to 'B' or 'C' (_ERR_CMD_INVALID_PARAM).
- parentMemberId is not null and not a foreign key set to the ORGENTITY table (_ERR_CMD_INVALID_PARAM).
- preferredCurrency is not null and not a foreign key set to the SETCCURR table (_ERR_CMD_INVALID_PARAM).
- preferredLanguage is not null and not a foreign key set to the LANGUAGE table (_ERR_CMD_INVALID_PARAM).
- age, income, children, household, demographicField6, publishPhone1, publishPhone2, and packageSupression is not null and not an integer (_ERR_CMD_INVALID_PARAM).
- See Also:
- Serialized Form
Field Summary |
static java.lang.String |
CLASSNAME
The name of this implementation of the command. |
static java.lang.String |
COPYRIGHT
IBM Copyright notice field. |
protected java.lang.String |
flowContext
The flow context. |
protected java.lang.Integer |
stateIdentifier
The state identifier. |
protected UserFlowEntityBean |
userFlowEntityBean
The user flow entity bean. |
Fields inherited from class com.ibm.commerce.usermanagement.commands.UserRegistrationCmdImpl |
abUser, abUserRegistry, bToolsFramework, iabParentOrgEntity, imbUser, inAge, inChildren, inDemographicsField6, inHousehold, inIncome, inOrganizationId, inOrganizationUnitId, inPackageSuppression, inPasswordExpired, inPreferredLanguage, inPrimary, inPublishPhone1, inPublishPhone2, inUserStatus, istrAddress1, istrAddress2, istrAddress3, istrAddressField1, istrAddressField2, istrAddressField3, istrAddressType, istrAge, istrAlternateId, istrAuthenticateMode, istrBestCallingTime, istrBillingCode, istrBillingCodeType, istrBusinessTitle, istrChallengeAnswer, istrChallengeQuestion, istrChildren, istrCity, istrCompanyName, istrCountry, istrDemographicsField1, istrDemographicsField2, istrDemographicsField3, istrDemographicsField4, istrDemographicsField5, istrDemographicsField6, istrDemographicsField7, istrDepartmentNumber, istrDescription, istrDisplayName, istrDistinguishedName, istrEmail1, istrEmail2, istrEmployeeId, istrEmployeeType, istrEncipheredMerchantKey, istrFax1, istrFax2, istrFirstName, istrGender, istrHobbies, istrHousehold, istrIncome, istrIncomeCurrency, istrLastName, istrLogonId, istrLogonPassword, istrLogonPasswordVerify, istrManager, istrMaritalStatus, istrMerchantKey, istrMiddleName, istrNickName, istrOfficeAddress, istrOldLogonId, istrOrderBefore, istrOrganizationId, istrOrganizationName, istrOrganizationUnitId, istrOrganizationUnitName, istrPackageSuppression, istrPasswordExpired, istrPersonTitle, istrPhone1, istrPhone1Type, istrPhone2, istrPhone2Type, istrPhoto, istrPreferredCommunication, istrPreferredCurrency, istrPreferredDelivery, istrPreferredLanguage, istrPreferredMeasure, istrPrimary, istrProfileType, istrPublishPhone1, istrPublishPhone2, istrReceiveEmail, istrRegisterType, istrSecretary, istrSelfAddress, istrShippingGeoCode, istrState, istrStatus, istrTaxGeoCode, istrTaxPayerId, istrTimeZone, istrURL, istrUserField1, istrUserField2, istrUserField3, istrUserProfileField1, istrUserProfileField2, istrUserStatus, istrWorkingUserId, istrZipCode, itmCreatedTimestamp, itmLastLogon, itmLastOrder, itmRegistration, itmRegistrationCancel, itmRegistrationUpdate |
Method Summary |
java.lang.Long |
getEntityId()
Returns the entity identifier. |
com.ibm.commerce.ubf.beans.BusinessFlowEntityBean |
getEntityObject()
Returns the entity object. |
java.lang.String |
getFlowContext()
Returns the flow context. |
void |
performExecute()
Sets the user registration state to pre-approved and then sets the roles for the member in the organization. |
void |
reset()
Resets the command so it can be reused for another call. |
void |
setFlowContext(java.lang.String newFlowContext)
Sets the flow context. |
void |
setStateIdentifier(java.lang.Integer aStateIdentifier)
Sets the state identifier. |
Methods inherited from class com.ibm.commerce.usermanagement.commands.UserRegistrationCmdImpl |
checkAddParameters, checkAncestorsLocked, checkCommonParameters, checkSelfRegistrationParameters, checkUpdateParameters, formulateDN, getAddress1, getAddress2, getAddress3, getAddressType, getAuthenticateMode, getBestCallingTime, getBillingCode, getBillingCodeType, getBusinessTitle, getCity, getCountry, getCreatedTimestamp, getEmail1, getEmail2, getEncipheredMerchantKey, getFax1, getFax2, getFirstName, getLastName, getMerchantKey, getMiddleName, getOfficeAddress, getOrganizationName, getOrganizationUnitName, getPackageSuppression, getPersonTitle, getPhone1, getPhone1Type, getPhone2, getPhone2Type, getPrimary, getProfileType, getPublishPhone1, getPublishPhone2, getRequestProperties, getRequiredRolesForUser, getResources, getState, getStatus, getURL, getViewInputProperties, getWorkingUserId, getZipCode, isAlphaNumeric, isLogonIdExist, isLogonIdExist, isLogonIdUnique, isReadyToCallExecute, logoffUserIfNotApproved, setAddress1, setAddress2, setAddress3, setAddressField1, setAddressField2, setAddressField3, setAddressType, setAge, setAge, setAlternateId, setAuthenticateMode, setBestCallingTime, setBillingCode, setBillingCodeType, setBillingCodeTypeType, setBusinessTitle, setChallengeAnswer, setChallengeQuestion, setChildren, setChildren, setCity, setCompanyName, setCountry, setCreatedTimestamp, setDemographicsField1, setDemographicsField2, setDemographicsField3, setDemographicsField4, setDemographicsField5, setDemographicsField6, setDemographicsField6, setDemographicsField7, setDepartmentNumber, setDescription, setDisplayName, setDistinguishedName, setEmail1, setEmail2, setEmployeeId, setEmployeeType, setEncipheredMerchantKey, setFax1, setFax2, setFirstName, setGender, setHobbies, setHousehold, setHousehold, setIncome, setIncome, setIncomeCurrency, setLastName, setLogonId, setLogonPassword, setLogonPasswordVerify, setLogonPasswordVerifyVerify, setManager, setMaritalStatus, setMerchantKey, setMiddleName, setNickName, setOfficeAddress, setOrderBefore, setOrganizationId, setOrganizationId, setOrganizationName, setOrganizationUnitId, setOrganizationUnitId, setOrganizationUnitName, setPackageSuppression, setPackageSuppression, setPasswordExpired, setPasswordExpired, setPersonTitle, setPhone1, setPhone1Type, setPhone2, setPhone2Type, setPhoto, setPreferredCommunication, setPreferredCurrency, setPreferredDelivery, setPreferredLanguage, setPreferredLanguage, setPreferredMeasure, setPrimary, setPrimary, setProfileType, setPublishPhone1, setPublishPhone1, setPublishPhone2, setPublishPhone2, setRolesForMemberInOrg, setSecretary, setShippingGeoCode, setState, setStatus, setTaxGeoCode, setTaxPayerId, setTimeZone, setURL, setUserField1, setUserField2, setUserField3, setUserProfileField1, setUserProfileField2, setUserStatus, setUserStatus, setWorkingUserId, setZipCode, UpdateCredentials, UpdatePreferredCurrency, UpdatePreferredLanguage, UpdateReceiveEmail |
Methods inherited from class com.ibm.commerce.command.ControllerCommandImpl |
checkPermission, fulfills, getForUserId, getGeneric, getOwner, 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, 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.usermanagement.commands.UserRegistrationCmd |
getAddress1, getAddress2, getAddress3, getAddressType, getAuthenticateMode, getBestCallingTime, getBillingCode, getBillingCodeType, getBusinessTitle, getCity, getCountry, getCreatedTimestamp, getEmail1, getEmail2, getFax1, getFax2, getFirstName, getLastName, getMiddleName, getOfficeAddress, getOrganizationName, getOrganizationUnitName, getPackageSuppression, getPersonTitle, getPhone1, getPhone1Type, getPhone2, getPhone2Type, getPrimary, getProfileType, getPublishPhone1, getPublishPhone2, getState, getStatus, getWorkingUserId, getZipCode, setAddress1, setAddress2, setAddress3, setAddressField1, setAddressField2, setAddressField3, setAddressType, setAge, setAge, setAlternateId, setAuthenticateMode, setBestCallingTime, setBillingCode, setBillingCodeType, setBusinessTitle, setChallengeAnswer, setChallengeQuestion, setChildren, setChildren, setCity, setCompanyName, setCountry, setCreatedTimestamp, setDemographicsField1, setDemographicsField2, setDemographicsField3, setDemographicsField4, setDemographicsField5, setDemographicsField6, setDemographicsField6, setDemographicsField7, setDepartmentNumber, setDescription, setDisplayName, setDistinguishedName, setEmail1, setEmail2, setEmployeeId, setEmployeeType, setEncipheredMerchantKey, setFax1, setFax2, setFirstName, setGender, setHobbies, setHousehold, setHousehold, setIncome, setIncome, setIncomeCurrency, setLastName, setLogonId, setLogonPassword, setLogonPasswordVerify, setManager, setMaritalStatus, setMerchantKey, setMiddleName, setOfficeAddress, setOrderBefore, setOrganizationId, setOrganizationId, setOrganizationName, setOrganizationUnitId, setOrganizationUnitId, setOrganizationUnitName, setPackageSuppression, setPackageSuppression, setPasswordExpired, setPasswordExpired, setPersonTitle, setPhone1, setPhone1Type, setPhone2, setPhone2Type, setPhoto, setPreferredCommunication, setPreferredCurrency, setPreferredDelivery, setPreferredLanguage, setPreferredLanguage, setPreferredMeasure, setPrimary, setPrimary, setProfileType, setPublishPhone1, setPublishPhone1, setPublishPhone2, setPublishPhone2, setSecretary, setShippingGeoCode, setState, setStatus, setTaxGeoCode, setTaxPayerId, setTimeZone, setURL, setUserField1, setUserField2, setUserField3, setUserProfileField1, setUserProfileField2, setUserStatus, setUserStatus, setWorkingUserId, setZipCode |
Methods inherited from interface com.ibm.commerce.command.ControllerCommand |
checkPermission, execute, getGeneric, getRequestProperties, getResolvedRequestProperties, getResponseProperties, getRetriable, getViewInputProperties, isGeneric, isRetriable, mergeProperties, setGeneric, setRequestProperties, setRetriable, setViewInputProperties |
Methods inherited from interface com.ibm.commerce.command.ECCommand |
checkIsAllowed, checkResourcePermission, createCommandExecutionEvent, getCommandContext, getCommandIfName, getCommandName, getCommandStoreId, getDefaultProperties, getResources, getStoreId, getUser, getUserId, setCommandContext, setCommandIfName, setCommandStoreId, setDefaultProperties, validateParameters |
COPYRIGHT
public static final java.lang.String COPYRIGHT
- IBM Copyright notice field.
- See Also:
- Constant Field Values
CLASSNAME
public static final java.lang.String CLASSNAME
- The name of this implementation of the command.
- See Also:
- Constant Field Values
userFlowEntityBean
protected UserFlowEntityBean userFlowEntityBean
- The user flow entity bean.
stateIdentifier
protected java.lang.Integer stateIdentifier
- The state identifier.
flowContext
protected java.lang.String flowContext
- The flow context.
UserRegistrationAddPreApprovalCmdImpl
public UserRegistrationAddPreApprovalCmdImpl()
getEntityId
public java.lang.Long getEntityId()
- Returns the entity identifier.
-
- Returns:
- The entity identifier.
getEntityObject
public com.ibm.commerce.ubf.beans.BusinessFlowEntityBean getEntityObject()
- Returns the entity object.
-
- Returns:
- The entity object.
getFlowContext
public java.lang.String getFlowContext()
- Returns the flow context.
-
- Returns:
- The flow context.
performExecute
public void performExecute()
throws ECException
- Sets the user registration state to pre-approved and then sets the roles for the member in the organization. Then the creditials are updated and the PostUserRegistationAdd command is called.
-
- Specified by:
- performExecute in interface ECCommand
- Overrides:
- performExecute in class UserRegistrationAddCmdImpl
-
- Throws:
- ECException - If there is a problem updating the approval state or calling any of the task commands.
reset
public void reset()
- Resets the command so it can be reused for another call.
-
- Specified by:
- reset in interface UserRegistrationCmd
- Overrides:
- reset in class UserRegistrationCmdImpl
setFlowContext
public void setFlowContext(java.lang.String newFlowContext)
- Sets the flow context.
-
- Parameters:
- newFlowContext - the flow context.
setStateIdentifier
public void setStateIdentifier(java.lang.Integer aStateIdentifier)
- Sets the state identifier.
-
- Parameters:
- aStateIdentifier - the state identifier.
Feedback
(C) Copyright IBM Corporation 1996, 2005. All Rights Reserved.