diff options
| author | Alon Levy <alon@pobox.com> | 2015-01-12 11:19:39 +0200 |
|---|---|---|
| committer | Alon Levy <alon@pobox.com> | 2015-01-12 11:20:02 +0200 |
| commit | db5dfcbec8cc1fa2ea9110f59adcd7972bd657a9 (patch) | |
| tree | 2e8d081997542074221e810bdf7adcce6427c698 | |
| parent | 34414fb0d45c274a03a8b01de4688e8ae50702c2 (diff) | |
server: implement init_pw_db, update docs, set default Config.htpasswd_path to <config-dir>/htpasswd
TODO: permissions - warn on lax permissions for password file (and for
init file?)
| -rw-r--r-- | README.mediawiki | 14 | ||||
| -rw-r--r-- | src/server/rz_server.py | 10 |
2 files changed, 22 insertions, 2 deletions
diff --git a/README.mediawiki b/README.mediawiki index 1484ffc3..58fda93e 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -25,13 +25,27 @@ To run Rhizi locally: For testing locally run neo4j locally on the default 7474 port and then launch run-local.sh:<br><code>./run-local.sh</code> Or perform the following tasks by hand: +# Update css files from scss sources using <code>make</code> # Invoke the local deployment Ant target:<br><code>$ cd ./rhizi && ant -f build.ant deploy-local</code> # Assert Neo4J is running and listening on it's default port # Run rhizi-server.py:<br><code>$ cd deploy-local && python bin/rz_server.py --config-dir=etc</code> Command line use documentation can be view with: :$ python rz_server.py -h + +== Installation == + +=== Setup user password file === +The following works in conjunction with run-local.sh, for real deployment place the resulting htpasswd file in the location matching the config you use. +# put a SECRET_KEY entry in the config file: + echo SECRET_KEY=mysecret >> res/etc/rhizi-server.conf +# create an initialization file with email/password separated by a comma: + echo test@example.com,test > res/etc/htpasswd-init-file +# create the htpasswd file: + python src/server/rz_server.py --init-htpasswd-db --htpasswd-init-file res/etc/htpasswd-init-file + = Development = + To update the css files you need [sass](http://sass-lang.com/) The build tool is [make](https://www.gnu.org/software/make/) diff --git a/src/server/rz_server.py b/src/server/rz_server.py index 023cd880..88f2e9f0 100644 --- a/src/server/rz_server.py +++ b/src/server/rz_server.py @@ -58,6 +58,7 @@ class Config(object): cfg['listen_port'] = 8080 cfg['root_path'] = os.getcwd() cfg['static_url_path'] = '/static' + cfg['htpasswd_path'] = os.path.join(cfg['config_dir'], 'htpasswd') # Flask keys cfg['SECRET_KEY'] = '' @@ -269,8 +270,13 @@ def init_config(cfg_dir): return cfg def init_pw_db(cfg, user_pw_list_file): - pass # TODO: stub, will move to tools/ - + if not os.path.exists(user_pw_list_file): + print("error: missing specified htpasswd init file '%s'" % user_pw_list_file) + raise SystemExit + with open(user_pw_list_file) as user_pwd_list_fd: + for line in user_pwd_list_fd: + u, p = [word.strip() for word in line.split(',')] + crypt_util.add_user_login(cfg, u, p) if __name__ == "__main__": |
