Init V4 community edition (#2265)
* Init V4 community edition * Init V4 community edition
This commit is contained in:
67
service/user/info.go
Normal file
67
service/user/info.go
Normal file
@@ -0,0 +1,67 @@
|
||||
package user
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/cloudreve/Cloudreve/v4/application/dependency"
|
||||
"github.com/cloudreve/Cloudreve/v4/ent"
|
||||
"github.com/cloudreve/Cloudreve/v4/inventory"
|
||||
"github.com/cloudreve/Cloudreve/v4/pkg/filemanager/fs"
|
||||
"github.com/cloudreve/Cloudreve/v4/pkg/filemanager/manager"
|
||||
"github.com/cloudreve/Cloudreve/v4/pkg/hashid"
|
||||
"github.com/cloudreve/Cloudreve/v4/pkg/serializer"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/samber/lo"
|
||||
)
|
||||
|
||||
func GetUser(c *gin.Context) (*ent.User, error) {
|
||||
uid := hashid.FromContext(c)
|
||||
dep := dependency.FromContext(c)
|
||||
userClient := dep.UserClient()
|
||||
ctx := context.WithValue(c, inventory.LoadUserGroup{}, true)
|
||||
return userClient.GetByID(ctx, uid)
|
||||
}
|
||||
|
||||
func GetUserCapacity(c *gin.Context) (*fs.Capacity, error) {
|
||||
user := inventory.UserFromContext(c)
|
||||
dep := dependency.FromContext(c)
|
||||
m := manager.NewFileManager(dep, user)
|
||||
defer m.Recycle()
|
||||
|
||||
return m.Capacity(c)
|
||||
}
|
||||
|
||||
type (
|
||||
SearchUserService struct {
|
||||
Keyword string `form:"keyword" binding:"required,min=2"`
|
||||
}
|
||||
SearchUserParamCtx struct{}
|
||||
)
|
||||
|
||||
const resultLimit = 10
|
||||
|
||||
func (s *SearchUserService) Search(c *gin.Context) ([]*ent.User, error) {
|
||||
dep := dependency.FromContext(c)
|
||||
userClient := dep.UserClient()
|
||||
res, err := userClient.SearchActive(c, resultLimit, s.Keyword)
|
||||
if err != nil {
|
||||
return nil, serializer.NewError(serializer.CodeDBError, "Failed to search user", err)
|
||||
}
|
||||
|
||||
return res, nil
|
||||
}
|
||||
|
||||
// ListAllGroups lists all groups.
|
||||
func ListAllGroups(c *gin.Context) ([]*ent.Group, error) {
|
||||
dep := dependency.FromContext(c)
|
||||
groupClient := dep.GroupClient()
|
||||
res, err := groupClient.ListAll(c)
|
||||
if err != nil {
|
||||
return nil, serializer.NewError(serializer.CodeDBError, "Failed to list all groups", err)
|
||||
}
|
||||
|
||||
res = lo.Filter(res, func(g *ent.Group, index int) bool {
|
||||
return g.ID != inventory.AnonymousGroupID
|
||||
})
|
||||
|
||||
return res, nil
|
||||
}
|
||||
Reference in New Issue
Block a user