# Copyright 2018, National Technology & Engineering Solutions of Sandia, LLC
# (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S.
# Government retains certain rights in this software.
import os
import flask
from samlab.dashboard.server import application, socketio, require_auth, require_permissions
[docs]@application.route("/")
@require_auth
def get_index():
require_permissions(["read"])
path = os.path.abspath(os.path.join(os.path.dirname(os.path.realpath(__file__)), "..", "static", "index.html"))
return flask.send_file(path)
[docs]@application.route("/identity")
@require_auth
def get_identity():
username = "unknown"
if hasattr(flask.request.authorization, "username"):
username = flask.request.authorization.username
return flask.jsonify(username=username)
[docs]@application.route("/permissions")
@require_auth
def get_permissions():
permissions = {
"delete": application.config["acl"](flask.request.authorization, ["delete"]),
"developer": application.config["acl"](flask.request.authorization, ["developer"]),
"read": application.config["acl"](flask.request.authorization, ["read"]),
"write": application.config["acl"](flask.request.authorization, ["write"]),
}
return flask.jsonify(permissions=permissions)
[docs]@application.route("/ready")
@require_auth
def get_ready():
require_permissions(["read"])
return flask.jsonify(ready=True)
[docs]@application.route("/server")
@require_auth
def get_server():
require_permissions(["read"])
return flask.jsonify(server={"name": application.config["server-name"], "description": application.config["server-description"]})