aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar jesopo2018-10-21 11:57:06 +0100
committerGravatar jesopo2018-10-21 11:57:06 +0100
commit87b3c47bcb7e363642bb8611caf605acedd1ad41 (patch)
tree29dd08d29979b020cc5600c4fdbf7c7fd6b28518
parentAdd configurable default wallets for different actions! (diff)
signature
prevent !removewallet on any wallet that's configured as a default
-rw-r--r--modules/coins.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/modules/coins.py b/modules/coins.py
index 8d20a926..f88dfd14 100644
--- a/modules/coins.py
+++ b/modules/coins.py
@@ -145,17 +145,25 @@ class Module(ModuleManager.BaseModule):
raise CoinParseException(
"Please provide a valid positive coin amount")
+ def _get_default_wallets(self, user):
+ return user.get_setting("default-wallets", DEFAULT_WALLETS)
def _set_default_wallet(self, user, type, wallet):
- default_wallets = user.get_setting("default-wallets", DEFAULT_WALLETS)
+ default_wallets = self._get_default_wallets(user)
default_wallets[type.lower()] = wallet.lower()
user.set_setting("default-wallets", default_wallets)
def _default_wallet(self, user, type):
- default_wallets = user.get_setting("default-wallets", DEFAULT_WALLETS)
+ default_wallets = self._get_default_wallets(user)
return default_wallets.get(type.lower(), None)
def _default_wallets(self, user):
default_wallet_in = self._default_wallet(user, "in")
default_wallet_out = self._default_wallet(user, "out")
return default_wallet_in, default_wallet_out
+ def _default_wallet_for(self, user, wallet):
+ default_wallets = self._get_default_wallets(user)
+ for key, value in default_wallets:
+ if value.lower() == wallet.lower():
+ return key
+
def _parse_wallets(self, user, s):
if not s:
return self._default_wallets()
@@ -247,9 +255,11 @@ class Module(ModuleManager.BaseModule):
if not self._user_has_wallet(event["user"], wallet):
raise utils.EventError("%s: you don't have a '%s' wallet" %
(event["user"].nickname, wallet))
- if wallet.lower() == WALLET_DEFAULT.lower():
- raise utils.EventError("%s: you cannot delete the default wallet" %
- event["user"].nickname)
+ default_type = self._default_wallet_for(event["user"], wallet)
+ if default_type:
+ raise utils.EventError("%s: you cannot delete a default wallet "
+ "('%s' is the default wallet for '%s')" %
+ (event["user"].nickname, wallet, default_type))
coins = self._get_user_coins(event["user"], wallet)
self._give(event["server"], event["user"], coins, WALLET_DEFAULT)