示例#1
0
def register():
    form = UserCustomForm()
    #Create a new user
    if request.method == 'POST' and form.validate():
        data = {
            'first_name':
            str(request.values.get('first_name').encode('utf-8')).title(),
            'last_name':
            str(request.values.get('last_name').encode('utf-8')).title(),
            'email':
            str(request.values.get('email').encode('utf-8')),
        }

        if (request.values.get('user_nic')):
            data['extras'] = {'auth_nic': str(request.values.get('user_nic'))}

        userUdata = datastore.create_user(**data)
        datastore.commit()
        send_confirmation_instructions(userUdata)
        do_flash(*get_message('CONFIRM_REGISTRATION', email=data['email']))
        return redirect(url_for('security.login'))

    else:
        form.email.data = session.get('user_email')
        if form.email.data:
            form.email.render_kw = {'readonly': True}
        form.first_name.data = session.get('first_name')
        form.last_name.data = session.get('last_name')
        form.user_nic.data = session.get('user_nic')
        return theme.render('security/register_saml.html', form=form)
def authorized():
    resp = youckan.authorized_response()
    if resp is None or isinstance(resp, OAuthException):
        # TODO: better error handling
        abort(403)

    session['youckan.token'] = (resp['access_token'], '')
    response = youckan.get('me')
    data = response.data

    user = datastore.find_user(slug=data['slug'])  # TODO: use user id instead
    if not user:
        user = datastore.create_user(
            slug=data['slug'],
            first_name=data['first_name'],
            last_name=data['last_name'],
            email=data['email'],
            avatar_url=data['profile'].get('avatar') or None,
            website=data['profile'].get('website') or None,
            about=data['profile'].get('about') or None
        )
    else:
        user.first_name = data['first_name']
        user.last_name = data['last_name']
        user.email = data['email']
        user.avatar_url = data['profile'].get('avatar') or None
        user.website = data['profile'].get('website') or None
        user.about = data['profile'].get('about') or None

    admin_role = datastore.find_or_create_role('admin')
    if data['is_superuser'] and not user.has_role(admin_role):
        datastore.add_role_to_user(user, admin_role)

    if not user.is_active() and data['is_active']:
        user.active = True

    user.save()
    login_user(user)

    redirect_to = url_for('site.home')
    if 'state' in request.args:
        state = request.args.get('state')
        decoded_state = json.loads(b64decode(state))
        redirect_to = decoded_state.get('next_url', redirect_to)
    return redirect(redirect_to)
示例#3
0
 def run(self):
     data = {
         'first_name': prompt('First name'),
         'last_name': prompt('Last name'),
         'email': prompt('Email'),
         'password': prompt_pass('Password'),
         'password_confirm': prompt_pass('Confirm Password'),
     }
     form = RegisterForm(MultiDict(data), csrf_enabled=False)
     if form.validate():
         data['password'] = encrypt_password(data['password'])
         user = datastore.create_user(**data)
         print '\nUser created successfully'
         print 'User(id=%s email=%s)' % (user.id, user.email)
         return
     print '\nError creating user:'******'\n'.join(errors)
示例#4
0
def create():
    '''Create a new user'''
    data = {
        'first_name': prompt('First name'),
        'last_name': prompt('Last name'),
        'email': prompt('Email'),
        'password': prompt_pass('Password'),
        'password_confirm': prompt_pass('Confirm Password'),
    }
    form = RegisterForm(MultiDict(data), csrf_enabled=False)
    if form.validate():
        data['password'] = encrypt_password(data['password'])
        user = datastore.create_user(**data)
        print '\nUser created successfully'
        print 'User(id=%s email=%s)' % (user.id, user.email)
        return
    print '\nError creating user:'******'\n'.join(errors)
def authorized():
    resp = youckan.authorized_response()
    if resp is None or isinstance(resp, OAuthException):
        # TODO: better error handling
        abort(403)

    session['youckan.token'] = (resp['access_token'], '')
    response = youckan.get('me')
    data = response.data

    user = datastore.find_user(email=data['email'])
    if not user:
        user = datastore.create_user(
            slug=data['slug'],
            first_name=data['first_name'],
            last_name=data['last_name'],
            email=data['email'],
            active=data['is_active'],
            avatar_url=data['profile'].get('avatar') or None,
            website=data['profile'].get('website') or None,
            about=data['profile'].get('about') or None
        )
    else:
        user.first_name = data['first_name']
        user.last_name = data['last_name']
        user.active = data['is_active']
        user.avatar_url = data['profile'].get('avatar') or None
        user.website = data['profile'].get('website') or None
        user.about = data['profile'].get('about') or None

    admin_role = datastore.find_or_create_role('admin')
    if data['is_superuser'] and not user.has_role(admin_role):
        datastore.add_role_to_user(user, admin_role)

    user.save()
    login_user(user)

    redirect_to = url_for('site.home')
    if 'state' in request.args:
        state = request.args.get('state')
        decoded_state = json.loads(b64decode(state))
        redirect_to = decoded_state.get('next_url', redirect_to)
    return redirect(redirect_to)
示例#6
0
def create():
    """Create a new user"""
    data = {
        "first_name": prompt("First name"),
        "last_name": prompt("Last name"),
        "email": prompt("Email"),
        "password": prompt_pass("Password"),
        "password_confirm": prompt_pass("Confirm Password"),
    }
    form = RegisterForm(MultiDict(data), csrf_enabled=False)
    if form.validate():
        data["password"] = encrypt_password(data["password"])
        del data["password_confirm"]
        user = datastore.create_user(**data)
        print "\nUser created successfully"
        print "User(id=%s email=%s)" % (user.id, user.email)
        return
    print "\nError creating user:"******"\n".join(errors)
示例#7
0
def create():
    '''Create a new user'''
    data = {
        'first_name': click.prompt('First name'),
        'last_name': click.prompt('Last name'),
        'email': click.prompt('Email'),
        'password': click.prompt('Password', hide_input=True),
        'password_confirm': click.prompt('Confirm Password', hide_input=True),
    }
    # Until https://github.com/mattupstate/flask-security/issues/672 is fixed
    with current_app.test_request_context():
        form = RegisterForm(MultiDict(data), meta={'csrf': False})
    if form.validate():
        data['password'] = encrypt_password(data['password'])
        del data['password_confirm']
        data['confirmed_at'] = datetime.utcnow()
        user = datastore.create_user(**data)
        success('User(id={u.id} email={u.email}) created'.format(u=user))
        return user
    errors = '\n'.join('\n'.join(e) for e in form.errors.values())
    exit_with_error('Error creating user', errors)
示例#8
0
def create():
    '''Create a new user'''
    data = {
        'first_name': click.prompt('First name'),
        'last_name': click.prompt('Last name'),
        'email': click.prompt('Email'),
        'password': click.prompt('Password', hide_input=True),
        'password_confirm': click.prompt('Confirm Password', hide_input=True),
    }
    # Until https://github.com/mattupstate/flask-security/issues/672 is fixed
    with current_app.test_request_context():
        form = RegisterForm(MultiDict(data), meta={'csrf': False})
    if form.validate():
        data['password'] = encrypt_password(data['password'])
        del data['password_confirm']
        data['confirmed_at'] = datetime.utcnow()
        user = datastore.create_user(**data)
        success('User(id={u.id} email={u.email}) created'.format(u=user))
        return user
    errors = '\n'.join('\n'.join(e) for e in form.errors.values())
    exit_with_error('Error creating user', errors)