feat: restrict permission roles
This commit is contained in:
@@ -213,7 +213,7 @@ func (s *ProjectOrdersService) Update(
|
||||
return &order, nil
|
||||
}
|
||||
|
||||
// SubmitCompletion 技术员提交完成资料,进入待完成确认状态
|
||||
// SubmitCompletion 工单负责人提交完成资料,进入待完成确认状态
|
||||
func (s *ProjectOrdersService) SubmitCompletion(
|
||||
serialNumber string,
|
||||
dto models.SubmitProjectCompletionDTO,
|
||||
@@ -395,7 +395,7 @@ func (s *ProjectOrdersService) EngineerComplete(serialNumber string, dto models.
|
||||
return s.PublicQuery(normalized)
|
||||
}
|
||||
|
||||
// Reassign 重新分配技术员(仅管理员)
|
||||
// Reassign 重新分配工单负责人(仅管理员)
|
||||
func (s *ProjectOrdersService) Reassign(serialNumber string, technicianID uint) (*models.ProjectOrder, error) {
|
||||
var order models.ProjectOrder
|
||||
result := database.DB.Where("serial_number = ?", normalizeProjectOrderSerial(serialNumber)).First(&order)
|
||||
@@ -409,15 +409,15 @@ func (s *ProjectOrdersService) Reassign(serialNumber string, technicianID uint)
|
||||
|
||||
var technician models.User
|
||||
if err := database.DB.First(&technician, technicianID).Error; err != nil {
|
||||
return nil, errors.New("指定的技术员不存在")
|
||||
return nil, errors.New("指定的工单负责人不存在")
|
||||
}
|
||||
if technician.Role != "admin" && technician.Role != "technician" {
|
||||
return nil, errors.New("指定的用户不是技术员或管理员")
|
||||
if !models.IsAssignableWorkOrderRole(technician.Role) {
|
||||
return nil, errors.New("指定的用户不是可派单人员")
|
||||
}
|
||||
|
||||
order.TechnicianID = &technicianID
|
||||
if err := database.DB.Save(&order).Error; err != nil {
|
||||
return nil, fmt.Errorf("重新分配技术员失败: %w", err)
|
||||
return nil, fmt.Errorf("重新分配工单负责人失败: %w", err)
|
||||
}
|
||||
|
||||
_ = database.DB.Preload("Technician").Preload("Creator").Where("serial_number = ?", order.SerialNumber).First(&order)
|
||||
|
||||
Reference in New Issue
Block a user