aboutsummaryrefslogtreecommitdiff
path: root/trigger.py
diff options
context:
space:
mode:
authorJonathan Weth <git@jonathanweth.de>2021-06-23 12:33:28 +0200
committerJonathan Weth <git@jonathanweth.de>2021-06-23 12:33:28 +0200
commited1d15aa02b3c7c1350a5204861d1f8678550fbb (patch)
tree51d4aa7cdee4f90b5f2c3a4188cb80519dd2342d /trigger.py
parent74e02d1953c1ee03a4e7dfc73e80318a24ba56a7 (diff)
downloadRWA.Support.SessionService-ed1d15aa02b3c7c1350a5204861d1f8678550fbb.tar.gz
RWA.Support.SessionService-ed1d15aa02b3c7c1350a5204861d1f8678550fbb.tar.bz2
RWA.Support.SessionService-ed1d15aa02b3c7c1350a5204861d1f8678550fbb.zip
Restructure project directory and provide script for session service
Diffstat (limited to 'trigger.py')
-rw-r--r--trigger.py80
1 files changed, 0 insertions, 80 deletions
diff --git a/trigger.py b/trigger.py
deleted file mode 100644
index fa9734a..0000000
--- a/trigger.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# This file is part of Remote Support Desktop
-# https://gitlab.das-netzwerkteam.de/RemoteWebApp/rwa.support.sessionservice
-# Copyright 2020, 2021 Jonathan Weth <dev@jonathanweth.de>
-# Copyright 2020 Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de>
-# Copyright 2020 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
-# SPDX-License-Identifier: GPL-2.0-or-later
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the
-# Free Software Foundation, Inc.,
-# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-import threading
-from typing import Any, Callable, Optional, Union
-from wsgiref.simple_server import make_server
-
-import port_for
-from flask import Flask, abort, request, jsonify
-
-
-class TriggerServerThread(threading.Thread):
- """Simple Flask server (wrapped as thread) for triggering actions on sessions."""
-
- def __init__(self, trigger_method: Callable[[int, dict, Optional[str]], Union[dict, bool]]):
- super().__init__()
- self.port = port_for.select_random()
-
- app = Flask(__name__)
-
- @app.route("/", methods=["POST"])
- def trigger():
- json = request.json
- token = json.get("token", "")
- try:
- session_id = int(json.get("session_id"))
- r = trigger_method(session_id, {"token": token}, "trigger")
- if r:
- return "Successful triggered"
- else:
- return abort(403)
- except (ValueError, TypeError):
- return abort(404)
-
- @app.route("/authenticate/", methods=["POST"])
- def authenticate():
- json = request.json
- try:
- session_id = int(json.get("session_id"))
- pin = int(json.get("pin", ""))
- r = trigger_method(session_id, {"pin": pin}, "authenticate")
- if r:
- return jsonify(r)
- else:
- return abort(403)
- except (ValueError, TypeError):
- return abort(404)
-
-
- self.srv = make_server("0.0.0.0", self.port, app)
- self.ctx = app.app_context()
- self.ctx.push()
-
- def run(self):
- self.srv.serve_forever()
-
- def shutdown(self):
- self.srv.shutdown()