package databag import ( "databag/internal/store" "encoding/hex" "github.com/gorilla/mux" "github.com/theckman/go-securerandom" "net/http" "strconv" "time" ) //AddNodeAccountAccess generate a new token to be use for account login reset func AddNodeAccountAccess(w http.ResponseWriter, r *http.Request) { params := mux.Vars(r) accountID, res := strconv.ParseUint(params["accountID"], 10, 32) if res != nil { ErrResponse(w, http.StatusBadRequest, res) return } if code, err := ParamSessionToken(r); err != nil { ErrResponse(w, code, err) return } data, ret := securerandom.Bytes(APPResetSize) if ret != nil { ErrResponse(w, http.StatusInternalServerError, ret) return } token := hex.EncodeToString(data) accountToken := store.AccountToken{ AccountID: uint(accountID), TokenType: APPTokenReset, Token: token, Expires: time.Now().Unix() + APPResetExpire, } if err := store.DB.Create(&accountToken).Error; err != nil { ErrResponse(w, http.StatusInternalServerError, err) return } WriteResponse(w, token) }