mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-11-08 02:14:44 +08:00
fix #I62Y74 执行权限扩展成支持Sql
This commit is contained in:
@@ -650,6 +650,19 @@ namespace OpenAuth.App.Flow
|
|||||||
|
|
||||||
makerList = GenericHelpers.ArrayToString(request.NodeDesignates, makerList);
|
makerList = GenericHelpers.ArrayToString(request.NodeDesignates, makerList);
|
||||||
}
|
}
|
||||||
|
else if (nextNode.setInfo.NodeDesignate == Setinfo.SPECIAL_SQL)
|
||||||
|
{
|
||||||
|
//如果是指定SQL
|
||||||
|
if (nextNode.setInfo.NodeDesignate != request.NodeDesignateType)
|
||||||
|
{
|
||||||
|
throw new Exception("前端提交的节点权限类型异常,请检查流程");
|
||||||
|
}
|
||||||
|
|
||||||
|
var sql = ReplaceSql(nextNode.setInfo.NodeDesignateData.datas[0]);
|
||||||
|
var sugarClient = AutofacContainerModule.GetService<ISqlSugarClient>();
|
||||||
|
var result = sugarClient.Ado.SqlQuery<string>(sql);
|
||||||
|
makerList = GenericHelpers.ArrayToString(result, makerList);
|
||||||
|
}
|
||||||
else if (nextNode.setInfo.NodeDesignate == Setinfo.RUNTIME_PARENT
|
else if (nextNode.setInfo.NodeDesignate == Setinfo.RUNTIME_PARENT
|
||||||
|| nextNode.setInfo.NodeDesignate == Setinfo.RUNTIME_MANY_PARENTS)
|
|| nextNode.setInfo.NodeDesignate == Setinfo.RUNTIME_MANY_PARENTS)
|
||||||
{
|
{
|
||||||
@@ -727,7 +740,7 @@ namespace OpenAuth.App.Flow
|
|||||||
else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_SQL) //指定SQL
|
else if (node.setInfo.NodeDesignate == Setinfo.SPECIAL_SQL) //指定SQL
|
||||||
{
|
{
|
||||||
//如果是指定SQL,则需要执行SQL,并返回结果
|
//如果是指定SQL,则需要执行SQL,并返回结果
|
||||||
var sql = node.setInfo.NodeDesignateData.datas[0];
|
var sql = ReplaceSql(node.setInfo.NodeDesignateData.datas[0]);
|
||||||
var sugarClient = AutofacContainerModule.GetService<ISqlSugarClient>();
|
var sugarClient = AutofacContainerModule.GetService<ISqlSugarClient>();
|
||||||
var result = sugarClient.Ado.SqlQuery<string>(sql);
|
var result = sugarClient.Ado.SqlQuery<string>(sql);
|
||||||
makerList = GenericHelpers.ArrayToString(result, makerList);
|
makerList = GenericHelpers.ArrayToString(result, makerList);
|
||||||
@@ -746,6 +759,19 @@ namespace OpenAuth.App.Flow
|
|||||||
return makerList;
|
return makerList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 替换SQL中的权限占位符
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sql"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private string ReplaceSql(string sql){
|
||||||
|
var loginUser = AutofacContainerModule.GetService<IAuth>().GetCurrentUser();
|
||||||
|
var res = sql.Replace(Define.DATAPRIVILEGE_LOGINUSER, loginUser.User.Id);
|
||||||
|
res = res.Replace(Define.DATAPRIVILEGE_LOGINROLE, string.Join(',', loginUser.Roles.Select(u => u.Id)));
|
||||||
|
res = res.Replace(Define.DATAPRIVILEGE_LOGINORG, string.Join(',', loginUser.Orgs.Select(u => u.Id)));
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 会签时,获取一条会签分支上面是否有用户可审核的节点
|
/// 会签时,获取一条会签分支上面是否有用户可审核的节点
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user