|
|
@ -41,7 +41,14 @@ namespace Volo.Abp.Identity.EntityFrameworkCore |
|
|
where userRole.UserId == id |
|
|
where userRole.UserId == id |
|
|
select role.Name; |
|
|
select role.Name; |
|
|
var organizationUnitIds = DbContext.Set<IdentityUserOrganizationUnit>().Where(q => q.UserId == id).Select(q => q.OrganizationUnitId).ToArray(); |
|
|
var organizationUnitIds = DbContext.Set<IdentityUserOrganizationUnit>().Where(q => q.UserId == id).Select(q => q.OrganizationUnitId).ToArray(); |
|
|
var organizationRoleIds = DbContext.Set<OrganizationUnitRole>().Where(our => organizationUnitIds.Contains(our.OrganizationUnitId)).Select(r => r.RoleId).ToArray(); |
|
|
|
|
|
|
|
|
var organizationRoleIds = await ( |
|
|
|
|
|
from ouRole in DbContext.Set<OrganizationUnitRole>() |
|
|
|
|
|
join ou in DbContext.Set<OrganizationUnit>() on ouRole.OrganizationUnitId equals ou.Id |
|
|
|
|
|
where organizationUnitIds.Contains(ouRole.OrganizationUnitId) |
|
|
|
|
|
select ouRole.RoleId |
|
|
|
|
|
).ToListAsync(GetCancellationToken(cancellationToken)); |
|
|
|
|
|
|
|
|
var orgUnitRoleNameQuery = DbContext.Roles.Where(r => organizationRoleIds.Contains(r.Id)).Select(n => n.Name); |
|
|
var orgUnitRoleNameQuery = DbContext.Roles.Where(r => organizationRoleIds.Contains(r.Id)).Select(n => n.Name); |
|
|
var resultQuery = query.Union(orgUnitRoleNameQuery); |
|
|
var resultQuery = query.Union(orgUnitRoleNameQuery); |
|
|
return await resultQuery.ToListAsync(GetCancellationToken(cancellationToken)); |
|
|
return await resultQuery.ToListAsync(GetCancellationToken(cancellationToken)); |
|
|
@ -53,11 +60,14 @@ namespace Volo.Abp.Identity.EntityFrameworkCore |
|
|
{ |
|
|
{ |
|
|
var query = from userOu in DbContext.Set<IdentityUserOrganizationUnit>() |
|
|
var query = from userOu in DbContext.Set<IdentityUserOrganizationUnit>() |
|
|
join roleOu in DbContext.Set<OrganizationUnitRole>() on userOu.OrganizationUnitId equals roleOu.OrganizationUnitId |
|
|
join roleOu in DbContext.Set<OrganizationUnitRole>() on userOu.OrganizationUnitId equals roleOu.OrganizationUnitId |
|
|
|
|
|
join ou in DbContext.Set<OrganizationUnit>() on roleOu.OrganizationUnitId equals ou.Id |
|
|
join userOuRoles in DbContext.Roles on roleOu.RoleId equals userOuRoles.Id |
|
|
join userOuRoles in DbContext.Roles on roleOu.RoleId equals userOuRoles.Id |
|
|
where userOu.UserId == id |
|
|
where userOu.UserId == id |
|
|
select userOuRoles.Name; |
|
|
select userOuRoles.Name; |
|
|
|
|
|
|
|
|
return await query.ToListAsync(GetCancellationToken(cancellationToken)); |
|
|
var result = await query.ToListAsync(GetCancellationToken(cancellationToken)); |
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public virtual async Task<IdentityUser> FindByLoginAsync( |
|
|
public virtual async Task<IdentityUser> FindByLoginAsync( |
|
|
|