fixed role wrapper/decorator, adding dashboard profile init

This commit is contained in:
Xevion
2019-07-03 16:05:47 -05:00
parent 0c8437edd8
commit 7bf1f54b22
3 changed files with 22 additions and 18 deletions

View File

@@ -16,29 +16,31 @@ fake = faker.Faker()
def strgen(length): return ''.join(random.choices(list(string.ascii_letters), k=length)) def strgen(length): return ''.join(random.choices(list(string.ascii_letters), k=length))
def require_role(func, roles=[]): def require_role(roles=["User"]):
def auth(*args, **kwargs): def wrap(func):
def run(*args, **kwargs):
if current_user.is_authenticated: if current_user.is_authenticated:
if current_user.has_roles(roles): if current_user.has_roles(roles):
return func(*args, **kwargs) return func(*args, **kwargs)
return abort(401) return abort(401)
return auth return run
return wrap
@app.route('/api')
@login_required
@require_role
def api():
return 'fuckoff'
@app.errorhandler(401) @app.errorhandler(401)
def unauthorized(e): def unauthorized(e):
return redirect(url_for('login')) return redirect(url_for('login'))
@app.route('/dashboard') @app.route('/dashboard')
@login_required
def dashboard(): def dashboard():
return '' render_template('dashboard.html')
@app.route('/userinfo') @app.route('/profile/')
@login_required
def profile():
render_template('profile.html')
@app.route('/userinfo/')
def user_info(): def user_info():
prepare = { prepare = {
'id' : current_user.get_id(), 'id' : current_user.get_id(),
@@ -63,7 +65,7 @@ def index():
for _ in range(10)] for _ in range(10)]
return render_template('index.html', content=content) return render_template('index.html', content=content)
@app.route('/register', methods=['GET', 'POST']) @app.route('/register/', methods=['GET', 'POST'])
def register(): def register():
if current_user.is_authenticated: if current_user.is_authenticated:
return redirect(url_for('index')) return redirect(url_for('index'))
@@ -77,7 +79,7 @@ def register():
return redirect(url_for('login')) return redirect(url_for('login'))
return render_template('register.html', title='Register', form=form, hideRegister=True) return render_template('register.html', title='Register', form=form, hideRegister=True)
@app.route('/login', methods=['GET', 'POST']) @app.route('/login/', methods=['GET', 'POST'])
def login(): def login():
if current_user.is_authenticated: if current_user.is_authenticated:
return redirect(url_for('index')) return redirect(url_for('index'))
@@ -94,7 +96,7 @@ def login():
return redirect(next_page) return redirect(next_page)
return render_template('login.html', title='Login', form=form, hideLogin=True) return render_template('login.html', title='Login', form=form, hideLogin=True)
@app.route('/logout') @app.route('/logout/')
def logout(): def logout():
logout_user() logout_user()
return redirect(url_for('index')) return redirect(url_for('index'))

View File

@@ -0,0 +1 @@
{% extends 'base.html' %}

View File

@@ -0,0 +1 @@
{% extends 'base.html' %}