Fixed permissions check

This commit is contained in:
2023-08-23 11:12:26 +02:00
parent 8eef171391
commit e61516f51f
10 changed files with 66 additions and 58 deletions

View File

@@ -1,11 +1,11 @@
import logging
from pyrogram import filters
from pyrogram.enums.chat_member_status import ChatMemberStatus
from pyrogram.types import CallbackQuery, Message
from classes.callbacks import CallbackBan
from classes.pyroclient import PyroClient
from modules.utils import is_permitted
logger = logging.getLogger(__name__)
@@ -15,10 +15,7 @@ async def callback_ban(app: PyroClient, callback: CallbackQuery):
group = await app.find_group(callback.message.chat.id)
locale = group.select_locale(app, callback.message.from_user)
if (await app.get_chat_member(group.id, callback.from_user.id)).status not in [
ChatMemberStatus.ADMINISTRATOR,
ChatMemberStatus.OWNER,
]:
if not (await is_permitted(app, group, callback=callback)):
await callback.answer(
app._("wrong_user", "callbacks", locale=locale), show_alert=True
)

View File

@@ -1,10 +1,10 @@
import logging
from pyrogram import filters
from pyrogram.enums.chat_member_status import ChatMemberStatus
from pyrogram.types import Message
from classes.pyroclient import PyroClient
from modules.utils import is_permitted
logger = logging.getLogger(__name__)
@@ -18,12 +18,7 @@ async def command_ban_failed(app: PyroClient, message: Message):
group = await app.find_group(message.chat.id)
locale = group.select_locale(app, message.from_user)
if (message.sender_chat is not None and (message.sender_chat.id != group.id)) or (
await app.get_chat_member(group.id, message.from_user.id)
).status not in [
ChatMemberStatus.ADMINISTRATOR,
ChatMemberStatus.OWNER,
]:
if not (await is_permitted(app, group, message=message)):
await message.reply_text(
app._("permission_denied", "messages", locale=locale), quote=True
)

View File

@@ -5,6 +5,7 @@ from pyrogram.enums.chat_member_status import ChatMemberStatus
from pyrogram.types import Message
from classes.pyroclient import PyroClient
from modules.utils import is_permitted
logger = logging.getLogger(__name__)
@@ -18,12 +19,7 @@ async def command_language_auto(app: PyroClient, message: Message):
group = await app.find_group(message.chat.id)
locale = group.select_locale(app, message.from_user)
if (message.sender_chat is not None and (message.sender_chat.id != group.id)) or (
await app.get_chat_member(group.id, message.from_user.id)
).status not in [
ChatMemberStatus.ADMINISTRATOR,
ChatMemberStatus.OWNER,
]:
if not (await is_permitted(app, group, message=message)):
await message.reply_text(
app._("permission_denied", "messages", locale=locale), quote=True
)

View File

@@ -1,10 +1,10 @@
import logging
from pyrogram import filters
from pyrogram.enums.chat_member_status import ChatMemberStatus
from pyrogram.types import Message
from classes.pyroclient import PyroClient
from modules.utils import is_permitted
logger = logging.getLogger(__name__)
@@ -18,12 +18,7 @@ async def command_timeout_join(app: PyroClient, message: Message):
group = await app.find_group(message.chat.id)
locale = group.select_locale(app, message.from_user)
if (message.sender_chat is not None and (message.sender_chat.id != group.id)) or (
await app.get_chat_member(group.id, message.from_user.id)
).status not in [
ChatMemberStatus.ADMINISTRATOR,
ChatMemberStatus.OWNER,
]:
if not (await is_permitted(app, group, message=message)):
await message.reply_text(
app._("permission_denied", "messages", locale=locale), quote=True
)

View File

@@ -1,10 +1,10 @@
import logging
from pyrogram import filters
from pyrogram.enums.chat_member_status import ChatMemberStatus
from pyrogram.types import Message
from classes.pyroclient import PyroClient
from modules.utils import is_permitted
logger = logging.getLogger(__name__)
@@ -18,12 +18,7 @@ async def command_timeout_verify(app: PyroClient, message: Message):
group = await app.find_group(message.chat.id)
locale = group.select_locale(app, message.from_user)
if (message.sender_chat is not None and (message.sender_chat.id != group.id)) or (
await app.get_chat_member(group.id, message.from_user.id)
).status not in [
ChatMemberStatus.ADMINISTRATOR,
ChatMemberStatus.OWNER,
]:
if not (await is_permitted(app, group, message=message)):
await message.reply_text(
app._("permission_denied", "messages", locale=locale), quote=True
)

View File

@@ -103,5 +103,5 @@ async def handler_user_join(app: PyroClient, message: Message):
run_date=datetime.now() + timedelta(seconds=group.timeout_join),
)
await col_schedule.insert_one(
{"user": user.id, "group": group.id, "job_id": job.id}
{"user": int(user.id), "group": int(group.id), "job_id": job.id}
)

View File

@@ -3,11 +3,11 @@ import logging
from pykeyboard import InlineButton, InlineKeyboard
from pyrogram import filters
from pyrogram.client import Client
from pyrogram.enums.chat_member_status import ChatMemberStatus
from pyrogram.types import CallbackQuery, Message
from classes.callbacks import CallbackLanguage
from classes.pyroclient import PyroClient
from modules.utils import is_permitted
logger = logging.getLogger(__name__)
@@ -19,26 +19,18 @@ async def command_language(app: PyroClient, message: Message):
group = await app.find_group(message.chat.id)
locale = group.select_locale(app, message.from_user)
if (message.sender_chat is not None and (message.sender_chat.id != group.id)) or (
await app.get_chat_member(group.id, message.from_user.id)
).status not in [
ChatMemberStatus.ADMINISTRATOR,
ChatMemberStatus.OWNER,
]:
if not (await is_permitted(app, group, message=message)):
await message.reply_text(
app._("permission_denied", "messages", locale=locale), quote=True
)
return
keyboard = InlineKeyboard(row_width=2)
buttons = []
for language, data in app.in_every_locale("metadata").items():
if data["selectable"]:
buttons.append(
InlineButton(f"{data['flag']} {data['name']}", f"language:{language}")
)
buttons = [
InlineButton(f"{data['flag']} {data['name']}", f"language:{language}")
for language, data in app.in_every_locale("metadata").items()
if data["selectable"]
]
buttons.append(
InlineButton(
f"🤖 {app._('locale_default', 'buttons', locale=locale)}", "language:default"
@@ -58,10 +50,7 @@ async def callback_language(app: PyroClient, callback: CallbackQuery):
group = await app.find_group(callback.message.chat.id)
locale = group.select_locale(app, callback.message.from_user)
if (await app.get_chat_member(group.id, callback.from_user.id)).status not in [
ChatMemberStatus.ADMINISTRATOR,
ChatMemberStatus.OWNER,
]:
if not (await is_permitted(app, group, callback=callback)):
await callback.answer(
app._("wrong_user", "callbacks", locale=locale), show_alert=True
)