Skip to content

Commit

Permalink
#2 Добавил получение таблицы ролей права
Browse files Browse the repository at this point in the history
  • Loading branch information
GregoryGhost committed Mar 9, 2020
1 parent 22029a4 commit 4089f08
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 9 deletions.
9 changes: 3 additions & 6 deletions Idone/Idone.DAL/DTO/DtoGridQueryPermission.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,10 @@
/// <summary>
/// DTO для получения табличных записей прав.
/// </summary>
public class DtoGridQueryPermission : AbstractGridQuery<DtoPermissionFilter>
public class DtoGridQueryPermission : AbstractGridQuery<DtoFilterById>
{
/// <summary>
/// Конструктор по умолчанию.
/// </summary>
/// <param name="name"> Наименование права. </param>
public DtoGridQueryPermission(DtoPermissionFilter filter, Pagination pagination)
/// <inheritdoc />
public DtoGridQueryPermission(DtoFilterById filter, Pagination pagination)
: base(filter, pagination)
{
}
Expand Down
6 changes: 4 additions & 2 deletions Idone/Idone.Security/EnterPoint.cs
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,11 @@ public EnterPoint(IServiceProvider serviceProvider)
}

/// <inheritdoc />
public Either<Error, DtoGridPermission> GetGridPermissionRoles(DtoGridQueryPermission gridQueryPermission)
public Either<Error, DtoGridRole> GetGridPermissionRoles(DtoGridQueryPermission gridQueryPermission)
{
throw new NotImplementedException();
var result = _userService.GetGridPermissionRoles(gridQueryPermission);

return result;
}

/// <inheritdoc />
Expand Down
2 changes: 1 addition & 1 deletion Idone/Idone.Security/ISecurityModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ public interface ISecurityModule
/// </summary>
/// <param name="gridQueryPermission"> Запрос на получение табличных записей ролей, для которых назначено указанное право. </param>
/// <returns> Возвращает монаду с табличными данными ролей для права. </returns>
Either<Error, DtoGridPermission> GetGridPermissionRoles(DtoGridQueryPermission gridQueryPermission);
Either<Error, DtoGridRole> GetGridPermissionRoles(DtoGridQueryPermission gridQueryPermission);

/// <summary>
/// Назначить роли для пользователя.
Expand Down
14 changes: 14 additions & 0 deletions Idone/Idone.Security/Services/UserService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -215,5 +215,19 @@ public UserService(AppContext appContext)

return result;
}

public Either<Error, DtoGridRole> GetGridPermissionRoles(DtoGridQueryPermission gridQuery)
{
var dbQuery = _appContext.RolePermissions.AsQueryable();
var optionFilter = gridQuery.Filter;

optionFilter.Bind(filter => dbQuery = dbQuery.Where(permissionRole => permissionRole.Permission.Id == filter.Id));

var rows = dbQuery.Paginate(gridQuery.Pagination).Select(permissionRole =>
_appContext.Roles.Find(permissionRole.Role.Id)).Where(role => role != null).Select(role => new DtoRowRole(role.Name, role.Id));
var result = new DtoGridRole(rows, _appContext.Roles.Count());

return Right<Error, DtoGridRole>(result);
}
}
}

0 comments on commit 4089f08

Please sign in to comment.