Esempio n. 1
0
def create_record():
    if request.method == 'GET':
        sub_domains = Domain.get_all()
        return render_template('create_record.html', sub_domains=sub_domains)

    name = request.form.get('name', default='').strip()
    subname = request.form.get('subname', default='').strip()
    host_or_ip = request.form.get('host', default='').strip()
    comment = request.form.get('comment', default='').strip()

    if len(name) < 5 and not g.user.is_admin():
        flash(u'域名长度必须大于5', 'error')
        return redirect(url_for('record.create_record'))
    if '.' in name:
        flash(u'域名不能包含"."', 'error')
        return redirect(url_for('record.create_record'))
    if not Domain.get_by_name(subname):
        flash(u'不正确的子域名', 'error')
        return redirect(url_for('record.create_record'))
    domain = '%s.%s' % (name, subname)

    r = Record.get_by_domain(domain)
    if r:
        if r.can_do(g.user):
            flash(u'域名已经存在, 可以编辑', 'info')
            return redirect(url_for('record.edit_record', record_id=r.id))
        abort(403)

    r = Record.create(g.user, name, domain, host_or_ip, comment)
    if not r:
        flash(u'创建失败', 'error')
        return redirect(url_for('record.create_record'))
    return redirect(url_for('record.get_record', record_id=r.id))
Esempio n. 2
0
def create():
    if request.method == 'GET':
        return render_template('admin_record_create.html')
    name = request.form.get('name', default='').strip()
    host_or_ip = request.form.get('host', default='').strip()

    if len(name) < 3:
        flash(u'域名长度必须大于3', 'error')
        return redirect(url_for('admin_record.create'))
    if '.' in name:
        flash(u'域名不能包含"."', 'error')
        return redirect(url_for('admin_record.create'))

    domain = '{0}.hunantv.com'.format(name)

    r = Record.get_by_domain(domain)
    if r:
        flash(u'域名已经存在, 可以编辑', 'info')
        return redirect(url_for('record.edit_record', record_id=r.id))

    r = Record.create(g.user, name, domain, host_or_ip)
    if not r:
        flash(u'创建失败', 'error')
        return redirect(url_for('admin_record.create'))
    return redirect(url_for('record.get_record', record_id=r.id))
Esempio n. 3
0
def create_record():
    name = request.form.get('name', default='').strip()
    host_or_ip = request.form.get('host', default='').strip()

    # 给跪了, 不是admin就判断subname什么的
    if not g.user.is_admin():
        subname = request.form.get('subname', default='').strip()
        if len(name) < 5 and not g.user.is_admin():
            abort(400, u'域名长度必须大于5')
        if '.' in name:
            abort(400, u'域名不能包含"."')
        if subname not in sub_domains:
            abort(400, u'不正确的子域名')
        domain = name + '.' + subname + '.hunantv.com'
    # 是admin就很暴力了...
    else:
        if name.startswith('.') or name.endswith('.'):
            abort(400, u'域名不能以"."开始或者结束, 并不是dnspod啊  ( ̄▽ ̄")')
        domain = name + '.hunantv.com'

    r = Record.get_by_domain(domain)
    if r:
        abort(400, u'记录已经存在, 你可以尝试编辑')

    r = Record.create(g.user, name, domain, host_or_ip)
    if not r:
        abort(400, u'创建失败, 别问我为什么是400... o( ̄ヘ ̄*o)')
    return {'r': 0, 'message': 'ok', 'data': r}
Esempio n. 4
0
def delete_record(record_id):
    record = Record.get(record_id)
    if not record:
        abort(404)
    if not record.can_do(g.user):
        abort(403)
    record.delete()
    return redirect(url_for('record.list_all_records'))
Esempio n. 5
0
def delete_record(record_id):
    record = Record.get(record_id)
    if not record:
        abort(404, u'没有找到记录')
    if not record.can_do(g.user):
        abort(403, u'没有权限编辑这个记录')
    record.delete()
    return {'r': 0, 'message': 'ok', 'data': None}
Esempio n. 6
0
def edit_record(record_id):
    record = Record.get(record_id)
    cidrs = CIDR.query.all()
    if not record:
        abort(404)
    if not record.can_do(g.user):
        abort(403)
    return render_template('edit_record.html', record=record, cidrs=cidrs)
Esempio n. 7
0
def edit_record(record_id):
    record = Record.get(record_id)
    if not record:
        abort(400, u'没有找到记录')
    if not record.can_do(g.user):
        abort(403, u'没有权限编辑这个记录')

    host_or_ip = request.form.get('host', default='').strip()
    if not host_or_ip:
        abort(400, u'必须填写一个host')

    record.edit(host_or_ip)
    return {'r': 0, 'message': 'ok', 'data': record}
Esempio n. 8
0
def create_record():
    if request.method == 'GET':
        return render_template('admin_record.html')

    domain = request.form.get('name', default='').strip()
    host_or_ip = request.form.get('host', default='').strip()
    comment = request.form.get('comment', default='').strip()

    if domain.startswith('.') or domain.endswith('.'):
        flash(u'域名不能以"."开始或者结束, 并不是dnspod啊 ( ̄▽ ̄")', 'error')
        return redirect(url_for('admin.create_record'))

    r = Record.get_by_domain(domain)
    if r:
        flash(u'域名已经存在, 可以编辑', 'info')
        return redirect(url_for('record.edit_record', record_id=r.id))

    r = Record.create(g.user, domain, domain, host_or_ip, comment)
    if not r:
        flash(u'创建失败', 'error')
        return redirect(url_for('admin.create_record'))

    return redirect(url_for('record.get_record', record_id=r.id))
Esempio n. 9
0
def add_host_to_record(record_id):
    record = Record.get(record_id)
    if not record:
        abort(404)
    if not record.can_do(g.user):
        abort(403)
    cidr = request.form.get('cidr', default='').strip()
    host_or_ip = request.form.get('host', default='').strip()
    if not host_or_ip:
        flash(u'必须填写一个host', 'error')
        return redirect(url_for('record.edit_record', record_id=record.id))
    if not cidr:
        flash(u'Where is CIDR???', 'error')
        return redirect(url_for('record.edit_record', record_id=record.id))
    record.add_host(cidr, host_or_ip)
    return redirect(url_for('record.get_record', record_id=record.id))
Esempio n. 10
0
def query_record():
    query = request.args.get('q', default='')
    r = Record.get_by_name(query)
    if not r:
        abort(404)
    return render_template('record.html', record=r)
Esempio n. 11
0
def get_record(record_id):
    record = Record.get(record_id)
    if not record:
        abort(404)
    comments = record.get_comments()
    return render_template('record.html', record=record, comments=comments)
Esempio n. 12
0
def list_all_records():
    records, total = Record.list_records(g.start, g.limit)
    return render_template('list_records.html', records=records,
            total=total, endpoint='record.list_all_records')
Esempio n. 13
0
def query_record():
    query = request.args.get('q', default='')
    r = Record.get_by_name(query)
    if not r:
        abort(404, u'没有找到记录')
    return {'r': 0, 'message': 'ok', 'data': r}
Esempio n. 14
0
def get_record(record_id):
    record = Record.get(record_id)
    if not record:
        abort(400, u'没有找到记录')
    return {'r': 0, 'message': 'ok', 'data': record}
Esempio n. 15
0
def list_all_records():
    records, _ = Record.list_records(g.start, g.limit)
    return {'r': 0, 'message': 'ok', 'data': records}
Esempio n. 16
0
def get_record(record_id):
    record = Record.get(record_id)
    if not record:
        abort(404)
    return render_template('record.html', record=record)