From 25974bad8533a01c30ef31d4e3ba76730fac29c9 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Mon, 4 Nov 2013 02:00:40 +0000 Subject: [PATCH] Modify firstboot and user_add forms to use add_user function. --- modules/installed/first_boot.py | 21 +++++++-------------- modules/installed/system/users.py | 27 +++++---------------------- tests/auth_test.py | 1 - 3 files changed, 12 insertions(+), 37 deletions(-) diff --git a/modules/installed/first_boot.py b/modules/installed/first_boot.py index 8c166c742..f89f51e0f 100644 --- a/modules/installed/first_boot.py +++ b/modules/installed/first_boot.py @@ -2,14 +2,13 @@ from urlparse import urlparse import os, cherrypy, re from gettext import gettext as _ from plugin_mount import PagePlugin, PluginMount, FormPlugin -from modules.auth import require +from modules.auth import require, add_user from forms import Form import util as u from withsqlite.withsqlite import sqlite_db import cfg import config from model import User -from passlib.hash import bcrypt class FirstBoot(PagePlugin): def __init__(self, *args, **kwargs): @@ -65,18 +64,12 @@ class FirstBoot(PagePlugin): box_key = self.generate_box_key() db['box_key'] = box_key if username and password: - pass_hash = bcrypt.encrypt(password) - di = { - 'username':username, - 'name': 'First user - please change', - 'expert': 'on', - "groups": ["expert"], - 'passphrase':pass_hash, - 'salt':pass_hash[7:29], # for bcrypt - } - new_user = User(di) - cfg.users.set(username,new_user) - validuser = True + error = add_user(username, password, 'First user - please change', '', True) + if error: + message += _("User account creation failed: %s") % error + validuser = False + else: + validuser = True else: validuser = False diff --git a/modules/installed/system/users.py b/modules/installed/system/users.py index 53bf71192..50fb3cc20 100644 --- a/modules/installed/system/users.py +++ b/modules/installed/system/users.py @@ -1,12 +1,11 @@ import os, cherrypy from gettext import gettext as _ -from auth import require +from auth import require, add_user from plugin_mount import PagePlugin, FormPlugin import cfg from forms import Form from util import * from model import User -from passlib.hash import bcrypt class users(PagePlugin): order = 20 # order of running init in PagePlugins @@ -47,28 +46,12 @@ class add(FormPlugin, PagePlugin): def process_form(self, username=None, name=None, email=None, password=None, **kwargs): msg = Message() - if not username: msg.add = _("Must specify a username!") - if not password: msg.add = _("Must specify a password!") - - if username in cfg.users.get_all(): - msg.add = _("User already exists!") + error = add_user(username, password, name, email, False) + if error: + msg.text = error else: - try: - pass_hash = bcrypt.encrypt(password) - di = { - 'username':username, - 'name':name, - 'email':email, - 'passphrase':pass_hash, - 'salt': pass_hash[7:29], # for bcrypt - } - new_user = User(di) - cfg.users.set(username,new_user) - except: - msg.add = _("Error storing user!") - - if not msg: msg.add = _("%s saved." % username) + cfg.log(msg.text) main = self.main(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) diff --git a/tests/auth_test.py b/tests/auth_test.py index 589025987..6ea5d0252 100644 --- a/tests/auth_test.py +++ b/tests/auth_test.py @@ -2,7 +2,6 @@ # -*- mode: python; mode: auto-fill; fill-column: 80 -*- import user_store, auth -from passlib.hash import bcrypt from logger import Logger import cfg import unittest