import discord
from models . env_service_model import EnvService
from typing import Callable
ADMIN_ROLES = EnvService . get_admin_roles ( )
DALLE_ROLES = EnvService . get_dalle_roles ( )
GPT_ROLES = EnvService . get_gpt_roles ( )
ALLOWED_GUILDS = EnvService . get_allowed_guilds ( )
class Check :
def check_admin_roles ( ) - > Callable :
async def inner ( ctx : discord . ApplicationContext ) :
if ADMIN_ROLES == [ None ] :
return True
if not any ( role . name . lower ( ) in ADMIN_ROLES for role in ctx . user . roles ) :
await ctx . defer ( ephemeral = True )
await ctx . respond (
f " You don ' t have permission to use this. " ,
ephemeral = True ,
delete_after = 10 ,
)
return False
return True
return inner
def check_dalle_roles ( ) - > Callable :
async def inner ( ctx : discord . ApplicationContext ) :
if DALLE_ROLES == [ None ] :
return True
if not any ( role . name . lower ( ) in DALLE_ROLES for role in ctx . user . roles ) :
await ctx . defer ( ephemeral = True )
await ctx . respond (
" You don ' t have permission to use this. " ,
ephemeral = True ,
delete_after = 10 ,
)
return False
return True
return inner
def check_gpt_roles ( ) - > Callable :
async def inner ( ctx : discord . ApplicationContext ) :
if GPT_ROLES == [ None ] :
return True
if not any ( role . name . lower ( ) in GPT_ROLES for role in ctx . user . roles ) :
await ctx . defer ( ephemeral = True )
await ctx . respond (
" You don ' t have permission to use this. " ,
ephemeral = True ,
delete_after = 10 ,
)
return False
return True
return inner