add an event for determining if an action is sensitive
This commit is contained in:
parent
822d5b8887
commit
c378cc976f
|
@ -137,3 +137,8 @@ EndAccountSettingsNav: After showing the account settings menu
|
||||||
|
|
||||||
Autoload: When trying to autoload a class
|
Autoload: When trying to autoload a class
|
||||||
- $cls: the class being sought. A plugin might require_once the file for the class.
|
- $cls: the class being sought. A plugin might require_once the file for the class.
|
||||||
|
|
||||||
|
SensitiveAction: determines if an action is 'sensitive' and should use SSL
|
||||||
|
- $action: name of the action, like 'login'
|
||||||
|
- $sensitive: flag for whether this is a sensitive action
|
||||||
|
|
||||||
|
|
20
lib/util.php
20
lib/util.php
|
@ -715,14 +715,10 @@ function common_relative_profile($sender, $nickname, $dt=null)
|
||||||
|
|
||||||
function common_local_url($action, $args=null, $params=null, $fragment=null)
|
function common_local_url($action, $args=null, $params=null, $fragment=null)
|
||||||
{
|
{
|
||||||
static $sensitive = array('login', 'register', 'passwordsettings',
|
|
||||||
'twittersettings', 'finishopenidlogin',
|
|
||||||
'finishaddopenid', 'api');
|
|
||||||
|
|
||||||
$r = Router::get();
|
$r = Router::get();
|
||||||
$path = $r->build($action, $args, $params, $fragment);
|
$path = $r->build($action, $args, $params, $fragment);
|
||||||
|
|
||||||
$ssl = in_array($action, $sensitive);
|
$ssl = common_is_sensitive($action);
|
||||||
|
|
||||||
if (common_config('site','fancy')) {
|
if (common_config('site','fancy')) {
|
||||||
$url = common_path(mb_substr($path, 1), $ssl);
|
$url = common_path(mb_substr($path, 1), $ssl);
|
||||||
|
@ -736,6 +732,20 @@ function common_local_url($action, $args=null, $params=null, $fragment=null)
|
||||||
return $url;
|
return $url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function common_is_sensitive($action)
|
||||||
|
{
|
||||||
|
static $sensitive = array('login', 'register', 'passwordsettings',
|
||||||
|
'twittersettings', 'finishopenidlogin',
|
||||||
|
'finishaddopenid', 'api');
|
||||||
|
$ssl = null;
|
||||||
|
|
||||||
|
if (Event::handle('SensitiveAction', array($action, &$ssl))) {
|
||||||
|
$ssl = in_array($action, $sensitive);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ssl;
|
||||||
|
}
|
||||||
|
|
||||||
function common_path($relative, $ssl=false)
|
function common_path($relative, $ssl=false)
|
||||||
{
|
{
|
||||||
$pathpart = (common_config('site', 'path')) ? common_config('site', 'path')."/" : '';
|
$pathpart = (common_config('site', 'path')) ? common_config('site', 'path')."/" : '';
|
||||||
|
|
Loading…
Reference in New Issue
Block a user