Browse Source

新增任务详情权限逻辑并调整权限验证规则

在 PersonnelModuleController 中新增 TaskDetailsPerm 属性的设置逻辑,用于判断用户是否具有任务详情权限。
在 TaskAllocationView 中新增 TaskDetailsPerm 属性,默认值为 false。
修改 TaskAllocationRepository 中 TaskHavePerm 方法的注释,并注释掉与任务状态相关的验证逻辑,可能是为了放宽权限限制或简化逻辑。
Lyyyi 15 hours ago
parent
commit
3aec836b3c

+ 5 - 0
OASystem/OASystem.Api/Controllers/PersonnelModuleController.cs

@@ -1178,6 +1178,11 @@ WHERE
                 //设置已知晓权限
                 (bool havePerm, string msg3) = _taskAllocationRep.TaskHavePerm(item.Id, dto.UserId);
                 item.TaskHavePerm = havePerm;
+                //TaskDetailsPerm 设置已知晓权限
+
+                item.TaskDetailsPerm = _sqlSugar.Queryable<Pm_TaskRelevanceUser>()
+                    .Where(it => it.IsDel == 0 && it.TAId == item.Id && it.UserId == dto.UserId)
+                    .Any();
             }
 
             return Ok(JsonView(true, "查询成功!", _view, total));

+ 5 - 0
OASystem/OASystem.Domain/ViewModels/PersonnelModule/TaskAllocationView.cs

@@ -199,6 +199,11 @@ namespace OASystem.Domain.ViewModels.PersonnelModule
         /// </summary>
         public bool TaskHavePerm { get; set; } = false;
 
+        /// <summary>
+        /// 详情权限
+        /// </summary>
+        public bool TaskDetailsPerm { get; set; } = false;
+
         /// <summary>
         /// 备注
         /// </summary>

+ 13 - 13
OASystem/OASystem.Infrastructure/Repositories/PersonnelModule/TaskAllocationRepository.cs

@@ -326,7 +326,7 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
         }
 
         /// <summary>
-        /// 任务终止权限验证
+        /// 任务知晓权限验证
         /// </summary>
         public (bool CanEdit, string Message) TaskHavePerm(int taskId, int currentUserId)
         {
@@ -343,19 +343,19 @@ namespace OASystem.Infrastructure.Repositories.PersonnelModule
                 return (false, "只有任务归属者可设置“已知晓”状态!");
 
             // 检查当前状态是否设置已知晓
-            if (taskerInfo.TaskStatus == TaskerEnum.HaveKnown)
-            {
-                return (false, "当前状态已设置,无需重复操作!");
-            }
+            //if (taskerInfo.TaskStatus == TaskerEnum.HaveKnown)
+            //{
+            //    return (false, "当前状态已设置,无需重复操作!");
+            //}
 
-            if (taskInfo.Status == TaskEnum.UnFinished)
-            {
-                return (false, "当前状态 “未完成”,不可设置该状态!");
-            }
-            if (taskInfo.Status == TaskEnum.Finished)
-            {
-                return (false, "当前状态 “已完成”,不可设置该状态!");
-            }
+            //if (taskInfo.Status == TaskEnum.UnFinished)
+            //{
+            //    return (false, "当前状态 “未完成”,不可设置该状态!");
+            //}
+            //if (taskInfo.Status == TaskEnum.Finished)
+            //{
+            //    return (false, "当前状态 “已完成”,不可设置该状态!");
+            //}
 
             return (true, string.Empty);
         }