use Rapsys\UserBundle\Entity\Group;
use Symfony\Component\Security\Core\User\UserInterface;
use Doctrine\Common\Collections\ArrayCollection;
-use Rapsys\UserBundle\Entity\Title;
+use Rapsys\UserBundle\Entity\Civility;
class User implements UserInterface, \Serializable {
/**
protected $updated;
/**
- * @var \Rapsys\UserBundle\Entity\Title
+ * @var \Rapsys\UserBundle\Entity\Civility
*/
- protected $title;
+ protected $civility;
/**
* @var \Doctrine\Common\Collections\Collection
}
/**
- * Set title
+ * Set civility
*/
- public function setTitle(Title $title) {
- $this->title = $title;
+ public function setCivility(Civility $civility) {
+ $this->civility = $civility;
return $this;
}
/**
- * Get title
+ * Get civility
*/
- public function getTitle(): Title {
- return $this->title;
+ public function getCivility(): ?Civility {
+ return $this->civility;
}
/**
$array[$group->getId()] = $group->getRole();
return $array;
},
- //Init with ROLE_USER
- //XXX: we assume that ROLE_USER has id 1 in database
- [ 1 => 'ROLE_USER' ]
+ //Init with empty array
+ //XXX: on registration, add each group present in rapsys_user.default.group array to user
+ //XXX: see vendor/rapsys/userbundle/Controller/DefaultController.php +450
+ []
));
}
+ /**
+ * {@inheritdoc}
+ */
public function getRole() {
//Retrieve roles
$roles = $this->getRoles();
+ //With roles array empty
+ if ($roles === []) {
+ //Return null
+ return null;
+ }
+
//Return the role with max id
//XXX: should be rewriten if it change in your configuration
return $roles[array_reduce(
array_keys($roles),
function($cur, $id) {
- if ($id > $cur) {
+ if ($cur === null || $id > $cur) {
return $id;
}
return $cur;
},
- 0
+ null
)];
}
return $this->active;
}
+ /**
+ * {@inheritdoc}
+ */
+ public function preUpdate(\Doctrine\ORM\Event\PreUpdateEventArgs $eventArgs) {
+ //Check that we have an user instance
+ if (($user = $eventArgs->getEntity()) instanceof User) {
+ //Set updated value
+ $user->setUpdated(new \DateTime('now'));
+ }
+ }
+
/**
* Returns a string representation of the user
*
* @return string
*/
public function __toString(): string {
- return $this->title.' '.$this->forename.' '.$this->surname;
+ return $this->civility.' '.$this->forename.' '.$this->surname;
}
}