Clarify the box.session.su()
description
#5062
Labels
reference
[location] Tarantool manual, Reference part
box.session.su()
description
#5062
Product: Tarantool
Root document: https://www.tarantool.io/en/doc/latest/reference/reference_lua/box_session/su/
SME: @ Totktonada @ sergepetrenko @ a1div0
Jira ticket: https://jira.vk.team/browse/TNTP-2284
Details
@ a1div0 :
Тип аргумента №2
Согласно описанию вторым аргументом может быть название функции или сама функция:
"... function-to-execute – имя функции или определение функции ..."
Однако по факту метод всегда требует функцию:
Временное переключение на пользователя не работает
Вот этот тест не сработает:
При этом просто переключение на пользователя работает исправно. Если заменить вызов "box.session.su("unittestuser", func)" на вот это, то всё работает:
@ sergepetrenko :
Не считаю багом. Давайте поправим описание в документации. box.session.su() принимает вторым аргументом объект-функцию. Т.е. либо определение функции (function() ... end), либо, и правда, имя функции, как переменной, только без кавычек:
По поводу временного переключения пользователя тоже недостаток документации.
Есть box.session.user() - показывает всегда исходного пользователя, не смотря на box.session.su(), а есть box.session.effective_user() - показывает текущего пользователя, уважает box.session.su(). Упоминания box.session.effective_user() в кокументации я не нашёл:
@ Totktonada :
Хочу тоже немного в это вникнуть. Есть ощущение, что некоторые вещи так и должны работать.
Например, su с функцией меняет пользователя в рамках работы функции. После работы функции возвращается старый пользователь. Это, кажется, ок.
The text was updated successfully, but these errors were encountered: