Skip to content

Commit

Permalink
Add users.update_user_password() method
Browse files Browse the repository at this point in the history
  • Loading branch information
jonatascastro12 committed Aug 25, 2023
1 parent 910a66c commit ee72a6c
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 1 deletion.
13 changes: 12 additions & 1 deletion tests/test_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -187,14 +187,25 @@ def test_list_users_returns_metadata(
assert dict_users["metadata"]["params"]["email"] == "[email protected]"
assert dict_users["metadata"]["params"]["organization"] == "foo-corp.com"

def test_delete_user(self, mock_user, capture_and_mock_request):
def test_delete_user(self, capture_and_mock_request):
url, request_kwargs = capture_and_mock_request("delete", None, 200)

user = self.users.delete_user("user_01H7ZGXFP5C6BBQY6Z7277ZCT0")

assert url[0].endswith("users/user_01H7ZGXFP5C6BBQY6Z7277ZCT0")
assert user is None

def test_update_user_password(self, mock_user, capture_and_mock_request):
url, request = capture_and_mock_request("put", mock_user, 200)

user = self.users.update_user_password(
"user_01H7ZGXFP5C6BBQY6Z7277ZCT0", "pass_123"
)

assert url[0].endswith("users/user_01H7ZGXFP5C6BBQY6Z7277ZCT0/password")
assert user["id"] == "user_01H7ZGXFP5C6BBQY6Z7277ZCT0"
assert request["json"]["password"] == "pass_123"

def test_add_user_to_organization(self, capture_and_mock_request, mock_user):
url, _ = capture_and_mock_request("post", mock_user, 200)

Expand Down
23 changes: 23 additions & 0 deletions workos/users.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@
REQUEST_METHOD_POST,
REQUEST_METHOD_GET,
REQUEST_METHOD_DELETE,
REQUEST_METHOD_PUT,
)
from workos.utils.validation import validate_settings, USERS_MODULE

USER_PATH = "users"
USER_DETAIL_PATH = "users/{0}"
USER_ORGANIZATION_PATH = "users/{0}/organization/{1}"
USER_PASSWORD_PATH = "users/{0}/password"
USER_AUTHENTICATE_PATH = "users/authenticate"
USER_PASSWORD_RESET_CHALLENGE_PATH = "users/password_reset_challenge"
USER_PASSWORD_RESET_PATH = "users/password_reset"
Expand Down Expand Up @@ -162,6 +164,27 @@ def delete_user(self, user):
token=workos.api_key,
)

def update_user_password(self, user, password):
"""Update user password.
Args:
user (str) - A user unique identifier
password (str) - The new password to be set
Returns:
dict: Updated User response from WorkOS.
"""
payload = {"password": password}

response = self.request_helper.request(
USER_PASSWORD_PATH.format(user),
method=REQUEST_METHOD_PUT,
params=payload,
token=workos.api_key,
)

return WorkOSUser.construct_from_response(response).to_dict()

def add_user_to_organization(self, user, organization):
"""Adds a User as a member of the given Organization.
Expand Down

0 comments on commit ee72a6c

Please sign in to comment.