""" Author: Michel Peltriaux Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany Contact: michel.peltriaux@sgdnord.rlp.de Created on: 15.11.21 """ from django.contrib.auth.models import AbstractUser from django.db import models from konova.utils.mailer import Mailer from user.enums import UserNotificationEnum class User(AbstractUser): notifications = models.ManyToManyField("user.UserNotification", related_name="+", blank=True) def is_notification_setting_set(self, notification_enum: UserNotificationEnum): return self.notifications.filter( id=notification_enum.value ).exists() def send_mail_shared_access_removed(self, obj_identifier): """ Sends a mail to the user in case of removed shared access Args: obj (): Returns: """ notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_REMOVED) if notification_set: mailer = Mailer() mailer.send_mail_shared_access_removed(obj_identifier, self) def send_mail_shared_access_given(self, obj_identifier): """ Sends a mail to the user in case of removed shared access Args: obj (): Returns: """ notification_set = self.is_notification_setting_set(UserNotificationEnum.NOTIFY_ON_SHARED_ACCESS_GAINED) if notification_set: mailer = Mailer() mailer.send_mail_shared_access_given(obj_identifier, self)