You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.5 KiB
41 lines
1.5 KiB
# -*- coding: utf8 -*- |
|
# Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) <AlexeiBv+mirocod_platform_bot@narod.ru> |
|
|
|
# Права пользователей. Утилиты |
|
|
|
from bot_sys import user_access, bot_bd |
|
|
|
table_name = 'module_access' |
|
mod_name_field = 'modName' |
|
moduleaccess_field = 'modAccess' |
|
mod_default_access_field = 'itemDefaultAccess' |
|
|
|
def GetAccessForModuleRequest(module_name, access, default_access): |
|
return f"INSERT OR IGNORE INTO {table_name} ({mod_name_field}, {moduleaccess_field}, {mod_default_access_field}) VALUES ('{module_name}', '{access}', '{default_access}');" |
|
|
|
def GetUserGroupData(a_Bot, a_UserID): |
|
def GetGroupNamesForUser(a_UserID): |
|
return a_Bot.SQLRequest('SELECT groupName FROM user_groups WHERE group_id=(SELECT group_id FROM user_in_groups WHERE user_id = ?)', param = [a_UserID]) |
|
r = GetGroupNamesForUser(a_UserID) |
|
groups = [] |
|
for i in r: |
|
if len(i) > 0: |
|
groups += [i[0]] |
|
return user_access.UserGroups(a_UserID, groups) |
|
|
|
def GetModulesAccessList(a_Bot): |
|
return bot_bd.RequestSelectTemplate(a_Bot.m_BDFileName, table_name)() |
|
|
|
def GetAccessForModule(a_Bot, a_ModuleName): |
|
alist = GetModulesAccessList(a_Bot) |
|
for i in alist: |
|
if i[0] == a_ModuleName: |
|
return i[1] |
|
return '' |
|
|
|
def GetItemDefaultAccessForModule(a_Bot, a_ModuleName): |
|
alist = GetModulesAccessList(a_Bot) |
|
for i in alist: |
|
if i[0] == a_ModuleName: |
|
return i[2] |
|
return ''
|
|
|