[IMP]pms_api_rest: added service to change userr password

This commit is contained in:
braisab
2023-05-16 21:39:33 +02:00
committed by Darío Lodeiros
parent 5d48351333
commit cbeaadb765
2 changed files with 34 additions and 0 deletions

View File

@@ -7,6 +7,7 @@ class PmsApiRestUserInput(Datamodel):
_name = "pms.api.rest.user.input"
username = fields.String(required=False, allow_none=True)
password = fields.String(required=False, allow_none=True)
newPassword = fields.String(required=False, allow_none=True)
userId = fields.Integer(required=False, allow_none=True)
@@ -25,3 +26,7 @@ class PmsApiRestUserOutput(Datamodel):
availabilityRuleFields = fields.List(
fields.String(), required=False, allow_none=True
)
class PmsApiRestUserLoginOutput(Datamodel):
_name = "pms.api.rest.user.login.output"
login = fields.String(required=True, allow_none=False)

View File

@@ -95,3 +95,32 @@ class PmsRoomTypeClassService(Component):
)
return True
@restapi.method(
[
(
[
"/p/<int:user_id>/change-password",
],
"PATCH",
)
],
output_param=Datamodel("pms.api.rest.user.login.output", is_list=False),
input_param=Datamodel("pms.api.rest.user.input", is_list=False),
auth="jwt_api_pms",
)
def change_password(self, user_id, input_data):
user = self.env["res.users"].sudo().search([("id", "=", user_id)])
if user:
try:
user.with_user(user)._check_credentials(input_data.password, None)
except:
raise MissingError(_("Wrong password"))
user.change_password(input_data.password, input_data.newPassword)
PmsUserInfo = self.env.datamodels["pms.api.rest.user.login.output"]
return PmsUserInfo(
login=user.login,
)