diff --git a/permit/pdp_api/pdp_api_client.py b/permit/pdp_api/pdp_api_client.py index e5a9814..bb8cfa3 100644 --- a/permit/pdp_api/pdp_api_client.py +++ b/permit/pdp_api/pdp_api_client.py @@ -1,24 +1,8 @@ from ..config import PermitConfig -from .condition_set_rules import ConditionSetRulesApi -from .condition_sets import ConditionSetsApi -from .deprecated import DeprecatedApi -from .environments import EnvironmentsApi -from .projects import ProjectsApi -from .relationship_tuples import RelationshipTuplesApi -from .resource_action_groups import ResourceActionGroupsApi -from .resource_actions import ResourceActionsApi -from .resource_attributes import ResourceAttributesApi -from .resource_instances import ResourceInstancesApi -from .resource_relations import ResourceRelationsApi -from .resource_roles import ResourceRolesApi -from .resources import ResourcesApi from .role_assignments import RoleAssignmentsApi -from .roles import RolesApi -from .tenants import TenantsApi -from .users import UsersApi -class PermitApiClient(DeprecatedApi): +class PermitPdpApiClient: def __init__(self, config: PermitConfig): """ Constructs a new instance of the PdpApiClient class with the specified SDK configuration. diff --git a/permit/permit.py b/permit/permit.py index 7bbb3e4..86c5eab 100644 --- a/permit/permit.py +++ b/permit/permit.py @@ -8,7 +8,7 @@ from .config import PermitConfig from .enforcement.enforcer import Action, CheckQuery, Enforcer, Resource, User from .logger import configure_logger -from .pdp_api.base import BasePdpPermitApi +from .pdp_api.pdp_api_client import PermitPdpApiClient from .utils.context import Context @@ -22,7 +22,7 @@ def __init__(self, config: Optional[PermitConfig] = None, **options): self._enforcer = Enforcer(self._config) self._api = PermitApiClient(self._config) self._elements = ElementsApi(self._config) - self. _pdp_api = BasePdpPermitApi(self._config) + self. _pdp_api = PermitPdpApiClient(self._config) logger.debug( "Permit SDK initialized with config:\n${}", json.dumps(self._config.dict(exclude={"api_context"})), @@ -65,6 +65,19 @@ def elements(self) -> ElementsApi: """ return self._elements + @property + def pdp_api(self) -> PermitPdpApiClient: + """ + Access the Permit PDP API using this property. + + Usage example: + + permit = Permit(token="") + await permit.pdp_api.role_assignments.list() + """ + return self._pdp_api + + async def bulk_check( self, checks: list[CheckQuery], diff --git a/tests/test_rbac_e2e.py b/tests/test_rbac_e2e.py index 8d0ec6d..d0f5f51 100644 --- a/tests/test_rbac_e2e.py +++ b/tests/test_rbac_e2e.py @@ -219,6 +219,10 @@ async def test_permission_check_e2e(permit: Permit): print_break() + logger.info("testing list role assignments") + assert permit.pdp_api.role_assignments.list() + print_break() + logger.info("changing the user roles") # change the user role - assign admin role