208 похожих чатов

Нужно ли делать $USER->Logout() для API скриптов? Нашёл в одном

из них запуск действий от имени admin и в конце это разлогинивание. При этом в логах PHP это фиксируется ошибкой:

"PHP message: PHP Fatal error: Uncaught RuntimeException: Could not start session because headers have already been sent."

Похоже что пытается вывести HTML с формой логина ))

Мне кажется, что окончание PHP скрипта лучше любого разлогинивания, но раз мои предшественники это сделали, то может в этом был какой-то сакральный смысл?

13 ответов

20 просмотров

если у тебя это в консольной сессии делается (или может делаться), то в результате (без разлогина) в браузере останется админская сессия с полным доступом. ну и тут надо логику смотреть, очень мало вариантов когда надо в скрипте логиниться.

Константин Салахутдинов
в консольной сессии же нет браузера )

в консольной нет, но я написал, что если можно это из браузера запустить, например прямым вызовом скрипта. да, там не в консольной, про пользовательскую сессию речь.

Нет, не нужно logout'ить, ровно как и авторизовывать тоже НЕ НУЖНО.

Alexander Ostrovsky
в консольной нет, но я написал, что если можно это...

Понял. Но вроде там всё cli-шное. Проблема была в ошибке в логах PHP — в момент исполнения $USER->Logout() происходит ошибка: PHP message: PHP Fatal error: Uncaught RuntimeException: Could not start session because headers have already been sent.

Andrei Nikolaev
Нет, не нужно logout'ить, ровно как и авторизовыва...

А зачем это могли делать? Чтобы при создании новых сущностей (сделки, счёта и тд) подставлялся верный автор?

Константин Салахутдинов
А зачем это могли делать? Чтобы при создании новых...

да, возможно не знали как работать с сущностями. как умели - так и сделали. может с правами какой косяк.

Константин Салахутдинов
А зачем это могли делать? Чтобы при создании новых...

Нет, потому что не знали как можно отключить контроль прав.

Константин Салахутдинов
Это который —  'CHECK_PERMISSIONS' => 'N' ?

Это только на getList'ы, для создания нужно в конструктор CCrmDeal false передавать или в options пользователя от которого выполняется действие

Andrei Nikolaev
Это только на getList'ы, для создания нужно в конс...

А можно пример или где почитать про это на будущее

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта