1 16 17 18 39 40 package com.opensourcestrategies.crmsfa.common; 41 42 import java.util.Map ; 43 import java.util.List ; 44 import java.util.Locale ; 45 import java.util.Iterator ; 46 47 import org.ofbiz.base.util.Debug; 48 import org.ofbiz.base.util.UtilMisc; 49 import org.ofbiz.base.util.UtilDateTime; 50 import org.ofbiz.entity.GenericDelegator; 51 import org.ofbiz.entity.GenericEntityException; 52 import org.ofbiz.entity.GenericValue; 53 import org.ofbiz.entity.util.EntityUtil; 54 import org.ofbiz.service.DispatchContext; 55 import org.ofbiz.service.GenericServiceException; 56 import org.ofbiz.service.LocalDispatcher; 57 import org.ofbiz.service.ServiceUtil; 58 import org.ofbiz.security.Security; 59 60 import com.opensourcestrategies.crmsfa.party.PartyHelper; 61 import com.opensourcestrategies.crmsfa.security.CrmsfaSecurity; 62 import com.opensourcestrategies.crmsfa.util.UtilCommon; 63 64 70 71 public class DataSourceServices { 72 73 public static final String module = DataSourceServices.class.getName(); 74 75 public static Map addAccountDataSource(DispatchContext dctx, Map context) { 76 return addDataSourceWithPermission(dctx, context, "CRMSFA_ACCOUNT", "_UPDATE"); 77 } 78 79 public static Map addLeadDataSource(DispatchContext dctx, Map context) { 80 return addDataSourceWithPermission(dctx, context, "CRMSFA_LEAD", "_UPDATE"); 81 } 82 83 86 private static Map addDataSourceWithPermission(DispatchContext dctx, Map context, String module, String operation) { 87 GenericDelegator delegator = dctx.getDelegator(); 88 LocalDispatcher dispatcher = dctx.getDispatcher(); 89 Security security = dctx.getSecurity(); 90 GenericValue userLogin = (GenericValue) context.get("userLogin"); 91 Locale locale = (Locale ) context.get("locale"); 92 93 String partyId = (String ) context.get("partyId"); 94 String dataSourceId = (String ) context.get("dataSourceId"); 95 96 if (!CrmsfaSecurity.hasPartyRelationSecurity(security, module, operation, userLogin, partyId)) { 98 return UtilCommon.createAndLogServiceError("CrmErrorPermissionDenied", locale, module); 99 } 100 try { 101 Map serviceResults = dispatcher.runSync("createPartyDataSource", UtilMisc.toMap("partyId", partyId , "dataSourceId", dataSourceId, "userLogin", userLogin)); 103 if (ServiceUtil.isError(serviceResults)) { 104 return UtilCommon.createAndLogServiceError(serviceResults, "CrmErrorAddDataSource", locale, module); 105 } 106 } catch (GenericServiceException e) { 107 return UtilCommon.createAndLogServiceError(e, "CrmErrorAddDataSource", locale, module); 108 } 109 return ServiceUtil.returnSuccess(); 110 } 111 112 public static Map removeAccountDataSource(DispatchContext dctx, Map context) { 113 return removeDataSourceWithPermission(dctx, context, "CRMSFA_ACCOUNT", "_UPDATE"); 114 } 115 116 public static Map removeLeadDataSource(DispatchContext dctx, Map context) { 117 return removeDataSourceWithPermission(dctx, context, "CRMSFA_LEAD", "_UPDATE"); 118 } 119 120 124 private static Map removeDataSourceWithPermission(DispatchContext dctx, Map context, String module, String operation) { 125 GenericDelegator delegator = dctx.getDelegator(); 126 LocalDispatcher dispatcher = dctx.getDispatcher(); 127 Security security = dctx.getSecurity(); 128 GenericValue userLogin = (GenericValue) context.get("userLogin"); 129 Locale locale = (Locale ) context.get("locale"); 130 131 String partyId = (String ) context.get("partyId"); 132 String dataSourceId = (String ) context.get("dataSourceId"); 133 134 if (!CrmsfaSecurity.hasPartyRelationSecurity(security, module, operation, userLogin, partyId)) { 136 return UtilCommon.createAndLogServiceError("CrmErrorPermissionDenied", locale, module); 137 } 138 139 return ServiceUtil.returnSuccess(); 141 } 142 } 143 | Popular Tags |