mirror of https://gitlab.com/litecord/litecord.git
channel.dm_checks: add restricted_guilds checking
This commit is contained in:
parent
49a4b46f35
commit
d7bb5f9804
|
|
@ -22,5 +22,24 @@ async def dm_pre_check(user_id: int, channel_id: int, peer_id: int):
|
|||
if blockrow is not None:
|
||||
raise ForbiddenDM()
|
||||
|
||||
# TODO: check mutual guilds and guild settings for
|
||||
# each user
|
||||
# now comes the fun part, which is guild settings.
|
||||
mutual_guilds = await app.user_storage.get_mutual_guilds(user_id, peer_id)
|
||||
|
||||
# user_settings.restricted_guilds gives us the dms a user doesn't
|
||||
# want dms from, so we use that setting from both user and peer
|
||||
|
||||
user_settings = await app.user_storage.get_user_settings(user_id)
|
||||
peer_settings = await app.user_storage.get_user_settings(peer_id)
|
||||
|
||||
restricted_user = [int(v) for v in user_settings['restricted_guilds']]
|
||||
restricted_peer = [int(v) for v in peer_settings['restricted_guilds']]
|
||||
|
||||
restricted_user = set(restricted_user)
|
||||
restricted_peer = set(restricted_peer)
|
||||
|
||||
mutual_guilds -= restricted_user
|
||||
mutual_guilds -= restricted_peer
|
||||
|
||||
# if after this filtering we don't have any more guilds, error
|
||||
if not mutual_guilds:
|
||||
raise ForbiddenDM()
|
||||
|
|
|
|||
Loading…
Reference in New Issue