Beispiel #1
0
def facebook_authorized():
    """Authorize facebook login."""

    data = request.get_json()
    session['facebook_token'] = {"Type": data['token_type'], "access_token": data['accessToken']}
    graph = f.GraphAPI(data['accessToken'])
    profile = graph.get_object('me', **{'fields': 'id, name, email, picture'})
    data.clear()
    data = dict(
        photo=profile['picture']['data']['url'],
        name=profile['name'],
        social_id=profile['id'],
        social="facebook",
        password=None,
        email=profile.get('email'),
        fileStorage_key=random_string(10),
    )
    user_in_db = User.get_user_by_social_id(profile['id'])
    if user_in_db:
        token = Auth.generate_token(user_social.dump(user_in_db)["id"])
        return token_return(token, data.get('name'), data.get('email'))

    if data['email']:
        login_success('LoginSuccess.html', email=data.get('email'), name=data.get('name'))

    create_profile(data)
    profile_info = profile_schema.dump(Profiles.get_profile(data.get('social_id')))
    data['fileStorage_key'], data['profile_id'] = random_string(10), profile_info.get('id')
    user = User(data)
    user.save()
    create_all_default_contract(user.id)
    return token_return(Auth.generate_token(user_schema.dump(user)['id']), data.get('name'), data.get('email'))
Beispiel #2
0
def register():
    """ Create User Function """

    data, error = validate_data(user_schema, request, return_dict=False)
    if error:
        return custom_response(data, 400)

    if User.get_user_by_email(data.get('email')):
        return custom_response("Email already exist", 400)

    data.update({'fileStorage_key': random_string(10), 'profile_id': create_profile(data)})
    new_user = User(data)
    new_user.save()
    keys = random_int()
    KeyResetPassword(dict(keys=keys, user_id=new_user.id)).save()
    generate_basic_stars(user_id=new_user.id)
    if data.get('services'):
        generate_condition_globals(new_user.id)
        if data.get('user_type') == USER_ARTIST_BEATMAKER:
            create_all_default_contract(new_user.id)
        data['services']['user_id'] = new_user.id
        data['services']['galleries'] = check_galleries_files(request, new_user)
        data['services']['materials_id'] = create_new_materials_for_new_services()
        new_service = Services(data['services'])
        new_service.save()
        generate_basic_stars(service_id=new_service.id)
        first_service('FirstService.html', data["email"], data["name"], data['services']["title"])
    login_success('LoginSuccess.html', data["email"], data["name"], keys)
    return token_return(Auth.generate_token(new_user.id), data.get('name'), data.get('email'))
Beispiel #3
0
def callback():
    """ My Callback function for google login and register """

    google = OAuth2Session(Production.CLIENT_ID, token=request.get_json())
    resp = google.get(Production.USER_INFO)
    if resp.status_code == 200:
        user_data, data = resp.json(), {}
        user_in_db = User.get_user_by_social_id(user_data['id'])
        if user_in_db:
            token = Auth.generate_token(user_in_db.id)
            _user_profile = Profiles.get_profile(social_id=user_data['id'])
            return token_return(token, user_in_db.name, user_in_db.email, _user_profile.photo)

        if User.get_user_by_email(user_data['email']):
            return custom_response("Email already exist", 400)

        data.update({
            'social': "google",
            'name': user_data['family_name'],
            'social_id': user_data['id'],
            'fileStorage_key': random_string(10),
            'email': user_data['email'],
            'photo': user_data['picture']
        })
        user = User(data)
        create_profile(data)
        user.save()
        create_all_default_contract(user.id)
        token = Auth.generate_token(user.id)
        generate_basic_stars(user_id=user.id)
        login_success('LoginSuccess.html', email=data['email'], name=data["name"])
        return token_return(token, data.get('name'), data.get('email'), data.get('photo'))

    return custom_response("Unauthorized, Could not fetch your information.", 400)