Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
flask-admin
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Python-Dev
flask-admin
Commits
f8d372fe
Commit
f8d372fe
authored
Nov 15, 2013
by
Petrus J.v.Rensburg
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add logout button to navbar.
parent
0907d2c1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
45 additions
and
2 deletions
+45
-2
auth.py
examples/auth/auth.py
+33
-2
sample.sqlite
examples/auth/sample.sqlite
+0
-0
my_master.html
examples/auth/templates/my_master.html
+12
-0
No files found.
examples/auth/auth.py
View file @
f8d372fe
...
@@ -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
))
...
...
examples/auth/sample.sqlite
View file @
f8d372fe
No preview for this file type
examples/auth/templates/my_master.html
0 → 100644
View file @
f8d372fe
{% 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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment