예제 #1
0
    def _create_user(self, form, handler):
        data = form.data
        existing_user_id = session.get('register_pending_user')
        if existing_user_id:
            # Get pending user and set it as non-pending
            user = User.get(existing_user_id)
            user.is_pending = False
        else:
            user = User(first_name=data['first_name'], last_name=data['last_name'], email=data['email'],
                        address=data.get('address', ''), phone=data.get('phone', ''), affiliation=data['affiliation'])

        identity = handler.create_identity(data)
        user.identities.add(identity)
        user.secondary_emails = handler.extra_emails - {user.email}
        user.favorite_users.add(user)
        db.session.add(user)
        minfo = HelperMaKaCInfo.getMaKaCInfoInstance()
        timezone = session.timezone
        if timezone == 'LOCAL':
            timezone = minfo.getTimezone()
        user.settings.set('timezone', timezone)
        user.settings.set('lang', session.lang or minfo.getLang())
        handler.update_user(user, form)
        db.session.flush()
        login_user(user, identity)
        msg = _('You have sucessfully registered your Indico profile. '
                'Check <a href="{url}">your profile</a> for further details and settings.')
        flash(Markup(msg).format(url=url_for('users.user_profile')), 'success')
        return handler.redirect_success()
예제 #2
0
파일: users_test.py 프로젝트: javfg/indico
def test_make_email_primary(db):
    signal_called = False

    def _signal_fn(sender, old, new):
        nonlocal signal_called
        signal_called = True
        assert sender is user
        assert old == '*****@*****.**'
        assert new == '*****@*****.**'

    with signals.users.primary_email_changed.connected_to(_signal_fn):
        user = User(first_name='Guinea',
                    last_name='Pig',
                    email='*****@*****.**')
        db.session.add(user)
        db.session.flush()
        with pytest.raises(ValueError):
            user.make_email_primary('*****@*****.**')
        user.secondary_emails = {'*****@*****.**', '*****@*****.**'}
        db.session.flush()
        assert not signal_called
        user.make_email_primary('*****@*****.**')
        assert signal_called
        db.session.expire(user)
        assert user.email == '*****@*****.**'
        assert user.secondary_emails == {'*****@*****.**', '*****@*****.**'}
예제 #3
0
def test_make_email_primary(db):
    user = User(first_name='Guinea', last_name='Pig', email='*****@*****.**')
    db.session.add(user)
    db.session.flush()
    with pytest.raises(ValueError):
        user.make_email_primary('*****@*****.**')
    user.secondary_emails = {'*****@*****.**', '*****@*****.**'}
    db.session.flush()
    user.make_email_primary('*****@*****.**')
    db.session.expire(user)
    assert user.email == '*****@*****.**'
    assert user.secondary_emails == {'*****@*****.**', '*****@*****.**'}
예제 #4
0
def test_make_email_primary(db):
    user = User(first_name='Guinea', last_name='Pig', email='*****@*****.**')
    db.session.add(user)
    db.session.flush()
    with pytest.raises(ValueError):
        user.make_email_primary('*****@*****.**')
    user.secondary_emails = {'*****@*****.**', '*****@*****.**'}
    db.session.flush()
    user.make_email_primary('*****@*****.**')
    db.session.expire(user)
    assert user.email == '*****@*****.**'
    assert user.secondary_emails == {'*****@*****.**', '*****@*****.**'}