Esempio n. 1
0
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))
Esempio n. 2
0
 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
Esempio n. 3
0
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')
Esempio n. 4
0
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)
Esempio n. 5
0
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)
Esempio n. 6
0
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)
Esempio n. 7
0
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'))
Esempio n. 8
0
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)
Esempio n. 9
0
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)
Esempio n. 10
0
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)
Esempio n. 11
0
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)
Esempio n. 12
0
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)
Esempio n. 13
0
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)
Esempio n. 14
0
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')
Esempio n. 15
0
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')
Esempio n. 16
0
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)
Esempio n. 17
0
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)
Esempio n. 18
0
 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.')
Esempio n. 19
0
 def validate_name(form, field):
     user = current_users.get_user(field.data)
     if not user:
         raise ValidationError('This username does not exist.')
Esempio n. 20
0
 def validate_name(form, field):
     user = current_users.get_user(field.data)
     if user:
         raise ValidationError('This username exists')
Esempio n. 21
0
 def validate_name(form, field):
     user = current_users.get_user(form.name.data)
     if user:
         raise ValidationError('This username already exist.')
Esempio n. 22
0
 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.')
Esempio n. 24
0
 def validate_name(form, field):
     user = current_users.get_user(field.data)
     if not user:
         return False
     return True
Esempio n. 25
0
 def check_name(form, field):
     user = current_users.get_user(field.data)
     if user:
         raise ValidationError('This username already exists.')
Esempio n. 26
0
def about_user():
    user = current_users.get_user(current_user.name)
    return render_template('about_user.html', user=user)
Esempio n. 27
0
File: forms.py Progetto: alexex/wiki
 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.')
Esempio n. 28
0
File: forms.py Progetto: alexex/wiki
 def validate_name(form, field):
     user = current_users.get_user(field.data)
     if not user:
         raise ValidationError('This username does not exist.')
Esempio n. 29
0
def user_page(name):
    user = current_users.get_user(name)
    return render_template('user_profile.html', user=user)