Пример #1
0
def load():
    # Decode and verify payload
    payload = flask.request.args['signed_payload']
    user_data = BigcommerceApi.oauth_verify_payload(payload, client_secret())
    if user_data is False:
        return "Payload verification failed!", 401

    bc_user_id = user_data['user']['id']
    email = user_data['user']['email']
    store_hash = user_data['store_hash']

    # Lookup store
    store = Store.query.filter_by(store_hash=store_hash).first()
    if store is None:
        return "Store not found!", 401

    # Lookup user and create if doesn't exist (this can happen if you enable multi-user
    # when registering your app)
    user = User.query.filter_by(bc_id=bc_user_id).first()
    if user is None:
        user = User(bc_user_id, email, store)
        db.session.add(user)
        db.session.commit()

    # Log user in and redirect to app interface
    flask.session['userid'] = user.id
    return flask.redirect(flask.url_for('index'))
Пример #2
0
def load():
    # Decode and verify payload
    payload = flask.request.args['signed_payload']
    user_data = BigcommerceApi.oauth_verify_payload(payload, client_secret())
    if user_data is False:
        return "Payload verification failed!", 401

    bc_user_id = user_data['user']['id']
    email = user_data['user']['email']
    store_hash = user_data['store_hash']

    # Lookup store
    store = Store.query.filter_by(store_hash=store_hash).first()
    if store is None:
        return "Store not found!", 401

    # Lookup user and create if doesn't exist (this can happen if you enable multi-user
    # when registering your app)
    user = User.query.filter_by(bc_id=bc_user_id).first()
    if user is None:
        user = User(bc_user_id, email)
        db.session.add(user)
        db.session.commit()
    storeuser = StoreUser.query.filter_by(user_id=user.id,
                                          store_id=store.id).first()
    if storeuser is None:
        storeuser = StoreUser(store, user)
        db.session.add(storeuser)
        db.session.commit()

    # Log user in and redirect to app interface
    flask.session['storeuserid'] = storeuser.id
    return flask.redirect(app.config['APP_URL'])
Пример #3
0
def remove_user():
    # Decode and verify payload
    payload = flask.request.args['signed_payload']
    user_data = BigcommerceApi.oauth_verify_payload(payload, client_secret())
    if user_data is False:
        return "Payload verification failed!", 401

    # Lookup store
    store_hash = user_data['store_hash']
    store = Store.query.filter_by(store_hash=store_hash).first()
    if store is None:
        return "Store not found!", 401

    # Lookup user and delete it
    bc_user_id = user_data['user']['id']
    user = User.query.filter_by(bc_id=bc_user_id).first()
    if user is not None:
        db.session.delete(user)
        db.session.commit()

    return flask.Response('Deleted', status=204)
Пример #4
0
def uninstall():
    # Decode and verify payload
    payload = flask.request.args['signed_payload']
    user_data = BigcommerceApi.oauth_verify_payload(payload, client_secret())
    if user_data is False:
        return "Payload verification failed!", 401

    # Lookup store
    store_hash = user_data['store_hash']
    store = Store.query.filter_by(store_hash=store_hash).first()
    if store is None:
        return "Store not found!", 401

    # Clean up: delete store associated users. This logic is up to you.
    # You may decide to keep these records around in case the user installs
    # your app again.
    User.query.filter_by(store_id=store.id).delete()
    db.session.delete(store)
    db.session.commit()

    return flask.Response('Deleted', status=204)
Пример #5
0
def remove_user():
    # Decode and verify payload
    payload = flask.request.args['signed_payload']
    user_data = BigcommerceApi.oauth_verify_payload(payload, client_secret())
    if user_data is False:
        return "Payload verification failed!", 401

    # Lookup store
    store_hash = user_data['store_hash']
    store = Store.query.filter_by(store_hash=store_hash).first()
    if store is None:
        return "Store not found!", 401

    # Lookup user and delete it
    bc_user_id = user_data['user']['id']
    user = User.query.filter_by(bc_id=bc_user_id).first()
    if user is not None:
        db.session.delete(user)
        db.session.commit()

    return flask.Response('Deleted', status=204)
Пример #6
0
def uninstall():
    # Decode and verify payload
    payload = flask.request.args['signed_payload']
    user_data = BigcommerceApi.oauth_verify_payload(payload, client_secret())
    if user_data is False:
        return "Payload verification failed!", 401

    # Lookup store
    store_hash = user_data['store_hash']
    store = Store.query.filter_by(store_hash=store_hash).first()
    if store is None:
        return "Store not found!", 401

    # Clean up: delete store associated users. This logic is up to you.
    # You may decide to keep these records around in case the user installs
    # your app again.
    User.query.filter_by(store_id=store.id).delete()
    db.session.delete(store)
    db.session.commit()

    return flask.Response('Deleted', status=204)
Пример #7
0
    def get(self, request):
        payload = request.GET['signed_payload']
        print("payload========>", payload)
        user_data = BigcommerceApi.oauth_verify_payload(
            payload, settings.APP_CLIENT_SECRET)
        print("userdata======>", user_data)
        if user_data is False:
            return "Payload verification failed!"

        bc_user_id = user_data['user']['id']
        print("bc id=========>", bc_user_id)
        email = user_data['user']['email']
        print("email =========>", email)
        store_hash = user_data['store_hash']
        print("store has=========>", store_hash)

        store = Store.objects.filter(store_hash=store_hash).first()
        if store is None:
            return "Store not found!"

        user = User.objects.filter(bc_id=bc_user_id).first()
        if user is None:
            user = User.objects.create(
                bc_id=bc_user_id,
                email=email,
            )
            print("============>>Create new user")

        storeuser = StoreUser.objects.filter(user_id=user.id,
                                             store_id=store.id).first()
        if storeuser is None:
            storeuser = StoreUser.objects.create(
                store_id=store,
                user_id=user,
            )
            print("============>>Create new userstore")

        print("====>Load redirect APP_URL", settings.APP_URL)
        return HttpResponseRedirect(settings.APP_URL)