From 3719b7e4eb3cea1f1687b2be287c4e99f992677c Mon Sep 17 00:00:00 2001 From: janeczku Date: Fri, 29 Apr 2016 22:30:33 +0200 Subject: [PATCH] Add ANON_BROWSE configuration option --- config.ini.example | 1 + cps/config.py | 7 +++---- cps/web.py | 4 ++-- readme.md | 18 +++++++++++++----- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/config.ini.example b/config.ini.example index d35aa258..02a57541 100644 --- a/config.ini.example +++ b/config.ini.example @@ -10,3 +10,4 @@ TITLE_REGEX = ^(A|The|An|Der|Die|Das|Den|Ein|Eine|Einen|Dem|Des|Einem|Eines)\s+ DEVELOPMENT = 0 PUBLIC_REG = 0 UPLOADING = 0 +ANON_BROWSE = 0 diff --git a/cps/config.py b/cps/config.py index 0cd77b29..1cfddf9c 100755 --- a/cps/config.py +++ b/cps/config.py @@ -60,7 +60,7 @@ TITLE_REGEX = check_setting_str(CFG, 'Advanced', 'TITLE_REGEX', '^(A|The|An|Der| DEVELOPMENT = bool(check_setting_int(CFG, 'Advanced', 'DEVELOPMENT', 0)) PUBLIC_REG = bool(check_setting_int(CFG, 'Advanced', 'PUBLIC_REG', 0)) UPLOADING = bool(check_setting_int(CFG, 'Advanced', 'UPLOADING', 0)) -ANO_SHOW_BOOKS = bool(check_setting_int(CFG, 'Advanced', 'ANO_SHOW_BOOKS', 0)) +ANON_BROWSE = bool(check_setting_int(CFG, 'Advanced', 'ANON_BROWSE', 0)) SYS_ENCODING="UTF-8" @@ -79,8 +79,7 @@ configval["DEVELOPMENT"] = DEVELOPMENT configval["TITLE_REGEX"] = TITLE_REGEX configval["PUBLIC_REG"] = PUBLIC_REG configval["UPLOADING"] = UPLOADING -configval["ANO_SHOW_BOOKS"] = ANO_SHOW_BOOKS - +configval["ANON_BROWSE"] = ANON_BROWSE def save_config(configval): new_config = ConfigObj() @@ -97,7 +96,7 @@ def save_config(configval): new_config['Advanced']['DEVELOPMENT'] = int(configval["DEVELOPMENT"]) new_config['Advanced']['PUBLIC_REG'] = int(configval["PUBLIC_REG"]) new_config['Advanced']['UPLOADING'] = int(configval["UPLOADING"]) - new_config['Advanced']['ANO_SHOW_BOOKS'] = int(configval["ANO_SHOW_BOOKS"]) + new_config['Advanced']['ANON_BROWSE'] = int(configval["ANON_BROWSE"]) new_config.write() return "Saved" diff --git a/cps/web.py b/cps/web.py index b25d3b88..374650d9 100755 --- a/cps/web.py +++ b/cps/web.py @@ -100,7 +100,7 @@ def requires_basic_auth_if_no_ano(f): @wraps(f) def decorated(*args, **kwargs): auth = request.authorization - if config.ANO_SHOW_BOOKS != 1: + if config.ANON_BROWSE != 1: if not auth or not check_auth(auth.username, auth.password): return authenticate() return f(*args, **kwargs) @@ -148,7 +148,7 @@ def url_for_other_page(page): app.jinja_env.globals['url_for_other_page'] = url_for_other_page def login_required_if_no_ano(func): - if config.ANO_SHOW_BOOKS == 1: + if config.ANON_BROWSE == 1: return func return login_required(func) diff --git a/readme.md b/readme.md index e0554307..d27d6c78 100755 --- a/readme.md +++ b/readme.md @@ -21,19 +21,27 @@ Calibre Web is a web app providing a clean interface for browsing, reading and d - Support for reading eBooks directly in the browser - Upload new books in PDF format - Support for Calibre custom columns +- Fine grained per-user permissions ## Quick start -1. Rename `config.ini.example` to `config.ini` and set DB_ROOT to the path of the folder where your Calibre library (metadata.db) lives -2. To enable public user registration set PUBLIC_REG to 1 -3. To enable uploading of PDF books set UPLOADING to 1 -4. Execute the command: `python cps.py` -5. Point your browser to `http://localhost:8083` or `http://localhost:8083/feed` for the OPDS catalog +1. Rename `config.ini.example` to `config.ini` and set `DB_ROOT` to the path of the folder where your Calibre library (metadata.db) lives +2. Execute the command: `python cps.py` +3. Point your browser to `http://localhost:8083` or `http://localhost:8083/feed` for the OPDS catalog **Default admin login:** *Username:* admin *Password:* admin123 +## Runtime Configuration Options + +`PUBLIC_REG` +Set to 1 to enable public user registration. +`ANON_BROWSE` +Set to 1 to allow not logged in users to browse the catalog. +`UPLOADING` +Set to 1 to enable PDF uploading. This requires the imagemagick library to be installed. + ## Requirements Python 2.7+