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')))
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')))
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
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