예제 #1
0
def create_or_get_user(user_details, token):
    """
    {'sub': '108756046399083923726', 'name': 'roc e',
    'given_name': 'roc', 'family_name': 'e',
    'profile': 'https://plus.google.com/108756046399083923726',
    'picture': 'https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAA
AAAA/4252rscbv5M/photo.jpg',
    'email': '*****@*****.**',
    'email_verified': True,
    'gender': 'male'}

    :param user_details:
    :return:
    """
    user = User.query.filter_by(email=user_details['email']).first()
    if user is None:
        user = User()
        user.email = user_details['email']
        user.first_name = user_details['given_name']
        user.last_name = user_details['family_name']
        user.picture = user_details['picture']
        user.access_token = token['access_token']
        db.session.add(user)
        db.session.commit()
    return user
예제 #2
0
def register():
    form = RegisterForm()
    if form.validate_on_submit():
        user = User.query.filter(
            or_(User.mobile_phone == form.login.data,
                func.lower(User.email) == func.lower(
                    form.login.data))).first()
        if not user:
            hashed_password = bcrypt.generate_password_hash(
                form.password.data).decode('utf-8')
            user = User(password=hashed_password,
                        is_active=True,
                        user_confirmed_at=datetime.utcnow())
            if form.is_phone_login:
                user.mobile_phone = form.login.data
            else:
                user.email = form.login.data
            db.session.add(user)
            db.session.commit()
            login_user(user, remember=False)
            flash(
                f'Your account was successfully created and you have been logged in.',
                'success')
            return redirect(url_for('users.profile'))
        else:
            flash('A user with that login already exists', 'danger')
    return render_template('register.html', form=form)
예제 #3
0
파일: migrate.py 프로젝트: lukegb/Passport
def create_user(username, password, email, name):
    u = User()
    u.username = username
    u.password = generate_password_hash(password)
    u.email = email
    u.name = name
    u.active = True
    return u
예제 #4
0
 def register(self, request, *args, **kwargs):
     serializer = RegisterSerializer(data=request.data)
     if serializer.is_valid():
         validated_data = serializer.validated_data
         user = User(**validated_data)
         user.email = user.username
         user.identification_code = User.generate_identification_code()
         user.set_password(validated_data['password'])
         with transaction.atomic():
             user.save()
         return self.login(user)
     return Response({'errors': serializer.errors},
                     status=status.HTTP_400_BAD_REQUEST)
예제 #5
0
def invite_user():
    form = InviteUserForm()
    if form.validate_on_submit():
        submitted_login = form.login.data.strip().replace(' ', '')
        user = get_user_by_login(submitted_login)
        if not user:
            invited_user = User()
            is_phone_number = False
            try:
                phonenumber = phonenumbers.parse(form.login.data)
                is_phone_number = True
            except phonenumbers.phonenumberutil.NumberParseException as error:
                pass
            invited_user.first_name = form.first_name.data.strip()
            invited_user.last_name = form.last_name.data.strip()
            hashed_password = bcrypt.generate_password_hash(
                form.password.data).decode('utf-8')
            invited_user.password = hashed_password
            invited_user.is_active = True
            if is_phone_number:
                invited_user.mobile_phone = form.login.data
                invited_user.prayer_requests_by_sms = True
                log_in = invited_user.mobile_phone
            else:
                invited_user.email = form.login.data
                invited_user.prayer_requests_by_email
                log_in = invited_user.email
            invited_user.invited_at = datetime.utcnow()
            invited_user.invited_by = current_user.id
            db.session.add(invited_user)
            db.session.commit()
            send_invitation(log_in, is_phone_number, form.password.data,
                            invited_user, current_user)
            flash(
                f'The invitation was sent to {invited_user.first_name} {invited_user.last_name}',
                'info')
            return redirect(url_for('main.home'))
        else:
            flash('A user with that login information already exists.', 'info')
    return render_template('invite.html', form=form)
예제 #6
0
def create_user():
    """
    Create a story from the provided json
    :param json:
    :return:
    """
    user = User()

    # check if the post request has the file part
    if 'Image' in request.files:
        print(request.files)
        file = request.files['Image']
        filename = secure_filename(file.filename)
        print(filename)
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        user.imagefile = filename

    user.firstName = request.form['firstName']
    user.lastName = request.form['lastName']
    user.email = request.form['email']
    user.password = generate_password_hash(request.form['password'])
    '''
    content = request.get_json(silent=True)

    user = User()
    user.firstName = content.get("firstName")
    user.lastName = content.get("lastName")
    user.email = content.get("email")
    user.password = generate_password_hash(content.get("password"))
    '''

    try:
        user_id = user.save()
    except Exception as e:
        return build_response.build_json({"error": str(e)})

    return build_response.build_json({"_id": str(user_id.id)})