Exemple #1
0
    def record_add(self):
        zonename = self.request.matchdict['zonename']
        zonefile = settings.zones[zonename]
        zone = Zone(zonename, zonefile)

        schema = Record(validator=record_validator)
        form = deform.Form(schema, buttons=('submit',))

        response = {"zonename": zonename,
                    "recordname": "new"}
        response["form"] = form.render()

        if 'submit' in self.request.POST:
            controls = self.request.POST.items()
            try:
                data = form.validate(controls)
            except deform.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()
Exemple #2
0
    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,
                    "recordname": recordname}

        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(validator=record_validator)
        form = deform.Form(schema, buttons=('submit',))

        if self.request.POST:
            controls = self.request.POST.items()
            try:
                data = form.validate(controls)
            except deform.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'])
                return response
Exemple #3
0
    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,
                }
Exemple #4
0
    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()
Exemple #5
0
    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'])
Exemple #6
0
    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,
        }
Exemple #7
0
    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
Exemple #8
0
    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
Exemple #9
0
    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,
                }
Exemple #10
0
    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,
        }