diff --git a/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs b/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs index 6092f066..130efa5d 100644 --- a/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs +++ b/Src/Dlhis.Sys/Menu/Services/Implements/MenuService.cs @@ -119,8 +119,21 @@ public class MenuService : IMenuService public async Task> GetAllAssignmentPermissionsAsync() { - var all = await GetAllAssignmentCodesAsync(); - return await _dbContext.Queryable().Where(x => all.Contains(x.Code)).Select(x => x.Permission).ToListAsync(); + var menus = await GetCurrentMenusAsync(); + return GetPermissions(menus).ToList(); + + IEnumerable GetPermissions(List innerMenuResponses) + { + foreach (var item in innerMenuResponses) + { + yield return item.Permission; + + foreach (var item1 in GetPermissions(item.Items)) + { + yield return item1; + } + } + } } public async Task> GetCurrentMenusAsync()