package repository import ( "context" "git.kirlllll.ru/volontery/backend/internal/database" ) // RBACRepository предоставляет методы для работы с RBAC type RBACRepository struct { queries *database.Queries } // NewRBACRepository создает новый RBACRepository func NewRBACRepository(queries *database.Queries) *RBACRepository { return &RBACRepository{queries: queries} } // GetUserRoles получает роли пользователя func (r *RBACRepository) GetUserRoles(ctx context.Context, userID int64) ([]database.Role, error) { return r.queries.GetUserRoles(ctx, userID) } // AssignRoleToUser назначает роль пользователю func (r *RBACRepository) AssignRoleToUser(ctx context.Context, params database.AssignRoleToUserParams) (*database.UserRole, error) { result, err := r.queries.AssignRoleToUser(ctx, params) if err != nil { return nil, err } return &result, nil } // GetRoleByName получает роль по имени func (r *RBACRepository) GetRoleByName(ctx context.Context, name string) (*database.Role, error) { result, err := r.queries.GetRoleByName(ctx, name) if err != nil { return nil, err } return &result, nil } // UserHasRole проверяет наличие роли у пользователя func (r *RBACRepository) UserHasRole(ctx context.Context, params database.UserHasRoleParams) (bool, error) { return r.queries.UserHasRole(ctx, params) } // UserHasRoleByName проверяет наличие роли по имени func (r *RBACRepository) UserHasRoleByName(ctx context.Context, params database.UserHasRoleByNameParams) (bool, error) { return r.queries.UserHasRoleByName(ctx, params) } // GetUserPermissions получает все разрешения пользователя func (r *RBACRepository) GetUserPermissions(ctx context.Context, userID int64) ([]database.GetUserPermissionsRow, error) { return r.queries.GetUserPermissions(ctx, userID) } // UserHasPermission проверяет наличие разрешения у пользователя func (r *RBACRepository) UserHasPermission(ctx context.Context, params database.UserHasPermissionParams) (bool, error) { return r.queries.UserHasPermission(ctx, params) }