Ejemplo n.º 1
0
func (db *memberStore) AddMember(roomId ct.RoomId, userId ct.UserId) types.Error {
	inserted, err := db.idMap.Put(ct.Id(roomId), ct.Id(userId))
	if err != nil {
		return types.InternalError(err)
	}
	if !inserted {
		msg := fmt.Sprintf("user %s is already a member of the room %s", userId, roomId)
		return types.ServerError(msg)
	}
	return nil
}
Ejemplo n.º 2
0
func (db *memberStore) RemoveMember(roomId ct.RoomId, userId ct.UserId) types.Error {
	deleted, err := db.idMap.Delete(ct.Id(roomId), ct.Id(userId))
	if err != nil {
		return types.InternalError(err)
	}
	if !deleted {
		msg := fmt.Sprintf("user %s is not a member of the room %s", userId, roomId)
		return types.ServerError(msg)
	}
	return nil
}
Ejemplo n.º 3
0
func (s userService) SetPassword(user, caller ct.UserId, password string) types.Error {
	if user != caller {
		return types.ForbiddenError("can't change the password of other users")
	}
	hash, err := bcrypt.GenerateFromPassword([]byte(password), 10)
	if err != nil {
		return types.ServerError("failed to generate password: " + err.Error())
	}
	if err := s.users.SetUserPasswordHash(user, string(hash)); err != nil {
		return err
	}
	return nil
}