Absolute path
This commit is contained in:
commit
306739df36
14
main.py
14
main.py
|
@ -10,21 +10,23 @@ if glob.config["git"]["auto_pull_and_restart"]: # Only used on the VPS (Do not e
|
|||
@glob.app.route(glob.config["git"]["webhook_endpoint"], methods = ["POST"])
|
||||
def git_fetch():
|
||||
if request.method != "POST":
|
||||
return "No"
|
||||
return "No", 400
|
||||
|
||||
data = json.loads( request.data.decode() )
|
||||
if data["secret"] != glob.config["git"]["secret"]:
|
||||
return "No"
|
||||
return "No", 400
|
||||
|
||||
import subprocess, os, sys
|
||||
process = subprocess.Popen(["git", "pull"], stdout=subprocess.PIPE)
|
||||
output = process.communicate()[0]
|
||||
from subprocess import check_output
|
||||
output = check_output(["git", "pull", "origin", "master"])
|
||||
|
||||
print( "GIT: {}".format( output.decode() ) )
|
||||
|
||||
if output.decode().split("\n")[-2].find("fail") != -1:
|
||||
return "Failed to pull changes"
|
||||
return "Failed to pull changes", 500
|
||||
|
||||
# If needed; every open file or connection HAVE to be closed at this point
|
||||
|
||||
import os, sys
|
||||
os.execv(sys.executable, ["python"] + sys.argv) # Restart service
|
||||
|
||||
if glob.config["disable-static-cache"]:
|
||||
|
|
25
routes.py
25
routes.py
|
@ -1,7 +1,30 @@
|
|||
from flask import render_template, url_for
|
||||
from flask import render_template, url_for, request
|
||||
from objects import glob # Global sharing of python objects in a manageable way
|
||||
|
||||
@glob.app.route("/")
|
||||
@glob.app.route("/home")
|
||||
def home():
|
||||
return render_template("home.html")
|
||||
|
||||
@glob.app.route("/login", methods = ["GET", "POST"])
|
||||
def serve_login():
|
||||
if request.method == "POST":
|
||||
return "TODO: Login handle", 501
|
||||
return render_template("login.html")
|
||||
|
||||
@glob.app.route("/testing")
|
||||
def we_are_testing():
|
||||
return render_template("testing.html")
|
||||
|
||||
@glob.app.route("/bill")
|
||||
def serve_bill():
|
||||
return render_template("bill.html")
|
||||
|
||||
@glob.app.route("/regninger")
|
||||
def serve_regninger():
|
||||
return render_template("regninger.html")
|
||||
|
||||
@glob.app.route("/kvittering")
|
||||
def serve_kvittering():
|
||||
return render_template("kvittering.html")
|
||||
|
||||
|
|
20
static/js/alerts.js
Normal file
20
static/js/alerts.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
function _findAlertDom(caller) {
|
||||
let selectedDOM = caller;
|
||||
do {
|
||||
if (selectedDOM.classList.contains("alert-section")){
|
||||
return selectedDOM;
|
||||
}
|
||||
selectedDOM = selectedDOM.parentElement;
|
||||
} while (selectedDOM != null);
|
||||
throw Error("Missing alert-section class for self/parent(s)");
|
||||
}
|
||||
|
||||
function alertAbove(caller, t, s) {
|
||||
let dom = _findAlertDom(caller);
|
||||
dom.outerHTML = `<div class="alert alert-${t} fade in show" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>${s}</div>` + dom.outerHTML;
|
||||
}
|
||||
|
||||
function alertUnder(caller, t, s) {
|
||||
let dom = _findAlertDom(caller);
|
||||
dom.outerHTML += `<div class="alert alert-${t} fade in show" role="alert"><a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>${s}</div>`;
|
||||
}
|
11
templates/bill.html
Normal file
11
templates/bill.html
Normal file
|
@ -0,0 +1,11 @@
|
|||
{% set title = "bill:)" %}
|
||||
|
||||
{% extends "layout/bootstrap.html" %}
|
||||
|
||||
{% block content %}
|
||||
<p>lotsa bills</p>
|
||||
<p>many bills</p>
|
||||
<i class="fas fa-user"></i> <!-- uses solid style -->
|
||||
<i class="far fa-user"></i> <!-- uses regular style -->
|
||||
<i class="fab fa-github-square"></i> <!-- uses brands style -->
|
||||
{% endblock %}
|
10
templates/kvittering.html
Normal file
10
templates/kvittering.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
{% set title = "Kvitteringer" %}
|
||||
|
||||
{% extends "layout/bootstrap.html" %}
|
||||
|
||||
{% block content %}
|
||||
|
||||
<p>Tester siden!</p>
|
||||
<p>KVITTERINGER FOR FAEN!</p>
|
||||
|
||||
{% endblock %}
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% include 'includes/boot-head.html' %}
|
||||
{% include 'layout/includes/boot-head.html' %}
|
||||
{% if title %}
|
||||
<title>Husstanden - {{ title }}</title>
|
||||
{% else %}
|
||||
|
@ -10,6 +10,6 @@
|
|||
</head>
|
||||
<body>
|
||||
{% block content %}{% endblock %}
|
||||
{% include 'includes/boot-body.html' %}
|
||||
{% include 'layout/includes/boot-body.html' %}
|
||||
</body>
|
||||
</html>
|
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% include 'includes/boot-head.html' %}
|
||||
{% include 'layout/includes/boot-head.html' %}
|
||||
{% if title %}
|
||||
<title>Husstanden - {{ title }}</title>
|
||||
{% else %}
|
||||
|
@ -10,6 +10,6 @@
|
|||
</head>
|
||||
<body>
|
||||
{% block content %}{% endblock %}
|
||||
{% include 'includes/boot-body.html' %}
|
||||
{% include 'layout/includes/boot-body.html' %}
|
||||
</body>
|
||||
</html>
|
42
templates/login.html
Normal file
42
templates/login.html
Normal file
|
@ -0,0 +1,42 @@
|
|||
{% set title = "Login" %}
|
||||
|
||||
{% extends "layout/bootstrap.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div class="container pt-3">
|
||||
<div class="row alert-section">
|
||||
<div class="col-md-8 mx-auto">
|
||||
<div class="card rounded-1">
|
||||
<div class="card-header">
|
||||
<h3 class="mb-0">Login Methods</h3>
|
||||
</div>
|
||||
<div class="card-body row">
|
||||
<div class="col-md-6">
|
||||
<h5>Electronic ID</h5>
|
||||
<p class="lead">
|
||||
Secure login using Electronic ID allows Husstanden to show you banking details, bills and receipts.<br>
|
||||
<a target="_blank" href="https://eid.difi.no/en/id-porten/how-obtain-electronic-id">How to obtain an Electronic ID</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<h5>House Account</h5>
|
||||
<p class="lead">
|
||||
Accounts with less privileges and fast login to view non-sensitive information.<br>
|
||||
Multiple house accounts can be created by logging in with house holder's verified <i>Electronic ID</i>.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="card-body row pt-2">
|
||||
<div class="col-md-6 pb-2">
|
||||
<a class="btn btn-primary btn-lg btn-block" href="#TODO_LOGIN_EID" onclick="alertAbove(this, 'warning', 'This should redirect the user to Electronic ID page (but due to phishing, we can not demo this)')">Electronic ID</a>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<a class="btn btn-primary btn-lg btn-block" id="test" href="#TODO_LOGIN_HA" onclick="alertAbove(this, 'info', 'Unimplemented - Awaiting database')">House Account</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
8
templates/regninger.html
Normal file
8
templates/regninger.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{% set title = "Regninger" %}
|
||||
|
||||
{% extends "layout/bootstrap.html" %}
|
||||
|
||||
{% block content %}
|
||||
<p>Regninger :D</p>
|
||||
<p>test</p>
|
||||
{% endblock %}
|
8
templates/testing.html
Normal file
8
templates/testing.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
{% set title = "testing" %}
|
||||
|
||||
{% extends "layout/bootstrap.html" %}
|
||||
|
||||
{% block content %}
|
||||
<p>testing</p>
|
||||
<p>tester dette</p>
|
||||
{% endblock %}
|
Loading…
Reference in New Issue
Block a user