mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-09-23 04:23:32 +08:00
feat: 节点执行权限增加指定sql
This commit is contained in:
@@ -27,7 +27,6 @@
|
||||
/// <summary>
|
||||
/// 节点的附加数据项
|
||||
/// </summary>
|
||||
/// <value>The set information.</value>
|
||||
public Setinfo setInfo { get; set; }
|
||||
}
|
||||
|
||||
@@ -36,6 +35,7 @@
|
||||
public const string ALL_USER = "ALL_USER"; //所有用户
|
||||
public const string SPECIAL_ROLE = "SPECIAL_ROLE"; //指定角色
|
||||
public const string SPECIAL_USER = "SPECIAL_USER"; //指定用户
|
||||
public const string SPECIAL_SQL = "SPECIAL_SQL"; //指定SQL
|
||||
/// <summary>
|
||||
/// 连续多级直属上级
|
||||
/// <para>不同于钉钉的各上级部门负责人审批,OpenAuth以用户的各级直属上级审批模式</para>
|
||||
@@ -101,12 +101,13 @@
|
||||
|
||||
/// <summary>
|
||||
/// 节点执行人
|
||||
/// <para>
|
||||
/// 用一个类封装,因为datas存的是id,前端需要在类里面加一个Texts字段,用于显示具体的人或角色等
|
||||
/// </para>
|
||||
/// </summary>
|
||||
public class Nodedesignatedata
|
||||
{
|
||||
public string[] users { get; set; }
|
||||
public string[] roles { get; set; }
|
||||
public string[] orgs { get; set; }
|
||||
public string[] datas { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@@ -680,7 +680,7 @@ namespace OpenAuth.App.Flow
|
||||
}
|
||||
|
||||
var orgManagerApp = AutofacContainerModule.GetService<OrgManagerApp>();
|
||||
var chairmanIds = orgManagerApp.GetChairmanId(nextNode.setInfo.NodeDesignateData.orgs);
|
||||
var chairmanIds = orgManagerApp.GetChairmanId(nextNode.setInfo.NodeDesignateData.datas);
|
||||
makerList = GenericHelpers.ArrayToString(chairmanIds, makerList);
|
||||
}
|
||||
else
|
||||
@@ -716,14 +716,22 @@ namespace OpenAuth.App.Flow
|
||||
}
|
||||
else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_USER) //指定成员
|
||||
{
|
||||
makerList = GenericHelpers.ArrayToString(node.setInfo.NodeDesignateData.users, makerList);
|
||||
makerList = GenericHelpers.ArrayToString(node.setInfo.NodeDesignateData.datas, makerList);
|
||||
}
|
||||
else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_ROLE) //指定角色
|
||||
{
|
||||
var revelanceApp = AutofacContainerModule.GetService<RevelanceManagerApp>();
|
||||
var users = revelanceApp.Get(Define.USERROLE, false, node.setInfo.NodeDesignateData.roles);
|
||||
var users = revelanceApp.Get(Define.USERROLE, false, node.setInfo.NodeDesignateData.datas);
|
||||
makerList = GenericHelpers.ArrayToString(users, makerList);
|
||||
}
|
||||
else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_SQL) //指定SQL
|
||||
{
|
||||
//如果是指定SQL,则需要执行SQL,并返回结果
|
||||
var sql = node.setInfo.NodeDesignateData.datas[0];
|
||||
var sugarClient = AutofacContainerModule.GetService<ISqlSugarClient>();
|
||||
var result = sugarClient.Ado.SqlQuery<string>(sql);
|
||||
makerList = GenericHelpers.ArrayToString(result, makerList);
|
||||
}
|
||||
else if (node.setInfo.NodeDesignate == Setinfo.RUNTIME_SPECIAL_ROLE
|
||||
|| node.setInfo.NodeDesignate == Setinfo.RUNTIME_SPECIAL_USER)
|
||||
{
|
||||
|
@@ -2,7 +2,7 @@
|
||||
* @Author: yubaolee <yubaolee@163.com> | ahfu~ <954478625@qq.com>
|
||||
* @Date: 2024-12-13 16:55:17
|
||||
* @Description: 工作流实例表操作
|
||||
* @LastEditTime: 2025-04-06 02:25:02
|
||||
* @LastEditTime: 2025-04-10 00:02:15
|
||||
* Copyright (c) 2024 by yubaolee | ahfu~ , All Rights Reserved.
|
||||
*/
|
||||
|
||||
@@ -491,7 +491,7 @@ namespace OpenAuth.App
|
||||
}
|
||||
|
||||
//如果是连续多级直属上级且还没到指定的角色,只改变执行人,不到下一个节点
|
||||
if (!wfruntime.currentNode.setInfo.NodeDesignateData.roles.Intersect(roles).Any())
|
||||
if (!wfruntime.currentNode.setInfo.NodeDesignateData.datas.Intersect(roles).Any())
|
||||
{
|
||||
canNext = false;
|
||||
var parentId = _userManagerApp.GetParent(tag.UserId);
|
||||
|
Reference in New Issue
Block a user