예제 #1
0
    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()
예제 #2
0
 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())
예제 #3
0
 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()
예제 #4
0
    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()