Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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))
Ejemplo n.º 3
0
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))
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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))
Ejemplo n.º 6
0
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'))
Ejemplo n.º 7
0
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)
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)
Ejemplo n.º 10
0
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))
Ejemplo n.º 11
0
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)
Ejemplo n.º 12
0
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)
Ejemplo n.º 13
0
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)
Ejemplo n.º 14
0
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)
Ejemplo n.º 15
0
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)
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
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)
Ejemplo n.º 18
0
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)
Ejemplo n.º 19
0
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)
Ejemplo n.º 20
0
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)
Ejemplo n.º 21
0
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)
Ejemplo n.º 22
0
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)
Ejemplo n.º 23
0
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)
Ejemplo n.º 24
0
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)
Ejemplo n.º 25
0
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)
Ejemplo n.º 26
0
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))
Ejemplo n.º 27
0
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))