Browse Source

fix: 用户切换权限

hsun 1 month ago
parent
commit
7995b60f78
3 changed files with 96 additions and 0 deletions
  1. 83 0
      controllers/users.go
  2. 4 0
      models/request/users.go
  3. 9 0
      routers/commentsRouter.go

+ 83 - 0
controllers/users.go

@@ -1032,3 +1032,86 @@ func (this *UsersController) OperateRecords() {
 	br.Msg = "获取成功"
 	br.Msg = "获取成功"
 	br.Success = true
 	br.Success = true
 }
 }
+
+// TransAuth
+// @Title 切换阅读权限
+// @Description 切换阅读权限
+// @Param	request	body request.UsersTransAuthReq true "type json string"
+// @Success 200 Ret=200 操作成功
+// @router /trans_auth [post]
+func (this *UsersController) TransAuth() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	var req request.UsersTransAuthReq
+	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
+		br.Msg = "参数解析异常"
+		br.ErrMsg = fmt.Sprintf("参数解析异常, %v", e)
+		return
+	}
+	if req.UserId <= 0 {
+		br.Msg = "参数有误"
+		br.ErrMsg = fmt.Sprintf("参数有误, UserId: %d", req.UserId)
+		return
+	}
+	usersOb := new(models.Users)
+	usersItem, e := usersOb.GetItemById(req.UserId)
+	if e != nil {
+		if e.Error() == utils.ErrNoRow() {
+			br.Ret = 200
+			br.Msg = "操作成功"
+			br.Success = true
+			return
+		}
+		br.Msg = "操作失败"
+		br.ErrMsg = fmt.Sprintf("获取用户失败, %v", e)
+		return
+	}
+	// 操作权限校验
+	if sysUser.SysRoleId != utils.AdminRoleId {
+		if sysUser.SysUserId != usersItem.SysUserId && sysUser.SysUserId != usersItem.SellerId {
+			br.Msg = "无权操作"
+			return
+		}
+	}
+
+	transMapping := map[int]int{models.AuthStatusClose: models.AuthStatusOpen, models.AuthStatusOpen: models.AuthStatusClose}
+	optRemarkMapping := map[int]string{models.AuthStatusClose: "关闭", models.AuthStatusOpen: "开启"}
+	usersItem.AuthStatus = transMapping[usersItem.AuthStatus]
+	usersItem.ModifyTime = time.Now().Local()
+	updateCols := []string{usersOb.Cols().AuthStatus, usersOb.Cols().ModifyTime}
+	if e = usersItem.Update(updateCols); e != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = fmt.Sprintf("切换用户阅读权限失败, %v", e)
+		return
+	}
+
+	// 操作记录
+	go func() {
+		recordOb := new(models.CompanyUserOperateRecord)
+		recordOb.UserId = usersItem.UserId
+		recordOb.Remark = fmt.Sprintf("%s%s用户权限", sysUser.SysRealName, optRemarkMapping[usersItem.AuthStatus])
+		recordOb.SysUserId = sysUser.SysUserId
+		recordOb.SysUserRealName = sysUser.SysRealName
+		recordOb.CreateTime = time.Now().Local()
+		if e := recordOb.Create(); e != nil {
+			utils.FileLog.Info(fmt.Sprintf("新增操作记录失败, UserId: %d, ErrMsg: %v", usersOb.UserId, e))
+		}
+	}()
+
+	br.Ret = 200
+	br.Msg = "操作成功"
+	br.Success = true
+}

+ 4 - 0
models/request/users.go

@@ -18,6 +18,10 @@ type UsersMoveReq struct {
 	UserId    int `description:"用户ID"`
 	UserId    int `description:"用户ID"`
 }
 }
 
 
+type UsersTransAuthReq struct {
+	UserId int `description:"用户ID"`
+}
+
 type UsersRemoveReq struct {
 type UsersRemoveReq struct {
 	UserId int `description:"用户ID"`
 	UserId int `description:"用户ID"`
 }
 }

+ 9 - 0
routers/commentsRouter.go

@@ -403,6 +403,15 @@ func init() {
             Filters: nil,
             Filters: nil,
             Params: nil})
             Params: nil})
 
 
+    beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UsersController"] = append(beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UsersController"],
+        beego.ControllerComments{
+            Method: "TransAuth",
+            Router: `/trans_auth`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UsersController"] = append(beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UsersController"],
     beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UsersController"] = append(beego.GlobalControllerRouter["eta/eta_mini_crm/controllers:UsersController"],
         beego.ControllerComments{
         beego.ControllerComments{
             Method: "TransFormal",
             Method: "TransFormal",