def user_creation(num_users_): # count how many users are in database. if it is already populated don't add any more. user_count = FlicketUser.query.count() if user_count >= num_users_: print('Number of users already satisfied.') return else: num_users_ = num_users_ - user_count for i in range(user_count, num_users_): username, name, password = create_random_user() # check username doesn't already exist query_ = FlicketUser.query.filter_by(username=username).first() first, last = base_email.split('@') if not query_: new_user = FlicketUser(username=username, name=name, password=hash_password(password), email='{}+{}@{}'.format( first, username, last), date_added=datetime.datetime.now()) db.session.add(new_user) db.session.commit() print('#{} Added new user {}'.format(new_user.id, username.ljust(25)), end="\r") print("")
def get_users(): name = request.args.get('name') users = FlicketUser.query if name: users = users.filter(FlicketUser.name.ilike('%{}%'.format(name))) page = request.args.get('page', 1, type=int) per_page = min(request.args.get('per_page', 10, type=int), 100) data = FlicketUser.to_collection_dict(users, page, per_page, 'bp_api_v2.get_users') return jsonify(data)
def get_users(): name = request.args.get("name") users = FlicketUser.query if name: users = users.filter(FlicketUser.name.ilike("%{}%".format(name))) page = request.args.get("page", 1, type=int) per_page = min( request.args.get("per_page", app.config["posts_per_page"], type=int), 100 ) data = FlicketUser.to_collection_dict(users, page, per_page, "bp_api.get_users") return jsonify(data)
def create_user(username, password, email=None, name=None, job_title=None, locale=None): password = hash_password(password) register = FlicketUser(username=username, email=email, name=name, password=password, job_title=job_title, date_added=datetime.datetime.now(), locale=locale) db.session.add(register) db.session.commit()
def import_users_from_json(): # check if file exists if not os.path.isfile(json_user_file): print('Could not find json file "{}". Exiting ....'.format(json_user_file)) exit() # read json file with open(json_user_file) as data_file: json_users = json.load(data_file) # check formatting of json file valid_json_fields = ["username", "name", "email", "password"] for user in json_users: if not all(f in user for f in valid_json_fields): print("json file not formatted correctly. Exiting.") exit() # add users to database. for user in json_users: # encode password to bytes password = str.encode(user["password"]) # create json_user object json_user = JsonUser(user["username"], user["name"], user["email"], password) # check tht user doesn't already exist. existing_user = FlicketUser.query.filter_by(email=json_user.email) if existing_user.count() > 0: print( "User {} {} already exists in the database.".format( json_user.name, json_user.email ) ) continue # add the user print( "Adding the user {} {} to the database.".format( json_user.name, json_user.email ) ) new_user = FlicketUser( username=json_user.username, name=json_user.name, email=json_user.email, password=json_user.password, date_added=datetime.datetime.now(), ) db.session.add(new_user) db.session.commit()
def create_notifier(): """ creates user for notifications """ query = FlicketUser.query.filter_by(username=app.config['NOTIFICATION']['username']) if query.count() == 0: add_user = FlicketUser(username=app.config['NOTIFICATION']['username'], name=app.config['NOTIFICATION']['name'], password=hash_password(app.config['NOTIFICATION']['password']), email=app.config['NOTIFICATION']['email'], date_added=datetime.datetime.now()) db.session.add(add_user) print("Notification user added.") else: print('Notification user already added.')
def add_user(): form = AddUserForm() if form.validate_on_submit(): password = hash_password(form.password.data) register = FlicketUser(username=form.username.data, email=form.email.data, name=form.name.data, password=password, job_title=form.job_title.data, date_added=datetime.datetime.now()) db.session.add(register) db.session.commit() flash('You have successfully registered new user {}.'.format( form.username.data)) return redirect(url_for('admin_bp.users')) return render_template('admin_user.html', title='Add User', form=form)
def create_admin(username, password, email, job_title, silent=False): """ creates flicket_admin user. """ query = FlicketUser.query.filter_by(username=username) if query.count() == 0: add_user = FlicketUser(username=username, name=username, password=hash_password(password), email=email, job_title=job_title, date_added=datetime.datetime.now()) db.session.add(add_user) if not silent: print('Admin user added.') else: print('Admin user is already added.')
def create_notifier(): """ creates user for notifications """ query = FlicketUser.query.filter_by( username=app.config["NOTIFICATION"]["username"]) if query.count() == 0: add_user = FlicketUser( username=app.config["NOTIFICATION"]["username"], name=app.config["NOTIFICATION"]["name"], password=hash_password(app.config["NOTIFICATION"]["password"]), email=app.config["NOTIFICATION"]["email"], date_added=datetime.datetime.now(), ) db.session.add(add_user) print("Notification user added.") else: print("Notification user already added.")
def before_request(): set_flicket_config() g.user = current_user # reset the user token if the user is authenticated and token is expired. if g.user.is_authenticated and hasattr(g.user, "token"): if FlicketUser.check_token(g.user.token) is None: g.user.get_token() db.session.commit() # used in the page footer g.__version__ = __version__ # page title application_title = FlicketConfig.query.first().application_title g.application_title = application_title
def password_reset(): form = PasswordResetForm() if form.validate_on_submit(): new_password = FlicketUser.generate_password() hashed_password = hash_password(new_password) user = FlicketUser.query.filter_by(email=form.email.data).first() user.password = hashed_password db.session.commit() email = FlicketMail() email.password_reset(user, new_password) flash(gettext('Password reset. Please check your email for your new password')) return redirect(url_for('flicket_bp.login')) title = 'Password Reset' return render_template('password_reset.html', form=form, title=title)
def __init__(self, username='******', name='john doe', password='******', email='*****@*****.**'): self.username = username self.name = name self.password = password self.password_hash = hash_password(password=self.password) self.email = email self.password_hash = hash_password(password=self.password) self.date_added = datetime.datetime.now() self.user = FlicketUser(username=self.username, name=self.name, email=self.email, password=self.password_hash, date_added=self.date_added) db.session.add(self.user) db.session.commit()
def __init__(self, username='******', name='admin', password='******', email='*****@*****.**'): self.username = username self.name = name self.password = password self.password_hash = hash_password(password=self.password) self.email = email self.password_hash = hash_password(password=self.password) self.date_added = datetime.datetime.now() self.user = FlicketUser(username=self.username, name=self.name, email=self.email, password=self.password_hash, date_added=self.date_added) db.session.add(self.user) group = FlicketGroup(group_name='flicket_admin') db.session.add(group) group.users.append(self.user) db.session.commit()
def verify_token(token): g.current_user = FlicketUser.check_token(token) if token else None return g.current_user is not None