def populate_user(): new_user = User() new_user.email = "*****@*****.**" new_user.phone = '3333333333' new_user.firstname = "firstname_test" new_user.lastname = "lastname_test" new_user.password = "******" new_user.dateofbirth = datetime.date(2020, 10, 5) new_user.role = "customer" return new_user
def add_user(email, phone, firstname, lastname, password, date, role): new_user = User() new_user.email = email new_user.phone = phone new_user.firstname = firstname new_user.lastname = lastname new_user.password = password new_user.role = role new_user.dateofbirth = date db.session.add(new_user) db.session.commit() return db.session.query(User).filter(User.email == email).first()
def insert_admin(db, app): with app.app_context(): admin = db.session.query(User).filter_by( email='*****@*****.**').first() if admin is None: example = User() example.email = '*****@*****.**' example.phone = '3333333333' example.firstname = 'Admin' example.lastname = 'Admin' example.set_password('admin') example.dateofbirth = datetime.date(2020, 10, 5) example.is_admin = True example.role = 'admin' db.session.add(example) db.session.commit()
def insert_ha(db, app): with app.app_context(): ha = db.session.query(User).filter_by( email='*****@*****.**').first() if ha is None: example = User() example.email = '*****@*****.**' example.phone = '3333333333' example.firstname = 'ha' example.lastname = 'ha' example.set_password('ha') example.dateofbirth = datetime.date(2020, 10, 5) example.is_admin = True example.role = 'ha' db.session.add(example) db.session.commit()
def create_user(): if current_user is not None and hasattr(current_user, 'id'): return make_response( render_template( 'error.html', message="You are already logged! Redirecting to home page", redirect_url="/"), 403) form = UserForm() if request.method == 'POST': if form.validate_on_submit(): new_user = User() form.populate_obj(new_user) new_user.role = request.form['role'] check_already_register = db.session.query(User).filter( User.email == new_user.email).first() if (check_already_register is not None): # already registered return render_template('create_user.html', form=form), 403 new_user.set_password( form.password.data) #pw should be hashed with some salt if new_user.role != 'customer' and new_user.role != 'owner': return make_response( render_template( 'error.html', message= "You can sign in only as customer or owner! Redirecting to home page", redirect_url="/"), 403) db.session.add(new_user) db.session.commit() return redirect('/') else: # invalid form return make_response( render_template('create_user.html', form=form), 400) return render_template('create_user.html', form=form)
def create_app(): app = Flask(__name__) app.config['WTF_CSRF_SECRET_KEY'] = 'A SECRET KEY' app.config['SECRET_KEY'] = 'ANOTHER ONE' #app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://*****:*****@postgres:5432/postgres' app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DATABASE_URI'] app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # Flask-Mail configuration app.config['MAIL_SERVER'] = 'smtp.googlemail.com' app.config['MAIL_PORT'] = 587 app.config['MAIL_USE_TLS'] = True app.config['MAIL_USERNAME'] = '******' app.config['MAIL_PASSWORD'] = '******' app.config['MAIL_DEFAULT_SENDER'] = '*****@*****.**' for bp in blueprints: app.register_blueprint(bp) bp.app = app db.init_app(app) login_manager.init_app(app) try: db.create_all(app=app) except Exception as e: print(e) # TODO THIS SECTION MUST BE REMOVED, ONLY FOR DEMO # already tested EndPoints are used to create examples app.config['WTF_CSRF_ENABLED'] = False with app.app_context(): q = db.session.query(User).filter(User.email == '*****@*****.**') adm = q.first() if adm is None: try: # create a first admin user # test for a user defined in database.db example = User() example.email = '*****@*****.**' example.phone = '3333333333' example.firstname = 'Admin' example.lastname = 'Admin' example.set_password('admin') example.dateofbirth = datetime.date(2020, 10, 5) example.role = 'admin' example.is_admin = True db.session.add(example) db.session.commit() test_client = app.test_client() insert_ha(db, app) for user in customers_example: create_user_EP(test_client,**user) for user in restaurant_owner_example: create_user_EP(test_client,**user) for usr_idx,restaurant in enumerate(restaurant_example): user_login_EP(test_client, restaurant_owner_example[usr_idx]['email'], restaurant_owner_example[usr_idx]['password']) create_restaurant_EP(test_client,restaurant) user_logout_EP(test_client) except Exception as e: print(e) app.config['WTF_CSRF_ENABLED'] = True return app