feat:完善信息
This commit is contained in:
81
app/api/manage/controller/role/user.go
Normal file
81
app/api/manage/controller/role/user.go
Normal file
@ -0,0 +1,81 @@
|
||||
package role
|
||||
|
||||
import (
|
||||
"SciencesServer/app/api/manage/controller"
|
||||
model3 "SciencesServer/app/api/manage/model"
|
||||
model2 "SciencesServer/app/common/model"
|
||||
"SciencesServer/serve/logger"
|
||||
|
||||
"SciencesServer/app/service"
|
||||
"SciencesServer/serve/orm"
|
||||
"SciencesServer/utils"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type User struct{ *controller.Platform }
|
||||
|
||||
type UserHandle func(session *service.Session) *User
|
||||
|
||||
// List 列表信息
|
||||
func (c *User) List(uid uint64) ([]*model3.SysRoleUserInfo, error) {
|
||||
mSysRole := model3.NewSysRole()
|
||||
|
||||
out, err := mSysRole.UserRole(uid)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// Bind 绑定角色
|
||||
func (c *User) Bind(uid uint64, roleIDs []uint64) error {
|
||||
mSysUserRole := model3.NewSysUserRole()
|
||||
|
||||
return orm.GetDB().Transaction(func(tx *gorm.DB) error {
|
||||
err := model2.DeleteWhere(mSysUserRole.SysUserRole, []*model2.ModelWhere{model2.NewWhere("uid", uid)}, tx)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
roles := make([]*model2.SysUserRole, 0)
|
||||
obj := make([]string, 0)
|
||||
|
||||
mark := make(map[uint64]uint64, 0)
|
||||
|
||||
for _, v := range roleIDs {
|
||||
if _, has := mark[v]; has {
|
||||
continue
|
||||
}
|
||||
obj = append(obj, utils.UintToString(v))
|
||||
|
||||
roles = append(roles, &model2.SysUserRole{
|
||||
UID: uid, RoleID: v,
|
||||
})
|
||||
mark[v] = v
|
||||
}
|
||||
if err = model2.Creates(mSysUserRole.SysUserRole, roles, tx); err != nil {
|
||||
return err
|
||||
}
|
||||
go utils.TryCatch(func() {
|
||||
permission := service.NewPermission(obj)(c.TenantKey, utils.UintToString(uid))
|
||||
|
||||
if _, err = permission.DeleteRolesForUser(false); err != nil {
|
||||
logger.ErrorF("删除用户【%d】角色权限错误:%v", uid, err)
|
||||
return
|
||||
}
|
||||
if _, err = permission.AddRoleForUser(); err != nil {
|
||||
logger.ErrorF("添加用户【%d】角色权限错误:%v", uid, err)
|
||||
return
|
||||
}
|
||||
})
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
func NewUser() UserHandle {
|
||||
return func(session *service.Session) *User {
|
||||
return &User{Platform: &controller.Platform{Session: session}}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user