def user_create(): try: form = RegistrationForm() if request.method == "POST" and form.validate_on_submit(): username = form.user.data password = form.password.data fullName = form.fullName.data email = form.email.data bio = form.bio.data favoriteLanguages = form.favoriteLanguages.data if current_users.get_user(username): flash("That username is already taken! please try again") return render_template('register.html', form=form) user = current_users.add_user(username,password,email,fullName,bio,favoriteLanguages) login_user(user) user.set('authenticated', True) flash('Thanks for registering! Welcome to Kiwi.', 'success') return redirect(request.args.get("next") or url_for('wiki.index')) return render_template('register.html',form=form) except Exception as e: return(str(e))
def validate_password(form, field): user = current_users.get_user(form.name.data) if not user: return False if not user.check_password(field.data): return False return True
def user_manage_delete(): user_found = False if current_users.get_user(request.form.get('name')) is None: user_found = True flash('Username not found, please try again', 'error') else: current_users.delete_user(request.form.get('name')) return render_template('request_completed.html')
def user_login(): form = LoginForm() if form.validate_on_submit(): user = current_users.get_user(form.name.data) login_user(user) user.set('authenticated', True) flash('Login successful.', 'success') return redirect(request.args.get("next") or url_for('wiki.index')) return render_template('login.html', form=form)
def display(url): page = current_wiki.get_or_404(url) if page.owner: owning_user = current_users.get_user(page.owner) if page.owner == current_user.get_id(): return render_template('page.html', page=page, ou=owning_user) else: return render_template('page.html', page=page, flag='readonly', ou=owning_user) return render_template('page.html', page=page)
def change_role(name): user = current_users.get_user(name) if user.get("roles")[0] == 'admin': user.set("roles", ['user']) user.save() else: user.set("roles", ['admin']) user.save() return redirect(url_for('wiki.admin'))
def user_profile(username): user = current_users.get_user(username) form = UserUpdateForm() if form.validate_on_submit(): if form.password.data != '': current_user.set('password', form.password.data) if form.email.data != '': current_user.set('email', form.email.data) flash('Profile Updated!', 'success') return render_template('profile.html', user=user, form=form)
def user_create(): form = SignupForm() if form.validate_on_submit(): current_users.add_user(form.name.data, form.password.data.encode()) user = current_users.get_user(form.name.data) login_user(user) user.set('authenticated', True) flash('Login successful.', 'success') return redirect(request.args.get("next") or url_for('wiki.index')) return render_template('signup.html', form=form)
def admin_page(): if not current_user.get('administrator'): return redirect(request.args.get("next") or url_for('wiki.home')) form = EditUserForm() if form.validate_on_submit(): if current_users.get_user(form.user_edit.data): #todo: !=None maybe if current_users.get_user( form.user_edit.data).get('administrator'): flash('Cannot delete administrators.', 'error') else: current_users.delete_user(form.user_edit.data) else: flash('User not found.', 'error') form.user_edit.data = '' users = {} x = current_users.read() #returns a dict object with unicode values for key, values in x.items(): name = key.encode('ascii', 'ignore') current_data = (values[u'creation_time']).encode('ascii', 'ignore') users[name] = current_data return render_template('admin_page.html', users=users, form=form)
def admin(): form = LoginForm() flash('Please log in to view this page', 'warning') with open('./user/users.json', 'r') as json_file: users = json.load(json_file) if form.validate_on_submit(): user = current_users.get_user(form.name.data) if user.get("roles")[0] == 'admin': return render_template('admin.html', permission=True, users=users) else: return render_template('admin.html', permission=False, users=users) return render_template('login.html', form=form)
def user_create(): form = CreateUserForm() manager = UserManager('user') if form.validate_on_submit(): localtime = str(datetime.now()) manager.add_user(form.name.data, form.password.data, localtime, True, [], None) user = current_users.get_user(form.name.data) login_user(user) user.set('authenticated', True) flash('User successfully created', 'success') return redirect(url_for('wiki.index')) return render_template('createuser.html', form=form)
def preferences(): """ Displays the Preferences page where users can change the theme of the page and update their password :return: preferences.html template """ form = ChangeTheme(username=current_user.name, darkmode=current_user.is_darkmode()) if request.method == 'POST': user = current_users.get_user(form.username.data) user.set('dark_mode', form.darkmode.data) return redirect(url_for('wiki.preferences')) return render_template('preferences.html', user=current_user, form=form)
def user_manage_create(): user_found = False password_mismatch = False is_admin = ['admin'] if request.form.get('is_admin') else [''] if current_users.get_user(request.form.get('name')) is not None: user_found = True flash('Username was taken, please try again.', 'error') if request.form.get('password') != request.form.get('confirm_password'): password_mismatch = True flash('Those passwords didn\'t match, please try again', 'error') if user_found is False and password_mismatch is False: current_users.add_user(name=request.form.get('name'), password=request.form.get('password'), roles=is_admin) return render_template('request_completed.html')
def user_manage_edit(): user_found = True password_mismatch = False is_admin = True if request.form.get('is_admin') else False if current_users.get_user(request.form.get('name')) is None: user_found = False flash('Username not found, please try again', 'error') if request.form.get('password') != request.form.get('confirm_password'): password_mismatch = True flash('Those passwords didn\'t match, please try again', 'error') if user_found is True and password_mismatch is False: current_users.edit_user(request.form.get('name'), request.form.get('password'), is_admin) return render_template('request_completed.html')
def user_login(): if current_user.is_active: return redirect(request.args.get("next") or url_for('wiki.home')) form = LoginForm() if form.is_submitted(): if not form.validate_name(form.name): flash("That user does not exist.", 'error') else: if not form.validate_password(form.password): flash("Incorrect password.", 'error') else: user = current_users.get_user(form.name.data) login_user(user) user.set('authenticated', True) user.set('active', True) flash('Login successful.', 'success') return redirect( request.args.get("next") or url_for('wiki.home')) return render_template('login.html', form=form)
def user_create(): # create a register from to transfer post signup data to backend form = RegisterForm() # check for name and password data validation # This check also acts as a post vs get request in a sense that # empty name and password fields act as a get request and non-empty # fields act as post request if form.name.data is not None and form.password.data is not None: user_found = False # checks for already existing user name if current_users.get_user(request.form.get('name')) is not None: user_found = True flash('Username was taken, please try again.', 'error') # checks for new user # if doesn't find in the database creates a new user. if user_found is False: current_users.add_user(name=form.name.data, password=form.password.data) flash('User creation successful.', 'success') return redirect(url_for('wiki.user_login')) return render_template('signup.html', form=form)
def validate_password(form, field): user = current_users.get_user(form.name.data) if not user: return if not user.check_password(field.data): raise ValidationError('Username and password do not match.')
def validate_name(form, field): user = current_users.get_user(field.data) if not user: raise ValidationError('This username does not exist.')
def validate_name(form, field): user = current_users.get_user(field.data) if user: raise ValidationError('This username exists')
def validate_name(form, field): user = current_users.get_user(form.name.data) if user: raise ValidationError('This username already exist.')
def validate_verify_new(form, field): user = current_users.get_user(form.username.data) if user.check_password( form.old_password.data) is False or user.set_password( form.new_password.data, form.verify_new.data) is False: raise ValidationError("New passwords did not match")
def validate_name(form, field): user = current_users.get_user(field.data) if user: raise ValidationError('This username is already in use.')
def validate_name(form, field): user = current_users.get_user(field.data) if not user: return False return True
def check_name(form, field): user = current_users.get_user(field.data) if user: raise ValidationError('This username already exists.')
def about_user(): user = current_users.get_user(current_user.name) return render_template('about_user.html', user=user)
def user_page(name): user = current_users.get_user(name) return render_template('user_profile.html', user=user)