|
@@ -71,27 +71,16 @@ namespace Admin.Core.Service.Admin.User
|
|
public async Task<IList<UserPermissionsOutput>> GetPermissionsAsync()
|
|
public async Task<IList<UserPermissionsOutput>> GetPermissionsAsync()
|
|
{
|
|
{
|
|
var key = string.Format(CacheKey.UserPermissions, User.Id);
|
|
var key = string.Format(CacheKey.UserPermissions, User.Id);
|
|
- if (await _cache.ExistsAsync(key))
|
|
|
|
|
|
+ var result = await _cache.GetOrSetAsync<IList<UserPermissionsOutput>>(key, async () =>
|
|
{
|
|
{
|
|
- try
|
|
|
|
- {
|
|
|
|
- return await _cache.GetAsync<IList<UserPermissionsOutput>>(key);
|
|
|
|
- }
|
|
|
|
- catch
|
|
|
|
- {
|
|
|
|
- await _cache.DelByPatternAsync("admin:user:{0}:permissions");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- var userPermissoins = await _rolePermissionRepository.Select
|
|
|
|
|
|
+ var userPermissoins = await _rolePermissionRepository.Select
|
|
.InnerJoin<UserRoleEntity>((a, b) => a.RoleId == b.RoleId && b.UserId == User.Id && a.Permission.Type == PermissionType.Api)
|
|
.InnerJoin<UserRoleEntity>((a, b) => a.RoleId == b.RoleId && b.UserId == User.Id && a.Permission.Type == PermissionType.Api)
|
|
.Include(a => a.Permission.Api)
|
|
.Include(a => a.Permission.Api)
|
|
.Distinct()
|
|
.Distinct()
|
|
.ToListAsync(a => new UserPermissionsOutput { HttpMethods = a.Permission.Api.HttpMethods, Path = a.Permission.Api.Path });
|
|
.ToListAsync(a => new UserPermissionsOutput { HttpMethods = a.Permission.Api.HttpMethods, Path = a.Permission.Api.Path });
|
|
-
|
|
|
|
- await _cache.SetAsync(key, userPermissoins);
|
|
|
|
-
|
|
|
|
- return userPermissoins;
|
|
|
|
|
|
+ return userPermissoins;
|
|
|
|
+ });
|
|
|
|
+ return result;
|
|
}
|
|
}
|
|
|
|
|
|
public async Task<IResponseOutput> PageAsync(PageInput<UserEntity> input)
|
|
public async Task<IResponseOutput> PageAsync(PageInput<UserEntity> input)
|