Modify firstboot and user_add forms to use add_user function.

This commit is contained in:
James Valleroy 2013-11-04 02:00:40 +00:00 committed by Nick Daly
parent 3a696e0bb9
commit 25974bad85
3 changed files with 12 additions and 37 deletions

View File

@ -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

View File

@ -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)

View File

@ -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