Beispiel #1
0
 def getCompanyData(self, company_id, token):
     h = Http(**self.settings.http_options)
     resp, data = h.request(self.companyEndpoint.format(company_id = company_id), method="GET")
     if resp.status == 500:
         raise SocialNetworkException()
     if resp.status != 200:
         return None
     else:
         return CompanyModel.wrap(simplejson.loads(data))
Beispiel #2
0
 def getCompaniesData(self, user_id, token):
     h = Http(**self.settings.http_options)
     resp, data = h.request('{}?{}'.format(self.companiesEndpoint, urllib.urlencode({'access_token':token, 'v':'1', 'user_id':user_id})), method="GET")
     if resp.status == 500:
         raise SocialNetworkException()
     if resp.status != 200:
         return None
     else:
         return self.unwrapCompanies(data)
Beispiel #3
0
 def getCompanyRoles(self, company_id, token):
     h = Http(**self.settings.http_options)
     resp, data = h.request(self.companyRolesEndpoint.format(company_id = company_id), method="GET")
     if resp.status == 500:
         raise SocialNetworkException()
     if resp.status != 200:
         return None
     else:
         result = simplejson.loads(data)
         return map(CompanyRoleModel.wrap, result['startup_roles'])
Beispiel #4
0
 def getProfile(self, request):
     if request.params.get("error"):
         if 'denied' in request.params.get("error"):
             raise UserRejectedNotice("Import failed")
         else:
             return None
     resp, content = self.getAuthCode(request)
     if resp.status == 500:
         raise SocialNetworkException("Import failed")
     if resp.status != 200:
         result = simplejson.loads(content)
         return None
     else:
         token, (resp, data) = self.getTokenProfile(content)
         if resp.status == 500:
             raise SocialNetworkException("Import failed")
         if resp.status != 200:
             result = simplejson.loads(data)
             return None
         else:
             return self.getProfileFromData(token, data, request.root, request)
Beispiel #5
0
def token_func(context, request):
    settings = context.settings
    code = request.params.get("code")
    state = request.params.get("state")
    if not code or state != request.session.get_csrf_token():
        raise SocialNetworkException("{} Login Failed".format(settings.network))

    params = {'grant_type':'authorization_code', 'code':code
                , 'redirect_uri':request.resource_url(request.context, 'cb')
                , 'client_id':settings.appid, 'client_secret':settings.appsecret
             }

    h = Http()
    return h.request( "{}?{}".format(context.getTokenEndpoint, urllib.urlencode(params)), method="POST", body = {} )
Beispiel #6
0
def profile_func(content, context, request):
    settings = context.settings
    result = dict(parse_qsl(content))

    token = result.get('oauth_token')
    secret = result.get('oauth_token_secret')
    user_id = result.get('user_id')
    if not (token and secret and user_id):
        raise SocialNetworkException()

    accessToken = Token(token, secret)
    client = Client(settings.consumer, accessToken)
    return accessToken, client.request('{}'.format(context.profileEndpoint),
                                       method="GET")
Beispiel #7
0
def token_func(context, request):
    settings = context.settings
    tokenSecret = request.session.pop('SOCIAL_TOKEN_{}'.format(
        settings.network))
    verifier = request.params.get('oauth_verifier')
    if not (tokenSecret and verifier):
        raise SocialNetworkException("{} Login Failed".format(
            settings.network))
    tokenSecret.set_verifier(verifier)

    client = Client(settings.consumer, tokenSecret)
    return client.request(context.tokenEndpoint,
                          method="POST",
                          headers={'Accept': 'application/json'})
Beispiel #8
0
def redirect_view(context, request):
    settings = context.settings
    context.start_process(request)
    params = {'oauth_callback': request.resource_url(request.context, 'cb')}

    client = Client(settings.consumer)
    resp, data = client.request(context.getCodeEndpoint,
                                method="POST",
                                body=urllib.urlencode(params),
                                headers={'Accept': 'application/json'})
    result = dict(parse_qsl(data))
    token = result.get("oauth_token")
    secret = result.get("oauth_token_secret")

    if resp.status != 201 or not (token and secret):
        raise SocialNetworkException(data)
    request.session['SOCIAL_TOKEN_{}'.format(settings.network)] = Token(
        token, secret)

    params = urllib.urlencode({'oauth_token': token})
    request.fwd_raw("{}?{}".format(context.codeEndpoint, params))