X-Git-Url: https://git.rapsys.eu/userbundle/blobdiff_plain/d5e370cc785ba90e35ad3c97896c62e863fd7b33..46718ab1a0cb7878556d18db4dffa306e95110cd:/Entity/User.php?ds=sidebyside

diff --git a/Entity/User.php b/Entity/User.php
index cca45c7..8fb4105 100644
--- a/Entity/User.php
+++ b/Entity/User.php
@@ -6,7 +6,7 @@ namespace Rapsys\UserBundle\Entity;
 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 {
 	/**
@@ -55,9 +55,9 @@ 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
@@ -260,19 +260,19 @@ class User implements UserInterface, \Serializable {
 	}
 
 	/**
-	 * 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;
 	}
 
 	/**
@@ -319,27 +319,37 @@ class User implements UserInterface, \Serializable {
 				$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
 		)];
 	}
 
@@ -390,12 +400,23 @@ class User implements UserInterface, \Serializable {
 		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;
 	}
 }