コード例 #1
0
ファイル: handlers.py プロジェクト: cubic-g/at-server-backup
def create_person(self):
    desc = json.loads(self.Message)
    globalId = desc['global_id']
    data = util.edm.decode_changes('Person', desc['changes'])
    iso3 = data.pop('_countryIso3', None)

    if iso3:
        try:
            country = m.Country.query.filter(m.Country.iso3 == iso3).one()

        # country not found - create country from edm
        except sqlalchemy.orm.exc.NoResultFound:
            result = util.edm.get_country(iso3)
            country_data = dict(
                name=result['name_eng'],
                iso2=result['iso2'],
                iso3=iso3,
                isoNum=result['iso_num'],
                internet=result['internet'],
                active=result['active'],
            )
            country = m.Country(**country_data)
            SS.add(country)

        data['countryId'] = country.countryId

    try:
        user = m.User.query.filter_by(emailAddress=data['emailAddress']).one()

    # user not found via email address - create user
    except sqlalchemy.orm.exc.NoResultFound:
        user = m.User(**data)
        user.globalId = globalId
        SS.add(user)
        current_app.logger.info('user {0} was created using {1}'.format(
            user.userId, data))

    # user found via email address - apply updates
    else:
        for k, v in data.items():
            if k == 'emailAddress':
                continue
            setattr(user, k, v)
        user.globalId = globalId
        current_app.logger.info('user {0} was updated using {1}'.format(
            user.userId, data))

    current_app.logger.info("committing create_person changes")

    try:
        SS.commit()
    except (psycopg2.Error, sqlalchemy.exc.IntegrityError), e:
        current_app.logger.error(
            "error while committing create_person changes, rolling back: {0}".
            format(e))
        SS.rollback()
        raise
コード例 #2
0
ファイル: __init__.py プロジェクト: cubic-g/at-server-backup
 def make_new_user(self, global_id):
     result = self.get_user_data(global_id)
     data = dict(
         familyName=result['family_name'],
         givenName=result['given_name'],
         emailAddress=result['primary_email_email_address'],
         globalId=result['global_id'],
         # TODO: add workerPaymentType once it is added to EDM response
         # workPaymentType=result[''],
     )
     for _d in result.get('jkvp', []):
         if _d.has_key('worker_payment_type'):
             data['workerPaymentType'] = _d['worker_payment_type']
     user = m.User(**data)
     return user
コード例 #3
0
def sign_up():
    """Makes POST request to create a new user in the db and initiative a new session"""
    new_email = request.form['email']
    new_username = request.form['username']
    new_password = request.form['password']

    # check if this info matches a username already in the db
    existing_email = model.session.query(
        model.User).filter(model.User.email == new_email).count()
    existing_username = model.session.query(
        model.User).filter(model.User.username == new_username).count()

    if (existing_email == 0) and (existing_username == 0):
        # if the user is new to the db,
        # 1) add the new user to the db
        new_user = model.User(username=new_username,
                              email=new_email,
                              password=new_password)
        model.session.add(new_user)
        model.session.commit()

        model.session.refresh(new_user)

        logged_in_user = model.session.query(model.User).filter(
            model.User.username == new_username,
            model.User.password == new_password).one()
        # 2) add the user's info to the session
        session['username'] = logged_in_user.username
        session['user_id'] = logged_in_user.id
        session['logged_in'] = True
        return redirect("/welcome")
    elif existing_email and existing_username:
        credentials_error = True
        return render_template("index.html",
                               credentials_error=credentials_error)
    elif existing_email:
        email_error = True
        return render_template("index.html", email_error=email_error)
    else:
        username_error = True
        return render_template("index.html", username_error=username_error)
コード例 #4
0
ファイル: __init__.py プロジェクト: cubic-g/at-server-backup
            # current_app.logger.info('retrieved user info {}'.format(userInfo))
            email = userInfo['info']['email']
        except Exception, e:
            return make_response(
                _('error retrieving user info {}').format(e), 500)

        #
        # search for user, if found, setup cookie
        try:
            me = m.User.query.filter(m.User.emailAddress == email).one()
        except NoResultFound:
            SS.rollback()
            # add user
            try:
                me = m.User(emailAddress=email,
                            familyName=userInfo['extra']['last_name'],
                            givenName=userInfo['extra']['first_name'],
                            globalId=userInfo['extra']['global_id'])
                SS.add(me)
                SS.flush()
            except Exception, e:
                SS.rollback()
                current_app.logger.error(
                    'error creating new user: {}'.format(e))
                return make_response(
                    _('error creating new user {}').format(email), 500)

        try:
            result = util.tiger.get_user_roles(me.globalId)
            user_type = result['user']['role']
            roles = result['project_user_roles']
            caps = util.tiger.role2caps(user_type)
コード例 #5
0
ファイル: users.py プロジェクト: cubic-g/shopar
def create_user():
    data = MyForm().get_data()
    user = m.User(**data)
    SS.add(user)
    SS.commit()
    return dict(value=m.User.dump(user), )
コード例 #6
0
def add_user():
    user = model.User(name='John Snow', password='******')
    session.add(user)
    session.commit()

    print(user.id)  # None