From 3c1f017e3aba49e4cb29c893189fe3c0b9ac5c2e Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Thu, 10 Nov 2022 20:26:29 +0100 Subject: [PATCH] Fixed admins cannot assign users to admins #88 --- kdb-bot/src/bot_api/json_processor.py | 4 ++++ kdb-bot/src/bot_api/model/auth_user_dto.py | 2 +- kdb-bot/src/bot_api/model/update_auth_user_dto.py | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/kdb-bot/src/bot_api/json_processor.py b/kdb-bot/src/bot_api/json_processor.py index a0ea0ac159..ede53d2c0c 100644 --- a/kdb-bot/src/bot_api/json_processor.py +++ b/kdb-bot/src/bot_api/json_processor.py @@ -1,3 +1,4 @@ +import enum from inspect import signature, Parameter from cpl_core.utils import String @@ -28,6 +29,9 @@ class JSONProcessor: if isinstance(value, dict): value = JSONProcessor.process(parameter.annotation, value) + if issubclass(parameter.annotation, enum.Enum): + value = parameter.annotation(value) + args.append(value) elif parameter.default != Parameter.empty: diff --git a/kdb-bot/src/bot_api/model/auth_user_dto.py b/kdb-bot/src/bot_api/model/auth_user_dto.py index 15efc55923..347df8ad52 100644 --- a/kdb-bot/src/bot_api/model/auth_user_dto.py +++ b/kdb-bot/src/bot_api/model/auth_user_dto.py @@ -85,7 +85,7 @@ class AuthUserDTO(DtoABC): self._email = values['email'] self._password = values['password'] self._is_confirmed = values['isConfirmed'] - self._auth_role = values['authRole'] + self._auth_role = AuthRoleEnum(values['authRole']) def to_dict(self) -> dict: return { diff --git a/kdb-bot/src/bot_api/model/update_auth_user_dto.py b/kdb-bot/src/bot_api/model/update_auth_user_dto.py index 254c0c727c..ac71e0337d 100644 --- a/kdb-bot/src/bot_api/model/update_auth_user_dto.py +++ b/kdb-bot/src/bot_api/model/update_auth_user_dto.py @@ -33,8 +33,8 @@ class UpdateAuthUserDTO(DtoABC): return self._change_password def from_dict(self, values: dict): - self._auth_user = values['authUser'] - self._new_auth_user = values['newAuthUser'] + self._auth_user = AuthUserDTO().from_dict(values['authUser']) + self._new_auth_user = AuthUserDTO().from_dict(values['newAuthUser']) self._change_password = False if 'changePassword' not in values else bool(values['changePassword']) def to_dict(self) -> dict: