def notify(self, event_type, user=None, user_id=None, email=None, **kwargs):
        if not any([user, user_id]):
            raise Exception("You need to inform user or user_id")
        permission = self.check_permission(event_type, user_id or user.id, user)
        kwargs['http_host'] = str(self.db.request.env.http_host)
        kwargs = self.check_image_urls(kwargs)
        if 'site' in permission:
            params = dict(
                user_id=user_id or user.id,
                event_type=event_type,
                event_text=kwargs.get("event_text", ""),
                event_link=kwargs.get("event_link", ""),
                event_reference=kwargs.get("event_reference", 0),
                event_image=kwargs.get("event_image", ""),
                kwargs=clean_object(kwargs, self.db.T)
            )
            self.insert_site_notification(**params)

        if 'email' in permission:
            if user:
                to = user.email
            elif email:
                to = email
            else:
                to = self.db.auth_user[user_id].email

            self.send_email(to, event_type, **kwargs)
        else:
            if self.record:
                self.notification.entity[self.record].update_record(mail_sent=True)
Beispiel #2
0
    def notify(self,
               event_type,
               user=None,
               user_id=None,
               email=None,
               **kwargs):
        if not any([user, user_id]):
            raise Exception("You need to inform user or user_id")
        permission = self.check_permission(event_type, user_id or user.id,
                                           user)
        kwargs['http_host'] = str(self.db.request.env.http_host)
        kwargs = self.check_image_urls(kwargs)
        if 'site' in permission:
            params = dict(user_id=user_id or user.id,
                          event_type=event_type,
                          event_text=kwargs.get("event_text", ""),
                          event_link=kwargs.get("event_link", ""),
                          event_reference=kwargs.get("event_reference", 0),
                          event_image=kwargs.get("event_image", ""),
                          kwargs=clean_object(kwargs, self.db.T))
            self.insert_site_notification(**params)

        if 'email' in permission:
            if user:
                to = user.email
            elif email:
                to = email
            else:
                to = self.db.auth_user[user_id].email

            self.send_email(to, event_type, **kwargs)
        else:
            if self.record:
                self.notification.entity[self.record].update_record(
                    mail_sent=True)
    def notify_all(self, event_type, emails, users, **kwargs):
        kwargs['http_host'] = str(self.db.request.env.http_host)
        kwargs = self.check_image_urls(kwargs)
        for user in users:
            params = dict(
                user_id=user,
                event_type=event_type,
                event_text=kwargs.get("event_text", ""),
                event_link=kwargs.get("event_link", ""),
                event_reference=kwargs.get("event_reference", 0),
                event_image=kwargs.get("event_image", ""),
                is_read=False,
                kwargs=clean_object(kwargs, self.db.T)
            )
            self.insert_site_notification_all(**params)

        self.send_email("Undisclosed Recipients", event_type, bcc=emails, **kwargs)
Beispiel #4
0
    def notify_all(self, event_type, emails, users, **kwargs):
        kwargs['http_host'] = str(self.db.request.env.http_host)
        kwargs = self.check_image_urls(kwargs)
        for user in users:
            params = dict(user_id=user,
                          event_type=event_type,
                          event_text=kwargs.get("event_text", ""),
                          event_link=kwargs.get("event_link", ""),
                          event_reference=kwargs.get("event_reference", 0),
                          event_image=kwargs.get("event_image", ""),
                          is_read=False,
                          kwargs=clean_object(kwargs, self.db.T))
            self.insert_site_notification_all(**params)

        self.send_email("Undisclosed Recipients",
                        event_type,
                        bcc=emails,
                        **kwargs)