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)
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)
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)
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)
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)