func (s *fixedService) Login(username, password string) (users.User, error) { u, err := db.GetUserByName(username) if err != nil { return users.New(), err } if u.Password != calculatePassHash(password, u.Salt) { return users.New(), ErrUnauthorized } db.GetUserAttributes(&u) u.MaskCCs() return u, nil }
// New Returns a new MongoUser func New() MongoUser { u := users.New() return MongoUser{ User: u, AddressIDs: make([]bson.ObjectId, 0), CardIDs: make([]bson.ObjectId, 0), } }
func (s *fixedService) Register(username, password, email, first, last string) (string, error) { u := users.New() u.Username = username u.Password = calculatePassHash(password, u.Salt) u.Email = email u.FirstName = first u.LastName = last err := db.CreateUser(&u) return u.UserID, err }
func TestGetUserAttributes(t *testing.T) { u := users.New() GetUserAttributes(&u) if len(u.Addresses) != 1 { t.Error("expected one address added for GetUserAttributes") } if !reflect.DeepEqual(u.Addresses[0], TestAddress) { t.Error("expected matching addresses") } }
// GetUser Get user by their object id func (m *Mongo) GetUser(id string) (users.User, error) { s := m.Session.Copy() defer s.Close() if !bson.IsObjectIdHex(id) { return users.New(), errors.New("Invalid Id Hex") } c := s.DB("").C("customers") mu := New() err := c.FindId(bson.ObjectIdHex(id)).One(&mu) mu.AddUserIDs() return mu.User, err }