Example #1
0
def login_google(request):
    """**Descripción**: Comprueba si ya te has dado de alta en la App con tu cuenta de Google
        para entrar automáticamente y sino pedirte permiso para hacerlo.
        Además en caso de éxito inicializa la sesión para dicho usuario.
        
       :return: En caso de exito llama a :py:func:`geouser.funcs.login_func` y redirige al panel. En caso contrario renderiza la plantilla de login.
    """
    from google.appengine.api import users
    from models_social import GoogleUser
    ugoogle = users.get_current_user()
    if ugoogle:
        if request.user.is_authenticated():
            guser = GoogleUser.objects.get_by_id(ugoogle.user_id())
            if not guser:
                guser = GoogleUser.register(user=request.user,
                                            uid=ugoogle.user_id(),
                                            email=ugoogle.email(),
                                            realname=ugoogle.nickname())
            else:
                guser.update(ugoogle.email(), realname=ugoogle.nickname())
        else:  #user is not registered, register it
            from models import User
            user = User.objects.get_by_email(ugoogle.email())
            if user:
                guser = GoogleUser.objects.get_by_id(ugoogle.user_id())
                if guser is None:
                    guser = GoogleUser.register(user=user,
                                                uid=ugoogle.user_id(),
                                                email=ugoogle.email(),
                                                realname=ugoogle.nickname())
                else:
                    guser.update(ugoogle.email(), realname=ugoogle.nickname())
            else:
                from georemindme.funcs import make_random_string
                user = User.register(email=ugoogle.email(),
                                     password=make_random_string(length=6),
                                     confirmed=True)
                guser = GoogleUser.register(user=user,
                                            uid=ugoogle.user_id(),
                                            email=ugoogle.email(),
                                            realname=ugoogle.nickname())
            from funcs import init_user_session
            init_user_session(request, user)
        #checks google account is confirmed, only load his account
        from funcs import get_next
        return HttpResponseRedirect(get_next(request))
    return HttpResponseRedirect(
        users.create_login_url(reverse('geouser.views.login_google')))
Example #2
0
def login_google(request):
    """**Descripción**: Comprueba si ya te has dado de alta en la App con tu cuenta de Google
        para entrar automáticamente y sino pedirte permiso para hacerlo.
        Además en caso de éxito inicializa la sesión para dicho usuario.
        
       :return: En caso de exito llama a :py:func:`geouser.funcs.login_func` y redirige al panel. En caso contrario renderiza la plantilla de login.
    """
    from google.appengine.api import users
    from models_social import GoogleUser
    ugoogle = users.get_current_user()
    if ugoogle:
        if request.user.is_authenticated():
            guser = GoogleUser.objects.get_by_id(ugoogle.user_id())
            if not guser:
                guser = GoogleUser.register(user=request.user, uid=ugoogle.user_id(), email=ugoogle.email(), realname=ugoogle.nickname())
            else:
                guser.update(ugoogle.email(), realname=ugoogle.nickname())
        else:#user is not registered, register it
            from models import User
            user = User.objects.get_by_email(ugoogle.email())
            if user:
                guser = GoogleUser.objects.get_by_id(ugoogle.user_id())
                if guser is None:
                    guser = GoogleUser.register(user=user, uid=ugoogle.user_id(), email=ugoogle.email(), realname=ugoogle.nickname())
                else:
                    guser.update(ugoogle.email(), realname=ugoogle.nickname())
            else:
                from georemindme.funcs import make_random_string
                user = User.register(email=ugoogle.email(), password=make_random_string(length=6), confirmed=True)
                guser = GoogleUser.register(user=user, uid=ugoogle.user_id(), email=ugoogle.email(), realname=ugoogle.nickname())
            from funcs import init_user_session
            init_user_session(request, user)
        #checks google account is confirmed, only load his account
        from funcs import get_next
        return HttpResponseRedirect(get_next(request))
    return HttpResponseRedirect(users.create_login_url(reverse('geouser.views.login_google')))
Example #3
0
 def google_user(self, keys_only=False):
     if self._google_user is None:
         from models_social import GoogleUser
         self._google_user = GoogleUser.all(keys_only=keys_only).filter(
             'user =', self).get()
     return self._google_user
Example #4
0
 def google_user(self, keys_only=False):
     if self._google_user is None:
         from models_social import GoogleUser
         self._google_user = GoogleUser.all(keys_only=keys_only).filter('user =', self).get()
     return self._google_user