diff --git a/preferences/models.py b/preferences/models.py index 5238e1a5..c0d761e6 100644 --- a/preferences/models.py +++ b/preferences/models.py @@ -34,7 +34,7 @@ from django.dispatch import receiver from django.core.cache import cache from .aes_field import AESEncryptedField - +from re2o.mixins import AclMixin class PreferencesModel(models.Model): @classmethod @@ -54,7 +54,7 @@ class PreferencesModel(models.Model): abstract = True -class OptionalUser(PreferencesModel): +class OptionalUser(AclMixin, PreferencesModel): """Options pour l'user : obligation ou nom du telephone, activation ou non du solde, autorisation du negatif, fingerprint etc""" PRETTY_NAME = "Options utilisateur" @@ -101,58 +101,6 @@ class OptionalUser(PreferencesModel): ("view_optionaluser", "Peut voir les options de l'user"), ) - def get_instance(*args, **kwargs): - return OptionalUser.objects.get_or_create() - - def can_create(user_request, *args, **kwargs): - """Check if an user can create a OptionalUser object. - - :param user_request: The user who wants to create a user object. - :return: a message and a boolean which is True if the user can create. - """ - return user_request.has_perm('preferences.add_optionaluser'), u"Vous n'avez pas le droit\ - de créer les préférences concernant les users" - - def can_edit(self, user_request, *args, **kwargs): - """Check if an user can edit a OptionalUser object. - - :param self: The OptionalUser which is to be edited. - :param user_request: The user who requests to edit self. - :return: a message and a boolean which is True if edition is granted. - """ - return user_request.has_perm('preferences.change_optionaluser'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant les users" - - def can_delete(self, user_request, *args, **kwargs): - """Check if an user can delete a OptionalUser object. - - :param self: The OptionalUser which is to be deleted. - :param user_request: The user who requests deletion. - :return: True if deletion is granted, and a message. - """ - return user_request.has_perm('preferences.delete_optionaluser'), u"Vous n'avez pas le droit\ - de supprimer les préférences concernant les users" - - def can_view_all(user_request, *args, **kwargs): - """Check if an user can access to the list of every OptionalUser objects - - :param user_request: The user who wants to view the list. - :return: True if the user can view the list and an explanation message. - """ - return user_request.has_perm('preferences.view_optionaluser'), u"Vous n'avez pas le droit\ - de voir les préférences concernant les utilisateurs" - - def can_view(self, user_request, *args, **kwargs): - """Check if an user can view a OptionalUser object. - - :param self: The targeted OptionalUser. - :param user_request: The user who ask for viewing the target. - :return: A boolean telling if the acces is granted and an explanation - text - """ - return user_request.has_perm('preferences.view_optionaluser'), u"Vous n'avez pas le droit\ - de voir les préférences concernant les utilisateurs" - def clean(self): """Creation du mode de paiement par solde""" if self.user_solde: @@ -169,7 +117,7 @@ def optionaluser_post_save(sender, **kwargs): user_pref.set_in_cache() -class OptionalMachine(PreferencesModel): +class OptionalMachine(AclMixin, PreferencesModel): """Options pour les machines : maximum de machines ou d'alias par user sans droit, activation de l'ipv6""" PRETTY_NAME = "Options machines" @@ -205,59 +153,6 @@ class OptionalMachine(PreferencesModel): ("view_optionalmachine", "Peut voir les options de machine"), ) - def get_instance(*args, **kwargs): - return OptionalMachine.objects.get_or_create() - - def can_create(user_request, *args, **kwargs): - """Check if an user can create a OptionalMachine object. - - :param user_request: The user who wants to create an object. - :return: a message and a boolean which is True if the user can create. - """ - return user_request.has_perm('preferences.add_optionalmachine'), u"Vous n'avez pas le droit\ - de créer les préférences concernant les machines" - - def can_edit(self, user_request, *args, **kwargs): - """Check if an user can edit a OptionalMachine object. - - :param self: The OptionalMachine which is to be edited. - :param user_request: The user who requests to edit self. - :return: a message and a boolean which is True if edition is granted. - """ - return user_request.has_perm('preferences.change_optionalmachine'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant les machines" - - def can_delete(self, user_request, *args, **kwargs): - """Check if an user can delete a OptionalMachine object. - - :param self: The OptionalMachine which is to be deleted. - :param user_request: The user who requests deletion. - :return: True if deletion is granted, and a message. - """ - - return user_request.has_perm('preferences.delete_optionalmachine'), u"Vous n'avez pas le droit\ - de supprimer les préférences concernant les machines" - - def can_view_all(user_request, *args, **kwargs): - """Check if an user can access to the list of every OptionalMachine objects - - :param user_request: The user who wants to view the list. - :return: True if the user can view the list and an explanation message. - """ - return user_request.has_perm('preferences.view_optionalmachine'), u"Vous n'avez pas le droit\ - de voir les préférences concernant les machines" - - def can_view(self, user_request, *args, **kwargs): - """Check if an user can view a OptionalMachine object. - - :param self: The targeted OptionalMachine. - :param user_request: The user who ask for viewing the target. - :return: A boolean telling if the acces is granted and an explanation - text - """ - return user_request.has_perm('preferences.view_optionalmachine'), u"Vous n'avez pas le droit\ - de voir les préférences concernant les machines" - @receiver(post_save, sender=OptionalMachine) def optionalmachine_post_save(sender, **kwargs): @@ -269,7 +164,7 @@ def optionalmachine_post_save(sender, **kwargs): interface.sync_ipv6() -class OptionalTopologie(PreferencesModel): +class OptionalTopologie(AclMixin, PreferencesModel): """Reglages pour la topologie : mode d'accès radius, vlan où placer les machines en accept ou reject""" PRETTY_NAME = "Options topologie" @@ -306,58 +201,6 @@ class OptionalTopologie(PreferencesModel): ("view_optionaltopologie", "Peut voir les options de topologie"), ) - def get_instance(*args, **kwargs): - return OptionalTopologie.objects.get_or_create() - - def can_create(user_request, *args, **kwargs): - """Check if an user can create a OptionalTopologie object. - - :param user_request: The user who wants to create an object. - :return: a message and a boolean which is True if the user can create. - """ - return user_request.has_perm('preferences.add_optionaltopologie'), u"Vous n'avez pas le droit\ - de créer les préférences concernant la topologie" - - def can_edit(self, user_request, *args, **kwargs): - """Check if an user can edit a OptionalTopologie object. - - :param self: The OptionalTopologie which is to be edited. - :param user_request: The user who requests to edit self. - :return: a message and a boolean which is True if edition is granted. - """ - return user_request.has_perm('preferences.change_optionaltopologie'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant la topologie" - - def can_delete(self, user_request, *args, **kwargs): - """Check if an user can delete a OptionalTopologie object. - - :param self: The OptionalTopologie which is to be deleted. - :param user_request: The user who requests deletion. - :return: True if deletion is granted, and a message. - """ - return user_request.has_perm('preferences.delete_optionaltoplogie'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant la topologie" - - def can_view_all(user_request, *args, **kwargs): - """Check if an user can access to the list of every OptionalTopologie objects - - :param user_request: The user who wants to view the list. - :return: True if the user can view the list and an explanation message. - """ - return user_request.has_perm('preferences.view_optionaltopologie'), u"Vous n'avez pas le droit\ - de voir les préférences concernant la topologie" - - def can_view(self, user_request, *args, **kwargs): - """Check if an user can view a OptionalTopologie object. - - :param self: The targeted OptionalTopologie. - :param user_request: The user who ask for viewing the target. - :return: A boolean telling if the acces is granted and an explanation - text - """ - return user_request.has_perm('preferences.view_optionaltopologie'), u"Vous n'avez pas le droit\ - de voir les préférences concernant la topologie" - @receiver(post_save, sender=OptionalTopologie) def optionaltopologie_post_save(sender, **kwargs): @@ -366,7 +209,7 @@ def optionaltopologie_post_save(sender, **kwargs): topologie_pref.set_in_cache() -class GeneralOption(PreferencesModel): +class GeneralOption(AclMixin, PreferencesModel): """Options générales : nombre de resultats par page, nom du site, temps où les liens sont valides""" PRETTY_NAME = "Options générales" @@ -398,59 +241,6 @@ class GeneralOption(PreferencesModel): ("view_generaloption", "Peut voir les options générales"), ) - def get_instance(*args, **kwargs): - return GeneralOption.objects.get_or_create() - - def can_create(user_request, *args, **kwargs): - """Check if an user can create a GeneralOption object. - - :param user_request: The user who wants to create an object. - :return: a message and a boolean which is True if the user can create. - """ - return user_request.has_perm('preferences.add_generaloption'), u"Vous n'avez pas le droit\ - de créer les préférences générales" - - def can_edit(self, user_request, *args, **kwargs): - """Check if an user can edit a GeneralOption object. - - :param self: The GeneralOption which is to be edited. - :param user_request: The user who requests to edit self. - :return: a message and a boolean which is True if edition is granted. - """ - return user_request.has_perm('preferences.change_generaloption'), u"Vous n'avez pas le droit\ - d'éditer les préférences générales" - - def can_delete(self, user_request, *args, **kwargs): - """Check if an user can delete a GeneralOption object. - - :param self: The GeneralOption which is to be deleted. - :param user_request: The user who requests deletion. - :return: True if deletion is granted, and a message. - """ - return user_request.has_perm('preferences.delete_generaloption'), u"Vous n'avez pas le droit\ - d'éditer les préférences générales" - - def can_view_all(user_request, *args, **kwargs): - """Check if an user can access to the list of every GeneralOption objects - - :param user_request: The user who wants to view the list. - :return: True if the user can view the list and an explanation message. - """ - - return user_request.has_perm('preferences.view_generaloption'), u"Vous n'avez pas le droit\ - de voir les préférences générales" - - def can_view(self, user_request, *args, **kwargs): - """Check if an user can view a GeneralOption object. - - :param self: The targeted GeneralOption. - :param user_request: The user who ask for viewing the target. - :return: A boolean telling if the acces is granted and an explanation - text - """ - return user_request.has_perm('preferences.view_generaloption'), u"Vous n'avez pas le droit\ - de voir les préférences générales" - @receiver(post_save, sender=GeneralOption) def generaloption_post_save(sender, **kwargs): @@ -459,7 +249,7 @@ def generaloption_post_save(sender, **kwargs): general_pref.set_in_cache() -class Service(models.Model): +class Service(AclMixin, models.Model): """Liste des services affichés sur la page d'accueil : url, description, image et nom""" name = models.CharField(max_length=32) @@ -472,65 +262,11 @@ class Service(models.Model): ("view_service", "Peut voir les options de service"), ) - def get_instance(serviceid, *args, **kwargs): - return Service.objects.get(pk=serviceid) - - def can_create(user_request, *args, **kwargs): - """Check if an user can create a Service object. - - :param user_request: The user who wants to create an object. - :return: a message and a boolean which is True if the user can create. - """ - - return user_request.has_perm('preferences.add_service'), u"Vous n'avez pas le droit\ - de créer un service pour la page d'accueil" - - def can_edit(self, user_request, *args, **kwargs): - """Check if an user can edit a Service object. - - :param self: The Service which is to be edited. - :param user_request: The user who requests to edit self. - :return: a message and a boolean which is True if edition is granted. - """ - return user_request.has_perm('preferences.change_service'), u"Vous n'avez pas le droit\ - d'éditer les services pour la page d'accueil" - - def can_delete(self, user_request, *args, **kwargs): - """Check if an user can delete a Service object. - - :param self: The Right which is to be deleted. - :param user_request: The user who requests deletion. - :return: True if deletion is granted, and a message. - """ - return user_request.has_perm('preferences.delete_service'), u"Vous n'avez pas le droit\ - de supprimer les services pour la page d'accueil" - - def can_view_all(user_request, *args, **kwargs): - """Check if an user can access to the list of every Service objects - - :param user_request: The user who wants to view the list. - :return: True if the user can view the list and an explanation message. - """ - - return user_request.has_perm('preferences.view_service'), u"Vous n'avez pas le droit\ - de voir les services pour la page d'accueil" - - def can_view(self, user_request, *args, **kwargs): - """Check if an user can view a Service object. - - :param self: The targeted Service. - :param user_request: The user who ask for viewing the target. - :return: A boolean telling if the acces is granted and an explanation - text - """ - return user_request.has_perm('preferences.view_service'), u"Vous n'avez pas le droit\ - de voir les services pour la page d'accueil" - def __str__(self): return str(self.name) -class AssoOption(PreferencesModel): +class AssoOption(AclMixin, PreferencesModel): """Options générales de l'asso : siret, addresse, nom, etc""" PRETTY_NAME = "Options de l'association" @@ -579,58 +315,6 @@ class AssoOption(PreferencesModel): ("view_assooption", "Peut voir les options de l'asso"), ) - def get_instance(*args, **kwargs): - return AssoOption.objects.get_or_create() - - def can_create(user_request, *args, **kwargs): - """Check if an user can create a AssoOption object. - - :param user_request: The user who wants to create an object. - :return: a message and a boolean which is True if the user can create. - """ - return user_request.has_perm('preferences.add_assooption'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant l'association" - - def can_edit(self, user_request, *args, **kwargs): - """Check if an user can edit a AssoOption object. - - :param self: The AssoOption which is to be edited. - :param user_request: The user who requests to edit self. - :return: a message and a boolean which is True if edition is granted. - """ - return user_request.has_perm('preferences.change_assooption'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant l'association" - - def can_delete(self, user_request, *args, **kwargs): - """Check if an user can delete a AssoOption object. - - :param self: The AssoOption which is to be deleted. - :param user_request: The user who requests deletion. - :return: True if deletion is granted, and a message. - """ - return user_request.has_perm('preferences.delete_assooption'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant l'association" - - def can_view_all(user_request, *args, **kwargs): - """Check if an user can access to the list of every AssoOption objects - - :param user_request: The user who wants to view the list. - :return: True if the user can view the list and an explanation message. - """ - return user_request.has_perm('preferences.view_assooption'), u"Vous n'avez pas le droit\ - de voir les préférences concernant l'association" - - def can_view(self, user_request, *args, **kwargs): - """Check if an user can view a AssoOption object. - - :param self: The targeted AssoOption. - :param user_request: The user who ask for viewing the target. - :return: A boolean telling if the acces is granted and an explanation - text - """ - return user_request.has_perm('preferences.view_assooption'), u"Vous n'avez pas le droit\ - de voir les préférences concernant l'association" - @receiver(post_save, sender=AssoOption) def assooption_post_save(sender, **kwargs): @@ -639,7 +323,7 @@ def assooption_post_save(sender, **kwargs): asso_pref.set_in_cache() -class MailMessageOption(models.Model): +class MailMessageOption(AclMixin, models.Model): """Reglages, mail de bienvenue et autre""" PRETTY_NAME = "Options de corps de mail" @@ -650,56 +334,3 @@ class MailMessageOption(models.Model): permissions = ( ("view_mailmessageoption", "Peut voir les options de mail"), ) - - def get_instance(*args, **kwargs): - return MailMessageOption.objects.get_or_create() - - def can_create(user_request, *args, **kwargs): - """Check if an user can create a MailMessageOption object. - - :param user_request: The user who wants to create an object. - :return: a message and a boolean which is True if the user can create. - """ - return user_request.has_perm('preferences.add_mailmessageoption'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant les mails" - - def can_edit(self, user_request, *args, **kwargs): - """Check if an user can edit a MailMessageOption object. - - :param self: The MailMessageOption which is to be edited. - :param user_request: The user who requests to edit self. - :return: a message and a boolean which is True if edition is granted. - """ - - return user_request.has_perm('preferences.change_mailmessageoption'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant les mails" - - def can_delete(self, user_request, *args, **kwargs): - """Check if an user can delete a AssoOption object. - - :param self: The AssoOption which is to be deleted. - :param user_request: The user who requests deletion. - :return: True if deletion is granted, and a message. - """ - return user_request.has_perm('preferences.delete_mailmessageoption'), u"Vous n'avez pas le droit\ - d'éditer les préférences concernant les mails" - - def can_view_all(user_request, *args, **kwargs): - """Check if an user can access to the list of every AssoOption objects - - :param user_request: The user who wants to view the list. - :return: True if the user can view the list and an explanation message. - """ - return user_request.has_perm('preferences.view_mailmessageoption'), u"Vous n'avez pas le droit\ - de voir les préférences concernant les mails" - - def can_view(self, user_request, *args, **kwargs): - """Check if an user can view a AssoOption object. - - :param self: The targeted AssoOption. - :param user_request: The user who ask for viewing the target. - :return: A boolean telling if the acces is granted and an explanation - text - """ - return user_request.has_perm('preferences.view_mailmessageoption'), u"Vous n'avez pas le droit\ - de voir les préférences concernant les mails"