summaryrefslogtreecommitdiff
path: root/talerbank/app/views.py
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2020-01-18 16:46:39 +0100
committerFlorian Dold <florian.dold@gmail.com>2020-01-18 16:46:39 +0100
commit00673579e2e9acd9277c56de6d97e0b73748b881 (patch)
tree32f52be8ae6ffa0569f7b66459f7a61f5d216406 /talerbank/app/views.py
parent8bad829f155590706b581528d46db249e94b9d18 (diff)
downloadbank-00673579e2e9acd9277c56de6d97e0b73748b881.tar.gz
bank-00673579e2e9acd9277c56de6d97e0b73748b881.tar.bz2
bank-00673579e2e9acd9277c56de6d97e0b73748b881.zip
user account name instead of internal ID
Diffstat (limited to 'talerbank/app/views.py')
-rw-r--r--talerbank/app/views.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/talerbank/app/views.py b/talerbank/app/views.py
index eae593a..0a02907 100644
--- a/talerbank/app/views.py
+++ b/talerbank/app/views.py
@@ -996,28 +996,27 @@ def api_withdraw_operation(request, withdraw_id):
op = TalerWithdrawOperation.objects.get(withdraw_id=withdraw_id)
except ObjectDoesNotExist:
return JsonResponse(dict(error="withdraw operation does not exist"), status=404)
- user_acct_no = op.withdraw_account.account_no
- host = request.get_host()
if request.method == "POST":
data = json.loads(decode_body(request))
exchange_payto_uri = data.get("selected_exchange")
try:
- account_no = get_acct_from_payto(exchange_payto_uri)
+ exchange_account_name = get_acct_from_payto(exchange_payto_uri)
except:
return JsonResponse(dict(error="exchange payto URI malformed"), status=400)
try:
- exchange_acct = BankAccount.objects.get(account_no=account_no)
- except ObjectDoesNotExist:
+ exchange_user = User.objects.get(username=exchange_account_name)
+ except User.DoesNotExist:
return JsonResponse(
- dict(error="bank accound in payto URI unknown"), status=400
+ dict(error="bank account in payto URI unknown"), status=400
)
+ exchange_account = exchange_user.bankaccount
selected_reserve_pub = data.get("reserve_pub")
if not isinstance(selected_reserve_pub, str):
return JsonResponse(dict(error="reserve_pub must be a string"), status=400)
if op.selection_done or op.withdraw_done:
if (
- op.selected_exchange_account != exchange_acct
+ op.selected_exchange_account != exchange_account
or op.selected_reserve_pub != selected_reserve_pub
):
return JsonResponse(
@@ -1026,19 +1025,20 @@ def api_withdraw_operation(request, withdraw_id):
)
# No conflict, same data!
return JsonResponse(dict(), status=200)
- op.selected_exchange_account = exchange_acct
+ op.selected_exchange_account = exchange_account
op.selected_reserve_pub = selected_reserve_pub
op.selection_done = True
op.save()
return JsonResponse(dict(), status=200)
elif request.method == "GET":
+ host = request.get_host()
return JsonResponse(
dict(
selection_done=op.selection_done,
transfer_done=op.withdraw_done,
amount=op.amount.stringify(),
wire_types=["x-taler-bank"],
- sender_wire=f"payto://x-taler-bank/{host}/{user_acct_no}",
+ sender_wire=f"payto://x-taler-bank/{host}/{op.withdraw_account.user.username}",
suggested_exchange=settings.TALER_SUGGESTED_EXCHANGE,
confirm_transfer_url=request.build_absolute_uri(
reverse("withdraw-confirm", args=(withdraw_id,))