@@ -133,36 +133,70 @@ def users(
133133
134134 # User Management Part
135135 def invite (self , email : str ) -> bool :
136- res = True
137136 try :
138137 self ._admin_request ("POST" , "invite" , json = {"email" : email })
139138 except HTTPStatusError as e :
140- res = e .response .status_code == http .HTTPStatus .CONFLICT
141- if not res :
142- logger .warning (f"Failed to invite { email } " )
143- else :
144- self ._load_users ()
145- return res
139+ if e .response .status_code != http .HTTPStatus .CONFLICT :
140+ logger .warning (f"Failed to invite { email } { e } " )
141+ return False
142+ self ._load_users ()
143+ return True
146144
147145 def delete (self , identifier : str | UUID ) -> bool :
148146 logger .info (f"Deleting { identifier } account" )
149- res = True
150147 try :
151148 self ._admin_request ("POST" , f"users/{ identifier } /delete" )
152- except HTTPStatusError :
153- res = False
154- if not res :
155- logger .warning (f"Failed to delete { identifier } " )
156- else :
157- self ._load_users ()
158- return res
149+ except HTTPStatusError as e :
150+ logger .warning (f"Failed to delete { identifier } { e } " )
151+ return False
152+ self ._load_users ()
153+ logger .info (f"Successfully deleted account: { identifier } " )
154+ return True
155+
156+ def disable (self , identifier : str | UUID ) -> bool :
157+ logger .info (f"Disabling { identifier } account" )
158+ try :
159+ self ._admin_request (
160+ "POST" ,
161+ f"users/{ identifier } /disable" ,
162+ headers = {"Content-Type" : "application/json" },
163+ )
164+ except HTTPStatusError as e :
165+ logger .warning (f"Failed to disable { identifier } { e } " )
166+ return False
167+ self ._load_users ()
168+ logger .info (f"Successfully disabled account: { identifier } " )
169+ return True
170+
171+ def enable (self , identifier : str | UUID ) -> bool :
172+ logger .info (f"Enabling { identifier } account" )
173+ try :
174+ self ._admin_request (
175+ "POST" ,
176+ f"users/{ identifier } /enable" ,
177+ headers = {"Content-Type" : "application/json" },
178+ )
179+ except HTTPStatusError as e :
180+ logger .warning (f"Failed to enable { identifier } { e } " )
181+ return False
182+ self ._load_users ()
183+ logger .info (f"Successfully enabled account: { identifier } " )
184+ return True
159185
160186 def set_user_enabled (self , identifier : str | UUID , enabled : bool ) -> None :
161187 """Disabling a user also deauthorizes all its sessions"""
162188 if enabled :
163- resp = self ._admin_request ("POST" , f"users/{ identifier } /enable" )
189+ resp = self ._admin_request (
190+ "POST" ,
191+ f"users/{ identifier } /enable" ,
192+ headers = {"Content-Type" : "application/json" },
193+ )
164194 else :
165- resp = self ._admin_request ("POST" , f"users/{ identifier } /disable" )
195+ resp = self ._admin_request (
196+ "POST" ,
197+ f"users/{ identifier } /disable" ,
198+ headers = {"Content-Type" : "application/json" },
199+ )
166200 resp .raise_for_status ()
167201
168202 def remove_2fa (self , uuid = None , email = None ) -> bool :
0 commit comments