summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2020-01-22 15:14:54 +0100
committerFlorian Dold <florian.dold@gmail.com>2020-01-22 15:14:54 +0100
commit95caa5c78479906dd409d6840737f251a1c661ac (patch)
tree880d42cd3588d8011a732dd6a4ad118b1f655ac0
parentb00298b72489214fa27c5ca93e63d05d43b3f820 (diff)
downloadbank-95caa5c78479906dd409d6840737f251a1c661ac.tar.gz
bank-95caa5c78479906dd409d6840737f251a1c661ac.tar.bz2
bank-95caa5c78479906dd409d6840737f251a1c661ac.zip
add unsafe password change command
-rw-r--r--talerbank/app/management/commands/changepassword_unsafe.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/talerbank/app/management/commands/changepassword_unsafe.py b/talerbank/app/management/commands/changepassword_unsafe.py
new file mode 100644
index 0000000..ea7a708
--- /dev/null
+++ b/talerbank/app/management/commands/changepassword_unsafe.py
@@ -0,0 +1,67 @@
+##
+# This file is part of TALER
+# (C) 2014, 2015, 2106 Taler Systems SA
+#
+# TALER is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; either version 3,
+# or (at your option) any later version.
+#
+# TALER is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with TALER; see the file COPYING. If not,
+# see <http://www.gnu.org/licenses/>
+#
+# @author Marcello Stanisci
+# @author Florian Dold
+# @brief Create the basic accounts to make the demo bank work.
+
+import sys
+import logging
+from django.contrib.auth.models import User
+from django.db.utils import ProgrammingError, OperationalError
+from django.core.management.base import BaseCommand
+from django.conf import settings
+from ...models import BankAccount
+from ...views import wire_transfer
+from taler.util.amount import Amount
+import getpass
+import uuid
+
+LOGGER = logging.getLogger(__name__)
+LOGGER.setLevel(logging.INFO)
+
+class Command(BaseCommand):
+ help = "Add bank accounts."
+
+ def add_arguments(self, parser):
+ parser.add_argument(
+ "accountname", type=str, help="Login name of the new bank account"
+ )
+ parser.add_argument(
+ "password", type=str, help="New plain text password of the bank account"
+ )
+
+ ##
+ # Django-specific definition to invoke the account creator
+ # @a make_account; it iterates over the list of basic accounts
+ # (defined in the settings) and invoke the account creator
+ # for each one of them.
+ def handle(self, *args, **options):
+ accountname = options["accountname"]
+ password = options["password"]
+ try:
+ existing_user = User.objects.get(username=accountname)
+ existing_user.set_password(password)
+ except User.DoesNotExist:
+ print(
+ f"Account {accountname} does not exist"
+ )
+ sys.exit(1)
+ else:
+ print(f"Password for {accountname} changed")
+