def manage_user(access_token, user_data): """Manage the user after signin""" # We have to store the oauth_token in the session to get the USER fields user = user_repo.get_by(google_user_id=user_data['id']) # user never signed on if user is None: google_token = dict(oauth_token=access_token) info = dict(google_token=google_token) name = username_from_full_name(user_data['name']) user = user_repo.get_by_name(name) email = user_repo.get_by(email_addr=user_data['email']) if ((user is None) and (email is None)): user = User(fullname=user_data['name'], name=name, email_addr=user_data['email'], google_user_id=user_data['id'], info=info) user_repo.save(user) if newsletter.is_initialized(): newsletter.subscribe_user(user) return user else: return None else: # Update the name to fit with new paradigm to avoid UTF8 problems if type(user.name) == unicode or ' ' in user.name: user.name = username_from_full_name(user.name) user_repo.update(user) return user
def manage_user(access_token, user_data): """Manage the user after signin""" # We have to store the oauth_token in the session to get the USER fields user = user_repo.get_by(google_user_id=user_data['id']) google_token = dict(oauth_token=access_token) # user never signed on if user is None: info = dict(google_token=google_token) name = username_from_full_name(user_data['name']) user = user_repo.get_by_name(name) email = user_repo.get_by(email_addr=user_data['email']) if ((user is None) and (email is None)): user = User(fullname=user_data['name'], name=name, email_addr=user_data['email'], google_user_id=user_data['id'], info=info) user_repo.save(user) if newsletter.is_initialized(): newsletter.subscribe_user(user) return user else: return None else: user.info['google_token'] = google_token # Update the name to fit with new paradigm to avoid UTF8 problems if type(user.name) == unicode or ' ' in user.name: user.name = username_from_full_name(user.name) user_repo.save(user) return user
def manage_user(access_token, user_data): """Manage the user after signin""" user = user_repo.get_by(facebook_user_id=user_data['id']) facebook_token = dict(oauth_token=access_token) if user is None: info = dict(facebook_token=facebook_token) name = username_from_full_name(user_data['name']) user_exists = user_repo.get_by_name(name) is not None # NOTE: Sometimes users at Facebook validate their accounts without # registering an e-mail (see this http://stackoverflow.com/a/17809808) email_exists = (user_data.get('email') is not None and user_repo.get_by(email_addr=user_data['email']) is not None) if not user_exists and not email_exists: if not user_data.get('email'): user_data['email'] = name user = User(fullname=user_data['name'], name=name, email_addr=user_data['email'], facebook_user_id=user_data['id'], info=info) user_repo.save(user) if newsletter.is_initialized() and user.email_addr != name: newsletter.subscribe_user(user) return user else: return None else: user.info['facebook_token'] = facebook_token user_repo.save(user) return user
def test_it_removes_non_ascii_chars_unicode(self): name = u"ßetaÑapa" expected_username = u"etaapa" obtained = util.username_from_full_name(name) assert obtained == expected_username, obtained
def test_it_removes_capital_letters_unicode(self): name = u"JOHN" expected_username = u"john" obtained = util.username_from_full_name(name) assert obtained == expected_username, obtained
def test_it_removes_whitespaces_unicode(self): name = u"john benjamin toshack" expected_username = u"johnbenjamintoshack" obtained = util.username_from_full_name(name) assert obtained == expected_username, obtained
def manage_user(access_token, user_data): """Manage the user after signin""" user = user_repo.get_by(facebook_user_id=user_data['id']) if user is None: facebook_token = dict(oauth_token=access_token) info = dict(facebook_token=facebook_token) name = username_from_full_name(user_data['name']) user_exists = user_repo.get_by_name(name) is not None # NOTE: Sometimes users at Facebook validate their accounts without # registering an e-mail (see this http://stackoverflow.com/a/17809808) email_exists = (user_data.get('email') is not None and user_repo.get_by(email_addr=user_data['email']) is not None) if not user_exists and not email_exists: if not user_data.get('email'): user_data['email'] = name user = User(fullname=user_data['name'], name=name, email_addr=user_data['email'], facebook_user_id=user_data['id'], info=info) user_repo.save(user) if newsletter.is_initialized() and user.email_addr != name: newsletter.subscribe_user(user) return user else: return None else: return user
def manage_user_login(user, user_data, next_url): """Manage user login.""" if user is None: # Give a hint for the user user = user_repo.get_by(email_addr=user_data['email']) if user is None: name = username_from_full_name(user_data['name']) user = user_repo.get_by_name(name) msg, method = get_user_signup_method(user) flash(msg, 'info') if method == 'local': return redirect(url_for_app_type('account.forgot_password', _hash_last_flash=True)) else: return redirect(url_for_app_type('account.signin', _hash_last_flash=True)) else: login_user(user, remember=True) flash("Welcome back %s" % user.fullname, 'success') if user.newsletter_prompted is False and newsletter.is_initialized(): return redirect(url_for_app_type('account.newsletter_subscribe', next=next_url, _hash_last_flash=True)) return redirect(next_url)
def test_it_removes_capital_letters(self): name = "JOHN" expected_username = b'john' obtained = util.username_from_full_name(name) assert obtained == expected_username, (obtained, expected_username)
def setUp(self): super(TestFacebook, self).setUp() self.user_data = { "id": 1234567890, "email": "*****@*****.**", "first_name": "Mauricio", "last_name": "Perez Sanchez", "name": "Mauricio Perez Sanchez" } self.name = username_from_full_name(self.user_data['name'])
def setUp(self): super(TestFacebook, self).setUp() self.user_data = { "id": 1234567890, "email": '*****@*****.**', "first_name": 'Mauricio', "last_name": 'Perez Sanchez', "name": 'Mauricio Perez Sanchez' } self.name = username_from_full_name(self.user_data['name']) newsletter.app = None
def add_through_email(user_by_email, user_data): if (user_by_email.name == username_from_full_name( user_data['name']).decode('utf-8')): name = get_mykaarma_username_from_full_name(user_data['name']) user = user_repo.get_by_name(name) while (user is not None): name = get_mykaarma_username_from_full_name(user_data['name']) user = user_repo.get_by_name(name) user_by_email.name = name user_by_email.mykaarma_user_id = user_data['id'] user_repo.save(user_by_email) return user_by_email
def manage_user_login(user, user_data, next_url): """Manage user login.""" if user is None: # Give a hint for the user user = user_repo.get_by(email_addr=user_data["email"]) if user is None: name = username_from_full_name(user_data["name"]) user = user_repo.get_by_name(name) msg, method = get_user_signup_method(user) flash(msg, "info") if method == "local": return redirect(url_for("account.forgot_password")) else: return redirect(url_for("account.signin")) else: login_user(user, remember=True) flash("Welcome back %s" % user.fullname, "success") if user.newsletter_prompted is False and newsletter.is_initialized(): return redirect(url_for("account.newsletter_subscribe", next=next_url)) return redirect(next_url)