From: yomguy Date: Wed, 8 Jun 2011 15:44:52 +0000 (+0200) Subject: fix collection and item access rights X-Git-Tag: 1.1~120 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=24fd2a1d20c75a825e82d177f93c726c89503912;p=telemeta.git fix collection and item access rights --- diff --git a/telemeta/templates/telemeta_default/collection_detail.html b/telemeta/templates/telemeta_default/collection_detail.html index f083cc35..95d8bb99 100644 --- a/telemeta/templates/telemeta_default/collection_detail.html +++ b/telemeta/templates/telemeta_default/collection_detail.html @@ -73,7 +73,7 @@ {% endblock %} {% block content %} -
+
{% if collection.has_mediafile %} {% if public_access or user.is_staff or user.is_superuser %}
diff --git a/telemeta/templates/telemeta_default/mediaitem_detail.html b/telemeta/templates/telemeta_default/mediaitem_detail.html index 7b95eced..6f4d990a 100644 --- a/telemeta/templates/telemeta_default/mediaitem_detail.html +++ b/telemeta/templates/telemeta_default/mediaitem_detail.html @@ -87,7 +87,7 @@ {% endblock %} {% block content %} -
+
{% if item.file %} {% if public_access or user.is_staff or user.is_superuser %}
@@ -125,7 +125,7 @@
- {% if audio_export_enabled %} + {% if audio_export_enabled or user.is_staff or user.is_superuser %}

download {% trans "Download:" %} {% for format in export_formats %} diff --git a/telemeta/web/base.py b/telemeta/web/base.py index f430e39d..c1ccdf46 100644 --- a/telemeta/web/base.py +++ b/telemeta/web/base.py @@ -156,8 +156,10 @@ class WebView(object): collection = MediaCollection.objects.get(public_id=public_id) if collection.public_access == 'none' and not request.user.is_staff: return HttpResponseRedirect('not_allowed/') + public_access = self.get_public_access(collection.public_access, collection.recorded_from_year, + collection.recorded_to_year) playlists = self.get_playlists(request) - return render(request, template, {'collection': collection, 'playlists' : playlists}) + return render(request, template, {'collection': collection, 'playlists': playlists, 'public_access': public_access}) @method_decorator(permission_required('telemeta.change_mediacollection')) def collection_edit(self, request, public_id, template='telemeta/collection_edit.html'): @@ -272,7 +274,8 @@ class WebView(object): previous, next = self.item_previous_next(item) self.item_analyze(item) playlists = self.get_playlists(request) - public_access = self.get_public_access(item.public_access, item.recorded_from_date, item.recorded_to_date) + public_access = self.get_public_access(item.public_access, str(item.recorded_from_date).split('-')[0], + str(item.recorded_to_date).split('-')[0]) return render(request, template, {'item': item, 'export_formats': formats, @@ -282,23 +285,22 @@ class WebView(object): 'public_access': public_access, }) - def get_public_access(self, access, date_from, date_to): + def get_public_access(self, access, year_from, year_to): # Rolling publishing date : public access is given when time between recorded year # and current year is over the settings value PUBLIC_ACCESS_PERIOD - if date_to: - date = date_to - elif date_from: - date = date_from + if year_to: + year = year_to + elif year_from: + year = year_from else: - date = None + year = None if access == 'full': public_access = True else: public_access = False - if date: - year = str(date).split('-') + if year: year_now = datetime.datetime.now().strftime("%Y") - if int(year_now) - int(year[0]) >= settings.TELEMETA_PUBLIC_ACCESS_PERIOD: + if int(year_now) - int(year) >= settings.TELEMETA_PUBLIC_ACCESS_PERIOD: public_access = True return public_access