package com.nsi.storefront.beans;
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.nsi.storefront.business.IProduct;
import com.nsi.storefront.business.SFCert;
import com.nsi.storefront.business.SFCodeGuard;
import com.nsi.storefront.business.SFDomain;
import com.nsi.storefront.business.SFDomainBundle;
import com.nsi.storefront.business.SFDomainHosting;
import com.nsi.storefront.business.SFHosting;
import com.nsi.storefront.business.SFPointsToInfo;
import com.nsi.storefront.business.SFProduct;
import com.nsi.storefront.business.SFProductHolder;
import com.nsi.storefront.business.SFSubscriptionProduct;
import com.nsi.storefront.business.SFUserAccountManager;
import com.nsi.storefront.business.utils.SFProductDisplayUtils;
import com.nsi.storefront.business.utils.SFProductUtils;
import com.nsi.storefront.constants.SFAccountChannelConstant;
import com.nsi.storefront.constants.SFAccountTypeConstant;
import com.nsi.storefront.constants.SFClassNameConstant;
import com.nsi.storefront.constants.SFConstant;
import com.nsi.storefront.constants.SFMergeDirectionConstant;
import com.nsi.storefront.constants.SFPackageConstant;
import com.nsi.storefront.constants.SFProductCodeConstant;
import com.nsi.storefront.constants.SFStateConstant;
import com.nsi.storefront.exception.SFFGException;
import com.nsi.storefront.security.SFAccessController;
import com.nsi.storefront.security.SFPermissionRequest;
import com.nsi.storefront.utils.SFArrayUtil;
import com.nsi.storefront.utils.SFESEAccountConstraintChecker;
import com.nsi.storefront.utils.SFLogger;
import com.nsi.storefront.utils.SFRetailAccountConstraintChecker;
import com.nsi.storefront.utils.SFStringUtil;
import com.nsi.storefront.utils.SFSuspendedAccountConstraintChecker;
import com.nsi.storefront.utils.SFUserBeanResolver;
import com.nsi.storefront.utils.SFUtils;
import com.nsi.storefront.xmlschema.logging.types.LogEntryTypeEnum;
import com.nsi.storefront.xmlschema.security.types.ResourceEnum;
import com.nsi.storefront.xmlschema.security.types.RoleEnum;
import com.nsi.storefront.xmlschema.security.types.TaskEnum;
import org.springframework.util.CollectionUtils;
//-------------Copyright(c) 2001 Network Solutions, INC. ------------
/**
* This class has been created to take out some of the functionality from the
* SFUserBean. This class is to be used in the web pages (jhtml) to access the
* SFUserBean. The SFUserBean now should NOT be directly referenced in the jhtml.
* This class has been created to eliminate the dependancy of the
* web pages on the SFUserBean. Also some of the properties and methods in the
* SFUserBean that were only used in the jhtml have been moved to this class.
*
* @author Shahid Masud, McFadyen Consulting
* @since August 2001
* @version 1.0
* @see com.nsi.storefront.beans.SFUserBean
*/
//-------------------------------------------------------------------
public class SFUserBeanViewer implements Serializable
{
/**
* SCCS control ID
*/
static final String sccsID="%TC-INFO%";
public static final String MERGE_DIRECTION = "mergeDirection";
public static final String ACCOUNT_TYPE = "accountType";
protected SFUserBean user;
private SFUserAccountManager userAcctManager = null;
private SFAccessController accessController = null;
private SFUserBeanResolver userBeanResolver = null;
public void setUser(SFUserBean user)
{
this.user=user;
}
public SFUserBean getUser()
{
return user;
}
public void setUserAccountManager(SFUserAccountManager uam) {
userAcctManager = uam;
}
public void setAccessController(SFAccessController ac) {
accessController = ac;
}
public SFAccountViewer getCurrentAccountViewer()
{
return user.getCurrentAccountViewer();
}
public List getAccountViewerList()
{
return user.getAccountViewerList();
}
public String getNicHandle()
{
return user.getNicHandleId();
}
public void setUserBeanResolver(SFUserBeanResolver userBeanResolver)
{
this.userBeanResolver = userBeanResolver;
}
public SFUserBeanResolver getUserBeanResolver()
{
return this.userBeanResolver;
}
/**
* Returns true if user has only one purchasable account.
*/
public void pullAccount(int acctId) throws SFFGException
{
userAcctManager.pullAccount(acctId, user.getUser().getSfCredential());
}
/**
* Returns true if user has only one purchasable account.
*/
public boolean getHasOnlyOnePuchasableAccount()
{
int acctCounter = 0;
Map accountRel = userAcctManager.getAccountRelations(user.getUser().getUserId());
List accts = new ArrayList();
if (accountRel != null) {
Iterator relations = accountRel.keySet().iterator();
while (relations.hasNext()) {
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for (int i = 0; i < accounts.size(); i++) {
SFAccount acct = (SFAccount) accounts.get(i);
if (!accts.contains(acct)) {
if (checkPurchasePermission(user.getUser(), acct.getAccountId())) {
acctCounter++;
accts.add(acct);
}
}
if (acctCounter > 1) {
return false;
}
}
}
}
if (acctCounter == 1) {
return true;
}
return false;
}
/**
* Returns true if user has at least one hundred year term in ANY account.
*/
public boolean getHasAtLeastOneHundredYearTermInAnyAccount()
{
Map accountRel = userAcctManager.getAccountRelations(user.getUser().getUserId());
SFAccountViewer sfacctviewer = new SFAccountViewer();
SFLogger logger = SFLogger.getInstance();
if (accountRel != null) {
Iterator relations = accountRel.keySet().iterator();
while (relations.hasNext()) {
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
logger.logDebug("got to the for loop" + accounts.size());
for (int i = 0; i < accounts.size(); i++) {
SFAccount acct = (SFAccount) accounts.get(i);
if (acct != null) {
sfacctviewer.setAccount(acct);
if (sfacctviewer.getHasAtLeastOneHundredYearTerm() == true)
{
return true;
}
}
}
}
}
return false;
}
/**
* Returns the first purchasable account the user has.
*/
public SFAccount getFirstPurchasableAccount()
{
Map accountRel = userAcctManager.getAccountRelations(user.getUser().getUserId());
SFAccount purchasableAcct = null;
if (accountRel != null) {
Iterator relations = accountRel.keySet().iterator();
while (relations.hasNext()) {
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for (int i = 0; i < accounts.size(); i++) {
SFAccount acct = (SFAccount) accounts.get(i);
if (checkPurchasePermission(user.getUser(), acct.getAccountId())) {
purchasableAcct = acct;
break;
}
}
if (purchasableAcct != null) break;
}
}
return purchasableAcct;
}
/**
* Returns true if user has permission to merge more than two accounts.
*/
public boolean getHasMoreThanTwoAccountsToMerge()
{
return areMergeableAccountNumberAboveGivenLimit(2);
}
/**
* Returns true if user has permission to merge at least two accounts.
*/
public boolean getHasAccountsToMerge()
{
return areMergeableAccountNumberAboveGivenLimit(1);
}
/**
* Returns all accounts that the current user can merge.
*/
public List getMergeableAccounts()
{
Map accountRel = userAcctManager.getAccountRelations(user.getUser().getUserId());
List mergeAccts = new ArrayList();
if (accountRel != null) {
Iterator relations = accountRel.keySet().iterator();
while (relations.hasNext()) {
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for (int i = 0; i < accounts.size(); i++) {
SFAccount acct = (SFAccount) accounts.get(i);
if (!mergeAccts.contains(acct)) {
if (checkMergePermission(user.getUser(), acct.getAccountId())) {
mergeAccts.add(acct);
}
}
}
}
}
return mergeAccts;
}
/**
* Returns true if user has more mergeable accounts that the limit
*/
private boolean areMergeableAccountNumberAboveGivenLimit(int limit)
{
int acctCounter = 0;
Map accountRel = userAcctManager.getAccountRelations(user.getUser().getUserId());
List mergeAccts = new ArrayList();
if (accountRel != null) {
Iterator relations = accountRel.keySet().iterator();
while (relations.hasNext()) {
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for (int i = 0; i < accounts.size(); i++) {
SFAccount acct = (SFAccount) accounts.get(i);
if (!mergeAccts.contains(acct)) {
if (checkMergePermission(user.getUser(), acct.getAccountId())) {
acctCounter++;
mergeAccts.add(acct);
}
}
if (acctCounter > limit) {
return true;
}
}
}
}
return false;
}
/**
* Returns the type of the customer session
* Possible values are Customer, Vendor and Contact
*/
public String getSessionType()
{
return user.getSessionType();
}
/**
* return true if one of the relationshipNames is a wholesaler
*/
public boolean getIsWholesaler()
{
return user.getUser() instanceof SFWholesaler;
}
public void setChallengeQuestion(String challengeQuestion)
{
user.setChallengeQuestion(challengeQuestion);
}
public String getChallengeQuestion()
{
return user.getChallengeQuestion();
}
public void setChallengeAnswer(String challengeAnswer)
{
user.setChallengeAnswer(challengeAnswer);
}
public String getChallengeAnswer()
{
return user.getChallengeAnswer();
}
public String getDotusUsageIntentDescription()
{
return SFNexusCodesViewer.getNexusDescription(user.getDotusUsageIntent());
}
public String getDotusUserCategoryDescription()
{
return SFNexusCodesViewer.getNexusDescription(user.getDotusUserCategory());
}
public SFUserBeanViewer()
{
}
/**
* This method checks if the current user can purchase into the specified
* account
*
* @param user the logged in user
* @param acctId the account Id to check
* @return boolean
*/
public boolean checkPurchasePermission(SFUser user, int acctId) {
RoleEnum roleEnum = userAcctManager.getRelation(user.getUserId(),acctId);
SFAccount account = userAcctManager.getAccount(acctId);
if (roleEnum == null || account == null) return false;
SFPermissionRequest permission =
new SFPermissionRequest(TaskEnum.PURCHASE,
roleEnum, ResourceEnum.ALLPRODUCTS);
Map constraintData = new Hashtable();
constraintData.put(SFRetailAccountConstraintChecker.ACCOUNT_TYPE,
account.getAccountChannelType());
constraintData.put(SFSuspendedAccountConstraintChecker.ACCOUNT_STATUS,
new Integer(account.getStatus()));
constraintData.put(SFESEAccountConstraintChecker.ACCOUNT_TYPE,
account.getAccountChannelType());
constraintData.put(SFESEAccountConstraintChecker.IS_CSR,
user.isCSRRep());
if (accessController.checkPermission(permission, constraintData)) {
return true;
} else {
return false;
}
}
/**
* Does the user have permission to modify auto-renew for the given account?
*
* @param acct
* @return
*/
public boolean checkAutoRenewPermission(SFAccount acct)
{
final String method = "SFUserBeanViewer.checkAutoRenewPermission";
try {
if (acct.getAccountChannelType() == SFAccountChannelConstant.WHOLESALE) {
return false;
}
RoleEnum roleEnum = userAcctManager.getRelation(getUser().getUserId(),acct.getAccountId());
if (roleEnum != null)
{
SFPermissionRequest permission = new SFPermissionRequest(TaskEnum.AUTO_RENEW, roleEnum, ResourceEnum.ALLPRODUCTS);
Map constraintDataTable = new Hashtable();
constraintDataTable.put(SFESEAccountConstraintChecker.ACCOUNT_TYPE, acct.getAccountChannelType());
constraintDataTable.put(SFESEAccountConstraintChecker.IS_CSR, getUser().getIsCSRRep());
if (!accessController.checkPermission(permission, constraintDataTable)) {
return false;
}
}
} catch (Exception e) {
SFLogger.printError(LogEntryTypeEnum.ERROR_MEDIUM_PROGRAM, method + " - exception when checking" +
" permission for user " + getUser().getUserId(), e);
return false;
}
return true;
}
/**
* This method checks if the current user has permission to merge an account.
*
* @param user the logged in user
* @param acctId the account Id to check
* @return boolean
*/
public boolean checkMergePermission(SFUser user, int acctId) {
RoleEnum roleEnum = userAcctManager.getRelation(user.getUserId(),acctId);
SFAccount account = userAcctManager.getAccount(acctId);
if (roleEnum == null || account == null) return false;
SFPermissionRequest permission =
new SFPermissionRequest(TaskEnum.MERGE_ACCOUNTS,
roleEnum, ResourceEnum.ACCOUNT);
Map constraintData = new Hashtable();
constraintData.put(ACCOUNT_TYPE, account.getAccountChannelType());
constraintData.put(SFSuspendedAccountConstraintChecker.ACCOUNT_STATUS,
new Integer(account.getStatus()));
constraintData.put(MERGE_DIRECTION, SFMergeDirectionConstant.FROM);
if (accessController.checkPermission(permission, constraintData)) {
return true;
} else {
constraintData.clear();
constraintData.put(ACCOUNT_TYPE, account.getAccountChannelType());
constraintData.put(SFSuspendedAccountConstraintChecker.ACCOUNT_STATUS,
new Integer(account.getStatus()));
constraintData.put(MERGE_DIRECTION, SFMergeDirectionConstant.TO);
if (accessController.checkPermission(permission, constraintData)) {
return true;
}
return false;
}
}
/**
* This method is checks if domains are all in one account
*
* @param user the current logged in user
* @param domains the domains being checked
*
* @return returns true if all doamins are in a same account, false otherwise
*/
public boolean areDoaminsInOneAccount(SFUser user, String[] domains) {
SFAccount firstAccount = null;
for (int i = 0; i < domains.length; i++) {
SFAccount account = this.userAcctManager.getAccountByDomainName(user.getUserId(), domains[i]);
if (account != null) {
if (firstAccount == null) {
firstAccount = account;
} else {
if (firstAccount.getAccountId() != account.getAccountId()) {
return false;
}
}
} else {
return false;
}
}
return true;
}
/**
* This method obtains a unique list of accounts on which the current user has purchase
* permissions.
*
* @return Vector of accounts the user can purchase into
*/
public List getPurchasableAccts()
{
Map accountRel=userAcctManager.getAccountRelations(user.getUser().getUserId());
List purchasableAccts=new ArrayList();
if ( accountRel == null )
return purchasableAccts;
Iterator relations= accountRel.keySet().iterator();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct=(SFAccount)accounts.get(i);
if ( !purchasableAccts.contains(acct) )
{
if ( checkPurchasePermission(user.getUser(),acct.getAccountId()) )
{
purchasableAccts.add(acct);
}
}
}
}
return purchasableAccts;
}
/**
*
* @return a list of accounts that the user has primary contact on
*/
public List<SFAccount> getAccountsUnderSamePrimaryContact()
{
return userAcctManager.getAccounts(user.getUserId(), RoleEnum.PRIMARYUSER);
}
/**
* This method returns the Current Account if it has
* purchase permissions.
*
* Otherwise it returns null.
*
* @return the current Account if it has purchase permissions.
*/
public SFAccount getPurchasableCurrentAccount()
{
SFAccount account = user.getCurrentAccount();
SFAccount currentAccount = null;
if (account == null)
return null;
if (checkPurchasePermission(user.getUser(), account.getAccountId()))
{
currentAccount = account;
}
return currentAccount;
}
/**
* This method returns true, if the customer has any valid domains (with appriopriate PR supported tld)
* without a private registration product, in his current account.
*
* ALSO, the current account should HAVE purchase permissions.
*
* @return a flag that determines if the user has any domains without private registration product.
*/
public boolean getHasDomainsWithoutPR()
{
Map accountRel=userAcctManager.getAccountRelations(user.getUser().getUserId());
if ( accountRel == null )
return false;
Iterator relations= accountRel.keySet().iterator();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct=(SFAccount)accounts.get(i);
if (SFUtils.hasAcceptableDomainProductWithoutPR(acct))
{
return true;
}
}
}
return false;
}
public boolean getHasPRInAccounts()
{
Map accountRel=userAcctManager.getAccountRelations(user.getUser().getUserId());
if ( accountRel == null )
return false;
Iterator relations= accountRel.keySet().iterator();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct = (SFAccount)accounts.get(i);
SFProductHolder productHolder = acct.getProductCollection();
if ( productHolder != null )
{
List prs = productHolder.getProductByType("com.nsi.storefront.business.SFPrivateRegistration");
if (prs != null && prs.size() > 0)
{
return true;
}
}
}
}
return false;
}
/**
* This method returns true, if the customer has any valid domains
* without a EBL product, in his current account.
*
* ALSO, the current account should HAVE purchase permissions.
*
* @return a flag that determines if the user has any domains without private registration product.
*/
public boolean getHasDomainsWithoutEBL()
{
Map accountRel=userAcctManager.getAccountRelations(user.getUser().getUserId());
if ( accountRel == null )
return false;
Iterator relations= accountRel.keySet().iterator();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct=(SFAccount)accounts.get(i);
if (SFUtils.hasAcceptableDomainProductWithoutEBL(acct))
{
return true;
}
}
}
return false;
}
/**
* This method returns true, if the customer has any valid domains
* without a DLS product, in his current account.
*
* ALSO, the current account should HAVE purchase permissions.
*
* @return a flag that determines if the user has any domains without domain listing service product.
*/
public boolean getHasDomainsWithoutDLS()
{
Map accountRel=userAcctManager.getAccountRelations(user.getUser().getUserId());
if ( accountRel == null )
return false;
Iterator relations= accountRel.keySet().iterator();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct=(SFAccount)accounts.get(i);
if (SFUtils.hasAcceptableDomainProductWithoutDLS(acct))
{
return true;
}
}
}
return false;
}
/**
* Determine how many domains the user has access to across all accounts.
*
* @return the number of domains the user has access to across all accounts.
*/
public int getNumberOfDomains()
{
int numDomains = 0;
Map accountRel = userAcctManager.getAccountRelations(user.getUser().getUserId());
if ( accountRel == null )
return 0;
Iterator relations = accountRel.keySet().iterator();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
if (accounts != null) {
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct = (SFAccount)accounts.get(i);
SFAccountViewer acctViewer = new SFAccountViewer();
acctViewer.setAccount(acct);
numDomains += acctViewer.getNumDomains();
}
}
}
return numDomains;
}
/**
* This method hadles the checkbox option, deciding whether the user has agreed to the terms.
* If this is false then the user will get redirected with an appropriate error message.
*/
public void setAgreedTerms(boolean agreedTerms)
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
tempUser.setAgreedTerms(agreedTerms);
}
public void setAgreeEVSslSubscriberAgreement(boolean agreeEVSslSubscriberAgreement)
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
tempUser.setAgreeEVSslSubscriberAgreement(agreeEVSslSubscriberAgreement);
}
/**
* This method hadles the checkbox option, deciding whether the user has agreed to the AOLYellowPages terms.
* If this is false then the user will get redirected with an appropriate error message.Tr# 23555
*/
public void setAgreedAOLYPTerms(boolean agreedAOLYPTerms) {
SFUserBean tempUser = userBeanResolver.getSFUserBean();
tempUser.setPartnerTerms(SFProductCodeConstant.AOL_YP.getDescription(),
new Boolean(agreedAOLYPTerms));
}
/**
* This method hadles the checkbox option, deciding whether the user has agreed to the Roving CC terms.
* If this is false then the user will get redirected with an appropriate error message.
* For partner products with only one product using the product code to qualify the service agreement
* If new products added for the same partner and service agreement URL is same just remove the product code qualifier.
*/
public void setAgreedRovingCCTerms(boolean agreedRovingCCTerms)
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
tempUser.setPartnerTerms(SFProductCodeConstant.ROV_CC.getDescription(),
new Boolean(agreedRovingCCTerms));
}
/**
* This method hadles the checkbox option, deciding whether the user has agreed to the Website Pro VOLterms.
* If this is false then the user will get redirected with an appropriate error message.
*/
public void setAgreedWSPVOLTerms(boolean agreedWSPVOLTerms)
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
tempUser.setPartnerTerms(SFProductCodeConstant.WSP_VOL.getDescription(),
new Boolean(agreedWSPVOLTerms));
}
/**
* This method hadles the checkbox option, deciding whether the user has agreed to the WSP WSD terms.
* If this is false then the user will get redirected with an appropriate error message.
* Adding all the codes as all the product codes share the same service agreement and
* only one checkbox is displayed on payment page
*/
public void setAgreedWSPWSDTerms(boolean agreedWSPWSDTerms)
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
tempUser.setPartnerTerms(SFProductCodeConstant.SDH.getDescription(),
new Boolean(agreedWSPWSDTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.ADH.getDescription(),
new Boolean(agreedWSPWSDTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.SDV.getDescription(),
new Boolean(agreedWSPWSDTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.ADV.getDescription(),
new Boolean(agreedWSPWSDTerms));
}
/**
* This method hadles the checkbox option, deciding whether the user has agreed to the Affinity terms.
* If this is false then the user will get redirected with an appropriate error message.Tr# 23555
* Adding all the affinity product codes as all the product codes share the same service agreement and
* only one checkbox is displayed on payment page
*/
public void setAgreedAffinityTerms(boolean agreedAffinityTerms)
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
tempUser.setPartnerTerms(SFProductCodeConstant.VW_SH.getDescription(),
new Boolean(agreedAffinityTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.VW_CH.getDescription(),
new Boolean(agreedAffinityTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.VW_MH.getDescription(),
new Boolean(agreedAffinityTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.VW_PH.getDescription(),
new Boolean(agreedAffinityTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.BS_STORE.getDescription(),
new Boolean(agreedAffinityTerms));
}
/**
* This method hadles the checkbox option, deciding whether the user has agreed to the Overture terms.
* If this is false then the user will get redirected with an appropriate error message.
* Adding all the overture product codes as all the product codes share the same service agreement and
* only one checkbox is displayed on payment page
*/
public void setAgreedOvertureTerms(boolean agreedOvertureTerms)
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
tempUser.setPartnerTerms(SFProductCodeConstant.OVER_FT.getDescription(),
new Boolean(agreedOvertureTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.OVER_SS.getDescription(),
new Boolean(agreedOvertureTerms));
}
/**
* This method hadles the checkbox option, deciding whether the user has agreed to the Poistion Tech terms.
* If this is false then the user will get redirected with an appropriate error message.Tr# 23555
* Adding all the position tech product codes as all the product codes share the same service agreement and
* only one checkbox is displayed on payment page
*/
public void setAgreedPOSTerms(boolean agreedPOSTerms)
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
tempUser.setPartnerTerms(SFProductCodeConstant.POS_INK.getDescription(),
new Boolean(agreedPOSTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.POS_AJ.getDescription(),
new Boolean(agreedPOSTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.POS_DS.getDescription(),
new Boolean(agreedPOSTerms));
tempUser.setPartnerTerms(SFProductCodeConstant.POS_FAST.getDescription(),
new Boolean(agreedPOSTerms));
}
/**
* This method will return the boolean agreed terms.
*
* @return java.lang.boolean
*/
public boolean getAgreedTerms()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return tempUser.getAgreedTerms();
}
public boolean getAgreeEVSslSubscriberAgreement()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return tempUser.getAgreeEVSslSubscriberAgreement();
}
/**
* This method will return the boolean AOL Yellow Pages agreed terms.Tr# 23555
*
* @return java.lang.boolean
*/
public boolean getAgreedAOLYPTerms()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return tempUser.getPartnerTerms(SFProductCodeConstant.AOL_YP.getDescription());
}
/**
* This method will return the boolean Roving CC agreed terms.
* @return java.lang.boolean
*/
public boolean getAgreedRovingCCTerms()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return tempUser.getPartnerTerms(SFProductCodeConstant.ROV_CC.getDescription());
}
/**
* This method will return the boolean Website Pro VOL agreed terms.
* @return java.lang.boolean
*/
public boolean getAgreedWSPVOLTerms()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return tempUser.getPartnerTerms(SFProductCodeConstant.WSP_VOL.getDescription());
}
/**
* This method will return the boolean WSP WSD agreed terms.
*
* @return java.lang.boolean
*/
public boolean getAgreedWSPWSDTerms()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return (tempUser.getPartnerTerms(SFProductCodeConstant.SDH.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.ADH.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.SDV.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.ADV.getDescription())
);
}
/**
* This method will return the boolean Affinity agreed terms.Tr# 23555
*
* @return java.lang.boolean
*/
public boolean getAgreedAffinityTerms()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return (tempUser.getPartnerTerms(SFProductCodeConstant.VW_SH.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.VW_CH.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.VW_MH.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.VW_PH.getDescription())
);
}
/**
* This method will return the boolean Position Tech agreed terms.Tr# 23555
*
* @return java.lang.boolean
*/
public boolean getAgreedPOSTerms()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return (tempUser.getPartnerTerms(SFProductCodeConstant.POS_INK.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.POS_AJ.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.POS_DS.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.POS_FAST.getDescription())
);
}
/**
* This method will return the boolean Overture agreed terms.
*
* @return java.lang.boolean
*/
public boolean getAgreedOvertureTerms()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return (tempUser.getPartnerTerms(SFProductCodeConstant.OVER_FT.getDescription()) ||
tempUser.getPartnerTerms(SFProductCodeConstant.OVER_SS.getDescription())
);
}
/**
* This method will return the boolean Bigstep Store agreed terms.
* @return java.lang.boolean
*/
public boolean getAgreedBigstepTerms()
{
SFUserBean tempUser = userBeanResolver.getSFUserBean();
return tempUser.getPartnerTerms(SFProductCodeConstant.BS_STORE.getDescription());
}
/**
* This return the number of accounts the userBean is associated
* to for small user
*
* @return the number of accounts for small user for large user
* return -1;
*/
public int getNumberOfAccounts()
{
// We can only get this number accurately
// for small user
if ( !user.getUser().isProductsThresholdExceeded() &&
!user.getUser().isAccountThresholdExceeded() )
{
List accounts = userAcctManager.getAccounts(user.getUserId());
if ( accounts != null )
return accounts.size();
else
return 0;
}
return -1;
}
public boolean getHasDomainsWithoutPrivateReg(int accountId) {
Map accountRel = userAcctManager.getPurchasableAccountRelations(user.getUser().getUserId());
if(null == accountRel) {
return false;
}
Iterator en = accountRel.keySet().iterator();
while(en.hasNext()) {
RoleEnum role = (RoleEnum) en.next();
List accounts = (List) accountRel.get(role);
for(int i=0; i<accounts.size(); i++) {
SFAccount account = (SFAccount) accounts.get(i);
if(account.getAccountId() == accountId) {
if(SFUtils.hasAcceptableDomainProductWithoutPR(account)) {
return true;
}
}
}
}
return false;
}
public boolean getShouldUpsellPRForCurrentDomain()
{
Map accountRel=userAcctManager.getPurchasableAccountRelations(user.getUser().getUserId());
if ( accountRel == null )
return false;
Iterator relations= accountRel.keySet().iterator();
String currentDomainName = user.getDomainName();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct=(SFAccount)accounts.get(i);
if (SFUtils.hasAcceptableDomainProductWithoutPR(acct, currentDomainName))
{
return true;
}
}
}
return false;
}
//return a list of account id which has domain without privReg for the user
public List getAccountsForDomainWithoutPR() {
List results = new ArrayList();
Map accountRel=userAcctManager.getPurchasableAccountRelations(user.getUser().getUserId());
if ( accountRel != null )
{
Iterator relations= accountRel.keySet().iterator();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct = (SFAccount)accounts.get(i);
if (SFUtils.hasAcceptableDomainProductWithoutPR(acct))
{
results.add(acct.getAccountId());
}
}
}
}
return results;
}
//return a list of account id which has domain without privReg for the user
public List<Integer> getAccountsForDomainWithoutPriReg() {
return getPurchasableAccountsForDomainWithoutGivenType(SFClassNameConstant.PRIVATE_REGISTRATION_TYPE.getDescription());
}
//return a list of account id which has domain without WF for the user
public List<Integer> getAccountsForDomainWithoutWF() {
return getPurchasableAccountsForDomainWithoutGivenType(SFClassNameConstant.WEBFORWARDING_TYPE.getDescription());
}
//return a list of account id which has domain without WF for the user
public List<Integer> getAccountsForDomainWithoutDEP() {
return getPurchasableAccountsForDomainWithoutGivenType(SFClassNameConstant.DOM_EXP_PROTECT_TYPE.getDescription());
}
public List<Integer> getPurchasableAccountsForDomainWithoutGivenType(String type) {
List results = new ArrayList();
List<SFAccount> purchasableAccounts = getPurchasableAccts();
if (!CollectionUtils.isEmpty(purchasableAccounts)) {
for (SFAccount account : purchasableAccounts) {
if (SFUtils.hasAcceptableDomainProductWithoutGivenType(account, type)) {
results.add(account.getAccountId());
}
}
}
return results;
}
/**
* Does the user have ONLY hosted exchange emails - i.e. no other types of email?
*
* @return
*/
public boolean getHasHostedExchangeEmailOnly()
{
boolean result = true;
List<SFProduct> hostedExchangeProducts = new ArrayList<SFProduct>();
userAcctManager.findProductsByProductCodeForAllAccounts(SFProductCodeConstant.HOSTED_EXCHANGE, hostedExchangeProducts);
if (hostedExchangeProducts.isEmpty()){
return false;
}
SFProductSummary productSummary =
user.getUser().getUserProductProfile().getProductSummary();
long nonHostedExchangeEmailCount = 0;
nonHostedExchangeEmailCount += productSummary.getUnconfiguredAlacartePersonalEmailCount();
nonHostedExchangeEmailCount += productSummary.getUnconfiguredAlacarteBusinessEmailCount();
nonHostedExchangeEmailCount += productSummary.getUnconfiguredHostingEmailCount();
nonHostedExchangeEmailCount += productSummary.getUnconfiguredDomainPkgEmailCount();
nonHostedExchangeEmailCount += productSummary.getUnconfiguredECommerceEmailCount();
nonHostedExchangeEmailCount += productSummary.getUnconfiguredFreeWebsiteEmailCount();
nonHostedExchangeEmailCount += productSummary.getUnconfiguredMessageGuardCount();
nonHostedExchangeEmailCount += productSummary.getUnconfiguredWebSiteEmailCount();
if (nonHostedExchangeEmailCount > 0) {
return false;
}
return result;
}
public boolean getExpiringProductsWithin90Days()
{
List<SFAccount> accounts = getUser().getUser().getAccounts();
for (SFAccount account : accounts) {
SFProductHolder pc = account.getProductCollection();
List<SFProduct> products = pc.getProductList();
for (SFProduct product : products) {
if (SFUtils.isExpireIn90Days(product)) {
return true;
}
}
}
return false;
}
// return the first domain in user's purchasable accounts
public SFDomain getDomainForEmailConfig() {
SFDomain prod = new SFDomain();
List accounts = this.user.getUser().getAccounts();
for (Iterator iter = accounts.iterator(); iter.hasNext();) {
SFAccount acct = (SFAccount) iter.next();
if (checkPurchasePermission(user.getUser(), acct.getAccountId()))
{
List domainList = acct.getProductCollection().getAllProductByType(SFClassNameConstant.DOMAIN_TYPE.getDescription());
if (domainList != null && domainList.size() != 0) {
prod = (SFDomain) domainList.get(0);
break;
}
}
}
return prod;
}
// return the domain name list in user's purchasable accounts
public List<String> getDomainNamesForEmailConfig()
{
List<String> domainNames = new ArrayList<String>();
List accounts = this.user.getUser().getAccounts();
for (Iterator iter = accounts.iterator(); iter.hasNext();)
{
SFAccount acct = (SFAccount) iter.next();
if (checkPurchasePermission(user.getUser(), acct.getAccountId()))
{
List<SFDomain> domainList = acct.getProductCollection().getAllProductByType(SFClassNameConstant.DOMAIN_TYPE.getDescription());
if (domainList != null && domainList.size() != 0)
{
for (SFDomain domain : domainList)
{
domainNames.add(domain.getDomainName());
}
}
}
}
return domainNames;
}
/**
* STOREFRONT-3770: Free Trial Private Reg in CTB
*
* This method returns true, if the customer has any valid domains (with appriopriate PR supported tld)
* without a private registration product, in his purchasable account.
*
*/
public boolean getHasDomainWithoutPRInPurchasableAccounts()
{
Map accountRel=userAcctManager.getPurchasableAccountRelations(user.getUser().getUserId());
if ( accountRel == null )
return false;
Iterator relations= accountRel.keySet().iterator();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct=(SFAccount)accounts.get(i);
if (SFUtils.hasAcceptableDomainProductWithoutPR(acct))
{
return true;
}
}
}
return false;
}
/**
* STOREFRONT-3770: Free Trial Private Reg in CTB
*
* This method returns first purchasable account which has any valid domains (with appriopriate PR supported tld)
* without a private registration product, in his purchasable account.
*
*/
public int getFirstPurchasableAcctIdHasDomainWithoutPR()
{
Map accountRel=userAcctManager.getPurchasableAccountRelations(user.getUser().getUserId());
if ( accountRel == null )
return -1;
Iterator relations= accountRel.keySet().iterator();
while ( relations.hasNext() )
{
RoleEnum role = (RoleEnum) relations.next();
List accounts = (List) accountRel.get(role);
for ( int i = 0; i<accounts.size(); i++ )
{
SFAccount acct=(SFAccount)accounts.get(i);
if (SFUtils.hasAcceptableDomainProductWithoutPR(acct))
{
return acct.getAccountId();
}
}
}
return -1;
}
//STOREFRONT-5047: SF AM AD test for TAP, SiteLock, Premium DNS
public boolean getLauchSiteLockCTB()
{
//show SiteLock IF customer has hosting or a website AND does not have SiteLock
if (user.getIsLoggedIn())
{
SFProductSummary productSummary =
user.getUser().getUserProductProfile().getProductSummary();
long numOfSiteLock = SFUtils.getNumOfProducts(user.getUser(), SFClassNameConstant.SITE_LOCK_TYPE.getDescription(), -1);
if (numOfSiteLock == 0 &&
(productSummary.getHostingCount() > 0 ||
productSummary.getWebsiteCount() > 0 ||
productSummary.getECommerceCount() > 0 ) )
{
return true;
}
}
return false;
}
public boolean getLauchTakeAPaymentCTB()
{
//show Take a Payment UNLESS customer already has TAP or any other ecom product
if (user.getIsLoggedIn())
{
long numOfEcomm = SFUtils.getNumOfProducts(user.getUser(), SFClassNameConstant.EC_HOSTING_PRODUCT_TYPE.getDescription(), -1);
if (numOfEcomm == 0 )
{
return true;
}
}
return false;
}
//STOREFRONT-5218 Email Password Change Wizard
//WMS rule to launch email password change wizard
//user has no more than 20 configured email in accounts
public boolean getLauchPasswordChangeWizard()
{
int count = userAcctManager.getConfiguredEmailProducts().size();
return (count > 0 && count <= SFConfig.getInstance().getMaxNumberEmailsForPasswordChangeWizard());
}
/**
* Get the list of products that should be shown in the auto-renew overlay.
*
* @return list of SFProducts
*/
public List<IProduct> getAutoRenewOverlayProducts()
{
final String method = "SFUserBeanViewer.getAutoRenewOverlayProducts";
List<SFAccount> accounts = userAcctManager.getAccounts(getUser().getUserId());
List<IProduct> arProductList = new ArrayList<IProduct>();
try {
for (SFAccount acct : accounts) {
if (checkAutoRenewPermission(acct)) {
SFProductHolder ph = acct.getProductCollection();
List<SFProduct> pc = ph.getProductList();
for (SFProduct product : pc) {
// Only consider renewable products
if (!(product instanceof SFDomainHosting) && product.getIsRenewable()) {
// Only consider subscription-based products
if (product instanceof SFSubscriptionProduct) {
SFSubscriptionProduct sproduct = (SFSubscriptionProduct) product;
if (!sproduct.getAutoRenewal()) {
if (product instanceof SFDomain){
// block auto renew if domain is on legal lock
if( ((SFDomain)product).getLegalLockIndicator() != null &&
((SFDomain)product).getLegalLockIndicator().equalsIgnoreCase("Y")) {
continue;
}
// block auto renew if domain is on weblock
if (product instanceof SFDomain &&
(SFProductUtils.isWebLockActive( ((SFDomain)product).getWebLockIndicator()) )) {
continue;
}
}
if ( product instanceof SFDomainBundle )
continue;
if (SFProductUtils.isProductAssociatedToBundle(product)) {
continue;
}
// Some products can't be auto-renewed (most certs, DEP)
if (!SFProductUtils.isPreventAutoRenewForProduct(product.getProductCode())) {
arProductList.add(product);
}
}
}
}
}
}
}
} catch (Exception e) {
SFLogger.printError(LogEntryTypeEnum.ERROR_MEDIUM_PROGRAM, method + " - exception when processing" +
" accounts/products for user " + getUser().getUserId(), e);
// Treating this as a non-blocking error.
}
return arProductList;
}
/**
* Should we launch the auto renew overlay?
*
* @return true/false
*/
public boolean getLaunchAutoRenewOverlay()
{
List<IProduct> arProductList = getAutoRenewOverlayProducts();
return arProductList == null || arProductList.isEmpty() ? false : true;
}
public boolean getLaunchDentalOverlay()
{
if (!this.user.getUser().getDontShowDental())
{
//check if user has any domain name or company name match config list
List<SFAccount> accounts = userAcctManager.getAccounts(getUser().getUserId());
String[] dentalKeywords = SFConfig.getInstance().getDentalPopUpKeywords();
List<SFDomain> domainList = null;
for (Iterator iter = accounts.iterator(); iter.hasNext();)
{
SFAccount acct = (SFAccount) iter.next();
//check if company name match config keywords
if (acct.getAccountType() == SFAccountTypeConstant.BUSINESS)
{
if (acct.getAccountHolder() != null && acct.getAccountHolder().getCompanyName() != null)
{
String companyName = acct.getAccountHolder().getCompanyName();
for (int i=0; i<dentalKeywords.length; i++)
{
if (companyName.toLowerCase().contains(dentalKeywords[i].toLowerCase()))
{
return true;
}
}
}
}
//check if any domain name match config keywords
domainList = acct.getProductCollection().getAllProductByType(SFClassNameConstant.DOMAIN_TYPE.getDescription());
if (domainList != null && domainList.size() != 0)
{
for (SFProduct product : domainList)
{
SFDomain domain = (SFDomain )product;
for (int i=0; i<dentalKeywords.length; i++)
{
if (domain.getDomainName().toLowerCase().contains(dentalKeywords[i].toLowerCase()))
{
return true;
}
}
}
}
}
}
return false;
}
// return the first live domain in user's purchasable accounts
public SFDomain getFirstLiveDomain() {
List accounts = this.user.getUser().getAccounts();
List<SFDomain> domainList = null;
for (Iterator iter = accounts.iterator(); iter.hasNext();) {
SFAccount acct = (SFAccount) iter.next();
domainList = acct.getProductCollection().getAllProductByType(SFClassNameConstant.DOMAIN_TYPE.getDescription());
if (domainList != null && domainList.size() != 0) {
for (SFProduct product : domainList) {
SFDomain domain = (SFDomain )product;
SFPointsToInfo pointsToInfo = domain.getPointsToInfo();
if(pointsToInfo != null && (!pointsToInfo.getHostingType().equals(SFPointsToInfo.HostingType.UNDER_CONSTRUCTION) &&
!pointsToInfo.getHostingType().equals(SFPointsToInfo.HostingType.POINTS_TO_BIZ_PROFILE))) {
return domain;
}
}
}
}
// if no live domain found, return the first one for now
if (domainList != null && !domainList.isEmpty()) {
return domainList.get(0);
}
return null;
}
public boolean getIsUSOrCANCustomer()
{
String country = getUser().getUser().getCountry();
if (country != null && (country.equalsIgnoreCase("US") || country.equalsIgnoreCase("CA")) ) {
return true;
}
return false;
}
public SFProduct getLastPurchasedProduct() {
SFProduct lastProduct = new SFProduct();
Date lastPurchasedDate = null;
Map accountRel = userAcctManager.getPurchasableAccountRelations(user.getUser().getUserId());
if(null == accountRel) {
return lastProduct;
}
Iterator en = accountRel.keySet().iterator();
while(en.hasNext()) {
RoleEnum role = (RoleEnum) en.next();
List accounts = (List) accountRel.get(role);
for(int i=0; i<accounts.size(); i++) {
SFAccount account = (SFAccount) accounts.get(i);
List<SFProduct> products = account.getProductCollection().getProductList();
for (SFProduct product : products) {
Date purchaseDate = product.getPurchaseDate();
if (lastPurchasedDate == null || (purchaseDate != null && lastPurchasedDate != null && lastPurchasedDate.before(purchaseDate)))
{
lastPurchasedDate = purchaseDate;
lastProduct = product;
}
}
}
}
return lastProduct;
}
//return a String for all purchased products in format "ProductCode:Number,ProductCode:Number"
public String getAllPurchasedProducts()
{
String productList = "";
Map<String, Integer> prodMap = new Hashtable<String, Integer>();
Map accountRel = userAcctManager.getPurchasableAccountRelations(user.getUser().getUserId());
if(null == accountRel)
{
return productList;
}
//populate prodMap
Iterator en = accountRel.keySet().iterator();
while(en.hasNext()) {
RoleEnum role = (RoleEnum) en.next();
List accounts = (List) accountRel.get(role);
for(int i=0; i<accounts.size(); i++)
{
SFAccount account = (SFAccount) accounts.get(i);
List<SFProduct> products = account.getProductCollection().getProductList();
for (SFProduct product : products)
{
int prodCount = 1;
String prodCode = product.getProductCode();
if (prodMap.containsKey(prodCode))
{
prodCount = prodCount + (prodMap.get(prodCode)).intValue();
}
prodMap.put(prodCode, new Integer(prodCount));
}
}
}
//output prodMap as String
for (Map.Entry<String, Integer> entry : prodMap.entrySet())
{
if (productList.isEmpty())
{
productList = entry.getKey() + ":" + entry.getValue().toString();
}
else
{
productList = "," + entry.getKey() + ":" + entry.getValue().toString();
}
}
return productList;
}
//get a list of hosting prodInstId which has codeGuard associated
public String[] getHostingProdInstIdsWithCodeGuard()
{
return user.getHostingProdInstIdsWithCodeGuard();
}
//check if user has codeGuard product
public boolean getHasCodeGuard()
{
return userAcctManager.getHasCodeGuard();
}
//get a list of hosting product which is eligible for codeGuard upsell
public List<String> getHostingProdWithoutCodeGuard()
{
List<String> result = new ArrayList<String>();
List<SFAccount> accounts = this.userAcctManager.getAccounts(getUser().getUserId());
if (accounts != null) {
for (SFAccount account : accounts) {
List<SFHosting> hostingList = account.getProductCollection().getAllProductByType("com.nsi.storefront.business.SFHosting");
if (hostingList != null && hostingList.size() > 0) {
for (SFHosting hosting : hostingList) {
if (! hosting.getHasCodeGuardAssociated() &&
( hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_B_UNX.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_L_UNX.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_L_WIN.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_START_UNX.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_START_WIN.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_S_UNX.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_S_WIN.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_A_UNX.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_A_WIN.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_P_UNX.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_P_WIN.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_E_UNX.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_E_WIN.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_M_UNX.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_M_WIN.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_WP.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_WP_E.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_WP_GB.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_WP_P.getDescription())) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_WP_ENT_V2.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_WP_BIZ_V2.getDescription()) ||
hosting.getProductCode().equalsIgnoreCase(SFProductCodeConstant.HP_PKG_WP_PRO_V2.getDescription()))
{
result.add(hosting.getInstanceName() + " - " + hosting.getDescription() + "|"
+ hosting.getFGImplementationDetailInfo().getFGProductInstanceId() + "|"
+ account.getAccountId());
}
}
}
}
}
return result;
}
//SOFT-26745 - get a list of SSL DV products which allow domain configuration
public List<String> getUnconfiguredSslDv()
{
List<String> result = new ArrayList<String>();
List<SFAccount> accounts = this.userAcctManager.getAccounts(getUser().getUserId());
if (accounts != null) {
for (SFAccount account : accounts) {
List<SFCert> certList = account.getProductCollection().getAllProductByType("com.nsi.storefront.business.SFCert");
if (certList != null && certList.size() > 0) {
for (SFCert cert : certList) {
if (cert.allowDomainConfiguration() &&
cert.getProductCode().equalsIgnoreCase(SFProductCodeConstant.SSL_DV.getDescription()) )
{
result.add(cert.getDisplayNameWithSecurityInstanceId() + "|"
+ cert.getFGImplementationDetailInfo().getFGProductInstanceId() );
}
}
}
}
}
return result;
}
}