def create(self): params = parse_request(self.request) tag_csv = ','.join(params['tags']) group = DBSession.query(Group).filter(Group.id.in_(params['groups'])).first() for user_dict in params['users']: new_user = User(**user_dict) if tag_csv: new_user.tags = tag_csv if group: new_user.group_id = group.id try: DBSession.begin_nested() DBSession.add(new_user) DBSession.flush() # print 'Adding user', user_dict['email'] except sqlalchemy.exc.IntegrityError, exc: DBSession.rollback() self.flash(str(exc), success=False) user = DBSession.query(User).filter(User.email==user_dict['email']).first() user.merge(new_user) DBSession.flush()
argd[key] = arg2 config = ConfigParser(dict(here=os.getcwd())) config.read([arg for arg in sys.argv if arg.endswith('.ini')][0]) app_config = dict(config.items('app:main')) engine = engine_from_config(app_config) DBSession.configure(bind=engine) metadata.bind = engine from confrm.models import Organization, User, OrganizationUser user = None org = None if 'user-email' in argd: user = User(email=argd['user-email'], root=True) user.set_password(argd['user-password']) DBSession.add(user) DBSession.flush() print 'Added email' if 'org-slug' in argd: org = Organization(slug=argd['org-slug'], name=argd['org-name']) DBSession.add(org) DBSession.flush() print 'Added organization' if user and org: org_user = OrganizationUser(user_id=user.id, organization_id=org.id, owner=True) DBSession.add(org_user) DBSession.flush()