changeset 336:caf040382bee

Don't show private items
author Sylvain Beucler <beuc@beuc.net>
date Sun, 22 Aug 2010 23:32:21 +0200
parents 0718a9ef6cd5
children af82331e34ca
files savane/tracker/models.py savane/tracker/views.py
diffstat 2 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/savane/tracker/models.py
+++ b/savane/tracker/models.py
@@ -105,6 +105,9 @@
                     )
     name = models.CharField(max_length=7, choices=NAME_CHOICES, primary_key=True)
 
+    def get_public_id_item_field(self):
+        return 'public_%s' % self.name
+
     def __unicode__(self):
         "Used in the admin interface fields list"
         return self.name
@@ -385,7 +388,7 @@
     # - fields with hard-coded processing
     summary = models.TextField()
     details = models.TextField()
-    privacy = models.IntegerField(default=5)
+    privacy = models.IntegerField(default=1)
     discussion_lock = models.IntegerField(default=0)
     vote = models.IntegerField(default=0)
     category_id = models.IntegerField(default=100)
--- a/savane/tracker/views.py
+++ b/savane/tracker/views.py
@@ -33,13 +33,12 @@
 
 @render_to('tracker/item_form.html', mimetype=None)
 def item_detail(request, tracker, object_id, extra_context={}):
-    if tracker not in [k for (k,v) in tracker_models.Tracker.NAME_CHOICES]:
-        raise HttpAppException("Invalid tracker")
+    tracker = get_object_or_404(tracker_models.Tracker, name=tracker)
 
-    kwargs = {'public_%s' % tracker : object_id}
+    kwargs = {tracker.get_public_id_item_field() : object_id}
     item = get_object_or_404(tracker_models.Item, **kwargs)
 
-    if item.privacy == 1:
+    if item.privacy == 0:  # reverse meaning...
         # Allowed: members with 'private items' privs
         if not request.user.is_superuser:
             raise HttpAppException(_("Access denied") + _(": ") + _("private item"))