Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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()));
            }
        }