def create_license(): if request.method == 'POST': json_data = request.json email = json_data['email'] for_users_left = json_data['no_of_users'] customer_id = str(json_data['customer_id']) no_of_users = str(json_data['no_of_users']) no_of_modules = str(json_data['no_of_modules']) domain = str(json_data['domain']) license_data = customer_id + "," + no_of_modules + "," + no_of_users + "," + domain print("data") keysize = 2048 (public, private) = rsa.newkeys(keysize) #encrypted = b64encode(rsa.encrypt(license_data, public)) #decrypted = rsa.decrypt(b64decode(encrypted), private) signature = b64encode(rsa.sign(license_data, private, "SHA-512")) #verify = rsa.verify(license_data, b64decode(signature), public) privateKey = private.exportKey('PEM') publicKey = public.exportKey('PEM') users_left = for_users_left - 1 expary_date = datetime.datetime.now() model_data = License(json_data, expary_date=expary_date, privateKey=privateKey, publicKey=publicKey, signature=signature, users_left=users_left) try: db.session.add(model_data) db.session.commit() except (sqlalchemy.exc.SQLAlchemyError, sqlalchemy.exc.DBAPIError) as e: db.session.rollback() mail_tempate = render_template('license-Key.html', licenseKey=publicKey) send_email(email, "Yor License Key From Complaince!", mail_tempate) # password_reset__url = url_for('user.confirm_email', token=token, _external=True) #html = render_template('license-key.html', licenseKey=publicKey, # name="Some Username", company="Some Company name") #subject = "Your LicenseKey From Complaince!" #send_mail.send_email(email, subject, html) ret = {'res': 'LicenseKey sent to Your Email'} return wrapper.wrapper(ret, None, 200), 200 if request.method == 'GET': get_license = License.query.all() all_lics = [] for license in get_license: all_lics.append(license.to_dict()) return make_response(jsonify(all_lics)), 200
def post(self): post_data = request.get_json() try: user = User.query.filter_by(email=post_data.get('email')).first() if user: if not user.confirmed: # generate email confirmation token token = generate_confirmation_token(user.email) confirm_url = app.config.get( 'FRONTEND_URL' ) + '#/confirm/' + token # url_for('auth.confirm_email', token=token, _external=True) html = render_template('activate.html', confirm_url=confirm_url) subject = "ReframeDB: Please confirm your email" send_email(user.email, subject, html) # generate the auth token #auth_token = user.encode_auth_token(user.id) responseObject = { 'status': 'success', 'message': 'A confirmation message has been sent to your email.', #'auth_token': auth_token.decode() } return make_response(jsonify(responseObject)), 201 else: responseObject = { 'status': 'fail', 'message': 'You have already confirmed your email. Please login.' } return make_response(jsonify(responseObject)), 501 else: responseObject = { 'status': 'fail', 'message': 'That user does not exist. Please register.' } return make_response(jsonify(responseObject)), 500 except Exception as e: print(e) responseObject = { 'status': 'fail', 'message': 'Could not find user, please register or try again' } return make_response(jsonify(responseObject)), 500
def post(self): post_data = request.get_json() try: user = User.query.filter_by(email=post_data.get('email')).first() if user: if not user.confirmed: responseObject = { 'status': 'fail', 'message': 'You have not confirmed your email. You cannot reset your password without a valid email.', #'auth_token': auth_token.decode() } return make_response(jsonify(responseObject)), 500 else: # generate email confirmation token token = generate_confirmation_token(user.email) reset_pass_url = app.config.get( 'FRONTEND_URL' ) + '#/reset_pass/' + token # url_for('auth.confirm_email', token=token, _external=True) html = render_template('password.html', reset_pass_url=reset_pass_url) subject = "ReframeDB: Reset your password" send_email(user.email, subject, html) responseObject = { 'status': 'success', 'message': 'A new password link has been sent to your email.' } return make_response(jsonify(responseObject)), 200 else: responseObject = { 'status': 'fail', 'message': 'That user does not exist. Please register.' } return make_response(jsonify(responseObject)), 500 except Exception as e: print(e) responseObject = { 'status': 'fail', 'message': 'Could not find user, please register or try again' } return make_response(jsonify(responseObject)), 500
def post(self): # get the post data post_data = request.get_json() # here, one needs to check with the Google ReCaptcha API whether ReCaptcha was sucessfully solved. # what would also be needed here is some kind of delay when a certain IP makes too many requests to either # signup oder login. recaptcha_token = post_data.get('recaptcha_token') params = { 'secret': os.getenv('RECAPTCHA_SECRET_KEY'), 'response': recaptcha_token } r = requests.post('https://www.google.com/recaptcha/api/siteverify', params=params).json() print(r) try: if not r['success']: response_object = { 'status': 'fail', 'message': 'ReCaptcha token could not be verified!' } return make_response(jsonify(response_object)), 401 except KeyError: response_object = { 'status': 'fail', 'message': 'Some error occurred verifying ReCaptcha' } return make_response(jsonify(response_object)), 401 # check if user already exists user = User.query.filter_by(email=post_data.get('email')).first() if not user: try: user = User( email=post_data.get('email'), password=post_data.get('password'), confirmed=False ) # insert the user db.session.add(user) db.session.commit() # generate email confirmation token token = generate_confirmation_token(user.email) confirm_url = app.config.get('FRONTEND_URL') + '#/confirm/' + token # url_for('auth.confirm_email', token=token, _external=True) html = render_template('activate.html', confirm_url=confirm_url) subject = "ReframeDB: Please confirm your email" send_email(user.email, subject, html) # generate the auth token #auth_token = user.encode_auth_token(user.id) responseObject = { 'status': 'success', 'message': 'A confirmation message has been sent to your email.', #'auth_token': auth_token.decode() } return make_response(jsonify(responseObject)), 201 except Exception as e: responseObject = { 'status': 'fail', 'message': 'Some error occurred. Please try again. ' + str(e) } return make_response(jsonify(responseObject)), 401 else: responseObject = { 'status': 'fail', 'message': 'User already exists. Please Log in.', } return make_response(jsonify(responseObject)), 202