コード例 #1
0
ファイル: routes.py プロジェクト: testingapisname/natlas
def blacklist():
    scope = ScopeItem.getBlacklist()
    blacklistSize = current_app.ScopeManager.get_blacklist_size()
    newForm = forms.NewScopeForm()
    delForm = forms.ScopeDeleteForm()
    editForm = forms.ScopeToggleForm()
    importForm = forms.ImportBlacklistForm()
    addTagForm = forms.TagScopeForm()
    addTagForm.tagname.choices = [(row.name, row.name) for row in Tag.query.all()]
    if newForm.validate_on_submit():
        target = ipaddress.ip_network(newForm.target.data, False)
        newTarget = ScopeItem(target=target.with_prefixlen, blacklist=True)
        db.session.add(newTarget)
        db.session.commit()
        current_app.ScopeManager.update()
        flash(f"{newTarget.target} blacklisted!", "success")
        return redirect(url_for("admin.blacklist"))
    return render_template(
        "admin/blacklist.html",
        scope=scope,
        blacklistSize=blacklistSize,
        delForm=delForm,
        editForm=editForm,
        newForm=newForm,
        importForm=importForm,
        addTagForm=addTagForm,
    )
コード例 #2
0
def scope():
	scope = ScopeItem.get_scope()
	scopeSize = current_app.ScopeManager.get_scope_size()

	# if it's zero, let's make sure the ScopeManager is up to date
	if scopeSize == 0:
		current_app.ScopeManager.update()
		scopeSize = current_app.ScopeManager.get_scope_size()
		# if it's zero again that's fine, we just had to check

	newForm = forms.NewScopeForm()
	delForm = forms.ScopeDeleteForm()
	editForm = forms.ScopeToggleForm()
	importForm = forms.ImportScopeForm()
	addTagForm = forms.TagScopeForm()
	addTagForm.tagname.choices = [(row.name, row.name) for row in Tag.query.all()]
	if newForm.validate_on_submit():
		if '/' not in newForm.target.data:
			newForm.target.data = newForm.target.data + '/32'
		target = ipaddress.ip_network(newForm.target.data, False)
		newTarget = ScopeItem(target=target.with_prefixlen, blacklist=False)
		db.session.add(newTarget)
		db.session.commit()
		current_app.ScopeManager.update()
		flash('%s added!' % newTarget.target, 'success')
		return redirect(url_for('admin.scope'))
	return render_template(
		"admin/scope.html", scope=scope, scopeSize=scopeSize, delForm=delForm,
		editForm=editForm, newForm=newForm, importForm=importForm, addTagForm=addTagForm)
コード例 #3
0
def untagScopeItem(id):
	delTagForm = forms.TagScopeForm()
	scope = ScopeItem.query.get(id)
	delTagForm.tagname.choices = [(row.name, row.name) for row in scope.tags.all()]
	if delTagForm.validate_on_submit():
		mytag = Tag.query.filter_by(name=delTagForm.tagname.data).first()
		scope.delTag(mytag)
		db.session.commit()
		flash("Tag \"%s\" removed from %s" % (mytag.name, scope.target), "success")
	else:
		flash("Form couldn't validate!", 'danger')
	return redirect(request.referrer)
コード例 #4
0
def tagScopeItem(id):
	addTagForm = forms.TagScopeForm()
	addTagForm.tagname.choices = [(row.name, row.name) for row in Tag.query.all()]
	if addTagForm.validate_on_submit():
		scope = ScopeItem.query.get(id)
		mytag = Tag.query.filter_by(name=addTagForm.tagname.data).first()
		scope.addTag(mytag)
		db.session.commit()
		flash("Tag \"%s\" added to %s" % (mytag.name, scope.target), "success")
	else:
		flash("Form couldn't validate!", 'danger')
	return redirect(request.referrer)
コード例 #5
0
ファイル: routes.py プロジェクト: testingapisname/natlas
def untag_scope(scopetype, id):
    if scopetype not in ["scope", "blacklist"]:
        return abort(404)
    delTagForm = forms.TagScopeForm()
    scope = ScopeItem.query.get(id)
    delTagForm.tagname.choices = [(row.name, row.name) for row in scope.tags]
    if delTagForm.validate_on_submit():
        mytag = Tag.query.filter_by(name=delTagForm.tagname.data).first()
        scope.delTag(mytag)
        db.session.commit()
        flash(f'Tag "{mytag.name}" removed from {scope.target}', "success")
    else:
        flash("Form couldn't validate!", "danger")
    return redirects.get_scope_redirect(scopetype)
コード例 #6
0
ファイル: routes.py プロジェクト: willie-lin/natlas
def tag_scope(scopetype, id):
    if scopetype not in ["scope", "blacklist"]:
        return abort(404)
    addTagForm = forms.TagScopeForm()
    addTagForm.tagname.choices = [(row.name, row.name) for row in Tag.query.all()]
    if addTagForm.validate_on_submit():
        scope = ScopeItem.query.get(id)
        mytag = Tag.query.filter_by(name=addTagForm.tagname.data).first()
        scope.addTag(mytag)
        db.session.commit()
        flash(f'Tag "{mytag.name}" added to {scope.target}.', "success")
    else:
        flash("Form couldn't validate!", "danger")
    return redirects.get_scope_redirect(scopetype)
コード例 #7
0
ファイル: routes.py プロジェクト: willie-lin/natlas
def blacklist():
    render = {
        "scope": ScopeItem.getBlacklist(),
        "blacklistSize": current_app.ScopeManager.get_blacklist_size(),
        "effectiveScopeSize": current_app.ScopeManager.get_effective_scope_size(),
        "newForm": forms.NewScopeForm(),
        "delForm": forms.ScopeDeleteForm(),
        "editForm": forms.ScopeToggleForm(),
        "importForm": forms.ImportScopeForm(),
        "addTagForm": forms.TagScopeForm(),
    }
    render["addTagForm"].tagname.choices = [
        (row.name, row.name) for row in Tag.query.all()
    ]
    if render["newForm"].validate_on_submit():
        target = ipaddress.ip_network(render["newForm"].target.data, False)
        newTarget = ScopeItem(target=target.with_prefixlen, blacklist=True)
        db.session.add(newTarget)
        db.session.commit()
        current_app.ScopeManager.update()
        flash(f"{newTarget.target} blacklisted.", "success")
        return redirect(url_for("admin.blacklist"))
    return render_template("admin/blacklist.html", **render)