refactor code

This commit is contained in:
stremovsky
2019-12-17 18:26:17 +02:00
parent e3e950b9e6
commit 735d02ad8a
7 changed files with 31 additions and 35 deletions

View File

@@ -132,8 +132,8 @@ func (e mainEnv) setupRouter() *httprouter.Router {
router.GET("/v1/login/:mode/:address", e.userLogin) router.GET("/v1/login/:mode/:address", e.userLogin)
router.GET("/v1/enter/:mode/:address/:tmp", e.userLoginEnter) router.GET("/v1/enter/:mode/:address/:tmp", e.userLoginEnter)
router.POST("/v1/xtoken/:token", e.userNewToken) router.POST("/v1/xtoken/:token", e.userNewXtoken)
router.GET("/v1/xtoken/:xtoken", e.userCheckToken) router.GET("/v1/xtoken/:xtoken", e.userCheckXtoken)
router.GET("/v1/consent/:mode/:address", e.consentAllUserRecords) router.GET("/v1/consent/:mode/:address", e.consentAllUserRecords)
router.GET("/v1/consent/:mode/:address/:brief", e.consentUserRecord) router.GET("/v1/consent/:mode/:address/:brief", e.consentUserRecord)

View File

@@ -63,7 +63,7 @@ func TestCreateAPIUser(t *testing.T) {
request.Header.Set("X-Bunker-Token", rootToken) request.Header.Set("X-Bunker-Token", rootToken)
//var resp http.ResponseWriter //var resp http.ResponseWriter
rr = httptest.NewRecorder() rr = httptest.NewRecorder()
e.userNewToken(rr, request, ps2) e.userNewXtoken(rr, request, ps2)
//fmt.Printf("after create token------------------\n%s\n\n\n", rr.Body) //fmt.Printf("after create token------------------\n%s\n\n\n", rr.Body)
err = json.Unmarshal(rr.Body.Bytes(), &raw) err = json.Unmarshal(rr.Body.Bytes(), &raw)
if err != nil { if err != nil {
@@ -91,7 +91,7 @@ func TestCreateAPIUser(t *testing.T) {
p3 := httprouter.Param{"xtoken", tokenUUID} p3 := httprouter.Param{"xtoken", tokenUUID}
ps3 := []httprouter.Param{p3} ps3 := []httprouter.Param{p3}
e.userCheckToken(rr, request, ps3) e.userCheckXtoken(rr, request, ps3)
fmt.Printf("get by token------------------\n%s\n\n\n", rr.Body) fmt.Printf("get by token------------------\n%s\n\n\n", rr.Body)
err = json.Unmarshal(rr.Body.Bytes(), &raw) err = json.Unmarshal(rr.Body.Bytes(), &raw)
if err != nil { if err != nil {

View File

@@ -104,9 +104,9 @@ func (e mainEnv) consentCancel(w http.ResponseWriter, r *http.Request, ps httpro
} }
} }
// make sure that user is logged in here, unless he wants to cancel emails // make sure that user is logged in here, unless he wants to cancel emails
if e.enforceAuth(w, r, event) == false { //if e.enforceAuth(w, r, event) == false {
return // return
} //}
switch mode { switch mode {
case "email": case "email":
address = normalizeEmail(address) address = normalizeEmail(address)

View File

@@ -257,32 +257,28 @@ func (e mainEnv) userLoginEnter(w http.ResponseWriter, r *http.Request, ps httpr
} }
userBson, err := e.db.lookupUserRecordByIndex(mode, address, e.conf) userBson, err := e.db.lookupUserRecordByIndex(mode, address, e.conf)
if err != nil { if userBson == nil || err != nil {
returnError(w, r, "internal error", 405, err, event) returnError(w, r, "internal error", 405, err, event)
return return
} }
if userBson != nil { userTOKEN := userBson["token"].(string)
userTOKEN := userBson["token"].(string) event.Record = userTOKEN
event.Record = userTOKEN fmt.Printf("Found user record: %s\n", userTOKEN)
fmt.Printf("Found user record: %s\n", userTOKEN) tmpCode := userBson["tempcode"].(string)
tmpCode := userBson["tempcode"].(string) if tmp == tmpCode {
if tmp == tmpCode { // user ented correct key
// user ented correct key // generate temp user access code
// generate temp user access code xtoken, err := e.db.generateUserLoginXToken(userTOKEN)
xtoken, err := e.db.generateUserLoginXToken(userTOKEN) fmt.Printf("generate user access token: %s\n", xtoken)
fmt.Printf("generate user access token: %s\n", xtoken) if err != nil {
if err != nil { returnError(w, r, "internal error", 405, err, event)
returnError(w, r, "internal error", 405, err, event)
return
}
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(200)
fmt.Fprintf(w, `{"status":"ok","xtoken":"%s","token":"%s"}`, xtoken, userTOKEN)
return return
} }
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(200)
fmt.Fprintf(w, `{"status":"ok","xtoken":"%s","token":"%s"}`, xtoken, userTOKEN)
return
} }
w.Header().Set("Content-Type", "application/json; charset=utf-8") returnError(w, r, "internal error", 405, nil, event)
w.WriteHeader(200)
fmt.Fprintf(w, `{"status":"ok","token":""}`)
} }

View File

@@ -222,7 +222,7 @@ func (e mainEnv) enforceAuth(w http.ResponseWriter, r *http.Request, event *audi
} }
} }
/* /*
if e.db.checkToken(token[0]) == true { if e.db.checkXtoken(token[0]) == true {
if event != nil { if event != nil {
event.Identity = "admin" event.Identity = "admin"
} }

View File

@@ -11,9 +11,9 @@ import (
"github.com/tidwall/gjson" "github.com/tidwall/gjson"
) )
func (e mainEnv) userNewToken(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func (e mainEnv) userNewXtoken(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
userTOKEN := ps.ByName("token") userTOKEN := ps.ByName("token")
event := audit("create user temp access by token", userTOKEN, "token", userTOKEN) event := audit("create xtoken for user token", userTOKEN, "token", userTOKEN)
defer func() { event.submit(e.db) }() defer func() { event.submit(e.db) }()
if enforceUUID(w, userTOKEN, event) == false { if enforceUUID(w, userTOKEN, event) == false {
@@ -71,9 +71,9 @@ func (e mainEnv) userNewToken(w http.ResponseWriter, r *http.Request, ps httprou
fmt.Fprintf(w, `{"status":"ok","xtoken":%q}`, xtokenUUID) fmt.Fprintf(w, `{"status":"ok","xtoken":%q}`, xtokenUUID)
} }
func (e mainEnv) userCheckToken(w http.ResponseWriter, r *http.Request, ps httprouter.Params) { func (e mainEnv) userCheckXtoken(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
xtoken := ps.ByName("xtoken") xtoken := ps.ByName("xtoken")
event := audit("get record by user temp access token", xtoken, "xtoken", xtoken) event := audit("get record by xtoken", xtoken, "xtoken", xtoken)
defer func() { event.submit(e.db) }() defer func() { event.submit(e.db) }()
if enforceUUID(w, xtoken, event) == false { if enforceUUID(w, xtoken, event) == false {

View File

@@ -116,7 +116,7 @@ func (dbobj dbcon) generateUserLoginXToken(userTOKEN string) (string, error) {
return tokenUUID, nil return tokenUUID, nil
} }
func (dbobj dbcon) checkToken(tokenUUID string) bool { func (dbobj dbcon) checkXtoken(tokenUUID string) bool {
//fmt.Printf("Token0 %s\n", tokenUUID) //fmt.Printf("Token0 %s\n", tokenUUID)
if isValidUUID(tokenUUID) == false { if isValidUUID(tokenUUID) == false {
return false return false
@@ -153,7 +153,7 @@ func (dbobj dbcon) checkUserAuthXToken(xtokenUUID string) (tokenAuthResult, erro
// tokenType = temp // tokenType = temp
now := int32(time.Now().Unix()) now := int32(time.Now().Unix())
if now > record["endtime"].(int32) { if now > record["endtime"].(int32) {
return result, errors.New("token expired") return result, errors.New("xtoken expired")
} }
result.token = record["token"].(string) result.token = record["token"].(string)
if value, ok := record["fields"]; ok { if value, ok := record["fields"]; ok {