Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 15 |
CRAP | |
0.00% |
0 / 24 |
User | |
0.00% |
0 / 1 |
|
0.00% |
0 / 15 |
506 | |
0.00% |
0 / 24 |
getId | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
setFullName | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getFullName | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
getUsername | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
setUsername | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getEmail | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
setEmail | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getPassword | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
setPassword | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getRoles | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 4 |
|||
setRoles | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
getSalt | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 1 |
|||
eraseCredentials | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
serialize | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 1 |
|||
unserialize | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
<?php | |
/* | |
* This file is part of the Symfony package. | |
* | |
* (c) Fabien Potencier <fabien@symfony.com> | |
* | |
* For the full copyright and license information, please view the LICENSE | |
* file that was distributed with this source code. | |
*/ | |
namespace Smalldb\StateMachine\Test\SymfonyDemo\Entity; | |
use Doctrine\ORM\Mapping as ORM; | |
use Symfony\Component\Security\Core\User\UserInterface; | |
use Symfony\Component\Validator\Constraints as Assert; | |
/** | |
* @ORM\Entity(repositoryClass="Smalldb\StateMachine\Test\SymfonyDemo\Repository\UserRepository") | |
* @ORM\Table(name="symfony_demo_user") | |
* | |
* Defines the properties of the User entity to represent the application users. | |
* See https://symfony.com/doc/current/book/doctrine.html#creating-an-entity-class | |
* | |
* Tip: if you have an existing database, you can generate these entity class automatically. | |
* See https://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html | |
* | |
* @author Ryan Weaver <weaverryan@gmail.com> | |
* @author Javier Eguiluz <javier.eguiluz@gmail.com> | |
*/ | |
class User implements UserInterface, \Serializable | |
{ | |
/** | |
* @var int | |
* | |
* @ORM\Id | |
* @ORM\GeneratedValue | |
* @ORM\Column(type="integer") | |
*/ | |
private $id; | |
/** | |
* @var string | |
* | |
* @ORM\Column(type="string") | |
* @Assert\NotBlank() | |
*/ | |
private $fullName; | |
/** | |
* @var string | |
* | |
* @ORM\Column(type="string", unique=true) | |
* @Assert\NotBlank() | |
* @Assert\Length(min=2, max=50) | |
*/ | |
private $username; | |
/** | |
* @var string | |
* | |
* @ORM\Column(type="string", unique=true) | |
* @Assert\Email() | |
*/ | |
private $email; | |
/** | |
* @var string | |
* | |
* @ORM\Column(type="string") | |
*/ | |
private $password; | |
/** | |
* @var array | |
* | |
* @ORM\Column(type="json") | |
*/ | |
private $roles = []; | |
public function getId(): ?int | |
{ | |
return $this->id; | |
} | |
public function setFullName(string $fullName): void | |
{ | |
$this->fullName = $fullName; | |
} | |
public function getFullName(): ?string | |
{ | |
return $this->fullName; | |
} | |
public function getUsername(): ?string | |
{ | |
return $this->username; | |
} | |
public function setUsername(string $username): void | |
{ | |
$this->username = $username; | |
} | |
public function getEmail(): ?string | |
{ | |
return $this->email; | |
} | |
public function setEmail(string $email): void | |
{ | |
$this->email = $email; | |
} | |
public function getPassword(): ?string | |
{ | |
return $this->password; | |
} | |
public function setPassword(string $password): void | |
{ | |
$this->password = $password; | |
} | |
/** | |
* Returns the roles or permissions granted to the user for security. | |
*/ | |
public function getRoles(): array | |
{ | |
$roles = $this->roles; | |
// guarantees that a user always has at least one role for security | |
if (empty($roles)) { | |
$roles[] = 'ROLE_USER'; | |
} | |
return array_unique($roles); | |
} | |
public function setRoles(array $roles): void | |
{ | |
$this->roles = $roles; | |
} | |
/** | |
* Returns the salt that was originally used to encode the password. | |
* | |
* {@inheritdoc} | |
*/ | |
public function getSalt(): ?string | |
{ | |
// See "Do you need to use a Salt?" at https://symfony.com/doc/current/cookbook/security/entity_provider.html | |
// we're using bcrypt in security.yml to encode the password, so | |
// the salt value is built-in and you don't have to generate one | |
return null; | |
} | |
/** | |
* Removes sensitive data from the user. | |
* | |
* {@inheritdoc} | |
*/ | |
public function eraseCredentials(): void | |
{ | |
// if you had a plainPassword property, you'd nullify it here | |
// $this->plainPassword = null; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function serialize(): string | |
{ | |
// add $this->salt too if you don't use Bcrypt or Argon2i | |
return serialize([$this->id, $this->username, $this->password]); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function unserialize($serialized): void | |
{ | |
// add $this->salt too if you don't use Bcrypt or Argon2i | |
[$this->id, $this->username, $this->password] = unserialize($serialized, ['allowed_classes' => false]); | |
} | |
} |