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
parent 9238aea8fe
commit dccd1deae1
3 changed files with 12 additions and 37 deletions

View File

@ -2,14 +2,13 @@ from urlparse import urlparse
import os, cherrypy, re import os, cherrypy, re
from gettext import gettext as _ from gettext import gettext as _
from plugin_mount import PagePlugin, PluginMount, FormPlugin from plugin_mount import PagePlugin, PluginMount, FormPlugin
from modules.auth import require from modules.auth import require, add_user
from forms import Form from forms import Form
import util as u import util as u
from withsqlite.withsqlite import sqlite_db from withsqlite.withsqlite import sqlite_db
import cfg import cfg
import config import config
from model import User from model import User
from passlib.hash import bcrypt
class FirstBoot(PagePlugin): class FirstBoot(PagePlugin):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
@ -65,18 +64,12 @@ class FirstBoot(PagePlugin):
box_key = self.generate_box_key() box_key = self.generate_box_key()
db['box_key'] = box_key db['box_key'] = box_key
if username and password: if username and password:
pass_hash = bcrypt.encrypt(password) error = add_user(username, password, 'First user - please change', '', True)
di = { if error:
'username':username, message += _("User account creation failed: %s") % error
'name':'First user - please change', validuser = False
'expert':'on', else:
"groups": ["expert"], validuser = True
'passphrase':pass_hash,
'salt':pass_hash[7:29], # for bcrypt
}
new_user = User(di)
cfg.users.set(username,new_user)
validuser = True
else: else:
validuser = False validuser = False

View File

@ -1,12 +1,11 @@
import os, cherrypy import os, cherrypy
from gettext import gettext as _ from gettext import gettext as _
from auth import require from auth import require, add_user
from plugin_mount import PagePlugin, FormPlugin from plugin_mount import PagePlugin, FormPlugin
import cfg import cfg
from forms import Form from forms import Form
from util import * from util import *
from model import User from model import User
from passlib.hash import bcrypt
class users(PagePlugin): class users(PagePlugin):
order = 20 # order of running init in PagePlugins 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): def process_form(self, username=None, name=None, email=None, password=None, **kwargs):
msg = Message() msg = Message()
if not username: msg.add = _("Must specify a username!") error = add_user(username, password, name, email, False)
if not password: msg.add = _("Must specify a password!") if error:
msg.text = error
if username in cfg.users.get_all():
msg.add = _("User already exists!")
else: 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) msg.add = _("%s saved." % username)
cfg.log(msg.text) cfg.log(msg.text)
main = self.main(username, name, email, msg=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) 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 -*- # -*- mode: python; mode: auto-fill; fill-column: 80 -*-
import user_store, auth import user_store, auth
from passlib.hash import bcrypt
from logger import Logger from logger import Logger
import cfg import cfg
import unittest import unittest