|
@@ -22,15 +22,16 @@ public class DataPermissionFilterBuilder : IDataPermissionFilterBuilder, IScopeD
|
|
|
public Expression<Func<TEntity, bool>> Build<TEntity>() where TEntity : class, IEntity<string>, IDataPermission, new()
|
|
|
{
|
|
|
var userId = _sessionContext.RequiredUserId;
|
|
|
- var scheme = DataPermissionManager.GetQueryFilter<TEntity>(_sessionContext);
|
|
|
- switch (scheme.QueryFilter)
|
|
|
+ var orgCode = _sessionContext.RequiredOrgCode;
|
|
|
+ var queryFilterType = DataPermissionManager.GetQueryFilter<TEntity>(_sessionContext);
|
|
|
+ switch (queryFilterType)
|
|
|
{
|
|
|
case EAuthorityType.Create:
|
|
|
return d => d.CreatorId == userId;
|
|
|
case EAuthorityType.Org:
|
|
|
- return d => d.CreatorOrgCode == scheme.OrgCode;
|
|
|
+ return d => d.CreatorOrgCode == orgCode;
|
|
|
case EAuthorityType.OrgAndBelow:
|
|
|
- return d => d.CreatorOrgCode.StartsWith(scheme.OrgCode);
|
|
|
+ return d => d.CreatorOrgCode.StartsWith(orgCode);
|
|
|
case EAuthorityType.All:
|
|
|
return d => true;
|
|
|
default:
|
|
@@ -43,23 +44,23 @@ public class DataPermissionFilterBuilder : IDataPermissionFilterBuilder, IScopeD
|
|
|
var userId = _sessionContext.RequiredUserId;
|
|
|
var roles = _sessionContext.Roles;
|
|
|
var orgCode = _sessionContext.RequiredOrgCode;
|
|
|
- var scheme = DataPermissionManager.GetQueryFilter<TEntity>(_sessionContext);
|
|
|
+ var queryFilterType = DataPermissionManager.GetQueryFilter<TEntity>(_sessionContext);
|
|
|
|
|
|
- switch (scheme.QueryFilter)
|
|
|
+ switch (queryFilterType)
|
|
|
{
|
|
|
case EAuthorityType.Create:
|
|
|
return d => d.CreatorId == userId
|
|
|
|| d.AssignUserIds.Contains(userId)
|
|
|
|| d.AssignOrgCodes.Contains(orgCode);
|
|
|
case EAuthorityType.Org:
|
|
|
- return d => d.CreatorOrgCode == scheme.OrgCode
|
|
|
+ return d => d.CreatorOrgCode == orgCode
|
|
|
|| d.AssignUserIds.Contains(userId)
|
|
|
|| d.AssignOrgCodes.Contains(orgCode)
|
|
|
|
|
|
//todo 扩展sqlfunc || d.AssignRoles.Intersect(roles).Any()
|
|
|
;
|
|
|
case EAuthorityType.OrgAndBelow:
|
|
|
- return d => d.CreatorOrgCode.StartsWith(scheme.OrgCode)
|
|
|
+ return d => d.CreatorOrgCode.StartsWith(orgCode)
|
|
|
|| d.AssignUserIds.Contains(userId)
|
|
|
|| d.AssignOrgCodes.Contains(orgCode);
|
|
|
case EAuthorityType.All:
|