Php Symfony2用户切换缺少角色\u上一个\u切换后的管理员
当我以管理员身份切换到用户Php Symfony2用户切换缺少角色\u上一个\u切换后的管理员,php,symfony,Php,Symfony,当我以管理员身份切换到用户site.loc/?\u切换\u用户时=user@email.com我没有角色role\u PREVIOUS\u ADMIN。 我不确定我应该给你看哪段代码 Symfony版本:symfony2.2.2 User.php /** * @see \Serializable::serialize() */ public function serialize() { return serialize(array( $this->email
site.loc/?\u切换\u用户时=user@email.com
我没有角色role\u PREVIOUS\u ADMIN
。
我不确定我应该给你看哪段代码
Symfony版本:symfony2.2.2
User.php
/**
* @see \Serializable::serialize()
*/
public function serialize()
{
return serialize(array(
$this->email
));
}
/**
* @see \Serializable::unserialize()
*/
public function unserialize($serialized)
{
list (
$this->email
) = unserialize($serialized);
}
public function isAccountNonExpired()
{
return true;
}
public function isAccountNonLocked()
{
return true;
}
public function isCredentialsNonExpired()
{
return true;
}
public function isEnabled()
{
return $this->isActive;
}
/**
* @inheritDoc
*/
public function eraseCredentials()
{
}
public function isEqualTo(UserInterface $user)
{
return
md5($user->getUsername()) == md5($this->getUsername()) &&
md5(serialize($user->getGroups())) == md5(serialize($this->getGroups()));
}
您应该为用户
类实现:
class User implements UserInterface, EquatableInterface, \Serializable {
// ...
public function isEqualTo(UserInterface $user) {
return $this->username === $user->getUsername();
}
public function serialize() {
return serialize(array(
$this->id,
$this->username,
));
}
public function unserialize($serialized) {
list($this->id, $this->username) = unserialize($serialized);
}
// ...
}
切换时,您是否正确地获得其他角色?您是否使用自定义安全侦听器?其他角色正确,我没有安全侦听器。我在
success
上有一个AuthenticationHandler
,它设置用户的登录时间。这里唯一不同的是序列化和非序列化函数。我的类序列化$id而不是$email。