diff -r 4e69a5f30a9a -r e68fd70ba076 app/soc/views/helper/access.py --- a/app/soc/views/helper/access.py Tue Feb 03 13:26:34 2009 +0000 +++ b/app/soc/views/helper/access.py Tue Feb 03 13:27:52 2009 +0000 @@ -658,6 +658,34 @@ new_args = {'scope_path': program.scope_path } self.checkHasRole(new_args, host_logic) + + @allowDeveloper + def checkCanEditGroupApp(self, django_args, group_app_logic): + """Checks if the group_app in args is valid to be edited. + + Args: + group_app_logic: A logic instance for the Group Application + """ + + self.checkIsUser(django_args) + + fields = { + 'link_id': django_args['link_id'], + 'applicant': self.user, + 'status' : ['needs review', 'rejected'] + } + + if 'scope_path' in django_args: + fields['scope_path'] = django_args['scope_path'] + + entity = group_app_logic.getForFields(fields) + + if entity: + return + + raise out_of_band.AccessViolation(message_fmt=DEF_NOT_YOUR_ENTITY_MSG) + + @allowDeveloper def checkIsApplicationAccepted(self, django_args, app_logic): """Returns an alternate HTTP response if Google Account has no Club App @@ -702,6 +730,9 @@ field_name: self.user if user else self.user.key().name() } + if 'scope_path' in django_args: + fields['scope_path'] = django_args['scope_path'] + entity = logic.getForFields(fields) if entity: