diff --git a/README.md b/README.md index ab424a1..08ebbac 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ -# thunderbird-mcd -Mission Control Desktop aka Autoconfig for Thunderbird +thunderbird-mcd +===================== + +Provides automated configuration for Thunderbird via PHP + OpenLDAP. diff --git a/ldap.cfg.php b/ldap.cfg.php new file mode 100644 index 0000000..52d2579 --- /dev/null +++ b/ldap.cfg.php @@ -0,0 +1,39 @@ +"; +$siga_prefix = "Best regards, "; +$siga_url = "
URL"; +$siga_postfix = "Some spam"; +?> diff --git a/ldap.defaults.php b/ldap.defaults.php new file mode 100644 index 0000000..1f613bb --- /dev/null +++ b/ldap.defaults.php @@ -0,0 +1,8 @@ + diff --git a/ldap.settings.php b/ldap.settings.php new file mode 100644 index 0000000..6be5bae --- /dev/null +++ b/ldap.settings.php @@ -0,0 +1,88 @@ + diff --git a/ldap.siga.php b/ldap.siga.php new file mode 100644 index 0000000..4ae4b5d --- /dev/null +++ b/ldap.siga.php @@ -0,0 +1,10 @@ +" . $ldap_title . $siga_url . $main_telnumber . $ldap_extention . $siga_postfix; +} + +function getSignatureManager($siga_marketing, $siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $main_telnumber, $ldap_extention, $ldap_pager, $ldap_icq, $siga_postfix) { + return $siga_marketing . $siga_prefix . $ldap_givenname_exploded . " " . $ldap_sn . ",
" . $ldap_title . $siga_url . $main_telnumber . " " . $ldap_extention . $ldap_pager . $ldap_icq . $siga_postfix; +} +?> diff --git a/ldap.vars.php b/ldap.vars.php new file mode 100644 index 0000000..91d010e --- /dev/null +++ b/ldap.vars.php @@ -0,0 +1,10 @@ + diff --git a/thunderbird.php b/thunderbird.php new file mode 100644 index 0000000..8f7b4f7 --- /dev/null +++ b/thunderbird.php @@ -0,0 +1,84 @@ + + +require_once 'ldap.cfg.php'; +require_once 'ldap.defaults.php'; +require_once 'ldap.siga.php'; + +if(empty($_GET['user'])) { + exit('Error: user not present'); +} + +$link = ldap_connect($ldap_host, $ldap_port); +ldap_set_option($link, LDAP_OPT_PROTOCOL_VERSION, 3); +$ldap_bind = ldap_bind($link, $ldap_user, $ldap_password); + +if(!$ldap_bind) { + $ldap_errno = ldap_errno($link); + $ldap_error = ldap_err2str($ldap_errno); + exit('Error (' . ldap_errno($link) . '): ' . $ldap_error . "\n"); +} + +$result_uid = ldap_search($link, $ldap_base, $ldap_filter); +$entry_uid = ldap_first_entry($link, $result_uid); + +if($entry_uid == false) { + ldap_unbind($link); + exit('Error: uid not found
'); +} + +$info = ldap_get_entries($link, $result_uid); + +if (isset($info[0]["telephonenumber"]) == false) { + $ldap_extention = ''; +} +else { + $ldap_extention = ($info[0]["telephonenumber"][0]); + $ldap_extention = " exten. 1-$ldap_extention
"; +} + +if (isset($info[0]["telexnumber"]) == false) { + $ldap_icq = $icq_default; +} +else { + $ldap_icq = ($info[0]["telexnumber"][0]); + $ldap_icq = "ICQ: $ldap_icq"; +} + +if (isset($info[0]["pager"]) == false) { + $ldap_pager = ''; +} +else { + $ldap_pager = ($info[0]["pager"][0]); + $ldap_pager = "+$ldap_pager
"; +} + +require_once 'ldap.vars.php'; + +$result_manager = ldap_search($link, $ldap_base_manager, $ldap_filter_manager); +$entry_manager = ldap_first_entry($link, $result_manager); + +if($entry_manager == false) { + if($ldap_gid == $ldap_target_gid) { + $signature = getSignatureManager($siga_marketing, $siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $telnumber_all, $ldap_extention, $ldap_pager, $ldap_icq, $siga_postfix); +} + else { + $signature = getSignatureAll($siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $telnumber_all, $ldap_extention, $siga_postfix); + } +} +else { + $ldap_attributes = ldap_get_attributes($link, $entry_manager); + $counter = $ldap_attributes["count"]; + if($counter < 1) { + $signature = getSignatureAll($siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $telnumber_all, $ldap_extention, $siga_postfix); + } + else { + $signature = getSignatureManager($siga_marketing, $siga_prefix, $ldap_givenname_exploded, $ldap_sn, $ldap_title, $siga_url, $telnumber_manager, $ldap_extention, $ldap_pager, $ldap_icq, $siga_postfix); + } +} + +ldap_unbind($link); +require_once 'ldap.settings.php'; + +?>