Commit f8d372fe authored by Petrus J.v.Rensburg's avatar Petrus J.v.Rensburg

Add logout button to navbar.

parent 0907d2c1
...@@ -5,7 +5,7 @@ from wtforms import form, fields, validators ...@@ -5,7 +5,7 @@ from wtforms import form, fields, validators
from flask.ext import admin, login from flask.ext import admin, login
from flask.ext.admin.contrib import sqla from flask.ext.admin.contrib import sqla
from flask.ext.admin import helpers from flask.ext.admin import helpers, BaseView, expose
# Create Flask application # Create Flask application
app = Flask(__name__) app = Flask(__name__)
...@@ -86,12 +86,42 @@ def init_login(): ...@@ -86,12 +86,42 @@ def init_login():
# Create customized model view class # Create customized model view class
class MyModelView(sqla.ModelView): class MyModelView(sqla.ModelView):
# make current_user available in template
@expose('/')
def index_view(self):
self._template_args['user'] = login.current_user
return super(MyModelView, self).index_view()
@expose('/new/', methods=('GET', 'POST'))
def create_view(self):
self._template_args['user'] = login.current_user
return super(MyModelView, self).create_view()
@expose('/edit/', methods=('GET', 'POST'))
def edit_view(self):
self._template_args['user'] = login.current_user
return super(MyModelView, self).edit_view()
@expose('/delete/', methods=('POST',))
def delete_view(self):
self._template_args['user'] = login.current_user
return super(MyModelView, self).delete_view()
def is_accessible(self): def is_accessible(self):
return login.current_user.is_authenticated() return login.current_user.is_authenticated()
# Create customized index view class # Create customized index view class
class MyAdminIndexView(admin.AdminIndexView): class MyAdminIndexView(admin.AdminIndexView):
@expose('/')
# make current_user available in template
def index(self):
self._template_args['user'] = login.current_user
return super(MyAdminIndexView, self).index()
# restrict access to logged-in users
def is_accessible(self): def is_accessible(self):
return login.current_user.is_authenticated() return login.current_user.is_authenticated()
...@@ -135,11 +165,12 @@ def logout_view(): ...@@ -135,11 +165,12 @@ def logout_view():
login.logout_user() login.logout_user()
return redirect(url_for('index')) return redirect(url_for('index'))
# Initialize flask-login # Initialize flask-login
init_login() init_login()
# Create admin # Create admin
admin = admin.Admin(app, 'Auth', index_view=MyAdminIndexView()) admin = admin.Admin(app, 'Auth', index_view=MyAdminIndexView(), base_template='my_master.html')
# Add view # Add view
admin.add_view(MyModelView(User, db.session)) admin.add_view(MyModelView(User, db.session))
......
{% extends 'admin/base.html' %}
{% block access_control %}
<div class="btn-group pull-right">
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
<i class="icon-user"></i> {{ user.login }} <span class="caret"></span>
</a>
<ul class="dropdown-menu">
<li><a href="/logout/">Log out</a></li>
</ul>
</div>
{% endblock %}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment