From 7f14193c396f412b57ea99ba34c854e062abbf98 Mon Sep 17 00:00:00 2001 From: Toni Uebernickel Date: Tue, 24 Apr 2012 14:53:42 +0200 Subject: [PATCH] fix SecurityIdentity username with multiple dashes --- Model/Acl/SecurityIdentity.php | 2 +- Tests/Model/Acl/SecurityIdentityTest.php | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Model/Acl/SecurityIdentity.php b/Model/Acl/SecurityIdentity.php index d850be7..ac3c6d7 100644 --- a/Model/Acl/SecurityIdentity.php +++ b/Model/Acl/SecurityIdentity.php @@ -34,7 +34,7 @@ class SecurityIdentity extends BaseSecurityIdentity throw new \InvalidArgumentException('The given identifier does not resolve to a UserSecurityIdentity.'); } - list($class, $username) = explode('-', $identifier); + list($class, $username) = explode('-', $identifier, 2); return new UserSecurityIdentity($username, $class); } diff --git a/Tests/Model/Acl/SecurityIdentityTest.php b/Tests/Model/Acl/SecurityIdentityTest.php index 48b616e..3f27ba0 100644 --- a/Tests/Model/Acl/SecurityIdentityTest.php +++ b/Tests/Model/Acl/SecurityIdentityTest.php @@ -54,6 +54,17 @@ class SecurityIdentityTest extends AclTestCase $this->assertInstanceOf('Symfony\Component\Security\Acl\Domain\UserSecurityIdentity', $secIdentity); } + public function testToAclIdentityMultipleDashes() + { + $identity = new SecurityIdentity(); + $identity->setIdentifier('Propel\PropelBundle\Tests\Fixtures\UserProxy-some-username@domain.com'); + $identity->setUsername(true); + + $secIdentity = SecurityIdentity::toAclIdentity($identity); + $this->assertInstanceOf('Symfony\Component\Security\Acl\Domain\UserSecurityIdentity', $secIdentity); + $this->assertEquals('some-username@domain.com', $secIdentity->getUsername()); + } + public function testToAclIdentityValidRole() { $identity = new SecurityIdentity(); @@ -108,4 +119,4 @@ class SecurityIdentityTest extends AclTestCase $dbEntry = SecurityIdentityQuery::create()->findPk($identity->getId()); $this->assertInstanceOf('Propel\PropelBundle\Model\Acl\SecurityIdentity', $dbEntry); } -} \ No newline at end of file +}