From 1e44550e12bda5327a0aceb7e69c9865aae8dbfb Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Wed, 24 Feb 2021 00:25:48 +0100 Subject: [PATCH] New frozen function --- kfet/decorators.py | 3 +++ kfet/views.py | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/kfet/decorators.py b/kfet/decorators.py index 70848820..a01e867d 100644 --- a/kfet/decorators.py +++ b/kfet/decorators.py @@ -2,6 +2,9 @@ from django.contrib.auth.decorators import user_passes_test def kfet_is_team(user): + if hasattr(user.profile, "account_kfet") and user.profile.account_kfet.is_frozen: + return False + return user.has_perm("kfet.is_team") diff --git a/kfet/views.py b/kfet/views.py index 2d552d3c..5f44dd76 100644 --- a/kfet/views.py +++ b/kfet/views.py @@ -1055,6 +1055,9 @@ def kpsul_perform_operations(request): ) need_comment = operationgroup.on_acc.need_comment + if operationgroup.on_acc.is_frozen: + data["errors"]["frozen"] = [operationgroup.on_acc.trigramme] + # Filling data of each operations # + operationgroup + calculating other stuffs for operation in operations: @@ -1676,7 +1679,11 @@ def perform_transfers(request): negative_accounts = [] # Checking if ok on all accounts + frozen = set() for account in to_accounts_balances: + if account.is_frozen: + frozen.add(account.trigramme) + (perms, stop) = account.perms_to_perform_operation( amount=to_accounts_balances[account] ) @@ -1685,6 +1692,11 @@ def perform_transfers(request): if stop: negative_accounts.append(account.trigramme) + print(frozen, len(frozen)) + if len(frozen): + data["errors"]["frozen"] = list(frozen) + return JsonResponse(data, status=400) + if stop_all or not request.user.has_perms(required_perms): missing_perms = get_missing_perms(required_perms, request.user) if missing_perms: