Example #1
0
 def __get_notification(self, notification):
     if isinstance(notification, Notification):
         return notification
     elif isinstance(notification, (int, long)):
         return Notification.get(notification)
     else:
         if notification:
             raise Exception('notification must be int, long or Instance'
                             ' of Notification got %s' % type(notification))
Example #2
0
 def __get_notification(self, notification):
     if isinstance(notification, Notification):
         return notification
     elif isinstance(notification, (int, long)):
         return Notification.get(notification)
     else:
         if notification is not None:
             raise Exception('notification must be int, long or Instance'
                             ' of Notification got %s' % type(notification))
Example #3
0
 def update(self, notification_id):
     try:
         no = Notification.get(notification_id)
         owner = all(un.user_id == request.authuser.user_id
                     for un in no.notifications_to_users)
         if h.HasPermissionAny('hg.admin')() or owner:
             # deletes only notification2user
             NotificationModel().mark_read(request.authuser.user_id, no)
             Session().commit()
             return 'ok'
     except Exception:
         Session().rollback()
         log.error(traceback.format_exc())
     raise HTTPBadRequest()
 def update(self, notification_id):
     try:
         no = Notification.get(notification_id)
         owner = all(un.user_id == request.authuser.user_id
                     for un in no.notifications_to_users)
         if h.HasPermissionAny('hg.admin')() or owner:
             # deletes only notification2user
             NotificationModel().mark_read(request.authuser.user_id, no)
             Session().commit()
             return 'ok'
     except Exception:
         Session().rollback()
         log.error(traceback.format_exc())
     raise HTTPBadRequest()
Example #5
0
 def delete(self, notification_id):
     """DELETE /_admin/notifications/id: Delete an existing item"""
     # Forms posted to this method should contain a hidden field:
     #    <input type="hidden" name="_method" value="DELETE" />
     # Or using helpers:
     #    h.form(url('notification', notification_id=ID),
     #           method='delete')
     # url('notification', notification_id=ID)
     try:
         no = Notification.get(notification_id)
         owner = any(un.user.user_id == c.authuser.user_id
                     for un in no.notifications_to_users)
         if h.HasPermissionAny('hg.admin')() or owner:
             # deletes only notification2user
             NotificationModel().delete(c.authuser.user_id, no)
             Session().commit()
             return 'ok'
     except Exception:
         Session().rollback()
         log.error(traceback.format_exc())
     raise HTTPBadRequest()
Example #6
0
 def delete(self, notification_id):
     """DELETE /_admin/notifications/id: Delete an existing item"""
     # Forms posted to this method should contain a hidden field:
     #    <input type="hidden" name="_method" value="DELETE" />
     # Or using helpers:
     #    h.form(url('notification', notification_id=ID),
     #           method='delete')
     # url('notification', notification_id=ID)
     try:
         no = Notification.get(notification_id)
         owner = any(un.user.user_id == c.authuser.user_id
                     for un in no.notifications_to_users)
         if h.HasPermissionAny('hg.admin')() or owner:
             # deletes only notification2user
             NotificationModel().delete(c.authuser.user_id, no)
             Session().commit()
             return 'ok'
     except Exception:
         Session().rollback()
         log.error(traceback.format_exc())
     raise HTTPBadRequest()
Example #7
0
    def show(self, notification_id, format='html'):
        """GET /_admin/notifications/id: Show a specific item"""
        # url('notification', notification_id=ID)
        c.user = self.authuser
        no = Notification.get(notification_id)

        owner = any(un.user.user_id == c.authuser.user_id
                    for un in no.notifications_to_users)
        repo_admin = h.HasRepoPermissionAny('repository.admin')
        if no and (h.HasPermissionAny('hg.admin')() or repo_admin or owner):
            unotification = NotificationModel()\
                            .get_user_notification(c.user.user_id, no)

            # if this association to user is not valid, we don't want to show
            # this message
            if unotification:
                if not unotification.read:
                    unotification.mark_as_read()
                    Session().commit()
                c.notification = no

                return render('admin/notifications/show_notification.html')

        return abort(403)
Example #8
0
    def show(self, notification_id, format='html'):
        """GET /_admin/notifications/id: Show a specific item"""
        # url('notification', notification_id=ID)
        c.user = self.authuser
        no = Notification.get(notification_id)

        owner = any(un.user.user_id == c.authuser.user_id
                    for un in no.notifications_to_users)
        repo_admin = h.HasRepoPermissionAny('repository.admin')
        if no and (h.HasPermissionAny('hg.admin')() or repo_admin or owner):
            unotification = NotificationModel()\
                            .get_user_notification(c.user.user_id, no)

            # if this association to user is not valid, we don't want to show
            # this message
            if unotification:
                if not unotification.read:
                    unotification.mark_as_read()
                    Session().commit()
                c.notification = no

                return render('admin/notifications/show_notification.html')

        return abort(403)
 def tearDown(self):
     for n in Notification.query().all():
         inst = Notification.get(n.notification_id)
         Session().delete(inst)
     Session().commit()