37 lines
1013 B
Python
37 lines
1013 B
Python
import requests
|
|
import functools
|
|
from flask import session, flash, redirect, request
|
|
|
|
def try_login(username, password):
|
|
resp = requests.post('https://auth.hackerspace.pl/', data={
|
|
'login': username,
|
|
'password': password
|
|
})
|
|
|
|
if resp.status_code == 200:
|
|
session['login'] = username
|
|
return True
|
|
|
|
return False
|
|
|
|
def is_authenticated():
|
|
return session.get('login') is not None
|
|
|
|
def login_required(fn):
|
|
@functools.wraps(fn)
|
|
def wrapped(*args, **kwargs):
|
|
username = request.form.get('username')
|
|
password = request.form.get('password')
|
|
if username is not None and password is not None and \
|
|
not try_login(username, password):
|
|
flash('Invalid username or password', 'warning')
|
|
return redirect('/')
|
|
|
|
if not is_authenticated():
|
|
flash('You are not authorized to see this page', 'warning')
|
|
return redirect('/')
|
|
|
|
return fn(*args, **kwargs)
|
|
|
|
return wrapped
|