- Permission classes for converting Discord's Permissions to Perm-Banana
- Member Adapters to enable Perm-Banana's extended functionality
- The ability to create Tokens
- A TokenStrategy for handling Permissions with Discord's API
from discord import Member
from discord.ext.commands import Cog, Greedy, Context, command
from perm_security.converters import PermissionChannelConverter
from perm_security.MemberAdapter import MemberChannelAdapter
from perm_security.TokenStrategy import BasicTokenStrategy
from perm_security.TokenStrategy.TokenHandlerStrategy import BasicTokenHandlerStrategy
class Security(Cog):
def __init__(self, bot):
self.bot = bot
self.token_strategy = BasicTokenStrategy(BasicTokenHandlerStrategy(bot.scheduler))
@command(name="generate_toke")
async def generate_token(
self,
ctx: Context,
permissions: PermissionChannelConverter,
members: Greedy[Member],
uses: int = 1
duration: float = 60.0
):
author = MemberChannelAdapter(ctx.author, ctx.channel)
await self.token_strategy.generate_token(author, permissions, members, uses, duration)