Hej, mam pytanko. Oto kawałek kodu który obsługuje logowanie w mojej aplikacji:

@app.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForm()

    # redirect when logged
    if 'logged' in session:
        if 'admin' in session:
            return redirect('/admin')
        elif 'user' in session:
            return redirect(url_for('dashboard'))

     if form.validate_on_submit():
        admin = Administrator.query.filter_by(login=form.username.data).first()
        user = FuneralHome.query.filter_by(login=form.username.data).first()
        if admin:
            if check_password_hash(admin.password, form.password.data):
                session['logged'] = True
                session['admin'] = True
                return redirect('/admin')
        elif user:
            if check_password_hash(user.password, form.password.data):
                session['logged'] = True
                session['user'] = True
                session['username'] = user.name
                return redirect(url_for('dashboard'))
        else:
            return 'Invalid username or password'

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

Potem, bazując na tym co się znajduje w sesji przydzielam użytkownikowi i adminowi dostęp do dedykowanych im widoków. Czy jest to bezpieczne? Jak nie, to jak to zabezpieczyć?