def record_add(self): zonename = self.request.matchdict['zonename'] zonefile = settings.zones[zonename] zone = Zone(zonename, zonefile) schema = Record() form = deform.Form(schema, buttons=('submit', )) response = {"zonename": zonename} response["form"] = form.render() if 'submit' in self.request.POST: controls = self.request.POST.items() try: data = form.validate(controls) except ValidationFailure, e: response['form'] = e.render() return response if not name_is_protected(zonename, data['name']): zone.add_record(**data) response = HTTPFound() response.location = self.request.route_url( 'record', zonename=zonename, recordname=data['name']) return response else: return HTTPForbidden()
def record_edit(self): zonename = self.request.matchdict['zonename'] recordname = self.request.matchdict['recordname'] zonefile = settings.zones[zonename] zone = Zone(zonename, zonefile) protected = name_is_protected(zonename, recordname) response = {"zonename": zonename} if self.request.POST and protected: return HTTPForbidden("You can not modify this domain name") elif protected: response['protected'] = protected response['record'] = zone.get_record(recordname) return response schema = Record() form = deform.Form(schema, buttons=('submit', )) if self.request.POST: controls = self.request.POST.items() try: data = form.validate(controls) except ValidationFailure, e: response['form'] = e.render() return response else: zone.add_record(**data) response = HTTPFound() response.location = self.request.route_url( 'record', zonename=zonename, recordname=data['name'])
def zone_view(self): zonename = self.request.matchdict['zonename'] page = int(self.request.params['page'] ) if 'page' in self.request.params else 0 search = self.request.params[ 'search'] if 'search' in self.request.params else None zonefile = settings.zones[zonename] zone = Zone(zonename, zonefile) if search: records = zone.get_records(name=search) else: records = zone.get_records() entries = [] for record in records: protected = name_is_protected(zonename, record.name) entries.append({'record': record, 'protected': protected}) page_url = PageURL_WebOb(self.request) entries = Page(entries, page, url=page_url) return { "zonename": zonename, "entries": entries, "serial": zone.serial, }
def record_delete(self): zonename = self.request.matchdict['zonename'] recordname = self.request.matchdict['recordname'] zonefile = settings.zones[zonename] zone = Zone(zonename, zonefile) if name_is_protected(zonename, recordname): raise HTTPForbidden("You can not modify this domain name") zone.del_record(recordname) response = HTTPFound() response.location = self.request.route_url('zoneview', zonename=zonename) return response
def zone_view(self): zonename = self.request.matchdict['zonename'] zonefile = settings.zones[zonename] zone = Zone(zonename, zonefile) records = zone.get_records() entries = [] for record in records: protected = name_is_protected(zonename, record.name) entries.append({'record': record, 'protected': protected}) return { "zonename": zonename, "entries": entries, "serial": zone.serial, }