app/soc/views/helper/access.py
changeset 1115 0a723ff3d27c
parent 1107 a878188e225c
child 1122 659984867a9a
--- a/app/soc/views/helper/access.py	Sat Jan 31 15:40:32 2009 +0000
+++ b/app/soc/views/helper/access.py	Sat Jan 31 15:41:45 2009 +0000
@@ -40,6 +40,7 @@
 from soc.logic import accounts
 from soc.logic import dicts
 from soc.logic.models.club_admin import logic as club_admin_logic
+from soc.logic.models.document import logic as document_logic
 from soc.logic.models.host import logic as host_logic
 from soc.logic.models.notification import logic as notification_logic
 from soc.logic.models.request import logic as request_logic
@@ -441,7 +442,7 @@
     if django_args.get('scope_path'):
       fields['scope_path'] = django_args['scope_path']
 
-    group_entity = group_logic.logic.getFromFieldsOr404(**fields)
+    group_entity = group_logic.logic.getFromKeyFieldsOr404(fields)
 
     if group_entity.status == 'active':
       return
@@ -489,7 +490,7 @@
         'scope_path': django_args['scope_path'],
         'role': role_name}
 
-    request_entity = request_logic.getFromFieldsOr404(**fields)
+    request_entity = request_logic.getFromKeyFieldsOr404(fields)
 
     if request_entity.status != 'group_accepted':
       # TODO tell the user that this request has not been accepted yet
@@ -511,7 +512,7 @@
         'scope_path': django_args['scope_path'],
         'role': role_name}
 
-    request_entity = request_logic.getFromFieldsOr404(**fields)
+    request_entity = request_logic.getFromKeyFieldsOr404(fields)
 
     if request_entity.status in ['completed', 'denied']:
       # TODO tell the user that this request has been processed
@@ -598,8 +599,8 @@
     """Checks if the user is a host for the specified program.
     """
 
-    key_fields = program_logic.getKeyFieldsFromDict(django_args)
-    program = program_logic.getFromFields(**key_fields)
+    key_fields = program_logic.getKeyFieldsFromFields(django_args)
+    program = program_logic.getFromKeyFields(key_fields)
 
     if not program or program.status == 'invalid':
       self.deny(django_args)
@@ -804,7 +805,7 @@
               'scope_path': django_args['scope_path'],
               }
 
-    role_entity = role_logic.logic.getFromFieldsOr404(**fields)
+    role_entity = role_logic.logic.getFromKeyFieldsOr404(fields)
 
     if role_entity.status != 'active':
       # role is not active
@@ -842,7 +843,7 @@
               'scope_path': django_args['scope_path'],
               }
 
-    role_entity = role_logic.logic.getFromFieldsOr404(**fields)
+    role_entity = role_logic.logic.getFromKeyFieldsOr404(fields)
 
     if role_entity.status != 'active':
       # cannot manage this entity
@@ -880,6 +881,8 @@
     #TODO(SRabbelier) inform user that return_url and field are required
     self.deny(django_args)
 
+  @denySidebar
+  @allowDeveloper
   def checkIsDocumentPublic(self, django_args):
     """Checks whether a document is public.
 
@@ -887,9 +890,8 @@
       django_args: a dictionary with django's arguments
     """
 
-    # TODO(srabbelier): A proper check needs to be done to see if the document
-    # is public or not, probably involving analysing it's scope or such.
-    self.allow(django_args)
+    key_fields = document_logic.getKeyFieldsFromFields(django_args)
+    document_logic.getFromKeyFields(key_fields)
 
   @allowIfCheckPasses('checkIsHostForProgram')
   def checkIsProgramVisible(self, django_args):
@@ -899,8 +901,8 @@
     if 'entity' in django_args:
       program = django_args['entity']
     else:
-      key_fields = program_logic.getKeyFieldsFromDict(django_args)
-      program = program_logic.getFromFields(**key_fields)
+      key_fields = program_logic.getKeyFieldsFromFields(django_args)
+      program = program_logic.getFromKeyFields(key_fields)
 
     if not program:
       self.deny(django_args)