mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP]pms_api_rest: added service to change userr password
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user