def record_new_process(domain): form = RecordMXForm(request.form) domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) if not form.validate(): return render_template('domain_mx/new.html', domain=domain, form=form) try: mx_record = RecordMX(domain=domain, name=form.name.data or None, target=form.target.data, preference=form.preference.data) with g.session.begin(): mx_record.update() g.session.add(mx_record) except ValueError as e: form.name.errors.append(e) return render_template('domain_mx/new.html', domain=domain, form=form) return redirect(url_for('domain_mx.record_list', domain=domain.name))
def record_new_process(domain): form = RecordAForm(request.form) domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) if not form.validate(): return render_template('domain_a/new.html', domain=domain, form=form) try: a_record = RecordA(domain=domain, name=form.name.data or None, ip=form.ip.data, memo=form.memo.data) with g.session.begin(): a_record.update() g.session.add(a_record) except ValueError as e: form.name.errors.append(e) return render_template('domain_a/new.html', domain=domain, form=form) return redirect(url_for('domain_a.record_list', domain=domain.name))
def record_edit_process(domain, record_id): form = RecordMXForm(request.form) domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) record = g.session.query(RecordMX).filter(RecordMX.id == record_id)\ .filter(RecordMX.domain == domain)\ .first() if not record: return redirect(url_for('domain_mx.record_list', domain=domain.name)) form.name.data = record.name if not form.validate(): return render_template('domain_mx/edit.html', domain=domain, form=form) record.target = form.target.data record.preference = form.preference.data with g.session.begin(): record.update() g.session.add(record) return redirect(url_for('domain_mx.record_list', domain=domain.name))
def domain_delete(domain): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) return render_template('domain_del.html', domain=domain)
def record_edit_process(domain, record_id): form = RecordAForm(request.form) domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) record = g.session.query(RecordA).filter(RecordA.id == record_id)\ .filter(RecordA.domain == domain)\ .first() if not record: return redirect(url_for('domain_a.record_list', domain=domain.name)) form.name.data = record.name if not form.validate(): return render_template('domain_a/edit.html', domain=domain, form=form) record.ip = form.ip.data record.memo = form.memo.data with g.session.begin(): record.update() g.session.add(record) return redirect(url_for('domain_a.record_list', domain=domain.name))
def domain_delete_process(domain): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) ownership = g.session.query(DomainOwnership)\ .filter(DomainOwnership.user == get_user())\ .filter(DomainOwnership.domain == domain).first() errors = [] if domain.records: errors.append('records') if ownership.master: subdomain_num = g.session.query(Domain)\ .filter(Domain.parent.contains(domain)).count() subdomain_sharing = g.session.query(SubdomainSharing)\ .filter(SubdomainSharing.domain == domain)\ .count() if subdomain_num != 0 or subdomain_sharing != 0: errors.append('subdomains') if errors: return render_template('domain_del.html', domain=domain, errors=errors) with g.session.begin(): g.session.delete(ownership) g.session.delete(domain) return redirect(url_for('domain.index'))
def record_new(domain): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) form = RecordDDNSForm(ip=request.remote_addr) return render_template('domain_ddns/new.html', domain=domain, form=form)
def record_new(domain): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) form = RecordCNAMEForm() return render_template('domain_cname/new.html', domain=domain, form=form)
def ticket_new_process(domain): form = SubdomainForm(request.form) domain = get_domain(domain, True) if not domain: return redirect(url_for('domain.index')) if not form.validate(): return render_template('domain_subdomain/new.html', domain=domain, form=form) if form.email.data == get_user().email: form.email.errors.append('Email error') return render_template('domain_subdomain/new.html', domain=domain, form=form) ticket_num = g.session.query(SubdomainSharing)\ .filter(SubdomainSharing.domain == domain)\ .filter(SubdomainSharing.name == form.name.data)\ .count() if ticket_num: form.name.errors.append('Duplicate subdomain.') return render_template('domain_subdomain/new.html', domain=domain, form=form) domain_num = g.session.query(Domain)\ .filter(Domain.name == form.name.data + '.' + domain.name)\ .count() if domain_num: form.name.errors.append('Duplicate subdomain.') return render_template('domain_subdomain/new.html', domain=domain, form=form) try: ticket = SubdomainSharing(domain=domain, name=form.name.data, email=form.email.data) with g.session.begin(): g.session.add(ticket) except ValueError as e: form.name.errors.append(e) return render_template('domain_subdomain/new.html', domain=domain, form=form) return redirect( url_for('domain_subdomain.subdomain_info', domain=domain.name))
def ticket_new(domain): domain = get_domain(domain, True) if not domain: return redirect(url_for('domain.index')) form = SubdomainForm() return render_template('domain_subdomain/new.html', domain=domain, form=form)
def record_new(domain): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) form = RecordAForm(ip=request.remote_addr) return render_template('domain_a/new.html', domain=domain, form=form)
def record_edit(domain, record_id): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) record = g.session.query(RecordAAAA).filter(RecordAAAA.id == record_id)\ .filter(RecordAAAA.domain == domain)\ .first() if not record: return redirect(url_for('domain_aaaa.record_list', domain=domain.name)) form = RecordAAAAForm(name=record.name, ip=record.ip, memo=record.memo) return render_template('domain_aaaa/edit.html', domain=domain, form=form)
def record_list(domain): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) records = g.session.query(RecordA).filter(RecordA.domain == domain)\ .order_by(RecordA.name).all() if not records: return redirect(url_for('domain_a.record_new', domain=domain.name)) return render_template('domain_a/list.html', domain=domain, records=records)
def record_edit(domain, record_id): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) record = g.session.query(RecordTXT).filter(RecordTXT.id == record_id)\ .filter(RecordTXT.domain == domain)\ .first() if not record: return redirect(url_for('domain_txt.record_list', domain=domain.name)) form = RecordTXTForm(name=record.name, txt=record.txt) return render_template('domain_txt/edit.html', domain=domain, form=form)
def record_edit(domain, record_id): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) record = g.session.query(RecordA).filter(RecordA.id == record_id)\ .filter(RecordA.domain == domain)\ .first() if not record: return redirect(url_for('domain_a.record_list', domain=domain.name)) form = RecordAForm(name=record.name, ip=record.ip, memo=record.memo) return render_template('domain_a/edit.html', domain=domain, form=form)
def record_list(domain): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) records = g.session.query(RecordMX).filter(RecordMX.domain == domain)\ .all() records = sorted(records, key=lambda record: record.preference) if not records: return redirect(url_for('domain_mx.record_new', domain=domain.name)) return render_template('domain_mx/list.html', domain=domain, records=records)
def subdomain_info(domain): domain = get_domain(domain, True) if not domain: return redirect(url_for('domain.index')) tickets = g.session.query(SubdomainSharing)\ .filter(SubdomainSharing.domain == domain)\ .all() subdomains = g.session.query(Domain)\ .filter(Domain.parent_id == domain.id)\ .all() return render_template('domain_subdomain/info.html', domain=domain, subdomains=subdomains, tickets=tickets)
def record_edit(domain, record_id): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) record = g.session.query(RecordCNAME).filter(RecordCNAME.id == record_id)\ .filter(RecordCNAME.domain == domain)\ .first() if not record: return redirect( url_for('domain_cname.record_list', domain=domain.domain)) form = RecordCNAMEForm(name=record.name, target=record.target, memo=record.memo) return render_template('domain_cname/edit.html', domain=domain, form=form)
def record_edit(domain, record_id): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) record = g.session.query(RecordMX).filter(RecordMX.id == record_id)\ .filter(RecordMX.domain == domain)\ .first() if not record: return redirect(url_for('domain_mx.record_list', domain=domain.domain)) form = RecordMXForm(name=record.name, target=record.target, preference=record.preference) return render_template('domain_mx/edit.html', domain=domain, form=form)
def record_delete(domain, record_id): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) record = g.session.query(RecordA).filter(RecordA.id == record_id)\ .filter(RecordA.domain == domain)\ .first() if not record: return redirect(url_for('domain_a.record_list', domain=domain.name)) if request.method == 'POST': with g.session.begin(): record.domain.update() g.session.add(record.domain) g.session.delete(record) return redirect(url_for('domain_a.record_list', domain=domain.name)) return render_template('domain_a/del.html', domain=domain, record=record)
def record_edit(domain, record_id): domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) record = g.session.query(RecordCNAME).filter(RecordCNAME.id == record_id)\ .filter(RecordCNAME.domain == domain)\ .first() if not record: return redirect(url_for('domain_cname.record_list', domain=domain.domain)) form = RecordCNAMEForm(name=record.name, target=record.target, memo=record.memo) return render_template('domain_cname/edit.html', domain=domain, form=form)
def ticket_delete(domain, ticket_id): domain = get_domain(domain, True) if not domain: return redirect(url_for('domain.index')) ticket = g.session.query(SubdomainSharing)\ .filter(SubdomainSharing.id == ticket_id)\ .filter(SubdomainSharing.domain == domain)\ .first() if not ticket: return redirect( url_for('domain_subdomain.subdomain_info', domain=domain.name)) if request.method == 'POST': with g.session.begin(): g.session.delete(ticket) return redirect( url_for('domain_subdomain.subdomain_info', domain=domain.name)) return render_template('domain_subdomain/del.html', domain=domain, ticket=ticket)
def subdomain_delete(domain, subdomain_id): domain = get_domain(domain, True) if not domain: return redirect(url_for('domain.index')) subdomain = g.session.query(Domain)\ .filter(Domain.id == subdomain_id)\ .filter(Domain.parent == domain)\ .first() if not subdomain: return redirect( url_for('domain_subdomain.subdomain_info', domain=domain.name)) if request.method == 'POST': with g.session.begin(): g.session.delete(subdomain) return redirect( url_for('domain_subdomain.subdomain_info', domain=domain.name)) return render_template('domain_subdomain/del.html', domain=domain, subdomain=subdomain)
def record_new_process(domain): form = RecordCNAMEForm(request.form) domain = get_domain(domain) if not domain: return redirect(url_for('domain.index')) if not form.validate(): return render_template('domain_cname/new.html', domain=domain, form=form) record = g.session.query(RecordCNAME)\ .filter(RecordCNAME.domain == domain)\ .filter(RecordCNAME.name.like(form.name.data)).first() if record: form.name.errors.append('Already exists.') return render_template('domain_cname/new.html', domain=domain, form=form) try: cname_record = RecordCNAME(domain=domain, name=form.name.data or None, target=form.target.data, memo=form.memo.data) with g.session.begin(): cname_record.update() g.session.add(cname_record) except ValueError as e: form.name.errors.append(e) return render_template('domain_cname/new.html', domain=domain, form=form) return redirect(url_for('domain_cname.record_list', domain=domain.name))