Skip to content

Commit

Permalink
azure deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
arihant2math committed Nov 5, 2023
1 parent 959c7d3 commit 502574a
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 36 deletions.
70 changes: 70 additions & 0 deletions .github/workflows/azure_deployment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Build and deploy Python app to Azure Web App - spacegui

on:
push:
branches:
- master
workflow_dispatch:


jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Python version
uses: actions/setup-python@v1
with:
python-version: '3.11'

- name: Create and start virtual environment
run: |
python -m venv venv
source venv/bin/activate
- name: Install dependencies
run: pip install -r requirements.txt

- name: Zip artifact for deployment
run: zip release.zip ./* -r

- name: Upload artifact for deployment jobs
uses: actions/upload-artifact@v3
with:
name: python-app

path: |
release.zip
!venv/
deploy:
runs-on: ubuntu-latest
needs: build
environment:

name: 'production'

url: ${{ steps.deploy-to-webapp.outputs.webapp-url }}

steps:
- name: Download artifact from build job
uses: actions/download-artifact@v3
with:
name: python-app

- name: Unzip artifact for deployment
run: unzip release.zip

- name: 'Deploy to Azure Web App'
uses: azure/webapps-deploy@v2
id: deploy-to-webapp
with:
app-name: 'spacegui'
slot-name: 'production'
publish-profile: ${{ secrets.AzureAppService_PublishProfile_47c7e2acab124acb91ab62085ffb75ee }}
33 changes: 0 additions & 33 deletions .github/workflows/get_map_data.yml

This file was deleted.

46 changes: 44 additions & 2 deletions website/bp/auth.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
from flask import Blueprint, redirect, render_template
import json

from website.session import logout_session
import werkzeug.security
from flask import Blueprint, redirect, render_template, request, abort, jsonify

from website.model import db, User
from website.session import logout_session, login_session
from website.wrappers import login_required

auth_bp = Blueprint("auth", __name__)
Expand All @@ -11,11 +15,49 @@ def register():
return render_template("auth/register.html")


@auth_bp.route("/register-api")
def register_api():
if request.method == "POST":
data_json = json.loads(request.data)
username = data_json["username"]
password = data_json["password"]
requested_user = db.session.query(User).filter_by(username=username).first()
if requested_user is None:
user = User(username=username, password=werkzeug.security.generate_password_hash(password))
db.session.add(user)
db.session.commit()
login_session(user)
return jsonify({"success": True})
else:
abort(401)
else:
abort(405)


@auth_bp.route("/login")
def login():
return render_template("auth/login.html")


@auth_bp.route("/login-api")
def login_api():
if request.method == "POST":
data_json = json.loads(request.data)
username = data_json["username"]
password = data_json["password"]
requested_user = db.session.query(User).filter_by(username=username).first()
if requested_user is None:
abort(404)
else:
if werkzeug.security.check_password_hash(requested_user.password, password):
login_session(requested_user)
return jsonify({"success": True})
else:
return jsonify({"success": False})
else:
abort(405)


@auth_bp.route("/logout")
@login_required
def logout(user):
Expand Down
24 changes: 24 additions & 0 deletions website/templates/auth/login.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{% extends 'base.html' %}
{% block title %}
Register
{% endblock %}
{% block body %}
<div class="row justify-content-center text-center">
<h1>Register</h1>
</div>
<form class="form p-3">
<label class="label" for="username">Username:</label>
<input id="username" class="form-control" required>
<label class="label" for="password">Password:</label>
<input id="password" class="form-control" type="password" required>
<button class="btn btn-primary" type="button" onclick="register()">Register</button>
</form>
<script>
function register() {
$.post("/register-api/", {"username": $("#username").val(), "password": $("#password").val()}).then(function () {
window.location.href = "/"
});
}
</script>
{% endblock %}
{% block navid %}register{% endblock %}
Empty file.
4 changes: 3 additions & 1 deletion website/templates/navbar.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@
</li>
</ul>
</div>
<a id="select-user" class="nav-link" href="/select-user/"><i class="bi bi-person-lines-fill"></i> Select User</a>
<a id="select-user" class="nav-link" href="/select-user/"><i class="bi bi-person-lines-fill"></i> Select Token</a>
<a id="login" class="nav-link"></a>
<a id="register" class="nav-link"></a>
<a id="settings" class="nav-link" href="/settings/"><i class="bi bi-gear-fill"></i> Settings</a>
</li>
</ul>
Expand Down

0 comments on commit 502574a

Please sign in to comment.