Update site.go

This commit is contained in:
HHC26 2024-07-11 14:00:40 +08:00 committed by GitHub
parent 8ba99ffbab
commit a6a1c18eae
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,18 +1,7 @@
// Package admin
// @Link https://github.com/bufanyun/hotgo
// @Copyright Copyright (c) 2023 HotGo CLI
// @Author Ms <133814250@qq.com>
// @License https://github.com/bufanyun/hotgo/blob/master/LICENSE
package admin
import (
"context"
"github.com/gogf/gf/v2/crypto/gmd5"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/grand"
"hotgo/internal/consts"
"hotgo/internal/dao"
"hotgo/internal/library/contexts"
@ -23,6 +12,13 @@ import (
"hotgo/internal/model/input/sysin"
"hotgo/internal/service"
"hotgo/utility/simple"
"github.com/gogf/gf/v2/crypto/gmd5"
"github.com/gogf/gf/v2/database/gdb"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/grand"
)
type sAdminSite struct{}
@ -105,7 +101,6 @@ func (s *sAdminSite) Register(ctx context.Context, in *adminin.RegisterInp) (err
data.MemberEditInp = &adminin.MemberEditInp{
Id: 0,
RoleId: config.RoleId,
PostIds: config.PostIds,
DeptId: config.DeptId,
Username: in.Username,
@ -220,18 +215,33 @@ func (s *sAdminSite) MobileLogin(ctx context.Context, in *adminin.MobileLoginInp
// handleLogin .
func (s *sAdminSite) handleLogin(ctx context.Context, mb *entity.AdminMember) (res *adminin.LoginModel, err error) {
role, dept, err := s.getLoginRoleAndDept(ctx, mb.RoleId, mb.DeptId)
roleIds, err := service.AdminMemberRole().GetRoleIds(ctx, mb.Id)
if err != nil {
return nil, err
}
roles, dept, err := s.getLoginRoleAndDept(ctx, roleIds, mb.DeptId)
if err != nil {
return nil, err
}
var (
roleIDs []int64
roleKeys []string
)
for _, role := range roles {
roleIDs = append(roleIDs, role.Id)
roleKeys = append(roleKeys, role.Key)
}
user := &model.Identity{
Id: mb.Id,
Pid: mb.Pid,
DeptId: dept.Id,
DeptType: dept.Type,
RoleId: role.Id,
RoleKey: role.Key,
RoleIds: roleIDs,
RoleKeys: roleKeys,
Username: mb.Username,
RealName: mb.RealName,
Avatar: mb.Avatar,
@ -256,19 +266,19 @@ func (s *sAdminSite) handleLogin(ctx context.Context, mb *entity.AdminMember) (r
}
// getLoginRoleAndDept 获取登录的角色和部门信息
func (s *sAdminSite) getLoginRoleAndDept(ctx context.Context, roleId, deptId int64) (role *entity.AdminRole, dept *entity.AdminDept, err error) {
if err = dao.AdminRole.Ctx(ctx).Fields("id,key,status").WherePri(roleId).Scan(&role); err != nil {
func (s *sAdminSite) getLoginRoleAndDept(ctx context.Context, roleIds []int64, deptId int64) (roles []entity.AdminRole, dept *entity.AdminDept, err error) {
err = dao.AdminRole.Ctx(ctx).Fields("id,key,status").
WhereIn(dao.AdminRole.Columns().Id, roleIds).
Where(dao.AdminRole.Columns().Status, consts.StatusEnabled).
Scan(&roles)
if err != nil {
err = gerror.Wrap(err, consts.ErrorORM)
return
}
if role == nil {
err = gerror.New("角色不存在或已被删除")
return
}
if role.Status != consts.StatusEnabled {
err = gerror.New("角色已被禁用,如有疑问请联系管理员")
if roles == nil {
err = gerror.New("角色不存在或已被删除,如有疑问请联系管理员")
return
}
@ -311,9 +321,24 @@ func (s *sAdminSite) BindUserContext(ctx context.Context, claims *model.Identity
return
}
role, dept, err := s.getLoginRoleAndDept(ctx, mb.RoleId, mb.DeptId)
roleIds, err := service.AdminMemberRole().GetRoleIds(ctx, mb.Id)
if err != nil {
return err
return
}
roles, dept, err := s.getLoginRoleAndDept(ctx, roleIds, mb.DeptId)
if err != nil {
return
}
var (
roleIDs []int64
roleKeys []string
)
for _, role := range roles {
roleIDs = append(roleIDs, role.Id)
roleKeys = append(roleKeys, role.Key)
}
user := &model.Identity{
@ -321,8 +346,8 @@ func (s *sAdminSite) BindUserContext(ctx context.Context, claims *model.Identity
Pid: mb.Pid,
DeptId: dept.Id,
DeptType: dept.Type,
RoleId: mb.RoleId,
RoleKey: role.Key,
RoleIds: roleIDs,
RoleKeys: roleKeys,
Username: mb.Username,
RealName: mb.RealName,
Avatar: mb.Avatar,