170 похожих чатов

[Dataclass] @Dataclass Class User: user_id: int

login: str
role_name: str
can_add: bool
can_edit: bool
can_delete: bool
additional_permissions: dict = None

def __post_init__(self):
if self.additional_permissions is None:
self.additional_permissions = {}

def __getattr__(self, item):
if item in self.additional_permissions:
return self.additional_permissions[item]
raise AttributeError(f"'User' object has no attribute '{item}'")


print(user_permissions) #{'role_name': 'user', 'can_add': 0, 'can_edit': 1, 'can_delete': 1, 'can_search': 0}

user = User(user_id=login_window.user_id, login=db_handler.get_login_by_user_id(login_window.user_id),
**user_permissions,
)

я хочу немного расширить БД с функциями для разных ролей юзеров, и у меня в БД гарантируется, что первые 4 всегда - role_name, can_add, can_edit, can_delete + некоторое количество дополнительных функций >= 0. Есть какой-то другой вариант, кроме как руками прописать can_xx = <значение из user_permissions> и остаток передать в additional_permissions ?

1 ответов

12 просмотров

Алсо я рассматривал пермишны не как словарь а как сет: вместо {can_add': 0, 'can_edit': 1, 'can_delete': 1, 'can_search': 0} сделать так {'can_edit', 'can_delete'}

Похожие вопросы

Обсуждают сегодня

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
11
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
Я короче решил скомпилировать Nim в js, я думал он сработает как обычный транслятор. По итогу он мне создал файл с расширением js, и туда поместил кучу кода Вопрос, что это з...
𝕾𝖍𝖆𝖉𝖊 <suspense>
9
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
это группа токсиков или тех кто помогает?
Ибрагим
9
мы пытаемся подменить функцию, которая имеет меньше инструкций относительно функции, которой подменяем. https://www.reddit.com/r/jailbreakdevelopers/comments/w06ujy/mshookfun...
Óðinn
6
У кого-нибудь есть под рукой функция кодирования юникода, которая из фразы На русском сделает \u041d\u0430\u0020\u0440\u0443\u0441\u0441\u043a\u043e\u043c ?
Daniil Smolyakov
7
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
Карта сайта