# -*- coding: utf-8; -*- """ Person views """ from tailbone.views import people as base from tailbone_corepos.views import people as corepos_base from tailbone.config import protected_usernames class PersonView(corepos_base.PersonView): """ Prevent edit/delete for Chuck Norris """ def __init__(self, request, **kwargs): super(PersonView, self).__init__(request, **kwargs) self.protected_usernames = protected_usernames(self.rattail_config) def is_person_protected(self, person): if self.protected_usernames: for user in person.users: if user.username in self.protected_usernames: return True return False def editable_instance(self, person): if self.request.is_root: return True return not self.is_person_protected(person) def deletable_instance(self, person): if self.request.is_root: return True return not self.is_person_protected(person) def includeme(config): # autocomplete config.add_route('people.autocomplete', '/people/autocomplete') config.add_view(base.PeopleAutocomplete, route_name='people.autocomplete', renderer='json', permission='people.list') PersonView.defaults(config) base.PersonNoteView.defaults(config)