public async Task <ListResultDto <string> > GetPermissions(GetPermissionsDto input) { using (UnitOfWorkManager.Current.SetTenantId(input.TenantId)) { try { var user = await _userManager.GetUserByIdAsync(input.UserId); var userDto = ObjectMapper.Map <UserDto>(user); userDto.OrgUnitNames = await _userManager.GetOrgUnitsOfUserAsync(user); userDto.RoleNames = await _userManager.GetRolesOfUserAsync(user); userDto.IsAdmin = userDto.RoleNames.Contains("Admin"); userDto.Permissions = await _userManager.GetPermissionsOfUserAsync(user); return(new ListResultDto <string>(userDto.Permissions)); } catch (Exception exception) { throw new UserFriendlyException(L("UserNotFound", input.UserId), exception); } } }
public async Task <ListResultDto <string> > GetPermissions(GetPermissionsDto input) { using (_unitOfWorkManager.Current.SetTenantId(input.TenantId)) { var user = await Repository.GetAllIncluding( x => x.Roles).FirstOrDefaultAsync(x => x.Id == input.UserId); List <Permission> permissions = new List <Permission>(); foreach (UserRole role in user.Roles) { permissions.AddRange(await _roleManager.GetGrantedPermissionsAsync(role.RoleId)); } permissions = permissions.Distinct().ToList(); return(new ListResultDto <string>(permissions.Select(p => p.Name).ToList())); } }