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"
|
_name = "pms.api.rest.user.input"
|
||||||
username = fields.String(required=False, allow_none=True)
|
username = fields.String(required=False, allow_none=True)
|
||||||
password = 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)
|
userId = fields.Integer(required=False, allow_none=True)
|
||||||
|
|
||||||
|
|
||||||
@@ -25,3 +26,7 @@ class PmsApiRestUserOutput(Datamodel):
|
|||||||
availabilityRuleFields = fields.List(
|
availabilityRuleFields = fields.List(
|
||||||
fields.String(), required=False, allow_none=True
|
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
|
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