Почему моя функция проверки пользователя не работает? - PullRequest
0 голосов
/ 18 марта 2019

Пользователи моего приложения имеют доступ к некоторым файлам PDF в каталоге / static / pdf / с подкаталогами для нескольких станций, таких как station1, station2 aso.Если пользователь пытается получить доступ к файлам, функция проверяет, есть ли у пользователя необходимые права на открытие файлов для указанной станции, прежде чем открывать PDF-файл.Это все работает как задумано, если пользователь просто нажимает на ссылки в моем приложении.Но если пользователь уже открыл файл PDF и теперь вводит путь к другому файлу вручную, функция не выполняет перенаправление, как предполагалось.Я вижу, что функция начинает подтверждать права доступа в тех случаях, но если b не в правах: часть не работает.Если пользователь нажимает на ссылку в моем приложении, функция работает без проблем.Что я делаю не так?

@app.route('/static/pdf/<stationname>/<username>/<filename>')
@login_required
def filecheck(stationname, username, filename):
rights = session['rights']
access = Station.query.filter(Station.stationname==stationname)
for a in access:
    b=a.id
if b not in rights:
    flash('Access denied')
    return redirect(url_for('data'))
return None

1 Ответ

0 голосов
/ 18 марта 2019

Вы перебираете доступ (для доступа a) и изменяете значение b на каждой итерации (b = a.id). После этого вы проверяете, если б не в правах. Вы проверяете только последний элемент последовательности доступа. Это то, что вы хотите сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...