app/soc/views/helper/access.py
changeset 1496 da531df1d92e
parent 1488 4b7cec48e26c
child 1505 fd6dcb852688
equal deleted inserted replaced
1495:d0f803569406 1496:da531df1d92e
  1220 
  1220 
  1221     return
  1221     return
  1222 
  1222 
  1223   @allowSidebar
  1223   @allowSidebar
  1224   @allowDeveloper
  1224   @allowDeveloper
  1225   def checkIsDocumentReadable(self, django_args):
  1225   def checkIsDocumentReadable(self, django_args, key_name_field=None):
  1226     """Checks whether a document is readable.
  1226     """Checks whether a document is readable.
  1227 
  1227 
  1228     Args:
  1228     Args:
  1229       django_args: a dictionary with django's arguments
  1229       django_args: a dictionary with django's arguments
  1230     """
  1230     """
  1231 
  1231 
  1232     document = document_logic.getFromKeyFieldsOr404(django_args)
  1232     if key_name_field:
       
  1233       key_name = django_args[key_name_field]
       
  1234       document = document_logic.getFromKeyName(key_name)
       
  1235     else:
       
  1236       document = document_logic.getFromKeyFieldsOr404(django_args)
  1233 
  1237 
  1234     self.checkMembership('read', document.prefix,
  1238     self.checkMembership('read', document.prefix,
  1235                          document.read_access, django_args)
  1239                          document.read_access, django_args)
  1236 
  1240 
  1237   @denySidebar
  1241   @denySidebar
  1238   @allowDeveloper
  1242   @allowDeveloper
  1239   def checkIsDocumentWritable(self, django_args):
  1243   def checkIsDocumentWritable(self, django_args, key_name_field=None):
  1240     """Checks whether a document is writable.
  1244     """Checks whether a document is writable.
  1241 
  1245 
  1242     Args:
  1246     Args:
  1243       django_args: a dictionary with django's arguments
  1247       django_args: a dictionary with django's arguments
  1244     """
  1248     """
  1245 
  1249 
  1246     document = document_logic.getFromKeyFieldsOr404(django_args)
  1250     if key_name_field:
       
  1251       key_name = django_args[key_name_field]
       
  1252       document = document_logic.getFromKeyName(key_name)
       
  1253     else:
       
  1254       document = document_logic.getFromKeyFieldsOr404(django_args)
  1247 
  1255 
  1248     self.checkMembership('write', document.prefix,
  1256     self.checkMembership('write', document.prefix,
  1249                          document.write_access, django_args)
  1257                          document.write_access, django_args)
  1250 
  1258 
  1251   @allowDeveloper
  1259   @allowDeveloper