示例#1
0
def reset_token(token):
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    user = User.verify_reset_token(token)
    if user is None:
        flash("That is invalid or expired token.", "warning")
        return redirect(url_for('reset_request'))
    form = ResetPasswordForm()
    if form.validate_on_submit():
        hashed_password = bcrypt.generate_password_hash(form.password.data)
        user = User(passwor=form.password.data)
        user.password = hashed_password
        db.session.commit()
        flash('Your password has been reset! You are now able to log in',
              'success')
        return redirect(url_for('login'))
    return render_template('reset_token.html',
                           title='Reset Password',
                           form=form)
示例#2
0
def PopulateDB():
    log_writer = logger.App_Logger()
    processLog = open(
        os.path.join(logPath, 'database_logs/Populate_DB_Process_Log.txt'),
        'a+')

    with open(jobs_file) as file:
        print('Populating Jobs')
        reader = csv.reader(file, delimiter=',')
        row_count = 0
        for row in reader:
            if row_count == 0:
                row_count += 1
            else:
                job = Job(id=row[0],
                          date=parse(row[1]),
                          user_id=row[3],
                          title=row[6],
                          description=row[9],
                          skills=row[11],
                          category=row[7],
                          subcategory=row[8],
                          payment_type=row[4],
                          budget=row[5],
                          links_quoters=row[15],
                          links_invited=row[19],
                          links_hired=row[21],
                          min_budget=row[23],
                          job_cluster_id=row[22])
                db.session.add(job)

                name = row[10]
                firstname = name.split()[0]
                lastname = ' '.join(name.split()[1:])
                username = '******'.join([
                    firstname, lastname.replace(' ', '-')
                ]).lower() if lastname != '' else firstname.lower()
                email = username + '@xyz.com'

                user = User(id=row[3],
                            usertype='employer',
                            firstname=firstname,
                            lastname=lastname,
                            username=username,
                            email=email)
                test_user = User.query.filter_by(id=row[3]).first()
                if not test_user:
                    db.session.add(user)

                db.session.commit()
                row_count += 1

        print('Jobs Populated Successfully')
        log_writer.log(processLog, 'Jobs Populated Successfully')

    with open(profiles_file) as file:
        print('Populating Freelancer Profiles')
        reader = csv.reader(file, delimiter=',')
        row_count = 0
        for row in reader:
            if row_count == 0:
                row_count += 1
            else:
                profile = Profile(id=row[0],
                                  user_id=row[3],
                                  total_feedbacks=row[4],
                                  location=row[10],
                                  min_hourly_rate=row[20],
                                  max_hourly_rate=row[21],
                                  min_starting_rate=row[18],
                                  max_starting_rate=row[19],
                                  member_since=row[16],
                                  rating=row[9],
                                  earnings_annual=row[11],
                                  earnings_alltime=row[12],
                                  earnings_avg=row[17],
                                  transactions_completed=row[13],
                                  weighted_rating=row[22],
                                  profile_cluster_id=row[23],
                                  skills=row[24])
                db.session.add(profile)

                name = row[2]
                firstname = name.split()[0]
                lastname = ' '.join(name.split()[1:])
                username = '******'.join([
                    firstname, lastname.replace(' ', '-')
                ]).lower() if lastname != '' else firstname.lower()
                email = username + '@xyz.com'

                user = User(id=row[3],
                            usertype='freelancer',
                            firstname=firstname,
                            lastname=lastname,
                            username=username,
                            email=email)

                test_user = User.query.filter_by(id=row[3]).first()
                if not test_user:
                    db.session.add(user)

                db.session.commit()
                row_count += 1

        print('Freelancer Profiles Populated Successfully')
        log_writer.log(processLog, 'Profiles Populated Successfully')

    print('Hashing User Passwords. This may take some time. Do not abort')
    users = User.query.all()
    for user in users:
        hashed_password = bcrypt.generate_password_hash(
            user.password).decode('utf-8')
        user.password = hashed_password
        db.session.commit()
    print('All Passwords Hashed')
    log_writer.log(processLog, 'All Passwords Hashed')
    print('Database Populated Successfully')
    log_writer.log(processLog, 'Database Populated Successfully')

    processLog.close()