def JanrainAuth(self, *args): token = self.params.token url = 'https://rpxnow.com/api/v2/auth_info' args = { 'format': 'json', 'apiKey': '4a593fc2715670ab6a03b40653054858ffdc34a2', 'token': token } r = urlfetch.fetch( url=url, payload=urllib.urlencode(args), method=urlfetch.POST, headers={'Content-Type': 'application/x-www-form-urlencoded'}) json = simplejson.loads(r.content) if json['stat'] == 'ok': person = Person.gql( "WHERE UserName= :u AND AuthenticationType= :auth", u=json['profile']['preferredUsername'], auth=json['profile']['providerName']).get() if not person: name = json['profile'].has_key( 'givenName') and json['profile']['givenName'] or '' surname = json['profile'].has_key('familyName') and json[ 'profile']['name']['familyName'] or '' display = json['profile'].has_key( 'displayName') and json['profile']['displayName'] or '' email = json['profile'].has_key( 'email') and json['profile']['email'] or None photo = json['profile'].has_key( 'photo') and json['profile']['photo'] or None if not name and not surname and display: arr = display.split(' ') name = arr[0] surname = len(arr) > 1 and arr[1] or '' person = Person.CreateNew( uname=json['profile']['preferredUsername'], name=name, surname=surname, email=email, password='******', public=True, notify=True, authType=json['profile']['providerName'], photoUrl=photo, _autoSave=True) self.login_user2(person) self.status = 'Welcome ' + person.UserName if self.params.redirect_url: self.redirect(self.params.redirect_url) else: self.redirect('/') else: self.status = 'Not Valid Login' self.respond()
def get(self): self.SetTemplate(handlerType,'admin_ListUsers.html') if(self.User and self.User.IsAdmin): querry = Person.gql("WHERE IsAdmin =:v", v=True) result=querry.fetch(1000) self.respond({'result':result}) else: self.status(messages.not_allowed_to_access) self.redirect(LoginHandler.get_url())
def JanrainAuth(self, *args): token = self.params.token url = 'https://rpxnow.com/api/v2/auth_info' args = { 'format': 'json', 'apiKey': '4a593fc2715670ab6a03b40653054858ffdc34a2', 'token': token } r = urlfetch.fetch(url=url, payload=urllib.urlencode(args), method=urlfetch.POST, headers={'Content-Type':'application/x-www-form-urlencoded'} ) json = simplejson.loads(r.content) if json['stat'] == 'ok': person = Person.gql("WHERE UserName= :u AND AuthenticationType= :auth", u=json['profile']['preferredUsername'], auth=json['profile']['providerName']).get() if not person: name = json['profile'].has_key('givenName') and json['profile']['givenName'] or '' surname = json['profile'].has_key('familyName') and json['profile']['name']['familyName'] or '' display = json['profile'].has_key('displayName') and json['profile']['displayName'] or '' email = json['profile'].has_key('email') and json['profile']['email'] or None photo = json['profile'].has_key('photo') and json['profile']['photo'] or None if not name and not surname and display: arr = display.split(' ') name = arr[0]; surname = len(arr)>1 and arr[1] or '' person = Person.CreateNew(uname=json['profile']['preferredUsername'], name=name, surname=surname, email = email, password='******', public=True, notify=True, authType=json['profile']['providerName'], photoUrl=photo, _autoSave=True) self.login_user2(person) self.status = 'Welcome '+person.UserName if self.params.redirect_url: self.redirect(self.params.redirect_url) else: self.redirect('/') else: self.status = 'Not Valid Login' self.respond()
def JanrainAuth(self, *args): token = self.params.token url = "https://rpxnow.com/api/v2/auth_info" args = {"format": "json", "apiKey": "4a593fc2715670ab6a03b40653054858ffdc34a2", "token": token} r = urlfetch.fetch( url=url, payload=urllib.urlencode(args), method=urlfetch.POST, headers={"Content-Type": "application/x-www-form-urlencoded"}, ) json = simplejson.loads(r.content) if json["stat"] == "ok": person = Person.gql( "WHERE UserName= :u AND AuthenticationType= :auth", u=json["profile"]["preferredUsername"], auth=json["profile"]["providerName"], ).get() if not person: name = json["profile"].has_key("givenName") and json["profile"]["givenName"] or "" surname = json["profile"].has_key("familyName") and json["profile"]["name"]["familyName"] or "" display = json["profile"].has_key("displayName") and json["profile"]["displayName"] or "" email = json["profile"].has_key("email") and json["profile"]["email"] or None photo = json["profile"].has_key("photo") and json["profile"]["photo"] or None if not name and not surname and display: arr = display.split(" ") name = arr[0] surname = len(arr) > 1 and arr[1] or "" if len(args) == 1: person = Person.get(args[0]) person.UserName = (json["profile"]["preferredUsername"],) person.Name = (name,) person.Surname = (surname,) person.Email = (email,) person.Password = ("openid",) person.Public = (True,) person.Notify = (True,) person.AuthenticationType = (json["profile"]["providerName"],) person.PhotoUrl = (photo,) person.put() else: person = Person.CreateNew2( uname=json["profile"]["preferredUsername"], name=name, surname=surname, email=email, password="******", public=True, notify=True, authType=json["profile"]["providerName"], photoUrl=photo, _autoSave=True, ) self.login_user2(person) self.status = "Welcome " + person.UserName if self.params.redirect_url: self.redirect(self.params.redirect_url) else: self.redirect("/") else: self.status = "Not Valid Login" self.respond()