Fixed permissions check
This commit is contained in:
@@ -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
|
||||
)
|
||||
|
@@ -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
|
||||
)
|
||||
|
@@ -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
|
||||
)
|
||||
|
@@ -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
|
||||
)
|
||||
|
@@ -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
|
||||
)
|
||||
|
@@ -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}
|
||||
)
|
||||
|
@@ -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
|
||||
)
|
||||
|
Reference in New Issue
Block a user