コード例 #1
0
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
コード例 #2
0
    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
コード例 #3
0
    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
コード例 #4
0
ファイル: views.py プロジェクト: flaneuse/reframedb-backend
    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