sale.order.ajax, шаг confirm - проверку пользователя убрать из запроса и перенести ниже

Рейтинг: 35.8490  
В работе
Предложил Пользователь 11948 11.01.2013 15:02:21

sale.order.ajax, шаг confirm - проверку пользователя убрать из запроса и перенести ниже

Дело в том, что если мы дергаем заказ не текущего пользователя, на уровне запроса ничего не вернется. Я предлагаю такую проверку вынести в сам код (см. скрин). Это развяжет руки, так как посередине находится событие OnSaleComponentOrderOneStepFinal, куда можно будет внедряться и разрешать текущему пользователю смотреть заказ/не смотреть (меняя по ссылке arOrder).



UPD: На деле особо рук не развязало, так как идет сверка с USER-GetID все же. Вот было бы хорошо до вызова OnSaleComponentOrderOneStepFinal делать проверку и запоминать во флаге, с возможностью в OnSaleComponentOrderOneStepFinal этот флаг переопределить.

В чем суть - пытаюсь дать возможность создавать гостям заказ (это можно), НО если указываемый мыл уже есть в базе, то создавать под пользователем этого мыла. И вот на данном шаге мне гостю надо либо разрешить смотреть заказ, либо запретить (проверяю в OnSaleComponentOrderOneStepFinal
по сессионной переменной.

Рейтинг: 1  
Пользователь 11948 11.01.2013 15:05:04
Нижний код кому надо, чтобы не перепечатывать:

if ($arOrder['USER_ID'] != $USER->GetID()) {
   $arOrder = array();
}
Рейтинг: 6.7513  
Пользователь 11948 11.01.2013 16:48:30
Пример когда это надо http://dev.1c-bitrix.ru/community/webdev/user/11948/blog/6756/
Рейтинг: -1  
Пользователь 173740 04.06.2013 09:03:44
ИМХО в идеале нужно предоставить возможность администраторам/разработчикам сайта дать три варианта на выбор:
1. Выводить сообщение типа: "Такой e-mail уже существует. Авторизуйтесь.".
2. Предлагать пользователю авторизоваться, например во всплывающей AJAX форме авторизации. Если забыл пароль, то предлагать напомнить.
3. Автоматически авторизовывать пользователя при оформлении заказа (тут немного страдает безопасность, но для некоторых сайтов это приемлемо).
Рейтинг: 0.0962  
Пользователь 11948 04.06.2013 09:25:20
Константин, вы несколько спутали идеи - о визуальной технике (предлагаете вы), и коде, который может использовать абсолютно иную логику (которую предлагаю я).
Рейтинг: -1  
Пользователь 173740 04.06.2013 09:55:43
Я имел в виду, что код стандартного компонента (API) должен позволять это делать без его изменения. А все остальное (формы, сообщения и т.п.) - это уже задача разработчика.
P.S. Хотя да, идею может немножко спутал. Тут речь о просмотре заказа. Пардон.