示例#1
0
def register():
    title = "Register Organization"
    formRegister = RegisterForm()
    if formRegister.validate_on_submit():
        organization = Organization(
            name=formRegister.name_company.data,
            email=formRegister.email.data,
            typeofbusiness=formRegister.type_company.data,
            address=formRegister.address.data,
            phone_number=formRegister.business_phone_number.data)
        db.session.add(organization)
        db.session.commit()

        employee = Employee(
            fname=formRegister.manager_namef.data,
            lname=formRegister.manager_namel.data,
            email=formRegister.email.data,
            phone_number=formRegister.manager_phone_number.data,
            manager=True,
            organization_id=organization.id,
            firsttimelogin=False,
            question1=formRegister.question1.data,
            answer1=formRegister.answer1.data,
            question2=formRegister.question2.data,
            answer2=formRegister.answer2.data,
        )
        employee.set_password(formRegister.enter_password.data)
        db.session.add(employee)
        db.session.commit()
        flash('New Organization has been added')
        return redirect(url_for('login'))
    return render_template("register.html",
                           title=title,
                           formRegister=formRegister)
示例#2
0
def register():
    """
    View function for the registration page.
    :return: HTTPResponse in the form of register.html template
    """

    #If user is already logged in then redirect to homepage
    if current_user.is_authenticated:
        return redirect(url_for('index'))

    form = RegistrationForm()

    if form.validate_on_submit():
        #Create a new employee instance and add it to database
        employee = Employee(username=form.username.data,
                            email=form.email.data,
                            name=form.name.data,
                            contact=form.contact.data,
                            address=form.address.data,
                            manager=form.manager.data)
        employee.set_password(form.password.data)
        db.session.add(employee)
        db.session.commit()
        flash('Congratulations! You are now a registered user')
        return redirect(url_for('login'))

    return render_template('register.html', title='Register', form=form)
    def test_password_hash(self):
        # create employee
        e = Employee(email='*****@*****.**',
                     first_name='thomas',
                     last_name='mcdonnell')
        # set password
        e.set_password('test')

        # check password hashing
        self.assertTrue(e.check_password('test'))
        self.assertFalse(e.check_password('fest'))
示例#4
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('index'))
    form = RegistrationForm()
    if form.validate_on_submit():
        user = Employee(ename=form.name.data, emp_id=form.emp_id.data)
        user.set_password(form.password.data)
        db.session.add(user)
        db.session.commit()
        flash('Congratulations, you are now a registered user!')
        return redirect(url_for('login'))
    return render_template('Login/register.html', title='Register', form=form)
示例#5
0
def register():
    if current_user.is_authenticated:
        return redirect('/index')
    form = RegistrationForm()
    if form.validate_on_submit():
        employee = Employee(employee_id=form.userid.data,
                            employee_name=form.name.data,
                            phone=form.phone.data,
                            password=form.password.data)
        employee.set_password(form.password.data)
        db.session.add(employee)
        db.session.commit()
        flash('Registration successful.')
        return redirect('/login')
    return render_template('register.html', title='Register', form=form)
示例#6
0
def register():
    if current_user.is_authenticated:
        return redirect(url_for('home'))
    form = EmployeeRegistrationForm()
    if form.validate_on_submit():
        employee = Employee(username=form.username.data,
                            name=form.name.data,
                            job_title=form.job_type.data,
                            hourly_wage=form.hourly.data,
                            employer_id=form.company.data)
        employee.set_password(form.password.data)
        db.session.add(employee)
        db.session.commit()
        flash('Account registered successfully')
        return redirect(url_for('login'))
    return render_template('register.html', title='Register', form=form)
示例#7
0
def addemployee():
    """Adds a new Employee to the data base under the same organization id as the logged in user who is adding the
    new user.
    Also allows the new user to be selected as manager or employee"""

    title = "Add employee to Shifter"
    formEmployee = EmployeeForm()
    formLogout = LogoutForm()
    if formLogout.Logout.data and formLogout.is_submitted():
        return redirect(url_for('logout'))

    if (formEmployee.validate_on_submit()):
        user = Employee.query.filter_by(email=formEmployee.email.data).first()
        user1 = Employee.query.filter_by(
            phone_number=formEmployee.phone_number.data).first()
        if user is not None:
            flash(
                'There is already an account registered under this email address.'
            )
            return redirect(url_for('addemployee'))
        elif user1 is not None:
            flash(
                'There is already an account registered under this phone number.'
            )
            return redirect(url_for('addemployee'))
        else:
            firstn = formEmployee.first_name.data
            employee = Employee(fname=formEmployee.first_name.data,
                                lname=formEmployee.last_name.data,
                                email=formEmployee.email.data,
                                phone_number=formEmployee.phone_number.data,
                                organization_id=current_user.organization_id,
                                firsttimelogin=True)
            employee.setManager(formEmployee.manager.data)
            employee.set_password(formEmployee.phone_number.data)
            db.session.add(employee)
            db.session.commit()

        flash(firstn + ' has been added to the company')
        return redirect(url_for('login'))

    return render_template("addemployee.html",
                           title=title,
                           formEmployee=formEmployee,
                           formLogout=formLogout)
def employee():
    user = Employee.query.filter_by(id=current_user.id).first_or_404()
    company = Company.query.get(int(user.company_id))
    if user.is_admin:
        form = EmployeeAccount()
        if form.validate_on_submit():
            employee = Employee(first_name=form.first_name.data,
                                last_name=form.last_name.data,
                                email=form.email.data,
                                member_of=company)
            employee.set_password(form.password.data)
            db.session.add(employee)
            db.session.commit()
            flash('Employee has been added to your account.')
            return redirect(url_for('main.index'))
        flash('Employee could not be created.')
        return redirect(url_for('main.index'))
    return redirect(url_for('main.index'))
def company_registration():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))
    form = CompanyAccount()
    if form.validate_on_submit():
        company = Company(company_name=form.company_name.data,
                          email=form.company_email.data)
        admin = Employee(email=form.admin_email.data,
                         first_name=form.admin_first_name.data,
                         last_name=form.admin_last_name.data,
                         is_admin=True,
                         member_of=company)
        admin.set_password(form.password.data)
        db.session.add(company, admin)
        db.session.commit()
        flash('Your company has been registered sucessfully.')
        return redirect(url_for('auth.login'))
    return render_template('auth/register.html', title='Register', form=form)
示例#10
0
def addemployee():
    title = "Add employee to Shifter"
    formEmployee = EmployeeForm()
    formLogout = LogoutForm()
    if formLogout.Logout.data and formLogout.is_submitted():
        flash('Logged out')
        return redirect(url_for('logout'))

    if (formEmployee.validate_on_submit()):
        user = Employee.query.filter_by(email=formEmployee.email.data).first()
        user1 = Employee.query.filter_by(
            phone_number=formEmployee.phone_number.data).first()
        if user is not None:
            flash(
                'There is already an account registered under this email address.'
            )
            return redirect(url_for('addemployee'))
        elif user1 is not None:
            flash(
                'There is already an account registered under this phone number.'
            )
            return redirect(url_for('addemployee'))
        else:
            employee = Employee(fname=formEmployee.first_name.data,
                                lname=formEmployee.last_name.data,
                                email=formEmployee.email.data,
                                phone_number=formEmployee.phone_number.data,
                                organization_id=current_user.organization_id,
                                firsttimelogin=True)
            employee.setManager(formEmployee.manager.data)
            employee.set_password(formEmployee.phone_number.data)
            db.session.add(employee)
            db.session.commit()

        return redirect(url_for('login'))

    return render_template("addemployee.html",
                           title=title,
                           formEmployee=formEmployee,
                           formLogout=formLogout)
def test_add_employee_to_db(db):
    emp1 = Employee(fname='Testy',
                    lname='McTest',
                    email='*****@*****.**',
                    phone_number='9998887777',
                    organization_id='1',
                    firsttimelogin=True)
    emp1.setManager(
        'Employee')  # 'Employee' arg sets to False, 'Manager' arg sets to True
    emp1.set_password(emp1.phone_number)
    db.session.add(emp1)
    assert len(Employee.query.all()) == 1
    emp_from_db = Employee.query.get(1)
    assert emp_from_db.fname == emp1.fname
    assert emp_from_db.lname == emp1.lname
    assert emp_from_db.email == emp1.email
    assert emp_from_db.phone_number == emp1.phone_number
    assert emp_from_db.organization_id == emp1.organization_id
    assert emp_from_db.firsttimelogin == emp1.firsttimelogin
    assert emp_from_db.manager == False

    # An employee's password should be their phone number by default, but the password
    # in the database should be hashed.

    assert emp_from_db.password_hash != emp1.phone_number

    emp2 = Employee(fname='Sam',
                    lname='TheManager',
                    email='*****@*****.**',
                    phone_number='8372934823',
                    organization_id='1',
                    firsttimelogin=True)
    emp2.setManager('Manager')
    emp2.set_password(emp2.phone_number)
    db.session.add(emp2)
    assert len(Employee.query.all()) == 2
    manager_from_db = Employee.query.get(2)
    assert manager_from_db.manager == True