def user_get_or_create(email, first_name, last_name, service, service_user_id): user = user_datastore.get_user(email) # If user email search fails, we search for the user service id if not user: user_oauth = UserOauth.query\ .filter_by(service=service, service_user_id=service_user_id)\ .first() # If we find it, we get the user from the datastore if user_oauth: user = user_datastore.get_user(user_oauth.user_id) # If user exsits, update if user: user.last_login_at = user.current_login_at user.last_login_ip = user.current_login_ip user.current_login_at = datetime.datetime.now() user.current_login_ip = request.remote_addr if user.login_count: user.login_count += 1 else: user.login_count = 1 db.session.commit() else: # If user does not exist, create and assign roles # Generate unique username, by searching for an existing username and # progressively increment until a free one is found username = email.split("@")[0] index = 1 while User.query.filter_by(username=username).first(): username = "******".format(username, index) index += 1 user = user_datastore.create_user( email=email, username=username, password=''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5)), active=True, first_name=first_name, last_name=last_name, current_login_at=datetime.datetime.now(), current_login_ip=request.remote_addr, login_count=1 ) db.session.commit() user_oauth = UserOauth( user_id=user.id, service=service, service_user_id=service_user_id) db.session.add(user_oauth) user_karma = UserKarma( user_id=user.id) db.session.add(user_karma) db.session.commit() return user
def setup(): import getpass from flask_security.utils import encrypt_password print("Please input the user data for the admin (you can edit later)") while True: admin_username = raw_input('Admin username:'******'Admin password:'******'Admin email:') if user_datastore.find_user(email=admin_email): print ("Email aready in use") else: break admin_role = user_datastore.find_or_create_role('admin') admin = user_datastore.create_user( username=admin_username, password=encrypt_password(admin_password), email=admin_email) db.session.commit() user_datastore.add_role_to_user(admin, admin_role) db.session.commit() # Add karma for the admin user_karma = UserKarma( user_id=admin.id) db.session.add(user_karma) db.session.commit() print("Admin user succesfully created!") # Add default category category_default = Category( name='News', url='news', order=0) db.session.add(category_default) db.session.commit() print("Added default News category") # Add default post types post_types = ['link', 'text'] for t in post_types: post_type = PostType( name=t, url=t) db.session.add(post_type) db.session.commit() print("Added post type {0}".format(t))
def user_get_or_create(email, first_name, last_name, service, service_user_id): user = user_datastore.get_user(email) # If user email search fails, we search for the user service id if not user: user_oauth = UserOauth.query\ .filter_by(service=service, service_user_id=service_user_id)\ .first() # If we find it, we get the user from the datastore if user_oauth: user = user_datastore.get_user(user_oauth.user_id) # If user exsits, update if user: user.last_login_at = user.current_login_at user.last_login_ip = user.current_login_ip user.current_login_at = datetime.datetime.now() user.current_login_ip = request.remote_addr if user.login_count: user.login_count += 1 else: user.login_count = 1 db.session.commit() else: # If user does not exist, create and assign roles # Generate unique username, by searching for an existing username and # progressively increment until a free one is found username = email.split("@")[0] index = 1 while User.query.filter_by(username=username).first(): username = "******".format(username, index) index += 1 user = user_datastore.create_user( email=email, username=username, password=''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(5)), active=True, first_name=first_name, last_name=last_name, current_login_at=datetime.datetime.now(), current_login_ip=request.remote_addr, login_count=1 ) db.session.commit() user_oauth = UserOauth( user_id=user.id, service=service, service_user_id=service_user_id) db.session.add(user_oauth) db.session.commit() user_assign_karma(user) return user
def setup(): import getpass from flask_security.utils import encrypt_password print("Please input the user data for the admin (you can edit later)") while True: admin_username = raw_input('Admin username:'******'Admin password:'******'Admin email:') if user_datastore.find_user(email=admin_email): print("Email aready in use") else: break admin_role = user_datastore.find_or_create_role('admin') world_role = user_datastore.find_or_create_role('world') admin = user_datastore.create_user( username=admin_username, password=encrypt_password(admin_password), email=admin_email) db.session.commit() user_datastore.add_role_to_user(admin, admin_role) db.session.commit() # Add karma for the admin user_karma = UserKarma(user_id=admin.id) db.session.add(user_karma) db.session.commit() print("Admin user succesfully created!") # Add default category category_default = Category(name='News', url='news', order=0) db.session.add(category_default) db.session.commit() print("Added default News category") # Add default post types post_types = ['link', 'text'] for t in post_types: post_type = PostType(name=t, url=t) db.session.add(post_type) db.session.commit() print("Added post type {0}".format(t)) print('Congrats, Dillo was setup successfully!')