Skip to content

Commit

Permalink
Addresses lukebp feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
s-ben committed Mar 27, 2019
1 parent 66149fe commit 2526f03
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 42 deletions.
60 changes: 22 additions & 38 deletions politeiawww/user.go
Expand Up @@ -1581,42 +1581,37 @@ func (p *politeiawww) processManageUser(mu *v1.ManageUser, adminUser *user.User)
return &v1.ManageUserReply{}, nil
}

// processUsers returns a list of users given a set of filters.
// processUsers returns a list of users given a set of filters. Admins
// can search by pubkey, username or admin (partial matches returned).
// Non admins can search by pubkey or username (only exact matches returned).
func (p *politeiawww) processUsers(users *v1.Users, isAdmin bool) (*v1.UsersReply, error) {
var reply v1.UsersReply
reply.Users = make([]v1.AbridgedUser, 0, v1.UserListPageSize)
var u *user.User
var userID string

emailQuery := strings.ToLower(users.Email)
usernameQuery := formatUsername(users.Username)
pubkeyQuery := users.PublicKey

// Ensure we got a proper pubkey, if provided
_, err := validatePubkey(pubkeyQuery)
if pubkeyQuery != "" && err != nil {
return nil, err
}
// Get user by pubkey, if provided
if pubkeyQuery != "" {
// Ensure we got a proper pubkey, if provided
_, err := validatePubkey(pubkeyQuery)
if err != nil {
return nil, err
}

// Get user ID by pubkey, if provided
var userID string
u, err := p.db.UserGetByPublicKey(pubkeyQuery)
if pubkeyQuery != "" && err != nil {
fmt.Printf("%v", "user not found")
return nil, err
} else if pubkeyQuery != "" && err == nil {
// Get user by pubkey
u, err = p.db.UserGetByPublicKey(pubkeyQuery)
if err != nil {
return nil, err
}
userID = u.ID.String()
fmt.Printf("%v", userID)
}

if isAdmin {

var err error

err = p.db.AllUsers(func(user *user.User) {

if err != nil {
return
}

err := p.db.AllUsers(func(user *user.User) {
reply.TotalUsers++
userMatches := true

Expand Down Expand Up @@ -1653,38 +1648,27 @@ func (p *politeiawww) processUsers(users *v1.Users, isAdmin bool) (*v1.UsersRepl
}
}
})
if err != nil {
return nil, err
}

} else {

// Get user by username, if provided
if usernameQuery != "" {

// Ensure we got a proper username.
err := validateUsername(usernameQuery)
if err != nil {
fmt.Printf("%v", "invalid username")
return nil, err
}
// Get user by username
u, err = p.db.UserGetByUsername(usernameQuery)
if err != nil {
fmt.Printf("%v", "user not found")
return nil, err
}
}

// Get user by pubkey, if provided
if pubkeyQuery != "" {
u, err = p.db.UserGetByPublicKey(pubkeyQuery)
if err != nil {
fmt.Printf("%v", "user not found")
return nil, err
}
}

reply.Users = append(reply.Users, v1.AbridgedUser{
ID: u.ID.String(),
// Email: user.Email,
ID: u.ID.String(),
Username: u.Username})
}

Expand Down
6 changes: 3 additions & 3 deletions politeiawww/user/localdb/localdb.go
Expand Up @@ -184,7 +184,7 @@ func (l *localdb) UserGetByPublicKey(pubkey string) (*user.User, error) {
return nil, user.ErrShutdown
}

log.Debugf("UserGetByPublicKey\n")
log.Debugf("UserGetByPublicKey")

iter := l.userdb.NewIterator(nil, nil)
for iter.Next() {
Expand All @@ -200,9 +200,9 @@ func (l *localdb) UserGetByPublicKey(pubkey string) (*user.User, error) {
return nil, err
}

for _, Identity := range u.Identities {
for _, identity := range u.Identities {

if hex.EncodeToString(Identity.Key[:]) == pubkey {
if hex.EncodeToString(identity.Key[:]) == pubkey {
return u, err
}
}
Expand Down
4 changes: 3 additions & 1 deletion politeiawww/userwww.go
Expand Up @@ -597,7 +597,9 @@ func (p *politeiawww) handleUsers(w http.ResponseWriter, r *http.Request) {
log.Debugf("handleUsers: could not get session user: %v", err)
}

ur, err := p.processUsers(&u, user != nil && user.Admin)
isAdmin := (user != nil && user.Admin)
ur, err := p.processUsers(&u, isAdmin)

if err != nil {
RespondWithError(w, r, 0,
"handleUsers: processUsers %v", err)
Expand Down

0 comments on commit 2526f03

Please sign in to comment.