Beispiel #1
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        # Login and validate the user.
        # user should be an instance of your `User` class

        user = User.query.filter_by(username=form.username.data,
                                    password=auth.getPassword(
                                        form.username.data,
                                        form.password.data)).first()
        if user != None:

            auth.login(user, form.remember_me.data)
            user.last_log_time = datetime.now()
            user.last_log_ip = request.remote_addr
            db.session.commit()
            flash(u'登录成功')

            next = request.args.get('next')
            # next_is_valid should check if the user has valid
            # permission to access the `next` url
            # if not next_is_valid(next):
            #     return abort(400)
            return redirect(next or url_for('home.index'))

        else:
            flash(u"用户名或密码错误")

    return render_template('userlogin.html', form=form)
Beispiel #2
0
def tologin():
    #form = LoginForm(meta={'locales':['en_US','en']})
    form = LoginForm()
    print('tologin method is : ', request.method, ', submitted ? ',
          form.validate_on_submit())
    '''
        表单实例化后,如果是GET请求,则会渲染模板。
        如果是POST,就调用validate()函数执行表单验证
    '''
    #if request.method == 'POST' and form.validate():
    '''
        Flask-WTF 提供的validate_on_submit()方法合并了请求方式判断及表单验证,所以以上写法可改为如下写法
    '''
    #pass
    if form.validate_on_submit():
        print('Do the post login action !!!')
        '''
            表单类的data属性是一个匹配所有字段与对应数据的字典,我们一般直接通过“ form.字段属性名.data ”的
            形式来获取对应字段的数据
        '''
        if form.username.data == 'admin' and form.password.data == '12345678':
            session.pop('loginfailed', None)
            session['loginuser'] = form.username.data
            return redirect(url_for('index'))
        else:
            session['loginfailed'] = '账号 / 密码错误!!!'
    return render_template('login/login.html', form=form)
Beispiel #3
0
def login():
    """Авторизация пользователя"""

    if current_user.is_authenticated:
        return redirect('/feed')

    form_log = LoginForm()
    form_reg = RegisterForm()

    # если форма заполнена и отправлена
    if form_log.validate_on_submit():
        db_session.global_init("db/database.sqlite")
        session = db_session.create_session()
        user = session.query(User).filter(
            User.email == form_log.email.data).first()

        # если пароль введён верный
        if user and user.check_password(form_log.password.data):
            # выполняется вход пользователя
            login_user(user, remember=True)
            return redirect("/")

        return render_template('enter_page.html',
                               message_log="Неправильный логин или пароль",
                               form_log=form_log,
                               form_reg=form_reg)
    return render_template('enter_page.html',
                           title='Авторизация',
                           form_log=form_log,
                           form_reg=form_reg)
Beispiel #4
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        # Login and validate the user.
        # user should be an instance of your `User` class

        user = User.query.filter_by(username=form.username.data,password=auth.getPassword(form.username.data,form.password.data)).first()
        if user != None:

            auth.login(user,form.remember_me.data)
            user.last_log_time = datetime.now()
            user.last_log_ip = request.remote_addr
            db.session.commit()
            flash(u'登录成功')

            next = request.args.get('next')
            # next_is_valid should check if the user has valid
            # permission to access the `next` url
            # if not next_is_valid(next):
            #     return abort(400)
            return redirect(next or url_for('home.index'))

        else:
            flash(u"用户名或密码错误")

    return render_template('userlogin.html', form=form)
Beispiel #5
0
 def post(self):
     form = LoginForm(self.request.arguments)
     if form.validate():
         self.set_current_user('user')
         self.redirect(self.reverse_url(name='index'))
     else:
         error_msg = 'Invalid email or password.'
         self.render('login.html', form=form, error_msg=error_msg)
Beispiel #6
0
def login():
    if current_user.is_authenticated:
        if current_user.role_id == 1:
            return redirect('/system_admin')
        if current_user.role_id == 2:
            return redirect('/ed_process_admin')
        if current_user.role_id == 3:
            return redirect('/teacher')
        if current_user.role_id == 4:
            return redirect('/student')

    if get('https://ssstarsss.herokuapp.com/api/users/1').status_code == 404:
        post('https://ssstarsss.herokuapp.com/api/roles', json={"name": "SysAdmin", "can_view_teachers": 1,
                                                       "can_view_tests": 1, "can_add_users": 1,
                                                       "can_add_tests": 1, "can_complete_tests": 1})

        post('https://ssstarsss.herokuapp.com/api/roles', json={'name': 'EduAdmin', 'can_view_teachers': 1,
                                                       'can_view_tests': 1, 'can_add_users': 0,
                                                       'can_add_tests': 0, 'can_complete_tests': 0})

        post('https://ssstarsss.herokuapp.com/api/roles', json={'name': 'Teacher', 'can_view_teachers': 0,
                                                       'can_view_tests': 1, 'can_add_users': 0,
                                                       'can_add_tests': 0, 'can_complete_tests': 0})

        post('https://ssstarsss.herokuapp.com/api/roles', json={'name': 'Student', 'can_view_teachers': 0,
                                                       'can_view_tests': 1, 'can_add_users': 0,
                                                       'can_add_tests': 1, 'can_complete_tests': 0})

        post('https://ssstarsss.herokuapp.com/api/users', json={'login': "******", 'surname': 'Админов',
                                                       'role_id': 1, 'name': 'Админ', 'hashed_password': '******'})

    form_log = LoginForm()

    # если форма заполнена и отправлена
    if form_log.validate_on_submit():
        db_session.global_init("db/database.sqlite")
        session = db_session.create_session()
        user = session.query(Users).filter(Users.login ==
                                           form_log.login.data).first()

        # если пароль введён верный
        if user and user.check_password(form_log.password.data):
            # выполняется вход пользователя
            login_user(user, remember=True)
            if current_user.role_id == 1:
                return redirect('/system_admin')
            if current_user.role_id == 2:
                return redirect('/ed_process_admin')
            if current_user.role_id == 3:
                return redirect('/teacher')
            if current_user.role_id == 4:
                return redirect('/student')
        return render_template('login.html',
                               error="Неправильный логин или пароль",
                               form_log=form_log)
    return render_template('login.html', form_log=form_log)
Beispiel #7
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        flash('Login requested for OpenID="' + form.openid.data +
              '", remember_me=' + str(form.remember_me.data))
        return redirect('/index')
    return render_template('login.html',
                           title='Sign In',
                           form=form,
                           providers=app.config['OPENID_PROVIDERS'])
Beispiel #8
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.User.get_by_username(form.username.data)
        if user is not None and user.check_password(form.password.data):
            login_user(user, form.remember_me.data)
            flash("login successful! Welcome {}".format(user.username))
            return redirect(
                request.args.get('next') or url_for('baseviews.index'))
        flash('Incorrect username or password.')
    return render_template('login.html', form=form)
Beispiel #9
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        if form.email.data == '*****@*****.**' and form.password.data == 'password':
            flash(f'You have been logged in!', 'success')
            return redirect(url_for('home'))
        else:
            flash(
                f'Login unseccusseful, please check your username and password',
                'danger')
    return render_template('login.html', title='Login', form=form)
Beispiel #10
0
def login():
    # Получение форм
    form = LoginForm()
    reg_form = RegForm()
    if session.get('data'):
        name = session.get('data')['name']
    else:
        name = None

    # Проверка валидации формы
    if form.submit.data and form.validate():

        db_sess = db_session.create_session()  # Создание ссесии с БД
        user = db_sess.query(User).filter(
            User.email ==
            form.username.data).first()  # Получение юзера с данным email

        # Проверка существования такого пользователя
        if user:
            # Проверка пароля
            if user.check_password(form.password.data):
                session['data'] = dict(name=user.name, email=user.email)
                # Редирект на главную страницу
                return redirect('/')
            else:
                # Рендер страницы с сообщением об ошибке
                return render_template('login.html',
                                       title='Авторизация',
                                       form=form,
                                       message='Неверный пароль',
                                       name=name,
                                       form_register=reg_form)

        else:
            # Рендер страницы с сообщением об ошибке
            return render_template('login.html',
                                   title='Авторизация',
                                   form=form,
                                   message='Неверный логин',
                                   name=name,
                                   form_register=reg_form)

    # Проверка валидации формы
    if reg_form.reg.data:
        # Редирект на страницу регистрации
        return redirect('/register')

    # Успешный рендер страницы
    return render_template('login.html',
                           title='Авторизация',
                           form=form,
                           name=name,
                           form_register=reg_form)
Beispiel #11
0
def login():
    if is_authenticated():
        return redirect_to('rounds.rounds')
    form = LoginForm()
    if form.validate_on_submit():
        user = get_username(form.username.data)
        if user and bcrypt.check_password_hash(user.password,
                                               form.password.data):
            login_user(user, remember=form.remember_me.data)
            return redirect_to('rounds.rounds')
        else:
            flash('Login Unsuccessful. Invalid Credentials.', 'danger')
    return render_template('login.html', title='Login', form=form)
Beispiel #12
0
def index():
    myForm = LoginForm()
    if myForm.validate_on_submit():
        if session['recaptcha'].lower() == myForm.recaptcha.data.lower():
            user = User(myForm.username.data, myForm.password.data)
            session['username'] = myForm.username.data
            if (user.isExisted()):
                return redirect(url_for('home'))
            else:
                flash(u'出错啦,登录失败,请检查用户名和密码是否正确!')
        else:
            flash(u'Hi, 验证码错误, 请重输!')
    return render_template('index.html', form=myForm)
Beispiel #13
0
def login_post():
    session.pop('_flashes', None)
    login_form = LoginForm(request.form)
    username = request.form["username"]
    password = request.form["password"]

    if login_form.validate():
        user = controller.autenticate_user(username, password)
        if user is not None:
            #todo:Remember me
            login_user(user)
            return redirect("/")
        else:
            flash('Invalid username or password')
            return redirect("login")
Beispiel #14
0
def login_bro(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            # print form.cleaned_data
            password = form.cleaned_data['password']
            email = form.cleaned_data['email']
            user = User.objects.get(email=email)
            user = authenticate(username=user.username, password=password)
            # print user
            login(request, user)
            return HttpResponseRedirect('/')
    else:
        form = LoginForm()
    return render(request, 'login.html', {'form': form})
Beispiel #15
0
def login():
    form = LoginForm()

    if form.validate_on_submit():
        userSeekingAccess = session.query(UserAccount).filter_by(
            email=form.email.data).first()

        if userSeekingAccess is not None:
            if userSeekingAccess.decode_password(form.passcode.data):
                login_user(userSeekingAccess, remember=form.remember_me.data)
                return redirect(url_for('dashboard'))

            return 'bad creds'

    return render_template('login.html', form=form)
Beispiel #16
0
def login_bro(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            # print form.cleaned_data
            password = form.cleaned_data['password']
            email = form.cleaned_data['email']
            user = User.objects.get(email=email)
            user = authenticate(username=user.username, password=password)
            # print user
            login(request, user)
            return HttpResponseRedirect('/')
    else:
        form = LoginForm()
    return render(request, 'login.html', {'form':form})
Beispiel #17
0
def login_form_admin_credentials(mock_ldap):
    """
    Returns login form containing valid data of registered admin user.
    """
    form = LoginForm(username=mock_ldap.admin['user_name'],
                     password=mock_ldap.admin['passwd'])
    return form
Beispiel #18
0
def login_form_invalid(mock_ldap):
    """
    Returns login form containing invalid data.
    """
    form = LoginForm(email=mock_ldap.non_user['user_name'],
                     password=mock_ldap.non_user['passwd'])
    yield form
Beispiel #19
0
def login():
    login_form = LoginForm()
    if request.method == 'POST' and login_form.validate():
        email = login_form.email.data
        password = login_form.password.data
        user = User.query.filter_by(email=email).first()

        if user and user.password == password:
            login_user(user)
            g.user = user
            message = Markup("<h5>logged in successfully</h5>")
            flash(message)
            return redirect(url_for('create_short'))
        else:
            flash('Invalid credentials Try again', 'error')
    return redirect(url_for('create_short'))
Beispiel #20
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()

        if user.check_password(form.password.data) and user is not None:
            login_user(user)
            flash('Login Sucessfully')

            next = request.args.get('next')

            if next == None or not next[0] == '/':
                next = url_for('welcome_user')

            return redirect(next)
    return render_template('login.html', form=form)
Beispiel #21
0
def testlogin():
    form = LoginForm()
    if current_user.is_authenticated:
        return f"You are already logged in as {current_user.username}"
    elif request.method == "POST":
        if form.email.data:
            if form.password.data:
                user = User.query.filter_by(email=form.email.data).first()
                if user:
                    if bcrypt.check_password_hash(user.password,
                                                  form.password.data):
                        if login_user(user):
                            return f"User {current_user.username} loggedin"
                        else:
                            return "User exists but not loggedin"
                        return "User exists and Password Matches"
                    else:
                        return "User exists but Password doesn't match"
                else:
                    return "User Does not exist"
                return f"Password:{form.password.data}"
            else:
                return "Password failed"
            return f"Email: {form.email.data}!"
        else:
            return "Email failed"
        return "POST Verified"
    #return render_template('login.html',title="Home",_external=True,form=form)
    return "GET Verfied"
Beispiel #22
0
def login():
    # Init form
    form = LoginForm()

    # If post
    if request.method == 'POST':

        # Init credentials from form request
        username = request.form['username']
        password = request.form['password']

        # Init user by Db query
        user = User.query.filter_by(username=username).first()

        # Control login validity
        if user is None or not sha256_crypt.verify(password, user.password):
            flash('Invalid username or password')
            return redirect(url_for('login'))
        else:
            session['username'] = username
            return redirect(url_for('index'))

    # If GET
    else:
        return render_template('login.html', title='Login', form=form)
Beispiel #23
0
def login():
    # Init form
    form = LoginForm()

    # If post
    if request.method == "POST":

        # Init credentials from form request
        username = request.form["username"]
        password = request.form["password"]

        # Init user by Db query
        user = User.query.filter_by(username=username).first()

        # Control login validity
        if user is None or not sha256_crypt.verify(password, user.password):
            flash("Invalid username or password")
            return redirect(url_for("login"))
        else:
            session["username"] = username
            flash("You were successfully logged in")
            return redirect(url_for("index"))

    # If GET
    else:
        return render_template("login.html", title="Login", form=form)
Beispiel #24
0
 def post(self):
     form = LoginForm(**self.get_params())
     if form.validate():
         try:
             user = get_user(form.email.data)
         except KeyError:
             self.write("No username or wrong password")
             return
         if user['password'] == form.password.data:
             session = db_login(user['_id'])
             self.set_cookie('session', session)
             next = self.get_argument("next", "/")
             self.redirect(next)
             return
         else:
             self.write("No username or wrong password")
     self.write(self.template.render(form=form))
Beispiel #25
0
def login_form(mock_ldap):
    """
    Returns login form containing valid data of registered user.
    """
    form = LoginForm(
        username=mock_ldap.user['user_name'],
        password=mock_ldap.user['passwd'],
    )
    yield form
Beispiel #26
0
def login_form(db_tieto_user):
    """
    Returns login form containing valid data of registered user.
    """
    form = LoginForm(
        email=User.query.filter_by(id=db_tieto_user[0].id).first().email,
        password=db_tieto_user[1],
    )
    yield form
Beispiel #27
0
def login():
    """Renders login page."""
    form = LoginForm()

    if form.validate_on_submit():

        username: str = form.username.data
        password: str = form.password.data
        remember: bool = form.remember_me.data

        if validate_login(username, password):
            user = find_user(username)
            login_user(user, remember=remember)
            return redirect(f"/user/{username}")
        else:
            flash("Invalid user credentials.")

    return dict(form=form)
Beispiel #28
0
def login():
    form = LoginForm(request.form)
    if request.method == 'GET':
        return render_template('login_page.html', form=form)
    if request.method == 'POST':
        if form.validate_on_submit():
            user = db.session.query(User).filter(
                User.email == form.email.data).first()
            if user and user.password == form.password.data:
                session['user_id'] = user.id
                session['role_id'] = user.role_id
                flash('Wellcome %s' % user.name)
                return redirect(url_for('index'))
            else:
                flash('Incorrect login/password data...')
                return render_template('login_page.html', form=form)
        else:
            flash('Incorrect login/password data...')
            return render_template('login_page.html', form=form)
Beispiel #29
0
def login():
    form = LoginForm()

    if form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()

        if current_user.is_authenticated:
            flash('You are already logged in')
            return redirect('/login')

        if user is None or not user.check_password(form.password.data):
            flash('Invalid username or password')
            return redirect('/login')

        login_user(user, remember=form.remember_me.data)

        return redirect('/')

    return render_template('login.html', title='Sign In', form=form)
Beispiel #30
0
def login():
    if request.method == 'GET':
        if 'logged_in' in session:
            message_body = 'You are already logged in.'
            message_title = 'Error!'
            return render_template('message.html',
                                   message_title=message_title,
                                   message_body=message_body)
        else:
            form = LoginForm()
            return render_template('login.html', form=form, error=form.errors)
    else:
        form = LoginForm()
        try:

            if form.validate_on_submit():
                data = User.query.filter_by(email=form.email.data).first()
                if (data is not None and check_password_hash(
                        data.password_hash, form.password.data)
                        and data.active):

                    session['logged_in'] = True
                    session['id'] = data.id
                    session['email'] = data.email
                    return render_template('index.html', session=session)
                else:
                    message_body = 'Login failed or ' \
                                   'your account is not activated'
                    message_title = 'Error!'
                    return render_template('message.html',
                                           message_title=message_title,
                                           message_body=message_body)
            else:
                return render_template('login.html',
                                       title='Sign In',
                                       form=form,
                                       error=form.errors)
        except (ValueError, TypeError):
            message_body = 'Something went wrong'
            message_title = 'Error!'
            return render_template('message.html',
                                   message_title=message_title,
                                   message_body=message_body)
Beispiel #31
0
def login():
	form = LoginForm()
	if form.validate_on_submit():
		email = form.email.data
		# this is where real authentication should be done
		user = find_user(email)
		if user == None:
			error_message = 'Unable to log you in, please check email and password carefully.'
			return render_template('generic-error.html', error_message=error_message, back_url=url_for('web.login')), 401
		nickname = user.nickname
		if user.verify_password(form.password.data):
			login_user(user)
			next = request.args.get('next')
			if next is None or not next.startswith('/'):
				next = url_for('web.index')
			return redirect(next)
		error_message = 'Unable to log you in.'
		return render_template('generic-error.html', error_message=error_message, back_url=url_for('web.login')), 400

	return render_template('login.html', form=form)
Beispiel #32
0
def register():
    """Регистрация пользователя"""

    if current_user.is_authenticated:
        return redirect('/feed')

    form_reg = RegisterForm()
    form_log = LoginForm()

    # если форма заполнена и отправлена
    if form_reg.validate_on_submit():
        # проверка совпадения паролей
        if form_reg.password.data != form_reg.password_again.data:
            return render_template('enter_page.html',
                                   title='Главная',
                                   form_reg=form_reg,
                                   form_log=form_log,
                                   message_reg="Пароли не совпадают")

        db_session.global_init("db/database.sqlite")
        session = db_session.create_session()

        # проверка наличия почты в БД (почта должна быть уникальной)
        if session.query(User).filter(
                User.email == form_reg.email.data).first():
            return render_template('enter_page.html',
                                   title='Главная',
                                   form_reg=form_reg,
                                   form_log=form_log,
                                   message_reg="Такая почта уже есть")

        # проверка наличия ника в БД (ник должн быть уникальным)
        if session.query(User).filter(
                User.nickname == form_reg.nickname.data).first():
            return render_template('enter_page.html',
                                   title='Главная',
                                   form_reg=form_reg,
                                   form_log=form_log,
                                   message_reg="Такой пользователь уже есть")

        # если всё было корректно, добавляем пользователя
        post('http://sunsite.herokuapp.com/api/users',
             json={
                 'nickname': form_reg.nickname.data,
                 'email': form_reg.email.data,
                 'password': form_reg.password.data
             })
        return redirect('/')
    return render_template('enter_page.html',
                           title='Регистрация',
                           form_reg=form_reg,
                           form_log=form_log)
Beispiel #33
0
def login_form_invalid(db_tieto_user):
    """
    Returns login form containing invalid data.
    """
    invalid_password = g.person.password(length=8)
    while (invalid_password == db_tieto_user[1]):
        invalid_password = g.person.password(length=8)

    form = LoginForm(
        email=User.query.filter_by(id=db_tieto_user[0].id).first().email,
        password=invalid_password,
    )
    yield form
Beispiel #34
0
def login():
    if 'username' in session:
        return redirect(url_for('dashboard'))
    form = LoginForm()
    if request.method == 'POST':
        if form.validate() == False:
            return render_template('login.html', name=login, form=form)
        else:
            username = form.username.data
            password = form.password.data

            user = User.query.filter_by(username=username).first()
            if user is not None and user.check_password(password):
                session['username'] = form.username.data
                return redirect(url_for('dashboard'))
        # else:
        #     return render_template('login.html',name=login,form=form)

    elif request.method == 'GET':
        return render_template('login.html', name=login, form=form)

        return render_template('login.html', name=login, form=form)