Beispiel #1
0
 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
Beispiel #4
0
 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 
Beispiel #5
0
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))