mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-21 10:17:59 -05:00
[Permissions] Ensure defaults are cleared when clearing all rules (#3041)
- fixes #3037
This commit is contained in:
@@ -398,11 +398,9 @@ class Requires:
|
||||
else:
|
||||
rules[model_id] = rule
|
||||
|
||||
def clear_all_rules(self, guild_id: int) -> None:
|
||||
def clear_all_rules(self, guild_id: int, *, preserve_default_rule: bool = True) -> None:
|
||||
"""Clear all rules of a particular scope.
|
||||
|
||||
This will preserve the default rule, if set.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
guild_id : int
|
||||
@@ -410,6 +408,12 @@ class Requires:
|
||||
`Requires.GLOBAL`, this will clear all global rules and
|
||||
leave all guild rules untouched.
|
||||
|
||||
Other Parameters
|
||||
----------------
|
||||
preserve_default_rule : bool
|
||||
Whether to preserve the default rule or not.
|
||||
This defaults to being preserved
|
||||
|
||||
"""
|
||||
if guild_id:
|
||||
rules = self._guild_rules.setdefault(guild_id, _RulesDict())
|
||||
@@ -417,7 +421,7 @@ class Requires:
|
||||
rules = self._global_rules
|
||||
default = rules.get(self.DEFAULT, None)
|
||||
rules.clear()
|
||||
if default is not None:
|
||||
if default is not None and preserve_default_rule:
|
||||
rules[self.DEFAULT] = default
|
||||
|
||||
def reset(self) -> None:
|
||||
|
||||
Reference in New Issue
Block a user