Skip to content

Commit 1fca64e

Browse files
committed
fix: Make it similar to node SDK
1 parent fdefc5b commit 1fca64e

File tree

3 files changed

+36
-19
lines changed

3 files changed

+36
-19
lines changed

supertokens_python/recipe/userroles/asyncio/__init__.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any, Dict, List, Union
1+
from typing import Any, Dict, List, Union, Optional
22

33
from supertokens_python.recipe.userroles.interfaces import (
44
AddRoleToUserOkResult,
@@ -17,7 +17,7 @@
1717

1818

1919
async def add_role_to_user(
20-
tenant_id: str,
20+
tenant_id: Optional[str],
2121
user_id: str,
2222
role: str,
2323
user_context: Union[Dict[str, Any], None] = None,
@@ -30,7 +30,7 @@ async def add_role_to_user(
3030

3131

3232
async def remove_user_role(
33-
tenant_id: str,
33+
tenant_id: Optional[str],
3434
user_id: str,
3535
role: str,
3636
user_context: Union[Dict[str, Any], None] = None,
@@ -43,7 +43,9 @@ async def remove_user_role(
4343

4444

4545
async def get_roles_for_user(
46-
tenant_id: str, user_id: str, user_context: Union[Dict[str, Any], None] = None
46+
tenant_id: Optional[str],
47+
user_id: str,
48+
user_context: Union[Dict[str, Any], None] = None,
4749
) -> GetRolesForUserOkResult:
4850
if user_context is None:
4951
user_context = {}
@@ -55,7 +57,9 @@ async def get_roles_for_user(
5557

5658

5759
async def get_users_that_have_role(
58-
tenant_id: str, role: str, user_context: Union[Dict[str, Any], None] = None
60+
tenant_id: Optional[str],
61+
role: str,
62+
user_context: Union[Dict[str, Any], None] = None,
5963
) -> Union[GetUsersThatHaveRoleOkResult, UnknownRoleError]:
6064
if user_context is None:
6165
user_context = {}

supertokens_python/recipe/userroles/recipe_implementation.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# under the License.
1414

1515

16-
from typing import Any, Dict, List, Union
16+
from typing import Any, Dict, List, Union, Optional
1717

1818
from supertokens_python.normalised_url_path import NormalisedURLPath
1919
from supertokens_python.querier import Querier
@@ -32,6 +32,7 @@
3232
RemoveUserRoleOkResult,
3333
UnknownRoleError,
3434
)
35+
from ..multitenancy.constants import DEFAULT_TENANT_ID
3536

3637

3738
class RecipeImplementation(RecipeInterface):
@@ -40,11 +41,15 @@ def __init__(self, querier: Querier):
4041
self.querier = querier
4142

4243
async def add_role_to_user(
43-
self, user_id: str, role: str, tenant_id: str, user_context: Dict[str, Any]
44+
self,
45+
user_id: str,
46+
role: str,
47+
tenant_id: Optional[str],
48+
user_context: Dict[str, Any],
4449
) -> Union[AddRoleToUserOkResult, UnknownRoleError]:
4550
params = {"userId": user_id, "role": role}
4651
response = await self.querier.send_put_request(
47-
NormalisedURLPath(f"{tenant_id}/recipe/user/role"), params
52+
NormalisedURLPath(f"{tenant_id or DEFAULT_TENANT_ID}/recipe/user/role"), params
4853
)
4954
if response.get("status") == "OK":
5055
return AddRoleToUserOkResult(
@@ -53,11 +58,15 @@ async def add_role_to_user(
5358
return UnknownRoleError()
5459

5560
async def remove_user_role(
56-
self, user_id: str, role: str, tenant_id: str, user_context: Dict[str, Any]
61+
self,
62+
user_id: str,
63+
role: str,
64+
tenant_id: Optional[str],
65+
user_context: Dict[str, Any],
5766
) -> Union[RemoveUserRoleOkResult, UnknownRoleError]:
5867
params = {"userId": user_id, "role": role}
5968
response = await self.querier.send_post_request(
60-
NormalisedURLPath(f"{tenant_id}/recipe/user/role/remove"), params
69+
NormalisedURLPath(f"{tenant_id or DEFAULT_TENANT_ID}/recipe/user/role/remove"), params
6170
)
6271
if response["status"] == "OK":
6372
return RemoveUserRoleOkResult(
@@ -66,20 +75,20 @@ async def remove_user_role(
6675
return UnknownRoleError()
6776

6877
async def get_roles_for_user(
69-
self, user_id: str, tenant_id: str, user_context: Dict[str, Any]
78+
self, user_id: str, tenant_id: Optional[str], user_context: Dict[str, Any]
7079
) -> GetRolesForUserOkResult:
7180
params = {"userId": user_id}
7281
response = await self.querier.send_get_request(
73-
NormalisedURLPath(f"{tenant_id}/recipe/user/roles"), params
82+
NormalisedURLPath(f"{tenant_id or DEFAULT_TENANT_ID}/recipe/user/roles"), params
7483
)
7584
return GetRolesForUserOkResult(roles=response["roles"])
7685

7786
async def get_users_that_have_role(
78-
self, role: str, tenant_id: str, user_context: Dict[str, Any]
87+
self, role: str, tenant_id: Optional[str], user_context: Dict[str, Any]
7988
) -> Union[GetUsersThatHaveRoleOkResult, UnknownRoleError]:
8089
params = {"role": role}
8190
response = await self.querier.send_get_request(
82-
NormalisedURLPath(f"{tenant_id}/recipe/role/users"), params
91+
NormalisedURLPath(f"{tenant_id or DEFAULT_TENANT_ID}/recipe/role/users"), params
8392
)
8493
if response.get("status") == "OK":
8594
return GetUsersThatHaveRoleOkResult(users=response["users"])

supertokens_python/recipe/userroles/syncio/__init__.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
# License for the specific language governing permissions and limitations
1313
# under the License.
1414

15-
from typing import Any, Dict, List, Union
15+
from typing import Any, Dict, List, Union, Optional
1616

1717
from supertokens_python.async_to_sync_wrapper import sync
1818
from supertokens_python.recipe.userroles.interfaces import (
@@ -31,7 +31,7 @@
3131

3232

3333
def add_role_to_user(
34-
tenant_id: str,
34+
tenant_id: Optional[str],
3535
user_id: str,
3636
role: str,
3737
user_context: Union[Dict[str, Any], None] = None,
@@ -42,7 +42,7 @@ def add_role_to_user(
4242

4343

4444
def remove_user_role(
45-
tenant_id: str,
45+
tenant_id: Optional[str],
4646
user_id: str,
4747
role: str,
4848
user_context: Union[Dict[str, Any], None] = None,
@@ -53,15 +53,19 @@ def remove_user_role(
5353

5454

5555
def get_roles_for_user(
56-
tenant_id: str, user_id: str, user_context: Union[Dict[str, Any], None] = None
56+
tenant_id: Optional[str],
57+
user_id: str,
58+
user_context: Union[Dict[str, Any], None] = None,
5759
) -> GetRolesForUserOkResult:
5860
from supertokens_python.recipe.userroles.asyncio import get_roles_for_user
5961

6062
return sync(get_roles_for_user(tenant_id, user_id, user_context))
6163

6264

6365
def get_users_that_have_role(
64-
tenant_id: str, role: str, user_context: Union[Dict[str, Any], None] = None
66+
tenant_id: Optional[str],
67+
role: str,
68+
user_context: Union[Dict[str, Any], None] = None,
6569
) -> Union[GetUsersThatHaveRoleOkResult, UnknownRoleError]:
6670
from supertokens_python.recipe.userroles.asyncio import get_users_that_have_role
6771

0 commit comments

Comments
 (0)