fix: (rbac) user profile phone
This commit is contained in:
parent
7006c0b256
commit
2acae3582a
|
@ -104,6 +104,7 @@ func authorize(user Account) (m map[string]interface{}, err error) {
|
|||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
m = util.MapStr{
|
||||
"access_token": tokenString,
|
||||
"username": user.Username,
|
||||
|
@ -133,6 +134,7 @@ func Login(username string, password string) (m map[string]interface{}, err erro
|
|||
if err != nil {
|
||||
return
|
||||
}
|
||||
TokenMap[user.ID] = Token{ExpireIn: time.Now().Unix() + 86400}
|
||||
err = orm.Save(GenerateEvent(event.ActivityMetadata{
|
||||
Category: "platform",
|
||||
Group: "rbac",
|
||||
|
@ -185,23 +187,36 @@ func ValidateLogin(authorizationHeader string) (clams *UserClaims, err error) {
|
|||
return
|
||||
}
|
||||
tokenString := fields[1]
|
||||
|
||||
token, err := jwt.ParseWithClaims(tokenString, &UserClaims{}, func(token *jwt.Token) (interface{}, error) {
|
||||
if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
|
||||
return nil, fmt.Errorf("unexpected signing method: %v", token.Header["alg"])
|
||||
}
|
||||
|
||||
return []byte(Secret), nil
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if clams, ok := token.Claims.(*UserClaims); ok && token.Valid {
|
||||
return clams, nil
|
||||
}
|
||||
clams, ok := token.Claims.(*UserClaims)
|
||||
|
||||
if clams.UserId == "" {
|
||||
err = errors.New("user id is empty")
|
||||
return
|
||||
}
|
||||
fmt.Println("user token", clams.UserId, TokenMap[clams.UserId])
|
||||
tokenVal, ok := TokenMap[clams.UserId]
|
||||
if !ok {
|
||||
err = errors.New("token is invalid")
|
||||
return
|
||||
}
|
||||
if tokenVal.ExpireIn < time.Now().Unix() {
|
||||
err = errors.New("token is expire in")
|
||||
delete(TokenMap, clams.UserId)
|
||||
return
|
||||
}
|
||||
if ok && token.Valid {
|
||||
return clams, nil
|
||||
}
|
||||
return
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
package enum
|
||||
|
||||
type Menu struct {
|
||||
Id string `json:"id"`
|
||||
|
||||
Privilege string `json:"privilege,omitempty"`
|
||||
}
|
|
@ -6,6 +6,15 @@ var ClusterApis = make(map[string][]string)
|
|||
var IndexApis = make([]string, 50)
|
||||
|
||||
var RoleMap = make(map[string]Role)
|
||||
|
||||
type Token struct {
|
||||
JwtStr string `json:"jwt_str"`
|
||||
Value string `json:"value"`
|
||||
ExpireIn int64 `json:"expire_in"`
|
||||
}
|
||||
|
||||
var TokenMap = make(map[string]Token)
|
||||
|
||||
var EsApiRoutes = core.NewRouter()
|
||||
|
||||
type Role struct {
|
||||
|
|
|
@ -27,7 +27,8 @@ func DeleteUser(localUser *User, id string) (err error) {
|
|||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("tokenmap", TokenMap)
|
||||
delete(TokenMap, id)
|
||||
err = orm.Save(GenerateEvent(event.ActivityMetadata{
|
||||
Category: "platform",
|
||||
Group: "rbac",
|
||||
|
|
|
@ -111,6 +111,7 @@ func (h Account) Profile(w http.ResponseWriter, r *http.Request, ps httprouter.P
|
|||
"username": "admin",
|
||||
"email": "admin@infini.ltd",
|
||||
"name": "admin",
|
||||
"phone": "13011111111",
|
||||
}
|
||||
h.WriteOKJSON(w, core.FoundResponse(reqUser.UserId, u))
|
||||
} else {
|
||||
|
@ -124,6 +125,7 @@ func (h Account) Profile(w http.ResponseWriter, r *http.Request, ps httprouter.P
|
|||
"username": user.Username,
|
||||
"email": user.Email,
|
||||
"name": user.Name,
|
||||
"phone": user.Phone,
|
||||
}
|
||||
h.WriteOKJSON(w, core.FoundResponse(reqUser.UserId, u))
|
||||
}
|
||||
|
|
|
@ -28,7 +28,7 @@ func Init(cfg *config.AppConfig) {
|
|||
api.HandleAPIMethod(api.POST, path.Join(esPrefix, "doc/:index/_search"), m.IndexRequired(handler.HandleSearchDocumentAction, "doc.search"))
|
||||
api.HandleAPIMethod(api.POST, path.Join(esPrefix, "doc/:index"), m.IndexRequired(handler.HandleAddDocumentAction, "doc.create"))
|
||||
api.HandleAPIMethod(api.PUT, path.Join(esPrefix, "doc/:index/:docId"), m.IndexRequired(handler.HandleUpdateDocumentAction, "doc.update"))
|
||||
api.HandleAPIMethod(api.DELETE, path.Join(esPrefix, "doc/:index/:docId"), m.ClusterRequired(handler.HandleDeleteDocumentAction, "doc.delete"))
|
||||
api.HandleAPIMethod(api.DELETE, path.Join(esPrefix, "doc/:index/:docId"), m.IndexRequired(handler.HandleDeleteDocumentAction, "doc.delete"))
|
||||
api.HandleAPIMethod(api.GET, path.Join(esPrefix, "doc/_validate"), handler.ValidateDocIDAction)
|
||||
|
||||
api.HandleAPIMethod(api.POST, path.Join(pathPrefix, "rebuild/*id"), handler.HandleReindexAction)
|
||||
|
|
|
@ -19,6 +19,7 @@ type Rbac struct {
|
|||
}
|
||||
|
||||
func init() {
|
||||
|
||||
r := Rbac{}
|
||||
api.HandleAPIMethod(api.GET, "/permission/:type", r.ListPermission)
|
||||
api.HandleAPIMethod(api.POST, "/role/:type", m.PermissionRequired(r.CreateRole, enum.RoleAll))
|
||||
|
|
Loading…
Reference in New Issue