From 8bbfd0e080ac5ef1232cca0663f77e1562c1485e Mon Sep 17 00:00:00 2001 From: François Schmidts Date: Mon, 6 Jul 2015 23:09:24 +0200 Subject: making it possible for super admin to update other's feed --- pyaggr3g470r/lib/crawler.py | 1 + pyaggr3g470r/views/api/common.py | 6 +++++- pyaggr3g470r/views/api/feed.py | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pyaggr3g470r/lib/crawler.py b/pyaggr3g470r/lib/crawler.py index 8d2de15f..de557e45 100644 --- a/pyaggr3g470r/lib/crawler.py +++ b/pyaggr3g470r/lib/crawler.py @@ -143,6 +143,7 @@ class PyAggUpdater(AbstractCrawler): up_feed[key] = fresh_feed[key] if not self.feed.get('title'): up_feed['title'] = fresh_feed.get('title', '') + up_feed['user_id'] = self.feed['user_id'] logger.info('%r %r - pushing feed attrs %r', self.feed['id'], self.feed['title'], diff --git a/pyaggr3g470r/views/api/common.py b/pyaggr3g470r/views/api/common.py index b8c4dd9d..a7068807 100644 --- a/pyaggr3g470r/views/api/common.py +++ b/pyaggr3g470r/views/api/common.py @@ -143,7 +143,11 @@ class PyAggResourceExisting(PyAggAbstractResource): args = self.reqparse_args(default=False) new_values = {key: args[key] for key in set(args).intersection(self.attrs)} - self.controller.update({'id': obj_id}, new_values) + if 'user_id' in new_values and g.user.is_admin(): + controller = self.wider_controller + else: + controller = self.controller + return controller.update({'id': obj_id}, new_values), 200 def delete(self, obj_id=None): """delete a object""" diff --git a/pyaggr3g470r/views/api/feed.py b/pyaggr3g470r/views/api/feed.py index f9060263..530f3fef 100644 --- a/pyaggr3g470r/views/api/feed.py +++ b/pyaggr3g470r/views/api/feed.py @@ -16,6 +16,7 @@ from pyaggr3g470r.views.api.common import PyAggAbstractResource, \ FEED_ATTRS = {'title': {'type': str}, 'description': {'type': str}, 'link': {'type': str}, + 'user_id': {'type': int}, 'site_link': {'type': str}, 'enabled': {'type': bool, 'default': True}, 'etag': {'type': str, 'default': ''}, -- cgit