Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
D
douban-api-proxy
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
captainwong
douban-api-proxy
Commits
453d04b5
Commit
453d04b5
authored
Jan 02, 2017
by
OzzieIsaacs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Final fix for #86 (reverse proxy error)
renamed admin_user to admin added configuration infos inm admin panel
parent
0bcdbc4a
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
61 additions
and
32 deletions
+61
-32
cps.py
cps.py
+0
-4
admin.html
cps/templates/admin.html
+25
-1
email_edit.html
cps/templates/email_edit.html
+1
-1
layout.html
cps/templates/layout.html
+3
-3
user_edit.html
cps/templates/user_edit.html
+1
-1
web.py
cps/web.py
+31
-22
No files found.
cps.py
View file @
453d04b5
...
...
@@ -20,10 +20,6 @@ from tornado.ioloop import IOLoop
global
title_sort
def
title_sort
(
title
):
return
title
def
start_calibreweb
(
messagequeue
):
web
.
global_queue
=
messagequeue
if
config
.
DEVELOPMENT
:
...
...
cps/templates/
user_list
.html
→
cps/templates/
admin
.html
View file @
453d04b5
{% extends "layout.html" %}
{% block body %}
<div
class=
"discover"
>
<h2>
{{
title
}}
</h2>
<h2>
{{
_('User list')
}}
</h2>
<table
class=
"table table-striped"
>
<tr>
<th>
{{_('Nickname')}}
</th>
...
...
@@ -52,5 +52,29 @@
<div
class=
"btn btn-default"
><a
href=
"{{url_for('edit_mailsettings')}}"
>
{{_('Change SMTP settings')}}
</a></div>
<h2>
{{_('Configuration')}}
</h2>
<table
class=
"table table-striped"
>
<tr>
<th>
{{_('Log File')}}
</th>
<th>
{{_('Log Level')}}
</th>
<th>
{{_('Port')}}
</th>
<th>
{{_('Books per page')}}
</th>
<th>
{{_('Uploading')}}
</th>
<th>
{{_('Public registration')}}
</th>
<th>
{{_('Anonymous browsing')}}
</th>
</tr>
<tr>
<td>
{{config.LOG_DIR}}
</td>
<td>
{{config.LOG_DIR}}
</td>
<td>
{{config.PORT}}
</td>
<td>
{{config.NEWEST_BOOKS}}
</td>
<td>
{% if config.UPLOADING %}
<span
class=
"glyphicon glyphicon-ok"
></span>
{% else %}
<span
class=
"glyphicon glyphicon-remove"
></span>
{% endif %}
</td>
<td>
{% if config.PUBLIC_REG %}
<span
class=
"glyphicon glyphicon-ok"
></span>
{% else %}
<span
class=
"glyphicon glyphicon-remove"
></span>
{% endif %}
</td>
<td>
{% if config.ANON_BROWSE %}
<span
class=
"glyphicon glyphicon-ok"
></span>
{% else %}
<span
class=
"glyphicon glyphicon-remove"
></span>
{% endif %}
</td>
</table>
<h2>
{{_('Administration')}}
</h2>
{% if not config.DEVELOPMENT %}
<div
class=
"btn btn-default"
><a
href=
"{{url_for('shutdown')}}"
>
{{_('Restart Calibre-web')}}
</a></div>
{% endif %}
</div>
{% endblock %}
cps/templates/email_edit.html
View file @
453d04b5
...
...
@@ -29,7 +29,7 @@
</div>
<button
type=
"submit"
name=
"submit"
value=
"submit"
class=
"btn btn-default"
>
{{_('Save settings')}}
</button>
<button
type=
"submit"
name=
"test"
value=
"test"
class=
"btn btn-default"
>
{{_('Save settings and send Test E-Mail')}}
</button>
<a
href=
"{{ url_for('
user_list
') }}"
class=
"btn btn-default"
>
{{_('Back')}}
</a>
<a
href=
"{{ url_for('
admin
') }}"
class=
"btn btn-default"
>
{{_('Back')}}
</a>
</form>
</div>
...
...
cps/templates/layout.html
View file @
453d04b5
...
...
@@ -81,15 +81,15 @@
{% endif %}
{% endif %}
{% if g.user.role_admin() %}
<li><a
href=
"{{url_for('
user_list
')}}"
><span
class=
"glyphicon glyphicon-dashboard"
></span>
{{_('Admin')}}
</a></li>
<li><a
href=
"{{url_for('
admin
')}}"
><span
class=
"glyphicon glyphicon-dashboard"
></span>
{{_('Admin')}}
</a></li>
{% endif %}
<li><a
href=
"{{url_for('profile')}}"
><span
class=
"glyphicon glyphicon-user"
></span>
{{g.user.nickname}}
</a></li>
{% if not g.user.is_anonymous() %}
<li><a
href=
"{{url_for('logout'
, next='%s%s' % (request.script_root, request.path)
)}}"
><span
class=
"glyphicon glyphicon-log-out"
></span>
{{_('Logout')}}
</a></li>
<li><a
href=
"{{url_for('logout')}}"
><span
class=
"glyphicon glyphicon-log-out"
></span>
{{_('Logout')}}
</a></li>
{% endif %}
{% endif %}
{% if g.allow_registration and not g.user.is_authenticated %}
<li><a
href=
"{{url_for('login'
, next='%s%s' % (request.script_root, request.path)
)}}"
><span
class=
"glyphicon glyphicon-log-in"
></span>
{{_('Login')}}
</a></li>
<li><a
href=
"{{url_for('login')}}"
><span
class=
"glyphicon glyphicon-log-in"
></span>
{{_('Login')}}
</a></li>
<li><a
href=
"{{url_for('register')}}"
><span
class=
"glyphicon glyphicon-user"
></span>
{{_('Register')}}
</a></li>
{% endif %}
</ul>
...
...
cps/templates/user_edit.html
View file @
453d04b5
...
...
@@ -93,7 +93,7 @@
{% endif %}
<button
type=
"submit"
class=
"btn btn-default"
>
{{_('Submit')}}
</button>
{% if not profile %}
<a
href=
"{{ url_for('
user_list
') }}"
class=
"btn btn-default"
>
{{_('Back')}}
</a>
<a
href=
"{{ url_for('
admin
') }}"
class=
"btn btn-default"
>
{{_('Back')}}
</a>
{% endif %}
</form>
...
...
cps/web.py
View file @
453d04b5
...
...
@@ -809,7 +809,7 @@ def series(name, page):
title
=
_
(
u"Series:
%(serie)
s"
,
serie
=
name
))
else
:
flash
(
_
(
u"Error opening eBook. File does not exist or file is not accessible:"
),
category
=
"error"
)
return
redirect
(
'/'
or
url_for
(
"index"
,
_external
=
True
))
return
redirect
(
url_for
(
"index"
))
@
app
.
route
(
"/language"
)
...
...
@@ -905,13 +905,13 @@ def show_book(id):
return
render_template
(
'detail.html'
,
entry
=
entries
,
cc
=
cc
,
title
=
entries
.
title
,
books_shelfs
=
book_in_shelfs
)
else
:
flash
(
_
(
u"Error opening eBook. File does not exist or file is not accessible:"
),
category
=
"error"
)
return
redirect
(
'/'
or
url_for
(
"index"
,
_external
=
True
))
return
redirect
(
url_for
(
"index"
))
@
app
.
route
(
"/admin
/
"
)
@
app
.
route
(
"/admin"
)
@
login_required
def
admin
():
#
return "Admin ONLY!"
def
admin
_forbidden
():
return
"Admin ONLY!"
abort
(
403
)
...
...
@@ -938,11 +938,11 @@ def stats():
@
app
.
route
(
"/shutdown"
)
def
shutdown
():
logout_user
()
#
logout_user()
# add restart command to queue
global_queue
.
put
(
"something"
)
flash
(
_
(
u"Server restarts"
),
category
=
"info"
)
return
redirect
(
'/'
or
url_for
(
"index"
,
_external
=
True
))
return
redirect
(
url_for
(
"index"
,
_external
=
True
))
@
app
.
route
(
"/search"
,
methods
=
[
"GET"
])
...
...
@@ -1100,7 +1100,7 @@ def read_book(book_id, format):
else
:
flash
(
_
(
u"Error opening eBook. File does not exist or file is not accessible:"
),
category
=
"error"
)
return
redirect
(
'/'
or
url_for
(
"index"
,
_external
=
True
))
return
redirect
(
url_for
(
"index"
))
@
app
.
route
(
"/download/<int:book_id>/<format>"
)
...
...
@@ -1133,7 +1133,7 @@ def register():
if
not
config
.
PUBLIC_REG
:
abort
(
404
)
if
current_user
is
not
None
and
current_user
.
is_authenticated
:
return
redirect
(
url_for
(
'index'
,
_external
=
True
))
return
redirect
(
url_for
(
'index'
))
if
request
.
method
==
"POST"
:
to_save
=
request
.
form
.
to_dict
()
...
...
@@ -1157,7 +1157,7 @@ def register():
flash
(
_
(
u"An unknown error occured. Please try again later."
),
category
=
"error"
)
return
render_template
(
'register.html'
,
title
=
"register"
)
flash
(
"Your account has been created. Please login."
,
category
=
"success"
)
return
redirect
(
url_for
(
'login'
,
_external
=
True
))
return
redirect
(
url_for
(
'login'
))
else
:
flash
(
_
(
u"This username or email address is already in use."
),
category
=
"error"
)
return
render_template
(
'register.html'
,
title
=
"register"
)
...
...
@@ -1170,7 +1170,7 @@ def login():
error
=
None
if
current_user
is
not
None
and
current_user
.
is_authenticated
:
return
redirect
(
url_for
(
'index'
,
_external
=
True
))
return
redirect
(
url_for
(
'index'
))
if
request
.
method
==
"POST"
:
form
=
request
.
form
.
to_dict
()
...
...
@@ -1179,7 +1179,8 @@ def login():
if
user
and
check_password_hash
(
user
.
password
,
form
[
'password'
]):
login_user
(
user
,
remember
=
True
)
flash
(
_
(
u"you are now logged in as: '
%(nickname)
s'"
,
nickname
=
user
.
nickname
),
category
=
"success"
)
return
redirect
(
'/'
or
url_for
(
"index"
,
_external
=
True
))
# test=
return
redirect
(
url_for
(
"index"
))
else
:
flash
(
_
(
u"Wrong Username or Password"
),
category
=
"error"
)
...
...
@@ -1191,7 +1192,7 @@ def login():
def
logout
():
if
current_user
is
not
None
and
current_user
.
is_authenticated
:
logout_user
()
return
redirect
(
'/login'
or
url_for
(
"login"
,
_external
=
True
))
return
redirect
(
url_for
(
'login'
))
@
app
.
route
(
'/send/<int:book_id>'
)
...
...
@@ -1220,7 +1221,7 @@ def add_to_shelf(shelf_id, book_id):
shelf
=
ub
.
session
.
query
(
ub
.
Shelf
)
.
filter
(
ub
.
Shelf
.
id
==
shelf_id
)
.
first
()
if
not
shelf
.
is_public
and
not
shelf
.
user_id
==
int
(
current_user
.
id
):
flash
(
"Sorry you are not allowed to add a book to the the shelf:
%
s"
%
shelf
.
name
)
return
redirect
(
url_for
(
'index'
,
_external
=
True
))
return
redirect
(
url_for
(
'index'
))
maxO
=
ub
.
session
.
query
(
func
.
max
(
ub
.
BookShelf
.
order
))
.
filter
(
ub
.
BookShelf
.
shelf
==
shelf_id
)
.
first
()
if
maxO
[
0
]
is
None
:
maxOrder
=
0
...
...
@@ -1435,13 +1436,21 @@ def profile():
downloads
=
downloads
,
title
=
_
(
u"
%(name)
s's profile"
,
name
=
current_user
.
nickname
))
@
app
.
route
(
"/admin/
user
"
)
@
app
.
route
(
"/admin/
view
"
)
@
login_required
@
admin_required
def
user_list
():
def
admin
():
content
=
ub
.
session
.
query
(
ub
.
User
)
.
all
()
settings
=
ub
.
session
.
query
(
ub
.
Settings
)
.
first
()
return
render_template
(
"user_list.html"
,
content
=
content
,
email
=
settings
,
title
=
_
(
u"User list"
))
return
render_template
(
"admin.html"
,
content
=
content
,
email
=
settings
,
config
=
config
,
title
=
_
(
u"Admin page"
))
@
app
.
route
(
"/admin/config"
)
@
login_required
@
admin_required
def
configuration
():
content
=
ub
.
session
.
query
(
ub
.
User
)
.
all
()
settings
=
ub
.
session
.
query
(
ub
.
Settings
)
.
first
()
return
render_template
(
"admin.html"
,
content
=
content
,
email
=
settings
,
config
=
config
,
title
=
_
(
u"Admin page"
))
@
app
.
route
(
"/admin/user/new"
,
methods
=
[
"GET"
,
"POST"
])
...
...
@@ -1456,7 +1465,7 @@ def new_user():
lang
.
name
=
cur_l
.
get_language_name
(
get_locale
())
except
:
lang
.
name
=
_
(
isoLanguages
.
get
(
part3
=
lang
.
lang_code
)
.
name
)
translations
=
babel
.
list_translations
()
+
[
LC
(
'en'
)]
translations
=
[
LC
(
'en'
)]
+
babel
.
list_translations
()
if
request
.
method
==
"POST"
:
to_save
=
request
.
form
.
to_dict
()
if
not
to_save
[
"nickname"
]
or
not
to_save
[
"email"
]
or
not
to_save
[
"password"
]:
...
...
@@ -1495,7 +1504,7 @@ def new_user():
ub
.
session
.
add
(
content
)
ub
.
session
.
commit
()
flash
(
_
(
"User '
%(user)
s' created"
,
user
=
content
.
nickname
),
category
=
"success"
)
return
redirect
(
url_for
(
'
user_list
'
,
_external
=
True
))
return
redirect
(
url_for
(
'
admin
'
,
_external
=
True
))
except
IntegrityError
:
ub
.
session
.
rollback
()
flash
(
_
(
u"Found an existing account for this email address or nickname."
),
category
=
"error"
)
...
...
@@ -1503,7 +1512,7 @@ def new_user():
languages
=
languages
,
title
=
"Add new user"
)
@
app
.
route
(
"/admin/
user/
mailsettings"
,
methods
=
[
"GET"
,
"POST"
])
@
app
.
route
(
"/admin/mailsettings"
,
methods
=
[
"GET"
,
"POST"
])
@
login_required
@
admin_required
def
edit_mailsettings
():
...
...
@@ -1557,7 +1566,7 @@ def edit_user(user_id):
if
"delete"
in
to_save
:
ub
.
session
.
delete
(
content
)
flash
(
_
(
u"User '
%(nick)
s' deleted"
,
nick
=
content
.
nickname
),
category
=
"success"
)
return
redirect
(
url_for
(
'
user_list
'
,
_external
=
True
))
return
redirect
(
url_for
(
'
admin
'
,
_external
=
True
))
else
:
if
to_save
[
"password"
]:
content
.
password
=
generate_password_hash
(
to_save
[
"password"
])
...
...
@@ -1825,7 +1834,7 @@ def edit_book(book_id):
return
render_template
(
'edit_book.html'
,
book
=
book
,
authors
=
author_names
,
cc
=
cc
)
else
:
flash
(
_
(
u"Error opening eBook. File does not exist or file is not accessible:"
),
category
=
"error"
)
return
redirect
(
'/'
or
url_for
(
"index"
,
_external
=
True
))
return
redirect
(
url_for
(
"index"
,
_external
=
True
))
@
app
.
route
(
"/upload"
,
methods
=
[
"GET"
,
"POST"
])
...
...
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