diff -r 65c8d1bfe94b -r 0a723ff3d27c app/soc/views/helper/access.py --- 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)