Deux colonnes nullable firstName/lastName sur User (groupes me:read, user:list, user:write), éditables dans le drawer utilisateur (admin). L'affichage reste basé sur le username pour l'instant. Migration + valeurs de démo dans les fixtures.
This commit is contained in:
@@ -43,6 +43,8 @@ class AppFixtures extends Fixture
|
||||
// Users
|
||||
$admin = new User();
|
||||
$admin->setUsername('admin');
|
||||
$admin->setFirstName('Alex');
|
||||
$admin->setLastName('Martin');
|
||||
$admin->setRoles(['ROLE_ADMIN']);
|
||||
$admin->setPassword($this->passwordHasher->hashPassword($admin, 'admin'));
|
||||
$admin->setApiToken('dev-mcp-token-for-testing-only-do-not-use-in-production');
|
||||
@@ -50,18 +52,24 @@ class AppFixtures extends Fixture
|
||||
|
||||
$userAlice = new User();
|
||||
$userAlice->setUsername('alice');
|
||||
$userAlice->setFirstName('Alice');
|
||||
$userAlice->setLastName('Dupont');
|
||||
$userAlice->setRoles(['ROLE_USER']);
|
||||
$userAlice->setPassword($this->passwordHasher->hashPassword($userAlice, 'alice'));
|
||||
$manager->persist($userAlice);
|
||||
|
||||
$userBob = new User();
|
||||
$userBob->setUsername('bob');
|
||||
$userBob->setFirstName('Bob');
|
||||
$userBob->setLastName('Leroy');
|
||||
$userBob->setRoles(['ROLE_USER']);
|
||||
$userBob->setPassword($this->passwordHasher->hashPassword($userBob, 'bob'));
|
||||
$manager->persist($userBob);
|
||||
|
||||
$userCharlie = new User();
|
||||
$userCharlie->setUsername('charlie');
|
||||
$userCharlie->setFirstName('Charlie');
|
||||
$userCharlie->setLastName('Moreau');
|
||||
$userCharlie->setRoles(['ROLE_USER']);
|
||||
$userCharlie->setPassword($this->passwordHasher->hashPassword($userCharlie, 'charlie'));
|
||||
$manager->persist($userCharlie);
|
||||
|
||||
@@ -55,6 +55,14 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
#[Groups(['me:read', 'task:read', 'user:list', 'user:write', 'time_entry:read', 'absence_request:read', 'absence_balance:read'])]
|
||||
private ?string $username = null;
|
||||
|
||||
#[ORM\Column(length: 100, nullable: true)]
|
||||
#[Groups(['me:read', 'user:list', 'user:write'])]
|
||||
private ?string $firstName = null;
|
||||
|
||||
#[ORM\Column(length: 100, nullable: true)]
|
||||
#[Groups(['me:read', 'user:list', 'user:write'])]
|
||||
private ?string $lastName = null;
|
||||
|
||||
/** @var list<string> */
|
||||
#[ORM\Column]
|
||||
#[ApiProperty(security: "is_granted('ROLE_ADMIN') or object == user")]
|
||||
@@ -147,6 +155,30 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getFirstName(): ?string
|
||||
{
|
||||
return $this->firstName;
|
||||
}
|
||||
|
||||
public function setFirstName(?string $firstName): static
|
||||
{
|
||||
$this->firstName = $firstName;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getLastName(): ?string
|
||||
{
|
||||
return $this->lastName;
|
||||
}
|
||||
|
||||
public function setLastName(?string $lastName): static
|
||||
{
|
||||
$this->lastName = $lastName;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getUserIdentifier(): string
|
||||
{
|
||||
return (string) $this->username;
|
||||
|
||||
Reference in New Issue
Block a user