Finish the cache refresh things.
This commit is contained in:
parent
d052f75a1c
commit
601c60fca7
@ -287,6 +287,9 @@ func (this *UserController) Edit(writer http.ResponseWriter, request *http.Reque
|
|||||||
|
|
||||||
currentUser = this.userDao.Save(currentUser)
|
currentUser = this.userDao.Save(currentUser)
|
||||||
|
|
||||||
|
//remove cache user.
|
||||||
|
this.userService.RemoveCacheUserByUuid(currentUser.Uuid)
|
||||||
|
|
||||||
return this.Success(currentUser)
|
return this.Success(currentUser)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -400,11 +403,8 @@ func (this *UserController) ToggleStatus(writer http.ResponseWriter, request *ht
|
|||||||
|
|
||||||
currentUser = this.userDao.Save(currentUser)
|
currentUser = this.userDao.Save(currentUser)
|
||||||
|
|
||||||
cacheUsers := this.userService.FindCacheUsersByUuid(currentUser.Uuid)
|
//remove cache user.
|
||||||
this.logger.Info("find %d cache users", len(cacheUsers))
|
this.userService.RemoveCacheUserByUuid(currentUser.Uuid)
|
||||||
for _, u := range cacheUsers {
|
|
||||||
u.Status = currentUser.Status
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.Success(currentUser)
|
return this.Success(currentUser)
|
||||||
|
|
||||||
|
@ -158,3 +158,32 @@ func (this *UserService) FindCacheUsersByUuid(userUuid string) []*User {
|
|||||||
|
|
||||||
return users
|
return users
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//remove cache user by its userUuid
|
||||||
|
func (this *UserService) RemoveCacheUserByUuid(userUuid string) {
|
||||||
|
|
||||||
|
var sessionId interface{}
|
||||||
|
//let session user work.
|
||||||
|
core.CONTEXT.GetSessionCache().Foreach(func(key interface{}, cacheItem *cache.Item) {
|
||||||
|
if cacheItem == nil || cacheItem.Data() == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if value, ok := cacheItem.Data().(*User); ok {
|
||||||
|
var user = value
|
||||||
|
if user.Uuid == userUuid {
|
||||||
|
sessionId = key
|
||||||
|
this.logger.Info("sessionId %v", key)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.logger.Error("cache item not store the *User")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
exists := core.CONTEXT.GetSessionCache().Exists(sessionId)
|
||||||
|
if exists {
|
||||||
|
_, err := core.CONTEXT.GetSessionCache().Delete(sessionId)
|
||||||
|
if err != nil {
|
||||||
|
this.logger.Error("occur error when deleting cache user.")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user