Example #1
0
def dashboard_applicant():
    """
    The 'dashboard_applicant' route directs an applicant to their dashboard. 
    They can view the status of their application here.
    """
    if session['username']:
        form = BecomeUserForm()
        info = Applicant.get_applicant_info(session['username'])

        if session['type_of_user'] == 'applicant' and request.method == 'GET':
            return render_template("dashboard_applicant.html",
                                   info=info,
                                   form=form)
        if session['type_of_user'] == 'applicant' and request.method == 'POST':
            info = Applicant.get_applicant_info(session['username'])
            if form.use_prev_credentials.data == 'yes':
                User.use_old_credentials(info['user_id'], info['email'])
                session['type_of_user'] = '******'
                session['role'] = info['type_of_user']
                # Create a new client or developer in database depending on type of user
                if info['type_of_user'] == 'client':
                    Client(info['user_id'])
                elif info['type_of_user'] == 'developer':
                    Developer(info['user_id'])
                return redirect(url_for('dashboard'))

            elif form.validate():
                User.set_credentials(form.username.data, form.password.data,
                                     info['email'])
                session['username'] = form.username.data
                session['type_of_user'] = '******'
                session['role'] = info['type_of_user']
                # Create a new client or developer in database depending on type of user
                if info['type_of_user'] == 'client':
                    Client(form.username.data)
                elif info['type_of_user'] == 'developer':
                    Developer(form.username.data)
                return redirect(url_for('dashboard'))
            else:
                flash(
                    'Login credentials are invalid. Please check that all fields are filled correctly.'
                )
                return render_template("dashboard_applicant.html",
                                       info=info,
                                       form=form)
        elif session['type_of_user'] == 'user':
            return redirect(url_for('dashboard'))
        elif session['type_of_user'] == 'superuser':
            return redirect(url_for('dashboard_superuser'))

    else:
        return render_template("index.html")
Example #2
0
  def post_developers(jwt):

    error = False
    body = request.get_json()
    #print(body)
    name = body.get('name')
    #print(name)
    proj_participation = body.get('proj_participation')
    #print(proj_participation)

    new_developer = Developer(name=name, proj_participation=proj_participation)

    try:
      new_developer.insert()
      #flash('New Developer ' + str(new_developer.name) + ' was successful listed!')
    except Exception as e:
      error = True
      print(e)
      #flash('An error occurred. New Developer ' + str(new_developer.name) + ' could not be listed.')
    if error:
      abort(400)
    else:
      return jsonify({
        'success': True,
        'name': name,
        'proj_participation': proj_participation
      }), 200
Example #3
0
File: tests.py Project: jsphyin/idb
    def test_add_Developer3(self):

        with app.test_request_context():
            developer3 = Developer()
            init_len = len(Developer.query.all())
            db.session.add(developer3)
            db.session.commit()
            changed_len = len(Developer.query.all())
            self.assertEqual(init_len + 1, changed_len)

            init_len = changed_len
            db.session.delete(developer3)
            db.session.commit()
            changed_len = len(Developer.query.all())
            self.assertEqual(init_len - 1, changed_len)
Example #4
0
def generatekey():
    content=request.json
    if 'token' in content:
        token=content['token']
        token=loggedIn(token)
        if token is not None:
            user=token.user[0]
            if len(user.keys)>4:
                return jsonify({"details":"Limit number of keys reached"}),400
            devkey=tokenvalue=''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits + string.ascii_lowercase) for _ in range(128))
            dev=Developer(devkey)
            dev.user=user
            db_session.add(dev)
            db_session.commit()
            return jsonify({"details":"Key Generated"}),200
        jsonify({"details":"Not authorized"}),401
    
    return jsonify({"details":"Wrong data"}),400
Example #5
0
File: tests.py Project: jsphyin/idb
    def test_add_Developer2(self):

        with app.test_request_context():
            developer2 = Developer(id=1000000,
                                   name="developer2",
                                   image="www.test_image2.com",
                                   desc="This is a test developer 2.",
                                   raw_desc="Test developer 2",
                                   website="www.developer2.com")
            db.session.add(developer2)
            db.session.commit()

            gamequery = db.session.query(Developer).filter_by(
                id="1000000").first()
            self.assertEqual(gamequery.desc, "This is a test developer 2.")
            self.assertEqual(gamequery.raw_desc, "Test developer 2")
            self.assertEqual(gamequery.website, "www.developer2.com")

            db.session.delete(developer2)
            db.session.commit()
Example #6
0
File: tests.py Project: jsphyin/idb
    def test_add_Developer1(self):

        with app.test_request_context():
            developer1 = Developer(id=1000000,
                                   name="developer1",
                                   image="www.test_image.com",
                                   desc="This is a test developer.",
                                   raw_desc="Test developer",
                                   website="www.developer.com")
            db.session.add(developer1)
            db.session.commit()

            gamequery = db.session.query(Developer).filter_by(
                id="1000000").first()
            self.assertEqual(gamequery.id, 1000000)
            self.assertEqual(gamequery.name, "developer1")
            self.assertEqual(gamequery.image, "www.test_image.com")

            db.session.delete(developer1)
            db.session.commit()
def register():
    switch = request.form["switch"]
    print(switch)
    is_valid = True
    if switch == "org":
        email = Organization.query.filter_by(email=request.form["email"]).all()
        email2 = Developer.query.filter_by(email=request.form["email"]).all()
        if len(request.form["orgname"]) == 0:
            is_valid = False
            flash("Organization name cannot be blank", "reg")
    elif switch == "dev":
        email = Developer.query.filter_by(email=request.form["email"]).all()
        email2 = Organization.query.filter_by(
            email=request.form["email"]).all()
    if email:
        is_valid = False
        flash("Email in use")
    if email2:
        is_valid = False
        if switch == "dev":
            flash("Email registered as an Organization")
        if switch == "org":
            flash("Email registered as a Developer")
    if not request.form["fname"].isalpha() or not len(
            request.form["fname"]) >= 2:
        is_valid = False
        flash(
            "First name can only contain letters and must be at least 2 characters long",
            "reg")
    if not request.form['lname'].isalpha() or not len(
            request.form['lname']) >= 2:
        is_valid = False
        flash(
            "Last name can only contain letters and must be at least 2 characters long",
            "reg")
    if not EMAIL_REGEX.match(request.form["email"]):
        is_valid = False
        flash("Invalid Email Address")
    if not len(request.form['address']) > 5:
        is_valid = False
        flash("Address must be longer than 5 characters", "reg")
    if not len(request.form['city']) >= 2:
        is_valid = False
        flash("City name must be at least 3 characters long", "reg")
    if not password_reg.match(request.form["password"]):
        is_valid = False
        flash(
            "Password should be at least 5 characters, have one number, one uppercase and one lowercase letter, and one symbol"
        )
    if request.form["password"] != request.form["confirmpass"]:
        is_valid = False
        flash("Passwords do not match", "reg")
    if is_valid:
        pw_hash = bcrypt.generate_password_hash(request.form["password"])
        if switch == "dev":
            user = Developer(fname=request.form["fname"],
                             lname=request.form["lname"],
                             email=request.form["email"],
                             address=request.form["address"],
                             city=request.form["city"],
                             state=request.form["state"],
                             password=pw_hash)
        elif switch == "org":
            user = Organization(orgname=request.form["orgname"],
                                fname=request.form["fname"],
                                lname=request.form["lname"],
                                email=request.form["email"],
                                address=request.form["address"],
                                city=request.form["city"],
                                state=request.form["state"],
                                password=pw_hash)
        db.session.add(user)
        db.session.commit()
        session["user_id"] = {
            "fname": user.fname,
            "lname": user.lname,
            "email": user.email,
            "id": user.id,
            "role": switch
        }
        return redirect("/{}_landing".format(switch))
    return redirect("/#{}_reg".format(switch))