def setCredentials(self, username, password): # do test log in first to confirm valid credentials # (will raise exception that can be handled by our caller, if invalid) testClient = SalesforceClient() testClient.login(username, password) self._username = username self._password = password # Disconnect from any previously connected Salesforce instance self._resetClient() return True
def validateCredentials(self): """Method that can be called by a remote monitor to confirm that the configured credentials are still valid. """ valid = getattr(self, '_v_valid', None) if valid is None: valid = True try: testClient = SalesforceClient(serverUrl=self.serverUrl) testClient.login(self._username, self._password) except: valid = False self._v_valid = valid if valid: return 'OK'
def setCredentials(self, username, password, serverUrl=None): if serverUrl == DEFAULT_SERVER_URL: serverUrl = None # do test log in first to confirm valid credentials # (will raise exception that can be handled by our caller, if invalid) testClient = SalesforceClient(serverUrl = serverUrl) testClient.login(username, password) self.serverUrl = serverUrl self._username = username self._password = password # Disconnect from any previously connected Salesforce instance self._resetClient() return True
def _getClient(self): logger.debug('calling _getClient') if not hasattr(self, '_v_sfclient') or self._v_sfclient is None: self._v_sfclient = SalesforceClient() if not self._v_sfclient.isConnected(): logger.debug('No open connection to Salesforce. Trying to log in...') response = self._login() if not response: raise "Salesforce login failed" return self._v_sfclient
class SalesforceBaseConnector (UniqueObject, SimpleItem): """A tool for storing/managing connections and connection information when interacting with Salesforce.com via beatbox. """ implements(ISalesforceBaseConnector,ISalesforceBaseConnectorInfo) def __init__(self): self._username = '' self._password = '' self._v_sfclient = None id = 'portal_salesforcebaseconnector' meta_type = 'Salesforce Base Connector' title = 'Connect to an external Salesforce instance' security = ClassSecurityInfo() manage_options=(( { 'label' : 'Configure Authentication' , 'action' : 'manage_config' }, ) + SimpleItem.manage_options ) ## ZMI methods security.declareProtected(ManagePortal, 'manage_config') manage_config = PageTemplateFile('www/manageAuthConfig', globals() ) manage_config._owner = None def _login(self): logger.debug('logging into salesforce...') username = self._username passwd = self._password res = self._v_sfclient.login(username, passwd) return res def _getClient(self): logger.debug('calling _getClient') if not hasattr(self, '_v_sfclient') or self._v_sfclient is None: self._v_sfclient = SalesforceClient() if not self._v_sfclient.isConnected(): logger.debug('No open connection to Salesforce. Trying to log in...') response = self._login() if not response: raise "Salesforce login failed" return self._v_sfclient def _resetClient(self): logger.debug('reseting client') self._v_sfclient = None security.declareProtected(ManagePortal, 'manage_configSalesforceCredentials') def manage_configSalesforceCredentials(self, username, password, REQUEST=None): """Called by the ZMI auth management tab """ portalMessage = '' try: self.setCredentials(username, password) portalMessage = 'Authentication tested successfully. Username and password saved.' except Exception, exc: portalMessage = 'The supplied credentials could not be authenticated. Salesforce exception code: %s' % exc.faultString if REQUEST is not None: REQUEST.RESPONSE.redirect('%s/manage_config?portal_status_message=%s' % (self.absolute_url(),portalMessage))