Adding ability set component configuration from component settings for SecurityComponent.

This commit is contained in:
Mark Story 2009-12-16 22:39:01 -05:00
parent 3a6b29d042
commit e45fcf4337
2 changed files with 39 additions and 1 deletions

View file

@ -168,10 +168,23 @@ class SecurityComponent extends Object {
*/ */
var $_action = null; var $_action = null;
/**
* Initialize the SecurityComponent
*
* @param object $controller Controller instance for the request
* @param array $settings Settings to set to the component
* @return void
* @access public
*/
function initialize(&$controller, $settings = array()) {
$this->_set($settings);
}
/** /**
* Component startup. All security checking happens here. * Component startup. All security checking happens here.
* *
* @param object $controller Instantiating controller * @param object $controller Instantiating controller
* @return void
* @access public * @access public
*/ */
function startup(&$controller) { function startup(&$controller) {
@ -342,7 +355,7 @@ class SecurityComponent extends Object {
if (strtolower($options['type']) == 'digest') { if (strtolower($options['type']) == 'digest') {
$out[] = 'qop="auth"'; $out[] = 'qop="auth"';
$out[] = 'nonce="' . uniqid("") . '"'; $out[] = 'nonce="' . uniqid("") . '"';
$out[] = 'opaque="' . md5($options['realm']).'"'; $out[] = 'opaque="' . md5($options['realm']) . '"';
} }
return $auth . ' ' . implode(',', $out); return $auth . ' ' . implode(',', $out);

View file

@ -166,6 +166,31 @@ class SecurityComponentTest extends CakeTestCase {
unset($this->Controller); unset($this->Controller);
} }
/**
* test that initalize can set properties.
*
* @return void
*/
function testInitialize() {
$settings = array(
'requirePost' => array('edit', 'update'),
'requireSecure' => array('update_account'),
'requireGet' => array('index'),
'validatePost' => false,
'loginUsers' => array(
'mark' => 'password'
),
'requireLogin' => array('login'),
);
$this->Controller->Security->initialize($this->Controller, $settings);
$this->assertEqual($this->Controller->Security->requirePost, $settings['requirePost']);
$this->assertEqual($this->Controller->Security->requireSecure, $settings['requireSecure']);
$this->assertEqual($this->Controller->Security->requireGet, $settings['requireGet']);
$this->assertEqual($this->Controller->Security->validatePost, $settings['validatePost']);
$this->assertEqual($this->Controller->Security->loginUsers, $settings['loginUsers']);
$this->assertEqual($this->Controller->Security->requireLogin, $settings['requireLogin']);
}
/** /**
* testStartup method * testStartup method
* *