diff --git a/Makefile b/Makefile index 70bc7ad3d..35086eb87 100644 --- a/Makefile +++ b/Makefile @@ -8,9 +8,14 @@ COMPRESSED_CSS := $(patsubst %.css,%.tiny.css,$(CSS)) PWD=`pwd` ## Catch-all tagets -default: cherrypy.config dirs template css docs +default: cherrypy.config dirs template css docs dbs all: default +dbs: data/users.sqlite3 + +data/users.sqlite3: data/users.sqlite3.distrib + cp data/users.sqlite3.distrib data/users.sqlite3 + dirs: @mkdir -p data/cherrypy_sessions diff --git a/cfg.py b/cfg.py index db237fc40..0f98be007 100644 --- a/cfg.py +++ b/cfg.py @@ -4,6 +4,7 @@ import os file_root = os.path.dirname(os.path.realpath(__file__)) data_dir = os.path.join(file_root, "data") store_file = os.path.join(data_dir, "store.sqlite3") +user_db = os.path.join(data_dir, "users") status_log_file = os.path.join(data_dir, "status.log") access_log_file = os.path.join(data_dir, "access.log") users_dir = os.path.join(data_dir, "users") diff --git a/data/users.sqlite3.distrib b/data/users.sqlite3.distrib new file mode 100644 index 000000000..2d805a153 Binary files /dev/null and b/data/users.sqlite3.distrib differ diff --git a/modules/installed/lib/user_store.py b/modules/installed/lib/user_store.py index f5a7f4895..c3fb0e17e 100644 --- a/modules/installed/lib/user_store.py +++ b/modules/installed/lib/user_store.py @@ -4,8 +4,19 @@ import cherrypy import cfg from model import User from plugin_mount import UserStoreModule +from withsqlite.withsqlite import sqlite_db -class UserStore(UserStoreModule): +class UserStore(UserStoreModule, sqlite_db): + def __init__(self): + self.data_dir = cfg.users_dir + self.db_file = cfg.user_db + sqlite_db.__init__(self, self.db_file) + self.__enter__() + def close(self): + self.__exit__() + +class UserStoreOld(): +#class UserStore(UserStoreModule): """The user storage is on disk. Rather than slurp the entire thing, we read from the disk as needed. Writes are immediate, though. diff --git a/plinth.py b/plinth.py index 9c2e9d532..6f350097c 100755 --- a/plinth.py +++ b/plinth.py @@ -4,8 +4,12 @@ import os, sys #import logging from gettext import gettext as _ +import cfg +if not os.path.join(cfg.file_root, "vendor") in sys.path: + sys.path.append(os.path.join(cfg.file_root, "vendor")) + import cherrypy -import cfg, plugin_mount +import plugin_mount from util import * from logger import Logger #from modules.auth import AuthController, require, member_of, name_is @@ -100,10 +104,11 @@ def setup(): cfg.log = Logger() load_modules() cfg.html_root = Root() + cfg.users = plugin_mount.UserStoreModule.get_plugins()[0] cfg.page_plugins = plugin_mount.PagePlugin.get_plugins() cfg.log("Loaded %d page plugins" % len(cfg.page_plugins)) - cfg.users = plugin_mount.UserStoreModule.get_plugins()[0] cfg.forms = plugin_mount.FormPlugin.get_plugins() + def main(): setup() cherrypy.quickstart(cfg.html_root, script_name='/', config="cherrypy.config")