Merge pull request #606 from willrossi/trac6303

API: add SecurityToken::reset() as a shortcut for regenerating a token.
This commit is contained in:
Sean Harvey 2012-07-01 18:37:41 -07:00
commit 95e4057e21
2 changed files with 17 additions and 3 deletions

View File

@ -147,6 +147,13 @@ class SecurityToken extends Object implements TemplateGlobalProvider {
Session::set($this->getName(), $val);
}
/**
* Reset the token to a new value.
*/
public function reset() {
$this->setValue($this->generate());
}
/**
* Checks for an existing CSRF token in the current users session.
* This check is automatically performed in {@link Form->httpSubmission()}
@ -291,6 +298,5 @@ class NullSecurityToken extends SecurityToken {
*/
function generate() {
return null;
}
}
}
}

View File

@ -65,6 +65,14 @@ class SecurityTokenTest extends SapphireTest {
$t->setValue('mytoken');
$this->assertTrue($t->check('mytoken'), 'Valid token returns true');
}
function testReset() {
$t = new SecurityToken();
$initialValue = $t->getValue();
$t->reset();
$this->assertNotEquals($t->getValue(), $initialValue);
}
function testCheckRequest() {
$t = new SecurityToken();