作者 唐旭辉

bug 修复

@@ -23,8 +23,8 @@ const ( @@ -23,8 +23,8 @@ const (
23 ) 23 )
24 24
25 type PermissionOptionObject interface { 25 type PermissionOptionObject interface {
26 - // StringUnmarshal(string) error  
27 - // ObjectMarshal() string 26 + StringUnmarshal(string) error
  27 + ObjectMarshal() string
28 GetValidFunc(string) bool 28 GetValidFunc(string) bool
29 MergeObject(string) error 29 MergeObject(string) error
30 } 30 }
@@ -56,20 +56,20 @@ func (p *PermissionOptionBase) MergeObject(jsonString string) error { @@ -56,20 +56,20 @@ func (p *PermissionOptionBase) MergeObject(jsonString string) error {
56 return nil 56 return nil
57 } 57 }
58 58
59 -// //StringUnmarshal PermissionOptionBase 接口实现  
60 -// func (p *PermissionOptionBase) StringUnmarshal(s string) error {  
61 -// err := json.Unmarshal([]byte(s), p)  
62 -// return err  
63 -// }  
64 -  
65 -// //ObjectMarshal PermissionOptionBase 接口实现  
66 -// func (p *PermissionOptionBase) ObjectMarshal() string {  
67 -// bt, err := json.Marshal(p)  
68 -// if err != nil {  
69 -// return ""  
70 -// }  
71 -// return string(bt)  
72 -// } 59 +//StringUnmarshal PermissionOptionBase 接口实现
  60 +func (p *PermissionOptionBase) StringUnmarshal(s string) error {
  61 + err := json.Unmarshal([]byte(s), p)
  62 + return err
  63 +}
  64 +
  65 +//ObjectMarshal PermissionOptionBase 接口实现
  66 +func (p *PermissionOptionBase) ObjectMarshal() string {
  67 + bt, err := json.Marshal(p)
  68 + if err != nil {
  69 + return ""
  70 + }
  71 + return string(bt)
  72 +}
73 73
74 /* 74 /*
75 机会管理模块 75 机会管理模块
@@ -233,17 +233,17 @@ func (p *OptionOpportunity) ValidCloseChance() bool { @@ -233,17 +233,17 @@ func (p *OptionOpportunity) ValidCloseChance() bool {
233 return false 233 return false
234 } 234 }
235 235
236 -// //StringUnmarshal PermissionOptionBase 接口实现  
237 -// func (p *OptionOpportunity) StringUnmarshal(s string) error {  
238 -// err := json.Unmarshal([]byte(s), p)  
239 -// return err  
240 -// }  
241 -  
242 -// //ObjectMarshal PermissionOptionBase 接口实现  
243 -// func (p *OptionOpportunity) ObjectMarshal() string {  
244 -// bt, err := json.Marshal(p)  
245 -// if err != nil {  
246 -// return ""  
247 -// }  
248 -// return string(bt)  
249 -// } 236 +//StringUnmarshal PermissionOptionBase 接口实现
  237 +func (p *OptionOpportunity) StringUnmarshal(s string) error {
  238 + err := json.Unmarshal([]byte(s), p)
  239 + return err
  240 +}
  241 +
  242 +//ObjectMarshal PermissionOptionBase 接口实现
  243 +func (p *OptionOpportunity) ObjectMarshal() string {
  244 + bt, err := json.Marshal(p)
  245 + if err != nil {
  246 + return ""
  247 + }
  248 + return string(bt)
  249 +}
@@ -148,11 +148,21 @@ func ExistUserPermission(userid int64) bool { @@ -148,11 +148,21 @@ func ExistUserPermission(userid int64) bool {
148 func GetUserPermissionAll(userid int64) (map[string]rbac.PermissionOptionObject, error) { 148 func GetUserPermissionAll(userid int64) (map[string]rbac.PermissionOptionObject, error) {
149 key := GetKeyUserPermission(userid) 149 key := GetKeyUserPermission(userid)
150 client := redis.GetRedis() 150 client := redis.GetRedis()
151 - str, err := client.Get(key).Result() 151 + strMap, err := client.HGetAll(key).Result()
152 if err != nil { 152 if err != nil {
153 return nil, err 153 return nil, err
154 } 154 }
155 permissionObj := make(map[string]rbac.PermissionOptionObject) 155 permissionObj := make(map[string]rbac.PermissionOptionObject)
156 - err = json.Unmarshal([]byte(str), &permissionObj) 156 + for k, v := range strMap {
  157 + fn, ok := rbac.CodePermissionObject[k]
  158 + if !ok {
  159 + continue
  160 + }
  161 + obj := fn()
  162 + if err := obj.StringUnmarshal(v); err == nil {
  163 + permissionObj[k] = obj
  164 + }
  165 +
  166 + }
157 return permissionObj, err 167 return permissionObj, err
158 } 168 }