Support SSL for some, all, or no pages
Support SSL URLs either for all pages; no pages; or for sensitive pages accepting passwords, like login, registration, API, and others.
This commit is contained in:
31
lib/util.php
31
lib/util.php
@@ -713,25 +713,46 @@ function common_relative_profile($sender, $nickname, $dt=null)
|
||||
|
||||
function common_local_url($action, $args=null, $params=null, $fragment=null)
|
||||
{
|
||||
static $sensitive = array('login', 'register', 'passwordsettings',
|
||||
'twittersettings', 'finishopenidlogin',
|
||||
'api');
|
||||
|
||||
$r = Router::get();
|
||||
$path = $r->build($action, $args, $params, $fragment);
|
||||
|
||||
$ssl = in_array($action, $sensitive);
|
||||
|
||||
if (common_config('site','fancy')) {
|
||||
$url = common_path(mb_substr($path, 1));
|
||||
$url = common_path(mb_substr($path, 1), $ssl);
|
||||
} else {
|
||||
if (mb_strpos($path, '/index.php') === 0) {
|
||||
$url = common_path(mb_substr($path, 1));
|
||||
$url = common_path(mb_substr($path, 1), $ssl);
|
||||
} else {
|
||||
$url = common_path('index.php'.$path);
|
||||
$url = common_path('index.php'.$path, $ssl);
|
||||
}
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
|
||||
function common_path($relative)
|
||||
function common_path($relative, $ssl=false)
|
||||
{
|
||||
$pathpart = (common_config('site', 'path')) ? common_config('site', 'path')."/" : '';
|
||||
return "http://".common_config('site', 'server').'/'.$pathpart.$relative;
|
||||
|
||||
if (($ssl && (common_config('site', 'ssl') === 'sometimes'))
|
||||
|| common_config('site', 'ssl') === 'always') {
|
||||
$proto = 'https';
|
||||
if (is_string(common_config('site', 'sslserver')) &&
|
||||
mb_strlen(common_config('site', 'sslserver')) > 0) {
|
||||
$serverpart = common_config('site', 'sslserver');
|
||||
} else {
|
||||
$serverpart = common_config('site', 'server');
|
||||
}
|
||||
} else {
|
||||
$proto = 'http';
|
||||
$serverpart = common_config('site', 'server');
|
||||
}
|
||||
|
||||
return $proto.'://'.$serverpart.'/'.$pathpart.$relative;
|
||||
}
|
||||
|
||||
function common_date_string($dt)
|
||||
|
Reference in New Issue
Block a user