Pandion кастомизация для корпоративной сети
Pandion, убираем лишние кнопки и добавляем автоподстановку логина!
Все наверно слышали про связку сервера Openfire и клиента Pandion для работы в качестве корпоративного чата. NTLM авторизация на последней версии Openfire у меня не заработала и я решил после недели мучения сделать не прозрачную, а чуть чуть упроситить авторизацию для входа в чат. Тем боле что логин вводить не нужно, а пароль вводится один раз и запоминается через галочку "запомнить пароль".
Первое с чем я столкнулся, это с тем что в последней версии Pandion не работали смайлы, оказалось что в файле ContainerCode.js нужно заменить все window.parent.document на document, почему так накосячили разработчики не понятно.
Далее, изначально экран пандиона для авторизации выглядит вот так:
Вся левота с не нужными кнопками и вводом логина руками меня вообще не возбуждала.
Я сделал вот так:
Разницы не много, но всякой шелухи поубавилось, да и логин заполняется сам (по названию учетки под которой сидим).
1. Теперь о том, как это кастомизируется.
Все инетерсные файлики хранятся в директории с пандионом, а именно вот тут: C:\Program Files (x86)\Pandion\Application\src
Файл который отвечает за кастомизацию первой страницы называется main.html
Кусочек кода который я поменял выглядит вот так:
1 2 3 4 5 |
</p> <p><FORM onsubmit="dial_login_connect(); return false;"><br /> <LABEL for=signin-address id=txt-signin-address></LABEL><br /> <INPUT id=signin-address type=text readonly="readonly"/><br /> <!--alex fix--><br /> <!--<SELECT id=signin-recently-used tabindex="-1" onchange="dial_login_changeAddressList()"></SELECT>--><br /> <SELECT id=signin-recently-used style=display:none></SELECT><br /> <!--убрал лишнюю фигню--><br /> <DIV id=signin-examples style=display:none><br /> <DT id=txt-signin-examples></DT><br /> <DD id=signin-example-user>bob@mycompany.com<BR />bender@gmail.com</DD><br /> <DD id=signin-example-sso>example.net<BR />mycompany.com</DD><br /> </DIV><br /> <br /><br /> <br /><br /> <br /><br /> <LABEL for=signin-password id=txt-signin-password></LABEL><br /> <INPUT id=signin-password type=password /></p> <p><INPUT id=signin-remember type=checkbox checked="checked"/><br /> <LABEL for=signin-remember id=txt-signin-remember></LABEL><br /> <BR /><br /> <INPUT id=signin-autoconnect type=checkbox /><br /> <LABEL for=signin-autoconnect id=txt-signin-autoconnect></LABEL></p> <p><BUTTON type=submit id=signin-connect></BUTTON><br /> </FORM><br /> <!--<UL><br /> <LI><A href="" id=signin-register onclick="dial_signup(); return false;"></A></LI><br /> <LI><A href="" id=signin-settings onclick="dial_connection_settings(); return false;"></A></LI><br /> </UL>--></p> <p> |
2. Еще, если сразу хотим чтобы стояла галочка запомнить пароль, то нужно закоментить вот такую строку
1 2 3 |
</p> <p>//document.getElementById( 'signin-remember' ).checked = external.globals( 'last_password_remember' ).toString() == 'true';</p> <p> |
вот в этом файле: dial_login.js
3. Теперь о том, как заставить вводится автоматом логин.
Без bat файла тут не обошлось, вот его говно код:
1 2 3 4 5 6 7 8 |
</p> <p>@echo off</p> <p>rem название домена которое нужно подставлять к логину<br /> set domain=@fi.local</p> <p>rem путь до папки APPDATA с пандионом, можно сделать %APPDATA%\Pandion\<br /> set pandionpath=C:\Users\%USERNAME%\AppData\Roaming\Pandion\</p> <p>rem если копирование не проводилось, то копируем<br /> @If Exist "%APPDATA%\Pandion" (<br /> rem папка есть<br /> goto end<br /> ) Else (<br /> rem копируем папку в апп дата пользователя (тут нужна чистая папка в которой прописаны доп настройки, чистую папку берем из appdata\pandion при первом его запуске"<br /> xcopy "C:\Program Files (x86)\Pandion\PandionFix" %APPDATA%\Pandion /E /C /I /Y /Q<br /> )<br /> :end</p> <p>rem заменяем в файле строку для логина (а тут самое веселое, в файле global.xml добавляется как раз логин с доменом при запуске bat файла) эти данные пандион кушает при старте<br /> rplstr.exe -s:"<last_address></last_address>" -r:"<last_address>%USERNAME%%domain%</last_address>" "%pandionpath%\global.xml"</p> <p>rem запускаем чат<br /> start /D "C:\Program Files (x86)\Pandion\Application" Pandion.exe<br /> exit;</p> <p> |
Прошу обратить внимание, что софтина rplstr.exe не встроенная, доступна на официальном сайте и совершенно бесплатная, она позволяет всего навсего заменить строку в любом текстовом файле.
Так же в файле global.xml который будет в "чистой" папке которую мы раздаем всем пользователям, заменить значение на айпи или имя сервера с jabber сервером <serveraddress>jabber.fc.local</serveraddress>
Вот таким финтом ушами сделал кастомизацию Pandion'a.
Спасибо