chore: ignore password for get current user

refactor/fs
Noah Hsu 2022-06-26 16:55:37 +08:00
parent 7cbfe93a02
commit acd4083399
4 changed files with 11 additions and 3 deletions

View File

@ -9,6 +9,7 @@ import (
"github.com/pkg/errors" "github.com/pkg/errors"
"gorm.io/gorm" "gorm.io/gorm"
stdpath "path" stdpath "path"
"time"
) )
var metaCache = cache.NewMemCache(cache.WithShards[*model.Meta](2)) var metaCache = cache.NewMemCache(cache.WithShards[*model.Meta](2))
@ -41,7 +42,7 @@ func GetMetaByPath(path string) (*model.Meta, error) {
if err := db.Where(meta).First(&meta).Error; err != nil { if err := db.Where(meta).First(&meta).Error; err != nil {
return nil, errors.Wrapf(err, "failed select meta") return nil, errors.Wrapf(err, "failed select meta")
} }
metaCache.Set(path, &meta) metaCache.Set(path, &meta, cache.WithEx[*model.Meta](time.Hour))
return &meta, nil return &meta, nil
}) })
return meta, err return meta, err

View File

@ -6,6 +6,7 @@ import (
"github.com/alist-org/alist/v3/internal/model" "github.com/alist-org/alist/v3/internal/model"
"github.com/alist-org/alist/v3/pkg/singleflight" "github.com/alist-org/alist/v3/pkg/singleflight"
"github.com/pkg/errors" "github.com/pkg/errors"
"time"
) )
var userCache = cache.NewMemCache(cache.WithShards[*model.User](2)) var userCache = cache.NewMemCache(cache.WithShards[*model.User](2))
@ -40,7 +41,7 @@ func GetUserByName(username string) (*model.User, error) {
if err := db.Where(user).First(&user).Error; err != nil { if err := db.Where(user).First(&user).Error; err != nil {
return nil, errors.Wrapf(err, "failed find user") return nil, errors.Wrapf(err, "failed find user")
} }
userCache.Set(username, &user) userCache.Set(username, &user, cache.WithEx[*model.User](time.Hour))
return &user, nil return &user, nil
}) })
return user, err return user, err

View File

@ -60,5 +60,6 @@ func Login(c *gin.Context) {
// if token is empty, return guest user // if token is empty, return guest user
func CurrentUser(c *gin.Context) { func CurrentUser(c *gin.Context) {
user := c.MustGet("user").(*model.User) user := c.MustGet("user").(*model.User)
user.Password = ""
common.SuccessResp(c, gin.H{"user": user}) common.SuccessResp(c, gin.H{"user": user})
} }

View File

@ -11,7 +11,12 @@ import (
func Auth(c *gin.Context) { func Auth(c *gin.Context) {
token := c.GetHeader("Authorization") token := c.GetHeader("Authorization")
if token == "" { if token == "" {
guest, _ := db.GetGuest() guest, err := db.GetGuest()
if err != nil {
common.ErrorResp(c, err, 500, true)
c.Abort()
return
}
c.Set("user", guest) c.Set("user", guest)
c.Next() c.Next()
return return