func (m *Manager) SaveAccount(account *shipyard.Account) error { pass := account.Password hash, err := m.authenticator.Hash(pass) if err != nil { return err } // check if exists; if so, update acct, err := m.Account(account.Username) if err != nil && err != ErrAccountDoesNotExist { return err } account.Password = hash if acct != nil { if _, err := r.Table(tblNameAccounts).Filter(map[string]string{"username": account.Username}).Update(map[string]string{"password": hash}).RunWrite(m.session); err != nil { return err } return nil } if _, err := r.Table(tblNameAccounts).Insert(account).RunWrite(m.session); err != nil { return err } evt := &shipyard.Event{ Type: "add-account", Time: time.Now(), Message: fmt.Sprintf("username=%s", account.Username), Tags: []string{"cluster", "security"}, } if err := m.SaveEvent(evt); err != nil { return err } return nil }
func (m *Manager) SaveAccount(account *shipyard.Account) error { pass := account.Password hash, err := m.authenticator.Hash(pass) if err != nil { return err } // check if exists; if so, update acct, err := m.Account(account.Username) if err != nil && err != ErrAccountDoesNotExist { return err } account.Password = hash if acct != nil { if _, err := r.Table(tblNameAccounts).Filter(map[string]string{"username": account.Username}).Update(map[string]string{"password": hash, "token": ""}).RunWrite(m.session); err != nil { return err } return nil } if _, err := r.Table(tblNameAccounts).Insert(account).RunWrite(m.session); err != nil { return err } return nil }