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")
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
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)
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
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()
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))