Source code for server.functions

# from urllib.parse import urlparse, urljoin
# from flask import request, jsonify

from . import db
from .models import User, Device, Experiment, Session, Usergroup


# This probably is not needed anymore since we abandoned Flask Login and redirects.
# def is_safe_url(target):
#     """
#     Protects users from getting maliciously redirected away.
#     """
#     ref_url = urlparse(request.host_url)
#     test_url = urlparse(urljoin(request.host_url, target))
#     return test_url.scheme in ('http', 'https') and ref_url.netloc == test_url.netloc


[docs] def submit_user(username, password, role, email, replace_user=None): if replace_user: # password is not modified user = replace_user user.modify(username=username, role=role, email=email) else: user = User(username=username, role=role, email=email) user.set_password(password) db.session.add(user) db.session.commit() return user
[docs] def submit_device(name, password, ipv4, replace_device=None): if replace_device: # password is not modified device = replace_device device.modify(name=name, ipv4=ipv4) else: device = Device(name=name, ipv4=ipv4) device.set_password(password) db.session.add(device) db.session.commit() return device
[docs] def submit_experiment(name, devices, replace=None): if replace: exper = replace exper.modify(name=name, devices=devices) else: exper = Experiment(name=name, devices=devices) db.session.add(exper) db.session.commit() return exper
[docs] def submit_session(name, begin, end, experiment, users, replace=None): if replace: session = replace session.modify(name=name, begin=begin, end=end, experiment=experiment, users=users) else: session = Session(name=name, begin=begin, end=end, experiment=experiment, users=users) db.session.add(session) db.session.commit() return session
[docs] def submit_usergroup(name, users, description, style_json, replace=None): if replace: record = replace record.modify(name=name, users=users, description=description, style_json=style_json) else: record = Usergroup(name=name, users=users, description=description, style_json=style_json) db.session.add(record) db.session.commit() return record