Пример #1
0
def users_list():
    user = cur_user()
    if user is None or user.get_status() not in ACCESS_GROUP:
        return redirect(
            url_for('low_access_level', req_access=STATUS_MODERATOR))
    vk_users = VKUser.get_all()
    users = User.get_all()
    return render_template('users_list.html',
                           user=user,
                           title='Список пользователей',
                           vk_users=vk_users,
                           users=users)
Пример #2
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.get_all()
        for i in user:
            check = pbkdf2_sha256.verify(request.form['password'], i.password) # Проверка введенных данных
            if request.form['login'] == i.login and check == True:
                session['logged_in'] = True # Начало сессии
                session['username'] = i.login
                return redirect('/account') # После успешного входа пользователя перенаправляет в личный кабинет
        if session['logged_in'] != True:
            return render_template('login.html', error_text='Неправильный логин или пароль.', form=form)
    return render_template('login.html', form=form)
Пример #3
0
def registration():
    form = RegForm()
    if form.validate_on_submit():
        users = User.get_all()
        for i in users:     # Проверка на уникальность логина и почты
            if (form.email.data == i.email):
                return render_template('reg.html', error_text='Пользователь с такой почтой уже существует', form=form)
            if (form.login.data == i.login):
                return render_template('reg.html', error_text='Пользователь с таким логином уже существует', form=form)
        secret_pass = pbkdf2_sha256.hash(form.password.data)        # Шифровка пароля и сохранение пользователя
        user = User(form.name.data, form.email.data, form.login.data, secret_pass)
        user.save()
        session['logged_in'] = True
        session['username'] = form.login.data
        return redirect('/')
    return render_template('reg.html', form=form)
Пример #4
0
def user_list(vk_user, inc_message):
    if not validate_vk_user(vk_user):
        return 'Caller validation error'

    command = re.search(r'пользователи (\w+)', inc_message.get_text().lower())
    if command is None:
        error_message(vk_user.vk_id, 'Необходимо указать категорию пользователей (БД, ВК или все)')
        return 'Category not stated error'

    category = command.group(1)
    text = ''
    if category == 'бд' or category == 'все':
        bd_users = User.get_all()
        text += 'Пользователи базы: \n'
        for user in bd_users:
            if user.vk_user is None:
                status = 'нет связи с VKUser'
            else:
                status = user.vk_user.format_status()
            text += '— @id{vk_id} ({login}): уровень доступа — {access_level} \n'.format(
                vk_id = user.vk_id,
                login = user.login,
                access_level = status
            )
    if category == 'вк' or category == 'все':
        vk_users = VKUser.get_all()
        text += 'Пользователи ВК: \n'
        for user in vk_users:
            text += '— @id{vk_id} ({surname} {name}): уровень доступа — {access_level}, зарегистрирован {reg_date} \n'.format(
                vk_id = user.vk_id,
                surname = user.surname,
                name = user.name,
                access_level = user.format_status(),
                reg_date = user.format_reg_date()
            )
    if text == '':
        text = 'На текущий момент соответствующих пользователей нет'
    OutgoingMessage(
        to_id = vk_user.vk_id,
        text = text
    ).send()
Пример #5
0
def forget():
    form = ForgetPasswordForm()
    if form.validate_on_submit():
        users = User.get_all()
        check = False
        for i in users:
            if (form.email.data == i.email):
                check = True
                user_mail = form.email.data
                random_pass = (''.join([random.choice(list('123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM')) for x in range(8)]))
                msg = Message('Восстановление пароля', sender="*****@*****.**", recipients=[user_mail])
                msg.html = render_template('mail.html', password=random_pass, login=i.login, name=i.name)
                mail.send(msg)

                secret_pass = pbkdf2_sha256.hash(random_pass)
                User.query.filter_by(login=i.login).update(dict(password=secret_pass))
                db.session.commit()
        if check != True:
            return render_template('forget.html', error_text='Пользователя с таким email не существует.', form=form)
        return redirect('/')
    return render_template('forget.html', form=form)
Пример #6
0
def changemail():
    form = ChangeMailForm()
    if form.validate_on_submit():
        #  Проверка на правильность пароля и старой почты
        real_password = User.get_password(session['username'])
        check = pbkdf2_sha256.verify(request.form['password'], real_password)
        if check != True:
            return render_template('change_email.html', error_text = 'Вы ввели неправильный пароль.', form=form)
        if form.old_email.data != User.get_email(session['username']):
            return render_template('change_email.html', error_text = 'Вы ввели неправильный старый email.', form=form)

        # Проверка на уникальность новой почты
        users = User.get_all()
        for i in users:
            if (form.new_email.data == i.email):
                return render_template('change_email.html', error_text = 'Пользователь с такой почтой уже существует.', form=form)
        # Сохранение новых данных
        User.query.filter_by(login=session['username']).update(dict(email=form.new_email.data))
        db.session.commit()
        return redirect('/account')
    return render_template('change_email.html', form=form)