diff options
author | Tom Galloway <github@tomgalloway.co.uk> | 2013-01-21 10:30:52 +0000 |
---|---|---|
committer | Tom Galloway <github@tomgalloway.co.uk> | 2013-01-21 10:30:52 +0000 |
commit | c4cddbfc0e42afb8e69dce08b561ac00b0f07b35 (patch) | |
tree | 8063906dc0cae2e2d8cf2e467fe27a9313ccdb34 /modules | |
parent | a312b6d288dc2f978237c1d5e309972d3c873327 (diff) |
Changes to get user management screens started. Updated UserStore to add all expected functions. Added tests for these functions.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/installed/lib/user_store.py | 38 | ||||
-rw-r--r-- | modules/installed/system/users.py | 24 |
2 files changed, 48 insertions, 14 deletions
diff --git a/modules/installed/lib/user_store.py b/modules/installed/lib/user_store.py index a4042c1..236b73a 100644 --- a/modules/installed/lib/user_store.py +++ b/modules/installed/lib/user_store.py @@ -12,10 +12,42 @@ class UserStore(UserStoreModule, sqlite_db): self.db_file = cfg.user_db sqlite_db.__init__(self, self.db_file, autocommit=True) self.__enter__() + def close(self): - self.__exit__() - def expert(self): - return False + self.__exit__(None,None,None) + + def expert(self, username=None): + groups = self.attr(username,"groups") + if not groups: + return False + return 'expert' in groups + + def attr(self, username=None, field=None): + return self.get(username)[field] + + def get(self,username=None): + return User(sqlite_db.get(self,username)) + + def exists(self, username=None): + try: + user = self.get(username) + if not user: + return False + elif user["username"]=='': + return False + return True + except TypeError: + return False + + def remove(self,username=None): + self.__delitem__(username) + self.commit() + + def get_all(self): + return self.items() + + def set(self,username=None,user=None): + sqlite_db.__setitem__(self,username, user) class UserStoreOld(): #class UserStore(UserStoreModule): diff --git a/modules/installed/system/users.py b/modules/installed/system/users.py index 81e747b..63d9c76 100644 --- a/modules/installed/system/users.py +++ b/modules/installed/system/users.py @@ -47,23 +47,25 @@ class add(FormPlugin, PagePlugin): return form.render() def process_form(self, username=None, name=None, email=None, md5_password=None, **kwargs): - msg = '' + msg = Message() - if not username: msg = add_message(msg, _("Must specify a username!")) - if not md5_password: msg = add_message(msg, _("Must specify a password!")) + if not username: msg.add = _("Must specify a username!") + if not md5_password: msg.add = _("Must specify a password!") - if username in cfg.users: - msg = add_message(msg, _("User already exists!")) + if username in cfg.users.keys(): + msg.add = _("User already exists!") else: try: - cfg.users[username]= User(dict={'username':username, 'name':name, 'email':email, 'password':md5_password}) + di = {'username':username, 'name':name, 'email':email, 'passphrase':md5_password} + new_user = User(dict=di) + cfg.users.set(username,new_user) except: - msg = add_message(msg, _("Error storing user!")) + msg.add = _("Error storing user!") if not msg: - msg = add_message(msg, "%s saved." % username) - - main = self.make_form(username, name, email, message=msg) + msg.add = _("%s saved." % username) + cfg.log(msg.text) + #main = self.make_form(username, name, email, msg=msg.text) return self.fill_template(title="Manage Users and Groups", main=main, sidebar_left=self.sidebar_left, sidebar_right=self.sidebar_right) class edit(FormPlugin, PagePlugin): @@ -114,7 +116,7 @@ class edit(FormPlugin, PagePlugin): msg.add(_("User %s does not exist." % username)) else: msg.add = _("Must specify at least one valid, existing user.") - main = self.make_form(msg=msg.text) + #main = self.make_form(msg=msg.text) return self.fill_template(title="Manage Users and Groups", main=main, sidebar_left=self.sidebar_left, sidebar_right=self.sidebar_right) sidebar_right = '' |