caipin 4 lat temu
rodzic
commit
bda5c9d615

+ 6 - 5
services/project_service.go

@@ -34,7 +34,7 @@ type ProjectService interface {
 	GetName(code string) []viewmodels.Project
 	Save(projectId int, projectVM viewmodels.Project) error
 	Add(projectVM viewmodels.Project) error
-	SaveBs(projectVM viewmodels.Project, id int, staffName string) error
+	SaveBs(projectVM viewmodels.Project, id int, manager *models.CmManager) error
 	GetListBs(pageData viewmodels.ProjectPage, staffName string) (data []viewmodels.Project, total int64)
 }
 
@@ -221,14 +221,15 @@ func (s *projectService) Add(projectVM viewmodels.Project) error {
 }
 
 // 更新项目-后台
-func (s *projectService) SaveBs(projectVM viewmodels.Project, id int, staffName string) error {
+func (s *projectService) SaveBs(projectVM viewmodels.Project, id int, manager *models.CmManager) error {
 
 	// 1.获得项目信息
 	projectData, _ := s.dao.FindById(id)
 	// 管理员和自己可以更新
-
-	if staffName != projectData.StaffName {
-		return errors.New("无权编辑")
+	if manager.IsAdmin != 1 {
+		if manager.Username != projectData.StaffName {
+			return errors.New("无权编辑")
+		}
 	}
 
 	project := &models.CmProject{}

+ 3 - 2
web/backstage/project_bs.go

@@ -11,6 +11,7 @@ import (
 	"log"
 
 	"github.com/kataras/iris/v12"
+	"go.mod/models"
 	"go.mod/services"
 	"go.mod/web/utils"
 	"go.mod/web/viewmodels"
@@ -228,10 +229,10 @@ func (c *ProjectBs) PostSave() {
 	}
 
 	// 获得登陆的管理员
-	staffName, err := utils.GetBackstageKey(c.Ctx, "StaffName")
+	manager := c.Ctx.Values().Get("manager").(*models.CmManager)
 
 	// 新增项目信息
-	err = c.ServiceProject.SaveBs(projectData, id, staffName)
+	err = c.ServiceProject.SaveBs(projectData, id, manager)
 	if err != nil {
 		c.Ctx.JSON(iris.Map{"code": -1, "msg": fmt.Sprintf("%s", err)})
 		return

+ 3 - 2
web/middleware/access_backstage.go

@@ -31,13 +31,14 @@ func AccessBackstageAuth(ctx iris.Context) {
 	// 编辑项目-只有管理员和自己能编辑项目
 	if path == "/api/backstage/project/save" {
 		if managerData.IsAdmin != 1 {
-
 			ctx.JSON(iris.Map{"code": 2, "msg": "管理员才能新增项目"})
 			return
 		}
 	}
 
-	ctx.ViewData("manager", managerData)
+	ctx.Values().Set("manager", managerData)
+
+	// ctx.ViewData("manager", managerData)
 
 	ctx.Next()
 }