Спасибо за подсказку
nukemonk, заменил
Код |
---|
<script type="text/javascript" src="/jquery-2.0.0.min.js"></script>
|
на
Код |
---|
CUtil::InitJSCore('jquery');
|
а так же добавил ссылку на файл со скриптом интеграции в таком виде
Код |
---|
$APPLICATION->AddHeadScript('/kerioswap.js');
|
.
Итак продолжу описание
День второй.
Имея прямой кросбраузерный канал обмена данными между фреймами, можно уже делать всё что душе угодно!
А далее мне угодно сделать автоматическую авторизацию, т.к. всем известно что пользователи ленивы на запоминание, а тем более на ввод пароля.
Сразу понятно что запоминание пароля на уровне браузера дело бессмысленно, т.к. пересев за чужой компьютер вне доменной сети уже придётся вводить пароль снова. Поэтому требуется держать пароль в базе битрикса, логином будет служить стандартное поле E-mail, которое заполняется автоматически из AD.
Первое над чем я стал мучатся это рыть форумы как создать пользовательское поле, типа password, и что бы оно не отображалось при просмотре личных данных пользователя.
Где задать тип поля я так и не нашел, по этому до сих пор смотрю в сторону костыля - используя jq при загрузке страницы менять тип поля.
А вот что бы оно не отображалось в профиле пользователя, но при открытии пользователем редактирования своего профиля это поле присутствовало я нашел решение =)
А теперь по пунктам:
В пользовательских полях я создал поле с характерным названием
UF_EMAIL_PASSWORD, которое
является строкой и относится к объекту
USER, потом поняв что через интерфейс битрикса я не могу сделать это поле видимым только для пользователя, пришлось залезть в шаблон:
socialnetwork.user_profile_edit/.default/template.php здесь меня заинтересовал массив полей
MAIN он повторяется дважды вернее выводится по разному при условии наличия модуля bitrix24
Код |
---|
if (IsModuleInstalled("bitrix24")) {
$arFields = array(
'MAIN' => array(
/*'EMAIL', 'PASSWORD', 'CONFIRM_PASSWORD',*/ 'UF_EMAIL_PASSWORD', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'PERSONAL_PHOTO', 'PERSONAL_PHONE', 'PERSONAL_MOBILE', 'WORK_PHONE', 'UF_PHONE_INNER', 'WORK_POSITION', 'GROUP_ID',
), .....
}else{
$arFields = array(
'MAIN' => array(
/*'EMAIL', 'PASSWORD', 'CONFIRM_PASSWORD',*/ 'UF_EMAIL_PASSWORD', 'NAME', 'LAST_NAME', 'SECOND_NAME', 'PERSONAL_PHOTO', 'PERSONAL_PHONE', 'PERSONAL_MOBILE', 'WORK_PHONE', 'WORK_POSITION', 'GROUP_ID',
),
} |
Как видно добавил это поле и в первом и во втором случае.
(Сначала я добавил только в первый массив, который выводится в случае наличия модуля bitrix24, но видимо модуля этого у меня нет т.к. поле не было выведено)
А так же добавил в параметрах компонента это поле в "Редактируемые свойства".
Как видите получилось, поле появилось в нужном месте, и видно только пользователю при редактировании профиля, но оно не имеет тип password

И вот у нас уже есть заветная пара логин и пароль, перейдём к передачи её в фрейм с Kerio и выполним авторизацию автоматически.
....