def get(self): session = get_current_session() if session.is_active(): session.terminate() user = users.get_current_user() ca_user = CAUser.all().filter("google_user", user).fetch(1) if ca_user: logging.debug('User registered with Google account. Login successfull') ca_user = ca_user[0] else: ca_user = CAUser(google_user=user, type=0) ca_user.put() save_session_info(ca_user) # template_values = { # 'session_status': True, # 'user': session['active_user'], # 'top_scorers': get_top_scorers(), # 'top_users': get_top_users_global_ranking(), # 'last_jackpot': get_last_jackpot() # } # # render_template(self, 'create_step1.html', template_values) self.redirect('/list/groups/ranking')
def get(self): session = get_current_session() if session.is_active(): session.terminate() verification_code = self.request.get("code") args = dict(client_id=FACEBOOK_APP_ID, redirect_uri=self.request.path_url) if verification_code: args["client_secret"] = FACEBOOK_APP_SECRET args["code"] = self.request.get("code") response = cgi.parse_qs(urllib.urlopen("https://graph.facebook.com/oauth/access_token?" + urllib.urlencode(args)).read()) access_token = response["access_token"][-1] # Download the user profile and cache a local instance of the # basic profile info profile = json.load(urllib.urlopen("https://graph.facebook.com/me?" + urllib.urlencode(dict(access_token=access_token)))) user = CAFacebookUser(key_name=str(profile["id"]), id=str(profile["id"]), name=profile["name"], access_token=access_token) ca_user = CAUser.all().filter("facebook_user", user).fetch(1) if ca_user: logging.debug('User registered with Facebook account. Login successfull') ca_user = ca_user[0] else: user.put() ca_user = CAUser(facebook_user=user, type=1) ca_user.put() save_session_info(ca_user) # template_values = { # 'session_status': True, # 'user': session.get('active_user'), # 'top_scorers': get_top_scorers(), # 'top_users': get_top_users_global_ranking(), # 'last_jackpot': get_last_jackpot() # } set_cookie(self.response, "fb_user", str(profile["id"]), expires=time.time() + 30 * 86400) # render_template(self, 'create_step1.html', template_values) self.redirect('/list/groups/ranking') else: self.redirect("https://graph.facebook.com/oauth/authorize?" + urllib.urlencode(args))
def post(self): name = self.request.get('name') email = self.request.get('email') password = self.request.get('password') existing_google_user = CAUser.all().filter("google_user !=", None).fetch(10000) exists = False for user in existing_google_user: if user.google_user.email() == email: exists = True break if not exists: existing_user = CANativeUser.all().filter("email =", email).fetch(10000) if not existing_user: user = CANativeUser(name=name, email=email, password=password) user.put() ca_user = CAUser(native_user=user, type=2) ca_user.put() self.redirect('/login') else: template_values = { 'session_status': False, 'top_scorers': get_top_scorers(), 'top_users': get_top_users_global_ranking(), 'last_jackpot': get_last_jackpot(), 'error': 'Ya existe un usuario registrado con este correo electrónico. Inténtalo de nuevo' } render_template(self, 'register.html', template_values) else: template_values = { 'session_status': False, 'top_scorers': get_top_scorers(), 'top_users': get_top_users_global_ranking(), 'last_jackpot': get_last_jackpot(), 'error': 'Ya existe un usuario registrado con este correo electrónico. Inténtalo de nuevo' } render_template(self, 'register.html', template_values)
def get(self): update_session_time() session = get_current_session() check_session_status() if session.is_active(): user_key = Key(self.request.get('user')) new_member = CAUser.get(user_key) username = [] members = eval(self.request.get('last_members')) searched_users = eval(self.request.get('last_search')) if new_member.type == 0: username = new_member.google_user.nickname() + " " + new_member.google_user.email() elif new_member.type == 1: username = new_member.facebook_user.name else: username = new_member.native_user.name + " " + new_member.native_user.email if username: searched_users.remove((str(username), str(new_member.key()))) members.append((str(username), str(new_member.key()), True)) template_values = { 'session_status': True, 'user': session['active_user'], 'searched_users': searched_users, 'members': members, 'name': self.request.get('name'), 'last_search': str(searched_users), 'last_members': str(members), 'top_scorers': get_top_scorers(), 'top_users': get_top_users_global_ranking(), 'last_jackpot': get_last_jackpot(), 'selected_football_pool': self.request.get('selected-football-pool') } render_template(self, 'edit_competition_group.html', template_values) else: self.redirect('/')
def get_pending_membership_requests(ca_user): membership_requests = ca_user.pending_membership_requests pending_membership_requests = [] for membership_request in membership_requests: user = CAUser.get(membership_request.users[0]) username = [] if user.type == 0: username = user.google_user.nickname() elif user.type == 1: username = user.facebook_user.name else: username = user.native_user.name if username: pending_membership_requests.append( (str(username), str(membership_request.group.name), str(membership_request.key())) ) return pending_membership_requests
def post(self): update_session_time() session = get_current_session() check_session_status() if session.is_active(): search_user = self.request.get('search_user') save = self.request.get('save') if search_user: active_user = session['active_user'] search_term = self.request.get('search') search_result = [] if search_term: users = CAUser.all().fetch(10000) logging.debug('Iterando por usuarios') for user in users: if active_user.key() != user.key(): username = [] logging.debug('tipo de usuario: ' + str(user.type)) if user.type == 0: nickname = user.google_user.nickname() email = user.google_user.email() if (search_term.lower() in str(nickname).lower()) or (search_term.lower() in str(email).lower()): username = nickname + ' ' + email elif user.type == 1: name = user.facebook_user.name if search_term.lower() in str(name).lower(): username = name else: logging.debug('Usuario nativo!') logging.debug('key de usuario: ' + str(user.key())) name = user.native_user.name email = user.native_user.email if (search_term.lower() in str(name).lower()) or (search_term.lower() in str(email).lower()): username = name + ' ' + email if username: search_result.append((str(username), str(user.key()))) template_values = { 'session_status': True, 'user': session['active_user'], 'searched_users': search_result, 'members': eval(self.request.get('last-members')), 'name': self.request.get('name'), 'last_search': str(search_result), 'last_members': self.request.get('last-members'), 'top_scorers': get_top_scorers(), 'top_users': get_top_users_global_ranking(), 'last_jackpot': get_last_jackpot() } render_template(self, 'create_competition_group.html', template_values) elif save: active_user = session['active_user'] name = self.request.get('name') new_group = CACompetitonGroup(name=name, privacy=False) new_group.put() active_user.groups.append(new_group.key()) active_user.put() active_user_football_pools = CAFootballPool.all().filter("user ="******"privacy =", False).fetch(1000) for football_pool in active_user_football_pools: if football_pool.payment: members = new_group.members.fetch(10000) group_ranking = CAGroupRanking(football_pool=football_pool, group=new_group, rank=len(members)) group_ranking.put() members = eval(self.request.get('last-members')) for member in members: member_key = Key(member[1]) user = CAUser.get(member_key) users = [] users.append(active_user.key()) users.append(user.key()) request_membership = CARequestGroupMembership(users=users, status=False, group=new_group) request_membership.put() #self.redirect('/list/groups/ranking') competition_groups = CACompetitonGroup.get(active_user.groups) template_values = { 'session_status': True, 'user': session['active_user'], 'groups': competition_groups, 'pending_membership_requests': get_pending_membership_requests(active_user), 'top_scorers': get_top_scorers(), 'top_users': get_top_users_global_ranking(), 'last_jackpot': get_last_jackpot(), 'message': 'Se han enviado con éxito las invitaciones a los usuarios para formar parte del grupo.' } render_template(self, 'list_competition_groups_to_ranking.html', template_values) else: self.redirect('/')
def post(self): session = get_current_session() if session.is_active(): session.terminate() accept = self.request.get('accept') google = self.request.get('google') """ Login con autenticacion nativa """ if accept: logging.debug('Login with native credentials') email = self.request.get('email') password = self.request.get('password') if email and password: logging.debug('Checking credentials') user = CANativeUser.all().filter("email =", email).fetch(1) if user: if user[0].password == password: logging.debug('Username and password correct. Login successfull') ca_user = CAUser.all().filter("native_user", user[0]).fetch(1) if ca_user: logging.debug('User registered with Native account. Login successfull') ca_user = ca_user[0] else: ca_user = CAUser(google_user=user[0], type=0) ca_user.put() save_session_info(ca_user) # template_values = { # 'session_status': True, # 'user': session['active_user'], # 'top_scorers': get_top_scorers(), # 'top_users': get_top_users_global_ranking(), # 'last_jackpot': get_last_jackpot() # } # render_template(self, 'create_step1.html', template_values) sandra_key = Key('ag5zfnR1cXVpbmllbGFjYXIOCxIGQ0FVc2VyGJqdAQw') christian_key = Key('ag5zfnR1cXVpbmllbGFjYXINCxIGQ0FVc2VyGNR1DA') mariel_key = Key('ag5zfnR1cXVpbmllbGFjYXIOCxIGQ0FVc2VyGIG0AQw') francisco_key = Key('ag5zfnR1cXVpbmllbGFjYXIOCxIGQ0FVc2VyGIbUAQw') ca_user_key = ca_user.key() if ca_user_key == sandra_key or ca_user_key == christian_key or ca_user_key == mariel_key or ca_user_key == francisco_key: self.redirect('/create/step1') else: self.redirect('/list/groups/ranking') else: logging.debug('Incorrect password. . Login failed') template_values = { 'error': 'Clave incorrecta. Intente de nuevo' } render_template(self, 'login.html', template_values) else: logging.debug('Incorrect username. Login failed') template_values = { 'error': 'Usuario incorrecto. Intente de nuevo' } render_template(self, 'login.html', template_values) else: logging.debug('Username o password missing. Login failed') template_values = { 'error': 'Usuario o clave faltantes. Intente de nuevo' } render_template(self, 'login.html', template_values) else: """ Login con autenticacion de google o facebook """ if google: logging.debug('GOOGLE') logging.debug('Login with Google') self.redirect(users.create_login_url('/auth/google')) else: logging.debug('FACEBOOK') logging.debug('Login with Facebook') self.redirect("/auth/facebook")
def post(self): update_session_time() session = get_current_session() check_session_status() if session.is_active(): search_user = self.request.get('search_user') save = self.request.get('save') if search_user: active_user = session['active_user'] search_term = self.request.get('search') search_result = [] selected_competition_group_key = Key(self.request.get('selected-football-pool')) competition_group = CACompetitonGroup.get(selected_competition_group_key) members = competition_group.members.fetch(10000) members_keys = [] for member in members: members_keys.append(member.key()) if search_term: users = CAUser.all().fetch(10000) for user in users: if active_user.key() != user.key(): if user.key() not in members_keys: username = [] if user.type == 0: nickname = user.google_user.nickname() email = user.google_user.email() if (search_term.lower() in str(nickname).lower()) or (search_term.lower() in str(email).lower()): username = nickname +" "+email elif user.type == 1: name = user.facebook_user.name if search_term.lower() in str(name).lower(): username = name else: name = user.native_user.name email = user.native_user.email if (search_term.lower() in str(name).lower()) or (search_term.lower() in str(email).lower()): username = name+" "+email if username: search_result.append((str(username), str(user.key()))) template_values = { 'session_status': True, 'user': session['active_user'], 'searched_users': search_result, 'members': eval(self.request.get('last-members')), 'name': self.request.get('name'), 'last_search': str(search_result), 'last_members': self.request.get('last-members'), 'top_scorers': get_top_scorers(), 'top_users': get_top_users_global_ranking(), 'last_jackpot': get_last_jackpot(), 'selected_football_pool': self.request.get('selected-football-pool') } render_template(self, 'edit_competition_group.html', template_values) elif save: active_user = session['active_user'] name = self.request.get('name') selected_competition_group_key = Key(self.request.get('selected-football-pool')) competition_group = CACompetitonGroup.get(selected_competition_group_key) if competition_group.name != name: competition_group.name = name competition_group.put() # new_group = CACompetitonGroup(name=name, privacy=False) # new_group.put() # # active_user.groups.append(new_group.key()) # active_user.put() # active_user_football_pools = CAFootballPool.all().filter("user ="******"privacy =", False).fetch(1000) # # for football_pool in active_user_football_pools: # if football_pool.payment: # members = new_group.members.fetch(10000) # # group_ranking = CAGroupRanking(football_pool=football_pool, group=new_group, rank=len(members)) # group_ranking.put() members = eval(self.request.get('last-members')) for member in members: if member[2]: member_key = Key(member[1]) user = CAUser.get(member_key) users = [] users.append(active_user.key()) users.append(user.key()) request_membership = CARequestGroupMembership(users=users, status=False, group=competition_group) request_membership.put() self.redirect('/list/groups/ranking') else: self.redirect('/')