def getPrincipal(self, id): print 'getprincipal called: %s' % id source = IOAuthPrincipalSource(grok.getSite()) principal = source.find(id=id) if len(principal) == 1: return principal[0] raise PrincipalLookupError(id)
def __new__(self, token): app = grok.getApplication() users = IOAuthPrincipalSource(app) url = u"https://graph.facebook.com/me" print "User token info found: %s" % token.info req = Request(url) req.add_header('User-Agent', 'Python urlib2 (grok.zopefoundation.org, Python 2.7)') req.add_header("Content-Type", "application/json") req.add_header("Authorization", "{} {}".format(token.info['token_type'], token.info['access_token'])) req.add_data(urlencode(dict(access_token=token.info['access_token'], fields='id,name,first_name,last_name'))) res = urlopen(req).read() if res: res = json.loads(res) if res is None: return None else: print "Personal info returned: %s" % res uid = u"Facebook.{}".format(res['id']) found = users.find(id=uid) if len(found)==0: user = users.new(id=uid) else: user = list(found)[0] user.authInfo = token.info user.title = unicode(res['name']) user.description = u'{} {}'.format(res['first_name'], res['last_name']) user.domain = u'Facebook' user.login = unicode(res['id']) user.secret = unicode(token.info['access_token']) return user
def __new__(self, token): app = grok.getApplication() users = IOAuthPrincipalSource(app) uri = "https://api.twitter.com/1.1/account/verify_credentials.json" req = Request(url) req.add_header('User-Agent', 'Python urlib2 (grok.zopefoundation.org, Python 2.7)') req.add_header("Content-Type", "application/json") req.add_header("Authorization", "{} {}".format(token.info['token_type'], token.info['access_token'])) res = urlopen(req).read() if res: res = json.loads(res) if res is None: return None else: print "result=%s" % res uid = u"Twitter.{}".format(res['id']) found = users.find(id=uid) if len(found)==0: user = users.new(id=uid) else: user = list(found)[0] user.authInfo = token.info user.domain = u'Twitter' user.login = uid user.secret = token.info['access_token'] return user
def __new__(self, token): app = grok.getApplication() users = IOAuthPrincipalSource(app) url = u"https://www.googleapis.com/userinfo/v2/me" req = Request(url) req.add_header('User-Agent', 'Python urlib2 (grok.zopefoundation.org, Python 2.7)') req.add_header("Content-Type", "application/json") req.add_header("Authorization", "{} {}".format(token.info['token_type'], token.info['access_token'])) res = urlopen(req).read() if res: res = json.loads(res) if res is None: return None else: uid = u"Google.{}".format(res['id']) found = users.find(id=uid) if len(found)==0: user = users.new(id=uid) else: user = list(found)[0] user.authInfo = token.info user.title = unicode(res['name']) user.description = u'{} {}'.format(res['given_name'], res['family_name']) user.domain = u'Google' user.login = unicode(res['id']) user.secret = unicode(token.info['access_token']) return user
def __new__(self, token): app = grok.getApplication() users = IOAuthPrincipalSource(app) url = u"https://discordapp.com/api/users/@me" print "User token info found: %s" % token.info req = Request(url) req.add_header('User-Agent', 'Python urlib2 (grok.zopefoundation.org, Python 2.7)') req.add_header("Content-Type", "application/json") req.add_header("Authorization", "{} {}".format(token.info['token_type'], token.info['access_token'])) res = urlopen(req).read() if res: res = json.loads(res) if res is None: return None else: print "Personal info returned: %s" % res uid = u"Discord.{}".format(res['id']) found = users.find(id=uid) if len(found)==0: user = users.new(id=uid) else: user = list(found)[0] user.authInfo = token.info user.title = unicode(res['username']) user.description = user.title user.domain = u'Discord' user.login = user.disco_id = unicode(res['id']) user.secret = unicode(token.info['access_token']) return user
def do_login(self, **data): login = Login() self.applyData(login, **data) principals = IOAuthPrincipalSource(grok.getApplication()) account = principals.find(login=login.login, domain=principals.domain) if account: # check password, and authenticate if match from zope.password.password import SSHAPasswordManager mgr = SSHAPasswordManager() if mgr.checkPassword(account.secret, login.secret): session = ISession(self.request)['OAuth2'] session['principal'] = account # Found the principal
def __new__(self, token): app = grok.getApplication() users = IOAuthPrincipalSource(app) uid = u"Mixer.{}".format(users.sequence) found = users.find(id=uid) if len(found)==0: user = users.new(id=uid) else: user = list(found)[0] user.authInfo = token.info user.domain = u'Mixer' user.login = token.info['id_token'] user.secret = token.info['access_token'] return user