def populate(engine, interactive=True): Base.metadata.create_all(engine) session = DBSession() user_perm = Permission(name=u'user_view') admin_perm = Permission(name=u'admin_view') download_perm = Permission(name=u'download_releasefile') upload_perm = Permission(name=u'upload_releasefile') session.add(user_perm) session.add(upload_perm) session.add(download_perm) session.add(admin_perm) admin_group = Group(name=u'admin') admin_group.permissions.append(user_perm) admin_group.permissions.append(download_perm) admin_group.permissions.append(upload_perm) admin_group.permissions.append(admin_perm) session.add(admin_group) user_group = Group(name=u'developer') user_group.permissions.append(user_perm) user_group.permissions.append(download_perm) user_group.permissions.append(upload_perm) session.add(user_group) pip_group = Group(name=u'installer') pip_group.permissions.append(download_perm) session.add(pip_group) if interactive: login = (input('administrator login [admin]:') or 'admin') password = (input('administrator password [changeme]:') or 'changeme') email = (input('administrator email [[email protected]]') or '*****@*****.**') piplogin = (input('installer login [pip]:') or 'pip') pippassword = (input('installer password [changeme]:') or 'changeme') else: login = '******' password = '******' email = '*****@*****.**' piplogin = '******' pippassword = '******' admin = User(login=unicode(login), password=unicode(password), email=unicode(email)) admin.groups.append(admin_group) session.add(admin) pip = User(login=unicode(piplogin), password=unicode(pippassword), ) pip.groups.append(pip_group) session.add(pip) session.commit()