command perms

This commit is contained in:
Corban-Lee Jones 2023-12-21 18:27:30 +00:00
parent 03a7617fd3
commit e95edf08df
2 changed files with 33 additions and 6 deletions

View File

@ -29,6 +29,7 @@ class AuditModel(Base):
id = Column(Integer, primary_key=True, autoincrement=True)
discord_user_id = Column(BigInteger, nullable=False)
discord_server_id = Column(BigInteger, nullable=False)
message = Column(String, nullable=False)
created = Column(DateTime(timezone=True), server_default=func.now(), nullable=False) # pylint: disable=E1102

View File

@ -9,7 +9,7 @@ from typing import Tuple
import validators
from feedparser import FeedParserDict, parse
from discord.ext import commands
from discord import Interaction, Embed, Colour, TextChannel
from discord import Interaction, Embed, Colour, TextChannel, Permissions
from discord.app_commands import Choice, Group, autocomplete, choices, rename
from sqlalchemy import insert, select, and_, delete
from sqlalchemy.exc import NoResultFound
@ -20,7 +20,8 @@ from db import ( # pylint: disable=E0401
DatabaseManager,
SentArticleModel,
RssSourceModel,
FeedChannelModel
FeedChannelModel,
AuditModel
)
log = logging.getLogger(__name__)
@ -146,7 +147,8 @@ class FeedCog(commands.Cog):
feed_group = Group(
name="feed",
description="Commands for rss sources.",
guild_only=True # We store guild IDs in the database, so guild only = True
guild_only=True, # We store guild IDs in the database, so guild only = True
default_permissions=Permissions.elevated()
)
@feed_group.command(name="add")
@ -652,9 +654,10 @@ class FeedCog(commands.Cog):
await followup(inter, embed=embed)
admin_group = Group(
parent=feed_group,
name="admin",
description="Administration tasks"
description="Administration tasks",
guild_only=True,
default_permissions=Permissions.elevated()
)
@admin_group.command(name="clear-sent-articles")
@ -681,7 +684,30 @@ class FeedCog(commands.Cog):
"again if they appear during the next RSS feed scan."
)
audit_group
audit_group = Group(
name="audit",
description="Check audited actions.",
guild_only=True,
default_permissions=Permissions.elevated()
)
@audit_group.command(name="check")
async def check_audit_log(self, inter: Interaction):
"""Check the audit log.
Parameters
----------
inter : Interaction
Represents an app command interaction.
"""
await inter.response.defer()
async with DatabaseManager() as database:
query = select(AuditModel).where(and_(
))
result = await database.session.execute(query)
async def setup(bot):
"""