示例#1
0
    def auth_test(self,username=None,password=None):
        u = username or self.username
        if not u:
            raise LoginException("missing username",bank=self)
        p = password or self.password
        if not u:
            raise LoginException("missing password",bank=self)

        builder = Builder(self)
        query = builder.authQuery(username=u,password=p)
        res = builder.doQuery(query)
        ofx = BeautifulStoneSoup(res)

        try:
            sonrs = ofx.find('sonrs')
            code = int(sonrs.find('code').contents[0].strip())
        except:
            raise LoginException("parse error: %s" % res,bank=self)

        try:
            status = sonrs.find('message').contents[0].strip()
        except Exception:
            status = ''

        if code == 0:
            return 1

        security.set_password(
            self.keyring_id(),
            ''
        )
        raise LoginException(status,code=code,bank=self)
示例#2
0
    def delete(self):
        # remove the account number from the security store
        security.set_password( self.guid, None )

        config = Settings.config()
        new_accounts = []
        for a in Settings.accounts():
            if a['guid'] != self.guid:
                new_accounts.append(a)
        config['accounts'] = new_accounts
        Settings.config_save(config)
示例#3
0
    def delete(self):
        # delete the password
        security.set_password(
            self.keyring_id(),
            None
        )

        accounts = self.local_accounts()
        for a in accounts:
            a.delete()

        config = Settings.config()
        new_banks = []
        for s in Settings.banks():
            i = Institution.from_config(s)
            if i != self:
                new_banks.append(s)
        config['banks'] = new_banks
        Settings.config_save(config)
示例#4
0
    def save(self):
        # always save the original account number in the keystore
        security.set_password( self.guid, self.number or '' )
        struct = {
            'guid': self.guid,
            'institution': self.institution.guid(),
            'description': self.description,
            'routing_number': self.routing_number,
            'account_type': self.account_type,
            'broker_id': self.broker_id
        } 

        config = Settings.config()
        new_accounts = []
        for a in Settings.accounts():
            if a['guid'] != self.guid:
                new_accounts.append(a)
        new_accounts.append(struct)

        config['accounts'] = new_accounts
        Settings.config_save(config)
示例#5
0
    def save(self):
        # always save the password
        security.set_password(
            self.keyring_id(),
            self.password or ''
        )

        config = Settings.config()
        new_banks = []
        for s in Settings.banks():
            i = Institution.from_config(s)
            if i != self:
                new_banks.append(s)
        new_banks.append({
            'id': self.id,
            'username': self.username,
            'description': self.description,
            'guid': self.guid()
        })

        config['banks'] = new_banks
        Settings.config_save(config)