File tree Expand file tree Collapse file tree 4 files changed +62
-1
lines changed
Expand file tree Collapse file tree 4 files changed +62
-1
lines changed Original file line number Diff line number Diff line change 44 "flake8.importStrategy" : " fromEnvironment" ,
55 "mypy-type-checker.importStrategy" : " fromEnvironment" ,
66 "isort.importStrategy" : " fromEnvironment" ,
7- "black-formatter.importStrategy" : " fromEnvironment"
7+ "black-formatter.importStrategy" : " fromEnvironment" ,
8+ "workbench.colorCustomizations" : {
9+ "activityBar.background" : " #4D1C3B" ,
10+ "titleBar.activeBackground" : " #6B2752" ,
11+ "titleBar.activeForeground" : " #FDF8FB"
12+ }
813}
Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ class MgmtV1:
5050 user_set_active_password_path = "/v1/mgmt/user/password/set/active"
5151 user_expire_password_path = "/v1/mgmt/user/password/expire"
5252 user_remove_all_passkeys_path = "/v1/mgmt/user/passkeys/delete"
53+ user_remove_totp_seed_path = "/v1/mgmt/user/totp/delete"
5354 user_add_tenant_path = "/v1/mgmt/user/update/tenant/add"
5455 user_remove_tenant_path = "/v1/mgmt/user/update/tenant/remove"
5556 user_generate_otp_for_test_path = "/v1/mgmt/tests/generate/otp"
Original file line number Diff line number Diff line change @@ -1472,6 +1472,28 @@ def remove_all_passkeys(
14721472 )
14731473 return
14741474
1475+ def remove_totp_seed (
1476+ self ,
1477+ login_id : str ,
1478+ ) -> None :
1479+ """
1480+ Removes TOTP seed for the user with the given login ID.
1481+ Note: The user might not be able to login anymore if they have no other authentication
1482+ methods or a verified email/phone.
1483+
1484+ Args:
1485+ login_id (str): The login ID of the user to remove totp seed for.
1486+
1487+ Raise:
1488+ AuthException: raised if the operation fails
1489+ """
1490+ self ._auth .do_post (
1491+ MgmtV1 .user_remove_totp_seed_path ,
1492+ {"loginId" : login_id },
1493+ pswd = self ._auth .management_key ,
1494+ )
1495+ return
1496+
14751497 def generate_otp_for_test_user (
14761498 self ,
14771499 method : DeliveryMethod ,
Original file line number Diff line number Diff line change @@ -2094,6 +2094,39 @@ def test_user_remove_all_passkeys(self):
20942094 timeout = DEFAULT_TIMEOUT_SECONDS ,
20952095 )
20962096
2097+ def test_user_remove_totp_seed (self ):
2098+ # Test failed flows
2099+ with patch ("requests.post" ) as mock_post :
2100+ mock_post .return_value .ok = False
2101+ self .assertRaises (
2102+ AuthException ,
2103+ self .client .mgmt .user .remove_totp_seed ,
2104+ "login-id" ,
2105+ )
2106+
2107+ # Test success flow
2108+ with patch ("requests.post" ) as mock_post :
2109+ network_resp = mock .Mock ()
2110+ network_resp .ok = True
2111+ mock_post .return_value = network_resp
2112+ self .client .mgmt .user .remove_totp_seed (
2113+ "login-id" ,
2114+ )
2115+ mock_post .assert_called_with (
2116+ f"{ common .DEFAULT_BASE_URL } { MgmtV1 .user_remove_totp_seed_path } " ,
2117+ headers = {
2118+ ** common .default_headers ,
2119+ "Authorization" : f"Bearer { self .dummy_project_id } :{ self .dummy_management_key } " ,
2120+ },
2121+ params = None ,
2122+ json = {
2123+ "loginId" : "login-id" ,
2124+ },
2125+ allow_redirects = False ,
2126+ verify = True ,
2127+ timeout = DEFAULT_TIMEOUT_SECONDS ,
2128+ )
2129+
20972130 def test_generate_magic_link_for_test_user (self ):
20982131 # Test failed flows
20992132 with patch ("requests.post" ) as mock_post :
You can’t perform that action at this time.
0 commit comments