app/soc/views/helper/access.py
changeset 1496 da531df1d92e
parent 1488 4b7cec48e26c
child 1505 fd6dcb852688
--- a/app/soc/views/helper/access.py	Tue Feb 24 22:15:50 2009 +0000
+++ b/app/soc/views/helper/access.py	Tue Feb 24 23:10:50 2009 +0000
@@ -1222,28 +1222,36 @@
 
   @allowSidebar
   @allowDeveloper
-  def checkIsDocumentReadable(self, django_args):
+  def checkIsDocumentReadable(self, django_args, key_name_field=None):
     """Checks whether a document is readable.
 
     Args:
       django_args: a dictionary with django's arguments
     """
 
-    document = document_logic.getFromKeyFieldsOr404(django_args)
+    if key_name_field:
+      key_name = django_args[key_name_field]
+      document = document_logic.getFromKeyName(key_name)
+    else:
+      document = document_logic.getFromKeyFieldsOr404(django_args)
 
     self.checkMembership('read', document.prefix,
                          document.read_access, django_args)
 
   @denySidebar
   @allowDeveloper
-  def checkIsDocumentWritable(self, django_args):
+  def checkIsDocumentWritable(self, django_args, key_name_field=None):
     """Checks whether a document is writable.
 
     Args:
       django_args: a dictionary with django's arguments
     """
 
-    document = document_logic.getFromKeyFieldsOr404(django_args)
+    if key_name_field:
+      key_name = django_args[key_name_field]
+      document = document_logic.getFromKeyName(key_name)
+    else:
+      document = document_logic.getFromKeyFieldsOr404(django_args)
 
     self.checkMembership('write', document.prefix,
                          document.write_access, django_args)