diff options
author | Nils Adermann <naderman@naderman.de> | 2007-08-23 13:41:34 +0000 |
---|---|---|
committer | Nils Adermann <naderman@naderman.de> | 2007-08-23 13:41:34 +0000 |
commit | 35b45cdff1ad3a91f0e36853c721c7ec6472490c (patch) | |
tree | b5783c7d7d430d5f2b52b7b0f8725755d93be811 | |
parent | 382fe7cab41182eb0fe852de9736beaa153132b3 (diff) | |
download | forums-35b45cdff1ad3a91f0e36853c721c7ec6472490c.tar forums-35b45cdff1ad3a91f0e36853c721c7ec6472490c.tar.gz forums-35b45cdff1ad3a91f0e36853c721c7ec6472490c.tar.bz2 forums-35b45cdff1ad3a91f0e36853c721c7ec6472490c.tar.xz forums-35b45cdff1ad3a91f0e36853c721c7ec6472490c.zip |
- added an option to specify a port for the LDAP server
- restricted access to "Recent searches" to admins who are allowed to configure search [Bug #14085]
git-svn-id: file:///svn/phpbb/trunk@8064 89ea8834-ac86-4346-8a33-228a782c2dd0
-rw-r--r-- | phpBB/includes/auth/auth_ldap.php | 30 | ||||
-rw-r--r-- | phpBB/install/database_update.php | 1 | ||||
-rw-r--r-- | phpBB/install/schemas/schema_data.sql | 1 | ||||
-rw-r--r-- | phpBB/language/en/acp/board.php | 2 | ||||
-rw-r--r-- | phpBB/search.php | 72 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/search_body.html | 2 | ||||
-rw-r--r-- | phpBB/styles/subsilver2/template/search_body.html | 2 |
7 files changed, 73 insertions, 37 deletions
diff --git a/phpBB/includes/auth/auth_ldap.php b/phpBB/includes/auth/auth_ldap.php index 1e90aebe7e..a4e6365183 100644 --- a/phpBB/includes/auth/auth_ldap.php +++ b/phpBB/includes/auth/auth_ldap.php @@ -26,7 +26,17 @@ function init_ldap() return $user->lang['LDAP_NO_LDAP_EXTENSION']; } - if (!($ldap = @ldap_connect($config['ldap_server']))) + $config['ldap_port'] = (int) $config['ldap_port']; + if ($config['ldap_port']) + { + $ldap = @ldap_connect($config['ldap_server'], $config['ldap_port']); + } + else + { + $ldap = @ldap_connect($config['ldap_server']); + } + + if (!$ldap) { return $user->lang['LDAP_NO_SERVER_CONNECTION']; } @@ -91,7 +101,17 @@ function login_ldap(&$username, &$password) ); } - if (!($ldap = @ldap_connect($config['ldap_server']))) + $config['ldap_port'] = (int) $config['ldap_port']; + if ($config['ldap_port']) + { + $ldap = @ldap_connect($config['ldap_server'], $config['ldap_port']); + } + else + { + $ldap = @ldap_connect($config['ldap_server']); + } + + if (!$ldap) { return array( 'status' => LOGIN_ERROR_EXTERNAL_AUTH, @@ -257,6 +277,10 @@ function acp_ldap(&$new) <dd><input type="text" id="ldap_server" size="40" name="config[ldap_server]" value="' . $new['ldap_server'] . '" /></dd> </dl> <dl> + <dt><label for="ldap_port">' . $user->lang['LDAP_PORT'] . ':</label><br /><span>' . $user->lang['LDAP_PORT_EXPLAIN'] . '</span></dt> + <dd><input type="text" id="ldap_port" size="40" name="config[ldap_port]" value="' . $new['ldap_port'] . '" /></dd> + </dl> + <dl> <dt><label for="ldap_dn">' . $user->lang['LDAP_DN'] . ':</label><br /><span>' . $user->lang['LDAP_DN_EXPLAIN'] . '</span></dt> <dd><input type="text" id="ldap_dn" size="40" name="config[ldap_base_dn]" value="' . $new['ldap_base_dn'] . '" /></dd> </dl> @@ -285,7 +309,7 @@ function acp_ldap(&$new) // These are fields required in the config table return array( 'tpl' => $tpl, - 'config' => array('ldap_server', 'ldap_base_dn', 'ldap_uid', 'ldap_user_filter', 'ldap_email', 'ldap_user', 'ldap_password') + 'config' => array('ldap_server', 'ldap_port', 'ldap_base_dn', 'ldap_uid', 'ldap_user_filter', 'ldap_email', 'ldap_user', 'ldap_password') ); } diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php index 393d1d3082..4c15a4700f 100644 --- a/phpBB/install/database_update.php +++ b/phpBB/install/database_update.php @@ -1496,6 +1496,7 @@ if (version_compare($current_version, '3.0.RC4', '<=')) // Setting this here again because new installations may not have it... set_config('cron_lock', '0', true); + set_config('ldap_port', ''); set_config('ldap_user_filter', ''); $no_updates = false; diff --git a/phpBB/install/schemas/schema_data.sql b/phpBB/install/schemas/schema_data.sql index abb15d08ee..279837a698 100644 --- a/phpBB/install/schemas/schema_data.sql +++ b/phpBB/install/schemas/schema_data.sql @@ -120,6 +120,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('jab_username', '') INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_base_dn', ''); INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_email', ''); INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_password', ''); +INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_port', ''); INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_server', ''); INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_uid', ''); INSERT INTO phpbb_config (config_name, config_value) VALUES ('ldap_user', ''); diff --git a/phpBB/language/en/acp/board.php b/phpBB/language/en/acp/board.php index 8c1f502b09..a1f311ff75 100644 --- a/phpBB/language/en/acp/board.php +++ b/phpBB/language/en/acp/board.php @@ -305,6 +305,8 @@ $lang = array_merge($lang, array( 'LDAP_NO_IDENTITY' => 'Could not find a login identity for %s.', 'LDAP_PASSWORD' => 'LDAP password', 'LDAP_PASSWORD_EXPLAIN' => 'Leave blank to use anonymous binding. Else fill in the password for the above user. Required for Active Directory Servers. <strong>WARNING:</strong> This password will be stored as plain text in the database visible to everybody who can access your database or who can view this configuration page.', + 'LDAP_PORT' => 'LDAP server port', + 'LDAP_PORT_EXPLAIN' => 'Optionally you can specify a port which should be used to connect to the LDAP server instead of the default port 389.', 'LDAP_SERVER' => 'LDAP server name', 'LDAP_SERVER_EXPLAIN' => 'If using LDAP this is the hostname or IP address of the LDAP server. Alternatively you can specify an URL like ldap://hostname:port/', 'LDAP_UID' => 'LDAP <var>uid</var>', diff --git a/phpBB/search.php b/phpBB/search.php index 9acad880d2..dfeb76e946 100644 --- a/phpBB/search.php +++ b/phpBB/search.php @@ -1042,45 +1042,49 @@ $template->assign_vars(array( 'S_IN_SEARCH' => true, )); -// Handle large objects differently for Oracle and MSSQL -switch ($db->sql_layer) +// only show recent searches to search administrators +if ($auth->acl_get('a_search')) { - case 'oracle': - $sql = 'SELECT search_time, search_keywords - FROM ' . SEARCH_RESULTS_TABLE . ' - WHERE dbms_lob.getlength(search_keywords) > 0 - ORDER BY search_time DESC'; - break; - - case 'mssql': - case 'mssql_odbc': - $sql = 'SELECT search_time, search_keywords - FROM ' . SEARCH_RESULTS_TABLE . ' - WHERE DATALENGTH(search_keywords) > 0 - ORDER BY search_time DESC'; - break; - - default: - $sql = 'SELECT search_time, search_keywords - FROM ' . SEARCH_RESULTS_TABLE . ' - WHERE search_keywords <> \'\' - ORDER BY search_time DESC'; - break; -} -$result = $db->sql_query_limit($sql, 5); + // Handle large objects differently for Oracle and MSSQL + switch ($db->sql_layer) + { + case 'oracle': + $sql = 'SELECT search_time, search_keywords + FROM ' . SEARCH_RESULTS_TABLE . ' + WHERE dbms_lob.getlength(search_keywords) > 0 + ORDER BY search_time DESC'; + break; + + case 'mssql': + case 'mssql_odbc': + $sql = 'SELECT search_time, search_keywords + FROM ' . SEARCH_RESULTS_TABLE . ' + WHERE DATALENGTH(search_keywords) > 0 + ORDER BY search_time DESC'; + break; + + default: + $sql = 'SELECT search_time, search_keywords + FROM ' . SEARCH_RESULTS_TABLE . ' + WHERE search_keywords <> \'\' + ORDER BY search_time DESC'; + break; + } + $result = $db->sql_query_limit($sql, 5); -while ($row = $db->sql_fetchrow($result)) -{ - $keywords = $row['search_keywords']; + while ($row = $db->sql_fetchrow($result)) + { + $keywords = $row['search_keywords']; - $template->assign_block_vars('recentsearch', array( - 'KEYWORDS' => $keywords, - 'TIME' => $user->format_date($row['search_time']), + $template->assign_block_vars('recentsearch', array( + 'KEYWORDS' => $keywords, + 'TIME' => $user->format_date($row['search_time']), - 'U_KEYWORDS' => append_sid("{$phpbb_root_path}search.$phpEx", 'keywords=' . urlencode(htmlspecialchars_decode($keywords))) - )); + 'U_KEYWORDS' => append_sid("{$phpbb_root_path}search.$phpEx", 'keywords=' . urlencode(htmlspecialchars_decode($keywords))) + )); + } + $db->sql_freeresult($result); } -$db->sql_freeresult($result); // Output the basic page page_header($user->lang['SEARCH']); diff --git a/phpBB/styles/prosilver/template/search_body.html b/phpBB/styles/prosilver/template/search_body.html index 95390c2545..f785fcf50a 100644 --- a/phpBB/styles/prosilver/template/search_body.html +++ b/phpBB/styles/prosilver/template/search_body.html @@ -91,6 +91,7 @@ </form> +<!-- IF .recentsearch --> <div class="forumbg"> <div class="inner"><span class="corners-top"><span></span></span> @@ -116,5 +117,6 @@ <span class="corners-bottom"><span></span></span></div> </div> +<!-- ENDIF --> <!-- INCLUDE overall_footer.html -->
\ No newline at end of file diff --git a/phpBB/styles/subsilver2/template/search_body.html b/phpBB/styles/subsilver2/template/search_body.html index a914e5f38d..82cb691c10 100644 --- a/phpBB/styles/subsilver2/template/search_body.html +++ b/phpBB/styles/subsilver2/template/search_body.html @@ -50,6 +50,7 @@ <br clear="all" /> + <!-- IF .recentsearch --> <table class="tablebg" width="100%" cellspacing="1"> <tr> <th colspan="2">{L_RECENT_SEARCHES}</th> @@ -68,6 +69,7 @@ </table> <br clear="all" /> + <!-- ENDIF --> </div> |