из них запуск действий от имени admin и в конце это разлогинивание. При этом в логах PHP это фиксируется ошибкой:
"PHP message: PHP Fatal error: Uncaught RuntimeException: Could not start session because headers have already been sent."
Похоже что пытается вывести HTML с формой логина ))
Мне кажется, что окончание PHP скрипта лучше любого разлогинивания, но раз мои предшественники это сделали, то может в этом был какой-то сакральный смысл?
если у тебя это в консольной сессии делается (или может делаться), то в результате (без разлогина) в браузере останется админская сессия с полным доступом. ну и тут надо логику смотреть, очень мало вариантов когда надо в скрипте логиниться.
в консольной сессии же нет браузера )
в консольной нет, но я написал, что если можно это из браузера запустить, например прямым вызовом скрипта. да, там не в консольной, про пользовательскую сессию речь.
Нет, не нужно logout'ить, ровно как и авторизовывать тоже НЕ НУЖНО.
Понял. Но вроде там всё cli-шное. Проблема была в ошибке в логах PHP — в момент исполнения $USER->Logout() происходит ошибка: PHP message: PHP Fatal error: Uncaught RuntimeException: Could not start session because headers have already been sent.
Есть, в бетах :) Не production-ready.
А зачем это могли делать? Чтобы при создании новых сущностей (сделки, счёта и тд) подставлялся верный автор?
да, возможно не знали как работать с сущностями. как умели - так и сделали. может с правами какой косяк.
Нет, потому что не знали как можно отключить контроль прав.
Это который — 'CHECK_PERMISSIONS' => 'N' ?
Это только на getList'ы, для создания нужно в конструктор CCrmDeal false передавать или в options пользователя от которого выполняется действие
А можно пример или где почитать про это на будущее
https://bxapi.ru/src/?module_id=crm&name=CCrmDeal::__construct
Обсуждают сегодня