Gestion des permissions dans K-Psul

- Ajout d'une méthode sur Account pour connaître les permissions
  nécessaires pour enregistrer des opérations en fonction du futur solde
  du compte
- Ajout d'une permission pour effectuer une charge sur un compte
- Ajoute que l'utilisateur connecté doit avoir toutes les permissions
  nécessaires pour enregistrer un groupe d'opérations. Si ce n'est pas
le cas, aucune opération n'est enregistrée et les permissions manquantes
sont envoyées en réponse.
- Dans le cas d'une charge ou d'un retrait, "article" et "article_nb" de
  Operation sont définis à NULL
This commit is contained in:
Aurélien Delobelle 2016-08-07 23:41:46 +02:00
parent 515a7ce28e
commit 4cb89aa005
5 changed files with 87 additions and 9 deletions

View file

@ -93,6 +93,13 @@ class Account(models.Model):
data['is_free'] = True
return data
def perms_to_perform_operation(self, amount):
new_balance = self.balance + amount
perms = []
if new_balance < 0:
perms.append('kfet.can_perform_negative_operations')
return perms
# Surcharge Méthode save() avec gestions de User et CofProfile
# Args:
# - data : datas pour User et CofProfile
@ -415,6 +422,9 @@ class GlobalPermissions(models.Model):
managed = False
permissions = (
('is_team', 'Is part of the team'),
('can_perform_deposit', 'Peut effectuer une charge'),
('can_perform_negative_operations',
'Peut enregistrer des commandes en négatif')
)
class Settings(models.Model):
@ -437,4 +447,5 @@ class Settings(models.Model):
return 0
class SettingsError(Exception):
pass
def __init__(self, msg):
self.msg = msg