def create_users(app, count=None): users = [('*****@*****.**', 'password', ['admin'], True), ('*****@*****.**', 'password', ['editor'], True), ('*****@*****.**', 'password', ['admin', 'editor'], True), ('*****@*****.**', 'password', ['author'], True), ('*****@*****.**', 'password', [], False)] count = count or len(users) for u in users[:count]: pw = encrypt_password(u[1]) ds.create_user(email=u[0], password=pw, roles=u[2], active=u[3], confirmed_at=datetime.utcnow()) ds.commit()
def run( self, email_address, password, roles): from exi.models import Role, User # make sure roles exist roles = re.split(r"\s*,\s*", roles) for role in roles: if not Role().find_one(dict(name=role)): print "Role: %s does not exist. Create it first." % role return # does the user already exist? if User().find_one(dict(email=email_address)): print "Email: %s already exists." % email_address return pw = encrypt_password(password) user = User().create(**dict(email=email_address, password=pw, confirmed_at=datetime.datetime.utcnow())) for role in roles: if not UserAddRole().run(**dict(email_address=user.email, role_name=role)): print "Failed to add role: %s" % role