mirror of
https://github.com/bufanyun/hotgo.git
synced 2025-09-24 20:26:40 +08:00
Update site.go
This commit is contained in:
parent
8ba99ffbab
commit
a6a1c18eae
@ -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
|
package admin
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"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/consts"
|
||||||
"hotgo/internal/dao"
|
"hotgo/internal/dao"
|
||||||
"hotgo/internal/library/contexts"
|
"hotgo/internal/library/contexts"
|
||||||
@ -23,6 +12,13 @@ import (
|
|||||||
"hotgo/internal/model/input/sysin"
|
"hotgo/internal/model/input/sysin"
|
||||||
"hotgo/internal/service"
|
"hotgo/internal/service"
|
||||||
"hotgo/utility/simple"
|
"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{}
|
type sAdminSite struct{}
|
||||||
@ -105,7 +101,6 @@ func (s *sAdminSite) Register(ctx context.Context, in *adminin.RegisterInp) (err
|
|||||||
|
|
||||||
data.MemberEditInp = &adminin.MemberEditInp{
|
data.MemberEditInp = &adminin.MemberEditInp{
|
||||||
Id: 0,
|
Id: 0,
|
||||||
RoleId: config.RoleId,
|
|
||||||
PostIds: config.PostIds,
|
PostIds: config.PostIds,
|
||||||
DeptId: config.DeptId,
|
DeptId: config.DeptId,
|
||||||
Username: in.Username,
|
Username: in.Username,
|
||||||
@ -220,18 +215,33 @@ func (s *sAdminSite) MobileLogin(ctx context.Context, in *adminin.MobileLoginInp
|
|||||||
|
|
||||||
// handleLogin .
|
// handleLogin .
|
||||||
func (s *sAdminSite) handleLogin(ctx context.Context, mb *entity.AdminMember) (res *adminin.LoginModel, err error) {
|
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 {
|
if err != nil {
|
||||||
return nil, err
|
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{
|
user := &model.Identity{
|
||||||
Id: mb.Id,
|
Id: mb.Id,
|
||||||
Pid: mb.Pid,
|
Pid: mb.Pid,
|
||||||
DeptId: dept.Id,
|
DeptId: dept.Id,
|
||||||
DeptType: dept.Type,
|
DeptType: dept.Type,
|
||||||
RoleId: role.Id,
|
RoleIds: roleIDs,
|
||||||
RoleKey: role.Key,
|
RoleKeys: roleKeys,
|
||||||
Username: mb.Username,
|
Username: mb.Username,
|
||||||
RealName: mb.RealName,
|
RealName: mb.RealName,
|
||||||
Avatar: mb.Avatar,
|
Avatar: mb.Avatar,
|
||||||
@ -256,19 +266,19 @@ func (s *sAdminSite) handleLogin(ctx context.Context, mb *entity.AdminMember) (r
|
|||||||
}
|
}
|
||||||
|
|
||||||
// getLoginRoleAndDept 获取登录的角色和部门信息
|
// getLoginRoleAndDept 获取登录的角色和部门信息
|
||||||
func (s *sAdminSite) getLoginRoleAndDept(ctx context.Context, roleId, deptId int64) (role *entity.AdminRole, dept *entity.AdminDept, err error) {
|
func (s *sAdminSite) getLoginRoleAndDept(ctx context.Context, roleIds []int64, deptId int64) (roles []entity.AdminRole, dept *entity.AdminDept, err error) {
|
||||||
if err = dao.AdminRole.Ctx(ctx).Fields("id,key,status").WherePri(roleId).Scan(&role); err != nil {
|
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)
|
err = gerror.Wrap(err, consts.ErrorORM)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if role == nil {
|
if roles == nil {
|
||||||
err = gerror.New("角色不存在或已被删除")
|
err = gerror.New("角色不存在或已被删除,如有疑问请联系管理员")
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if role.Status != consts.StatusEnabled {
|
|
||||||
err = gerror.New("角色已被禁用,如有疑问请联系管理员")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -311,9 +321,24 @@ func (s *sAdminSite) BindUserContext(ctx context.Context, claims *model.Identity
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
role, dept, err := s.getLoginRoleAndDept(ctx, mb.RoleId, mb.DeptId)
|
roleIds, err := service.AdminMemberRole().GetRoleIds(ctx, mb.Id)
|
||||||
if err != nil {
|
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{
|
user := &model.Identity{
|
||||||
@ -321,8 +346,8 @@ func (s *sAdminSite) BindUserContext(ctx context.Context, claims *model.Identity
|
|||||||
Pid: mb.Pid,
|
Pid: mb.Pid,
|
||||||
DeptId: dept.Id,
|
DeptId: dept.Id,
|
||||||
DeptType: dept.Type,
|
DeptType: dept.Type,
|
||||||
RoleId: mb.RoleId,
|
RoleIds: roleIDs,
|
||||||
RoleKey: role.Key,
|
RoleKeys: roleKeys,
|
||||||
Username: mb.Username,
|
Username: mb.Username,
|
||||||
RealName: mb.RealName,
|
RealName: mb.RealName,
|
||||||
Avatar: mb.Avatar,
|
Avatar: mb.Avatar,
|
||||||
|
Loading…
Reference in New Issue
Block a user