fix: validate member name contents
This commit is contained in:
parent
fe0680d587
commit
d223cd89e8
4 changed files with 53 additions and 1 deletions
|
@ -3,6 +3,7 @@ package member
|
|||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"codeberg.org/u1f320/pronouns.cc/backend/db"
|
||||
"codeberg.org/u1f320/pronouns.cc/backend/log"
|
||||
|
@ -68,11 +69,37 @@ func (s *Server) patchMember(w http.ResponseWriter, r *http.Request) error {
|
|||
}
|
||||
}
|
||||
|
||||
// trim whitespace from strings
|
||||
if req.Name != nil {
|
||||
*req.Name = strings.TrimSpace(*req.Name)
|
||||
}
|
||||
if req.DisplayName != nil {
|
||||
*req.DisplayName = strings.TrimSpace(*req.Name)
|
||||
}
|
||||
if req.Bio != nil {
|
||||
*req.Bio = strings.TrimSpace(*req.Bio)
|
||||
}
|
||||
|
||||
if req.Name != nil && *req.Name == "" {
|
||||
return server.APIError{
|
||||
Code: server.ErrBadRequest,
|
||||
Details: "Name must not be empty",
|
||||
}
|
||||
} else if req.Name != nil && len(*req.Name) > 100 {
|
||||
return server.APIError{
|
||||
Code: server.ErrBadRequest,
|
||||
Details: "Name may not be longer than 100 characters",
|
||||
}
|
||||
}
|
||||
|
||||
// validate member name
|
||||
if req.Name != nil {
|
||||
if !db.MemberNameValid(*req.Name) {
|
||||
return server.APIError{
|
||||
Code: server.ErrBadRequest,
|
||||
Details: "Member name cannot contain any of the following: @, \\, ?, !, #, /, \\, [, ], \", ', $, %, &, (, ), +, <, =, >, ^, |, ~, `, ,",
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// validate display name/bio
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue