check that user has at least one index key

This commit is contained in:
root
2021-12-16 09:18:08 +00:00
parent acd5a7a8ec
commit 1befe77a7b
2 changed files with 10 additions and 2 deletions

View File

@@ -186,7 +186,7 @@ func (e mainEnv) setupRouter() *httprouter.Router {
router.GET("/v1/sys/backup", e.backupDB)
router.POST("/v1/user", e.userNew)
router.POST("/v1/user", e.userCreate)
router.GET("/v1/user/:mode/:identity", e.userGet)
router.DELETE("/v1/user/:mode/:identity", e.userDelete)
router.PUT("/v1/user/:mode/:identity", e.userChange)

View File

@@ -10,7 +10,7 @@ import (
"go.mongodb.org/mongo-driver/bson"
)
func (e mainEnv) userNew(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
func (e mainEnv) userCreate(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
event := audit("create user record", "", "", "")
defer func() { event.submit(e.db) }()
@@ -81,6 +81,14 @@ func (e mainEnv) userNew(w http.ResponseWriter, r *http.Request, ps httprouter.P
return
}
}
if len(parsedData.loginIdx) == 0 &&
len(parsedData.emailIdx) == 0 &&
len(parsedData.phoneIdx) == 0 &&
len(parsedData.customIdx) == 0 {
returnError(w, r, "failed to create user, all user lookup fields are missing", 405, err, event)
return
}
userTOKEN, err := e.db.createUserRecord(parsedData, event)
if err != nil {
returnError(w, r, "internal error", 405, err, event)