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)
|
||||
|
||||
//remove cache user.
|
||||
this.userService.RemoveCacheUserByUuid(currentUser.Uuid)
|
||||
|
||||
return this.Success(currentUser)
|
||||
}
|
||||
|
||||
@ -400,11 +403,8 @@ func (this *UserController) ToggleStatus(writer http.ResponseWriter, request *ht
|
||||
|
||||
currentUser = this.userDao.Save(currentUser)
|
||||
|
||||
cacheUsers := this.userService.FindCacheUsersByUuid(currentUser.Uuid)
|
||||
this.logger.Info("find %d cache users", len(cacheUsers))
|
||||
for _, u := range cacheUsers {
|
||||
u.Status = currentUser.Status
|
||||
}
|
||||
//remove cache user.
|
||||
this.userService.RemoveCacheUserByUuid(currentUser.Uuid)
|
||||
|
||||
return this.Success(currentUser)
|
||||
|
||||
|
@ -158,3 +158,32 @@ func (this *UserService) FindCacheUsersByUuid(userUuid string) []*User {
|
||||
|
||||
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