Skip to content

pfzim/ldap-phonebook

Repository files navigation

STOP WAR - NO WAR!

LDAP phonebook

ИТшники, обслуживающие госсектор, вам как по ночам спится?

🇷🇺 🇺🇸
Development ветка
Вопросы предпочтительнее задавать в Issues, а не по почте

Contacts are divided into two types:

  • Imported from AD
  • Local

Imported contacts can not be edited, you can only hide them from the list and specify the location on the map. All that needs to be done in AD, then re-synchronize, which will be added new and updated.

Functionality:

  • Import contacts and photos from AD
  • Show / hide any contact
  • Add, edit and delete local contacts
  • Indicate the location of the contact on the office plan. Convenient for orientation in a large company
  • Export to an .xml file for use in the Phonebook application for Windows
  • Backup all contacts with coordinates to XML file
  • Restore all contacts from XML file
  • Hide all contacts that was disabled in AD

Maps are stored in the files templates/map[1-5].png

screenshot

System requirements

  • Apache or Nginx
  • MariaDB or MySQL
  • PHP
  • Active Directory (optional)
  • memcached (optional)
  • Kerberos (optional)
  • mod_rewrite (optional)

Enable plug-ins in php.ini or compile PHP with LDAP support

  • extension = php_ldap.dll
  • extension = php_fileinfo.dll

Installation

sudo apt-get install mariadb-server
sudo apt-get install php php-mysql php-ldap php-curl php-xml php-gd

If you want to use Nginx web server:

sudo apt-get install nginx php-fpm

Or if you want to use Apache web server:

sudo apt-get install apache2 libapache2-mod-php

Optional: if you want to cache LDAP queries:

sudo apt-get install memcached php-memcached

Optional: if you want to use keytab instead of login/password:

sudo apt-get install krb5 krb5-clients krb5-user libsasl2-modules-gssapi-mit libsasl2-2 gss-ntlmssp ldap-utils 
  • Unpack the content in a directory served by your web server (for example /var/www/html/pb/).
  • Point your web browser to the URL corresponding to the directory where the files have been unpacked (for example http://<your_server_ip>/pb/install.php) and follow the indications on the screen.

Additional settings in inc.config.php (optional)

Change language:

define('APP_LANGUAGE', 'en');

Справочник и его код ЗАПРЕЩЕНО ИСПОЛЬЗОВАТЬ в структурах МВД и близких к ним!!!

Контакты делятся на два типа:

  • Импортированные из AD
  • Локальные

Импортированные контакты нельзя редактировать, их можно только скрывать из списка и указывать расположение на карте. Все изменения нужно производить в AD, после чего провести повторную синхронизацию, при которой будут добавлены новые и обновлены существующие контакты.

Функциональные возможности:

  • Импорт контактов и фото из AD
  • Показать/скрыть любой контакт
  • Добавлять, редактировать и удалять локальные контакты
  • Указать расположение контакта на плане офиса. Удобно для ориентирования в большой компании
  • Экспорт в .xml файл для использования в приложении PhoneBook для Windows
  • Бекап всех контактов с координатами в XML
  • Восстановление контактов из XML бекапа
  • Скрытие всех контактов, которые были отключены в AD

Карты хранятся в файлах templates/map[1-5].png

Системные требования

  • Apache or Nginx
  • MariaDB or MySQL
  • PHP
  • Active Directory (опционально)
  • memcaсhed (опционально)
  • Kerberos (опционально)
  • mod_rewrite (опционально)

Подключить модули расширения в php.ini или скомпилировать PHP с поддержкой LDAP

  • extension=php_ldap.dll
  • extension=php_fileinfo.dll

Установка

sudo apt-get install mariadb-server
sudo apt-get install php php-mysql php-ldap php-curl php-xml php-gd
sudo apt-get install apache2 libapache2-mod-php
#sudo apt-get install nginx php-fpm
sudo apt-get install memcached php-memcached
sudo apt-get install krb5 krb5-clients krb5-user libsasl2-modules-gssapi-mit libsasl2-2 gss-ntlmssp ldap-utils 
  • Открыть в браузере install.php и заполнить предлагаемые параметры
  • Заменить изображения карт templates/map[1-5].png своими схемами

Дополнительные настройки в inc.config.php (опционально)

Изменить количество и названия карт:

define('PB_MAPS_COUNT', 5);
$map_names = array('Floor 1', 'Floor 3', 'Floor 6', 'Floor 14', 'Floor 25');

Изменить язык (cпасибо @Impuls2003):

define('APP_LANGUAGE', 'ru');

Обновление с предыдущих версий / Upgrade from previous versions

  • Сделайте резервную копию базы данных и файлов.
  • Переименуйте старую папку с файлами справочника.
  • Распакуйте дистрибутив справочника в старое расположение
  • Перенесите из старой версии файл inc.config.php, папку photos и карты из templ
  • Запустите скрипт обновления открыв в браузере upgrade.php
  • Скорее всего предварительно потребуется обновить конфигурационный файл inc.config.php добавив в него новые параметры по примеру из examples

Изменения в новых версиях

25.06.2022

  • День рождения считывается из атрибута info регулярным выражением. Формат: BIRTHDAY: DD.MM.YYYY. Пример: BIRTHDAY: 25.01.1978

10.10.2020

  • Параметры LDAP_HOST и LDAP_PORT заменены на LDAP_URI. Пример: ldaps://dc-01 ldap://dc-02:389
  • При обнолении пароли у учётных записей будут заменены на 'admin', т.к. функция PASSWORD больше не поддерживается MySQL. Их требуется сменить.
  • Теперь аутентифакация LDAP и локальная работают параллельно. Для активации LDAP аутентификации в LDAP_ADMIN_GROUP_DN нужно указать группу доступа AD.

Screenshots

screenshot

Show selected contact on map

screenshot

Installation wizard

screenshot

screenshot

screenshot

screenshot

screenshot

About

Phonebook with office map (Active Directory, LDAP -> MySQL, PHP)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •