Skip to content

Commit 9776ad9

Browse files
author
Victor Silva
committed
feat: add sessions in users and update doc
1 parent 9b4395c commit 9776ad9

File tree

5 files changed

+60
-11
lines changed

5 files changed

+60
-11
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ For more code samples on how to integrate the auth0-python SDK in your Python ap
121121
- RulesConfigs() ( `Auth0().rules_configs` )
122122
- Rules() ( `Auth0().rules` )
123123
- Stats() ( `Auth0().stats` )
124+
- Sessions() ( `Auth0().sessions` )
124125
- Tenants() ( `Auth0().tenants` )
125126
- Tickets() ( `Auth0().tickets` )
126127
- UserBlocks() (`Auth0().user_blocks` )

auth0/management/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from .roles import Roles
2323
from .rules import Rules
2424
from .rules_configs import RulesConfigs
25+
from .sessions import Sessions
2526
from .stats import Stats
2627
from .tenants import Tenants
2728
from .tickets import Tickets
@@ -60,6 +61,7 @@
6061
"RulesConfigs",
6162
"Rules",
6263
"Stats",
64+
"Sessions",
6365
"Tenants",
6466
"Tickets",
6567
"UserBlocks",

auth0/management/users.py

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,9 @@ def unlink_user_account(self, id: str, provider: str, user_id: str) -> Any:
348348
url = self._url(f"{id}/identities/{provider}/{user_id}")
349349
return self.client.delete(url)
350350

351-
def link_user_account(self, user_id: str, body: dict[str, Any]) -> list[dict[str, Any]]:
351+
def link_user_account(
352+
self, user_id: str, body: dict[str, Any]
353+
) -> list[dict[str, Any]]:
352354
"""Link user accounts.
353355
354356
Links the account specified in the body (secondary account) to the
@@ -538,7 +540,7 @@ def delete_authentication_method_by_id(
538540

539541
url = self._url(f"{user_id}/authentication-methods/{authentication_method_id}")
540542
return self.client.delete(url)
541-
543+
542544
def list_tokensets(
543545
self, id: str, page: int = 0, per_page: int = 25, include_totals: bool = True
544546
):
@@ -567,9 +569,7 @@ def list_tokensets(
567569
url = self._url(f"{id}/tokensets")
568570
return self.client.get(url, params=params)
569571

570-
def delete_tokenset_by_id(
571-
self, user_id: str, tokenset_id: str
572-
) -> Any:
572+
def delete_tokenset_by_id(self, user_id: str, tokenset_id: str) -> Any:
573573
"""Deletes an tokenset by ID.
574574
575575
Args:
@@ -581,3 +581,27 @@ def delete_tokenset_by_id(
581581

582582
url = self._url(f"{user_id}/tokensets/{tokenset_id}")
583583
return self.client.delete(url)
584+
585+
def get_sessions(self, user_id: str) -> dict[str, Any]:
586+
"""Get all sessions details for the given user.
587+
588+
Args:
589+
user_id (str): The user_id to get all sessions for the given user for.
590+
591+
see: https://auth0.com/docs/api/management/v2#!/Users/get-sessions-for-user
592+
"""
593+
594+
url = self._url(f"{user_id}/sessions")
595+
return self.client.get(url)
596+
597+
def delete_sessions(self, user_id: str) -> dict[str, Any]:
598+
"""Delete all sessions for the given user.
599+
600+
Args:
601+
user_id (str): The user_id to delete all session for the given user for.
602+
603+
See: https://auth0.com/docs/api/management/v2#!/Users/delete-sessions-for-user
604+
"""
605+
606+
url = self._url(f"{user_id}/sessions")
607+
return self.client.delete(url)

auth0/test/management/test_sessions.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
import unittest
22
from unittest import mock
33

4-
from ...management.users import Sessions
4+
from ...management.sessions import Sessions
55

66

7-
class TestUsers(unittest.TestCase):
7+
class TestSessions(unittest.TestCase):
88
def test_init_with_optionals(self):
99
t = Sessions(domain="domain", token="jwttoken", telemetry=False, timeout=(10, 2))
1010
self.assertEqual(t.client.options.timeout, (10, 2))
1111
telemetry_header = t.client.base_headers.get("Auth0-Client", None)
1212
self.assertEqual(telemetry_header, None)
1313

14-
@mock.patch("auth0.management.users.RestClient")
14+
@mock.patch("auth0.management.sessions.RestClient")
1515
def test_get(self, mock_rc):
1616
mock_instance = mock_rc.return_value
1717

1818
u = Sessions(domain="domain", token="jwttoken")
19-
u.get("user_id")
19+
u.get("session_id")
2020

2121
mock_instance.get.assert_called_with(
2222
"https://domain/api/v2/sessions/session_id"
2323
)
2424

25-
@mock.patch("auth0.management.users.RestClient")
25+
@mock.patch("auth0.management.sessions.RestClient")
2626
def test_delete(self, mock_rc):
2727
mock_instance = mock_rc.return_value
2828

@@ -33,7 +33,7 @@ def test_delete(self, mock_rc):
3333
"https://domain/api/v2/sessions/session_id"
3434
)
3535

36-
@mock.patch("auth0.management.users.RestClient")
36+
@mock.patch("auth0.management.sessions.RestClient")
3737
def test_revoke(self, mock_rc):
3838
mock_instance = mock_rc.return_value
3939

auth0/test/management/test_users.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,3 +436,25 @@ def test_delete_tokenset_by_id(self, mock_rc):
436436
mock_instance.delete.assert_called_with(
437437
"https://domain/api/v2/users/user_id/tokensets/tokenset_id"
438438
)
439+
440+
@mock.patch("auth0.management.users.RestClient")
441+
def test_get_sessions_by_user(self, mock_rc):
442+
mock_instance = mock_rc.return_value
443+
444+
u = Users(domain="domain", token="jwttoken")
445+
u.get_sessions("user_id")
446+
447+
mock_instance.get.assert_called_with(
448+
"https://domain/api/v2/users/user_id/sessions"
449+
)
450+
451+
@mock.patch("auth0.management.users.RestClient")
452+
def test_delete_sessions_by_user(self, mock_rc):
453+
mock_instance = mock_rc.return_value
454+
455+
u = Users(domain="domain", token="jwttoken")
456+
u.delete_sessions("user_id")
457+
458+
mock_instance.delete.assert_called_with(
459+
"https://domain/api/v2/users/user_id/sessions"
460+
)

0 commit comments

Comments
 (0)