summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-01-12 11:19:39 +0200
committerAlon Levy <alon@pobox.com>2015-01-12 11:20:02 +0200
commitdb5dfcbec8cc1fa2ea9110f59adcd7972bd657a9 (patch)
tree2e8d081997542074221e810bdf7adcce6427c698
parent34414fb0d45c274a03a8b01de4688e8ae50702c2 (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.mediawiki14
-rw-r--r--src/server/rz_server.py10
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__":