Ejemplo n.º 1
0
def embed_polycule(polycule_id):
    """ View just a polycule for embedding in an iframe. """
    polycule = Polycule.get(g.db, polycule_id,
                            request.form.get("view_pass", ""))
    if polycule is None:
        return render_template("error.jinja2", error="Polycule not found :(")
    return render_template("embed_polycule.jinja2", graph=polycule.graph)
Ejemplo n.º 2
0
def save_existing_polycule(polycule_id):
    polycule = Polycule.get(g.db, polycule_id, '', force=True)
    polycule.save(
        request.form.get('graph'),
        request.form.get('view_pass'),
        request.form.get('edit_pass'))
    return redirect('/{}'.format(polycule_id))
Ejemplo n.º 3
0
def embed_polycule(polycule_id):
    """ View just a polycule for embedding in an iframe. """
    polycule = Polycule.get(g.db, polycule_id,
                            request.form.get('view_pass', b''))
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    return render_template('embed_polycule.jinja2', graph=polycule.graph)
Ejemplo n.º 4
0
def embed_polycule(polycule_id):
    """ View just a polycule for embedding in an iframe. """
    polycule = Polycule.get(g.db, polycule_id,
                            request.form.get('view_pass', b''))
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    return render_template('embed_polycule.jinja2', graph=polycule.graph)
Ejemplo n.º 5
0
def delete_polycule(polycule_id):
    polycule = Polycule.get(g.db, polycule_id, None, force=True)
    if polycule is None:
        return render_template("error.jinja2", error="Polycule not found :(")
    try:
        polycule.delete(request.form.get("delete_pass", ""))
    except Polycule.PermissionDenied:
        return render_template("view_auth.jinja2", polycule_id=polycule_id)
    return redirect("/")
Ejemplo n.º 6
0
def export_text(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get("view_pass", ""))
    except Polycule.PermissionDenied:
        return render_template("view_auth.jinja2")
    if polycule is None:
        return render_template("error.jinja2", error="Polycule not found :(")
    return Response(polycule.as_text(), mimetype="text/plain")
Ejemplo n.º 7
0
def choose_export(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    return render_template('choose_export.jinja2', polycule=polycule)
Ejemplo n.º 8
0
def delete_polycule(polycule_id):
    polycule = Polycule.get(g.db, polycule_id, None, force=True)
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    try:
        polycule.delete(request.form.get('delete_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2', polycule_id=polycule_id)
    return redirect('/')
Ejemplo n.º 9
0
def delete_polycule(polycule_id):
    polycule = Polycule.get(g.db, polycule_id, None, force=True)
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    try:
        polycule.delete(request.form.get('delete_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2', polycule_id=polycule_id)
    return redirect('/')
Ejemplo n.º 10
0
def choose_export(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    return render_template('choose_export.jinja2', polycule=polycule)
Ejemplo n.º 11
0
def export_text(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    return Response(polycule.as_text(), mimetype='text/plain')
Ejemplo n.º 12
0
def choose_export(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get("view_pass", ""))
    except Polycule.PermissionDenied:
        return render_template("view_auth.jinja2")
    if polycule is None:
        return render_template("error.jinja2", error="Polycule not found :(")
    return render_template("choose_export.jinja2", polycule=polycule)
Ejemplo n.º 13
0
def view_text_only(polycule_id):
    """ View a polycule. """
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get("view_pass", ""))
    except Polycule.PermissionDenied:
        return render_template("view_auth.jinja2")
    if polycule is None:
        return render_template("error.jinja2", error="Polycule not found :(")
    return render_template("text_only.jinja2", content=polycule.as_html())
Ejemplo n.º 14
0
def export_dot(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    labels = request.args.get('link-labels', '') != ''
    return Response(polycule.as_dot(edge_labels=labels), mimetype='text/plain')
Ejemplo n.º 15
0
def save_existing_polycule():
    polycule = Polycule.get(g.db, session["currently_editing"], "", force=True)
    polycule.save(
        request.form.get("graph"),
        request.form.get("view_pass"),
        request.form.get("edit_pass"),
        remove_view_pass=request.form.get("remove_view_pass"),
        remove_edit_pass=request.form.get("remove_edit_pass"),
    )
    return redirect("/{}".format(session.pop("currently_editing")))
Ejemplo n.º 16
0
def edit_polycule(polycule_id):
    # Force, as we're relying on edit pass instead of view pass
    polycule = Polycule.get(g.db, polycule_id, '', force=True)
    try:
        polycule.can_save(request.form.get('edit_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('edit_auth.jinja2')
    return render_template('edit_polycule.jinja2',
                           polycule_id=polycule_id,
                           graph=polycule.graph)
Ejemplo n.º 17
0
def view_text_only(polycule_id):
    """ View a polycule. """
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    return render_template('text_only.jinja2', content=polycule.as_html())
Ejemplo n.º 18
0
def export_dot(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get("view_pass", ""))
    except Polycule.PermissionDenied:
        return render_template("view_auth.jinja2")
    if polycule is None:
        return render_template("error.jinja2", error="Polycule not found :(")
    labels = request.args.get("link-labels", "") != ""
    return Response(polycule.as_dot(edge_labels=labels), mimetype="text/plain")
Ejemplo n.º 19
0
def export_dot(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    labels = request.args.get('link-labels', '') != ''
    return Response(polycule.as_dot(edge_labels=labels), mimetype='text/plain')
Ejemplo n.º 20
0
def save_new_polycule():
    """ Save a created polycule. """
    try:
        polycule = Polycule.create(g.db, request.form['graph'],
                                   request.form.get('view_pass', b''),
                                   request.form.get('edit_pass', b''))
    except Polycule.IdenticalGraph:
        return render_template('error.jinja2',
                               error='An identical polycule '
                               'to the one you submitted already exists!')
    return redirect('/{}'.format(polycule.graph_hash))
Ejemplo n.º 21
0
def inherit_polycule(polycule_id):
    """
    Take a given polycule and enter create mode, with that polycule's contents
    already in place
    """
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    return render_template('create_polycule.jinja2', inherited=polycule.graph)
Ejemplo n.º 22
0
def inherit_polycule(polycule_id):
    """
    Take a given polycule and enter create mode, with that polycule's contents
    already in place
    """
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    return render_template('create_polycule.jinja2', inherited=polycule.graph)
Ejemplo n.º 23
0
def export_svg(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get("view_pass", ""))
    except Polycule.PermissionDenied:
        return render_template("view_auth.jinja2")
    if polycule is None:
        return render_template("error.jinja2", error="Polycule not found :(")
    labels = request.args.get("link-labels", "") != ""
    style = request.args.get("style", "") != ""
    embed = request.args.get("embed", "") != ""
    return Response(
        polycule.as_svg(edge_labels=labels, include_style=style, embed=embed),
        mimetype="image/svg+xml",
    )
Ejemplo n.º 24
0
def export_svg(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    labels = request.args.get('link-labels', '') != ''
    style = request.args.get('style', '') != ''
    embed = request.args.get('embed', '') != ''
    return Response(polycule.as_svg(edge_labels=labels,
                                    include_style=style,
                                    embed=embed),
                    mimetype='image/svg+xml')
Ejemplo n.º 25
0
def export_svg(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    labels = request.args.get('link-labels', '') != ''
    style = request.args.get('style', '') != ''
    embed = request.args.get('embed', '') != ''
    return Response(polycule.as_svg(
        edge_labels=labels,
        include_style=style,
        embed=embed), mimetype='image/svg+xml')
Ejemplo n.º 26
0
def edit_polycule(polycule_id):
    # Force, as we're relying on edit pass instead of view pass
    polycule = Polycule.get(g.db, polycule_id, '', force=True)
    if request.method == 'GET':
        return render_template('edit_auth.jinja2')
    try:
        polycule.can_save(request.form.get('edit_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('edit_auth.jinja2')
    except Polycule.NoPassword:
        return render_template(
            'error.jinja2',
            error='This polycule has no password and thus cannot be edited :(')
    return render_template('edit_polycule.jinja2',
                           polycule_id=polycule_id,
                           graph=polycule.graph)
Ejemplo n.º 27
0
def edit_polycule(polycule_id):
    # Force, as we're relying on edit pass instead of view pass
    polycule = Polycule.get(g.db, polycule_id, '', force=True)
    if request.method == 'GET':
        return render_template('edit_auth.jinja2')
    try:
        polycule.can_save(request.form.get('edit_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('edit_auth.jinja2')
    except Polycule.NoPassword:
        return render_template(
            'error.jinja2',
            error='This polycule has no password and thus cannot be edited :(')
    return render_template('edit_polycule.jinja2',
                           polycule_id=polycule_id,
                           graph=polycule.graph)
Ejemplo n.º 28
0
def save_new_polycule():
    """ Save a created polycule. """
    try:
        with open('schema.json') as json_data:
            schema = json.load(json_data)
        validate(json.loads(request.form['graph']), schema)
    except Exception:
        return render_template('error.jinja2',
                               error='The submitted graph could not be parsed')
    try:
        polycule = Polycule.create(g.db, request.form['graph'],
                                   request.form.get('view_pass', b''),
                                   request.form.get('edit_pass', b''))
    except Polycule.IdenticalGraph:
        return render_template('error.jinja2',
                               error='An identical polycule '
                               'to the one you submitted already exists!')
    return redirect('/{}'.format(polycule.graph_hash))
Ejemplo n.º 29
0
def edit_polycule(polycule_id):
    # Force, as we're relying on edit pass instead of view pass
    polycule = Polycule.get(g.db, polycule_id, "", force=True)
    if request.method == "GET":
        return render_template("edit_auth.jinja2")
    try:
        polycule.can_save(request.form.get("edit_pass", ""))
    except Polycule.PermissionDenied:
        return render_template("edit_auth.jinja2")
    except Polycule.NoPassword:
        return render_template(
            "error.jinja2",
            error="This polycule has no password and thus cannot be edited :(",
        )
    session["currently_editing"] = polycule_id
    return render_template("edit_polycule.jinja2",
                           polycule_id=polycule_id,
                           graph=polycule.graph)
Ejemplo n.º 30
0
def save_new_polycule():
    """ Save a created polycule. """
    try:
        with open('schema.json') as json_data:
            schema = json.load(json_data)
        validate(json.loads(request.form['graph']), schema)
    except Exception:
        return render_template('error.jinja2',
                               error='The submitted graph could not be parsed')
    try:
        polycule = Polycule.create(
            g.db,
            request.form['graph'],
            request.form.get('view_pass', b''),
            request.form.get('edit_pass', b''))
    except Polycule.IdenticalGraph:
        return render_template('error.jinja2', error='An identical polycule '
                               'to the one you submitted already exists!')
    return redirect('/{}'.format(polycule.graph_hash))
Ejemplo n.º 31
0
def export_png(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    labels = request.args.get('link-labels', '') != ''
    source = request.args.get('from', 'dot')
    if source == 'dot':
        png = polycule.as_png_from_dot(edge_labels=labels)
    elif source == 'svg':
        style = request.args.get('style', '') != ''
        embed = request.args.get('embed', '') != ''
        png = polycule.as_png_from_svg(edge_labels=labels,
                                       include_style=style,
                                       embed=embed)
    return Response(png, mimetype='image/png')
Ejemplo n.º 32
0
def export_png(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get("view_pass", ""))
    except Polycule.PermissionDenied:
        return render_template("view_auth.jinja2")
    if polycule is None:
        return render_template("error.jinja2", error="Polycule not found :(")
    labels = request.args.get("link-labels", "") != ""
    source = request.args.get("from", "dot")
    if source == "dot":
        png = polycule.as_png_from_dot(edge_labels=labels)
    elif source == "svg":
        style = request.args.get("style", "") != ""
        embed = request.args.get("embed", "") != ""
        png = polycule.as_png_from_svg(edge_labels=labels,
                                       include_style=style,
                                       embed=embed)
    return Response(png, mimetype="image/png")
Ejemplo n.º 33
0
def export_png(polycule_id):
    try:
        polycule = Polycule.get(g.db, polycule_id,
                                request.form.get('view_pass', b''))
    except Polycule.PermissionDenied:
        return render_template('view_auth.jinja2')
    if polycule is None:
        return render_template('error.jinja2', error='Polycule not found :(')
    labels = request.args.get('link-labels', '') != ''
    source = request.args.get('from', 'dot')
    if source == 'dot':
        png = polycule.as_png_from_dot(edge_labels=labels)
    elif source == 'svg':
        style = request.args.get('style', '') != ''
        embed = request.args.get('embed', '') != ''
        png = polycule.as_png_from_svg(
            edge_labels=labels,
            include_style=style,
            embed=embed)
    return Response(png, mimetype='image/png')
Ejemplo n.º 34
0
def save_new_polycule():
    """ Save a created polycule. """
    try:
        with open("schema.json") as json_data:
            schema = json.load(json_data)
        validate(json.loads(request.form["graph"]), schema)
    except Exception:
        return render_template("error.jinja2",
                               error="The submitted graph could not be parsed")
    try:
        polycule = Polycule.create(
            g.db,
            request.form["graph"],
            request.form.get("view_pass", ""),
            request.form.get("edit_pass", ""),
        )
    except Polycule.IdenticalGraph:
        return render_template(
            "error.jinja2",
            error="An identical polycule "
            "to the one you submitted already exists!",
        )
    return redirect("/{}".format(polycule.graph_hash))
Ejemplo n.º 35
0
from six.moves import input
import sys

from model import Polycule
import polycules

db = polycules.connect_db()

id = input('Enter the ID of the polycule to delete > ')
polycule = Polycule.get(db, int(id), None, force=True)
if polycule is None:
    print('\nNo polycule with that ID found.')
    db.close()
    sys.exit(1)

if polycule.delete_pass is not None:
    confirm = input('\nPolycule has a delete password, are you sure? [y/n] > ')
    if confirm[0].lower() != 'y':
        print('\nOkay, exiting without deleting.')
        db.close()
        sys.exit(1)

confirm = input('\nAre you sure you want to delete {}? [y/n] > '.format(id))
if confirm[0].lower() == 'y':
    print('\nDeleting {}...'.format(id))
    polycule.delete(None, force=True)
    print('Polycule deleted.')
db.close()
Ejemplo n.º 36
0
from six.moves import input
import sys

from model import Polycule
import polycules


db = polycules.connect_db()

id = input('Enter the ID of the polycule to delete > ')
polycule = Polycule.get(db, int(id), None, force=True)
if polycule is None:
    print('\nNo polycule with that ID found.')
    db.close()
    sys.exit(1)

if polycule.delete_pass is not None:
    confirm = input(
        '\nPolycule has a delete password, are you sure? [y/n] > ')
    if confirm[0].lower() != 'y':
        print('\nOkay, exiting without deleting.')
        db.close()
        sys.exit(1)

confirm = input(
    '\nAre you sure you want to delete {}? [y/n] > '.format(id))
if confirm[0].lower() == 'y':
    print('\nDeleting {}...'.format(id))
    polycule.delete(None, force=True)
    print('Polycule deleted.')
db.close()
Ejemplo n.º 37
0
def save_existing_polycule(polycule_id):
    polycule = Polycule.get(g.db, polycule_id, '', force=True)
    polycule.save(request.form.get('graph'), request.form.get('view_pass'),
                  request.form.get('edit_pass'))
    return redirect('/{}'.format(polycule_id))