def EditableRoles(user, editor): if not editor: return [] if editor.HasAnyRole([Roles.GLOBAL_ADMIN]): return Roles.AllRoles() elif editor.HasAnyRole([Roles.WEBMASTER, Roles.DIRECTOR]): return [Roles.WEBMASTER, Roles.DIRECTOR] else: return []
def TemplateDict(self, user): return { 'c': common.Common(self), 'user': user, 'all_roles': Roles.AllRoles(), 'editing_location_enabled': auth.CanEditLocation(user=user, editor=self.user), 'can_view_roles': auth.CanViewRoles(user=user, viewer=self.user), 'editable_roles': auth.EditableRoles(user=user, editor=self.user), }
def get(self, user_id, role): user = (User.get_by_id(user_id) or User.query(User.wca_person == ndb.Key(Person, user_id))).get() if not user: self.response.write('error: unrecognized user %s' % user_id) self.response.set_status(400) return if role not in Roles.AllRoles(): self.response.write('error: unrecognized role %s' % role) self.response.set_status(400) return if user.HasAnyRole(role): self.response.write('user already had role %s' % role) return user.roles.append(role) user.put() self.response.write('ok')
webapp2.Route( '/async/champions_by_year/<event_id:.*>/<championship_type:.*>/<championship_region:.*>', handler=ChampionsTableHandler), webapp2.Route( '/async/champions_by_region/<event_id:.*>/<championship_type:.*>/<year:\d*>', handler=ChampionsTableHandler), webapp2.Route( '/async/state_rankings/<event_id:.*>/<state_id:.*>/<use_average:\d>', handler=StateRankingsHandler), webapp2.Route( '/async/championship_psych/<championship_id:.*>/<event_id:.*>', handler=ChampionshipPsychAsyncHandler), # Admin webapp2.Route('/admin/edit_users', handler=BasicHandler('admin/edit_users.html', permitted_roles=Roles.AllRoles()), name='admin_edit_users'), webapp2.Route('/admin/upload_document', handler=UploadDocumentHandler, name='upload_document'), webapp2.Route('/admin/delete_document/<document_id:.*>', handler=DeleteDocumentHandler, name='delete_document'), webapp2.Route('/admin/restore_document/<document_id:.*>', handler=RestoreDocumentHandler, name='restore_document'), webapp2.Route('/admin/permanently_delete_documents', handler=PermanentlyDeleteDocumentsHandler), webapp2.Route('/admin/edit_championships', handler=EditChampionshipsHandler, name='edit_championships'),