src/Entity/Account.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Security\Core\User\UserInterface;
  5. /**
  6. * Account
  7. *
  8. * @ORM\Table(name="account", uniqueConstraints={@ORM\UniqueConstraint(name="account_id_uindex", columns={"id"})}, indexes={@ORM\Index(name="account_user_id_fk", columns={"user_id"}), @ORM\Index(name="account_manager_id_fk", columns={"manager_id"})})
  9. * @ORM\Entity(repositoryClass="App\Repository\AccountRepository")
  10. * @method string getUserIdentifier()
  11. */
  12. class Account implements UserInterface
  13. {
  14. /**
  15. * @var int
  16. *
  17. * @ORM\Column(name="id", type="integer", nullable=false)
  18. * @ORM\Id
  19. * @ORM\GeneratedValue(strategy="IDENTITY")
  20. */
  21. private $id;
  22. /**
  23. * @var string|null
  24. *
  25. * @ORM\Column(name="email", type="string", length=255, nullable=true)
  26. */
  27. private $email;
  28. /**
  29. * @var string|null
  30. *
  31. * @ORM\Column(name="password", type="string", length=255, nullable=true)
  32. */
  33. private $password;
  34. /**
  35. * @var string|null
  36. *
  37. * @ORM\Column(name="salt", type="string", length=255, nullable=true)
  38. */
  39. private $salt;
  40. /**
  41. * @var \DateTime|null
  42. *
  43. * @ORM\Column(name="registration_date", type="datetime", nullable=true)
  44. */
  45. private $registrationDate;
  46. /**
  47. * @var \DateTime|null
  48. *
  49. * @ORM\Column(name="password_request_date", type="datetime", nullable=true)
  50. */
  51. private $passwordRequestDate;
  52. /**
  53. * @var string|null
  54. *
  55. * @ORM\Column(name="password_request", type="string", length=255, nullable=true)
  56. */
  57. private $passwordRequest;
  58. /**
  59. * @var bool|null
  60. *
  61. * @ORM\Column(name="email_valid", type="boolean", nullable=true)
  62. */
  63. private $emailValid = false;
  64. /**
  65. * @var string|null
  66. *
  67. * @ORM\Column(name="email_valid_token", type="string", length=255, nullable=true)
  68. */
  69. private $emailValidToken;
  70. /**
  71. * @var \DateTime|null
  72. *
  73. * @ORM\Column(name="last_login", type="datetime", nullable=true)
  74. */
  75. private $lastLogin;
  76. /**
  77. * @var bool|null
  78. *
  79. * @ORM\Column(name="enabled", type="boolean", nullable=true, options={"default"="1"})
  80. */
  81. private $enabled = true;
  82. /**
  83. * @var array|null
  84. *
  85. * @ORM\Column(name="roles", type="array", nullable=true)
  86. */
  87. private $roles = [];
  88. /**
  89. * @var Manager
  90. *
  91. * @ORM\OneToOne(targetEntity="Manager", inversedBy="account")
  92. * @ORM\JoinColumns({
  93. * @ORM\JoinColumn(name="manager_id", referencedColumnName="id")
  94. * })
  95. */
  96. private $manager;
  97. /**
  98. * @var User
  99. *
  100. * @ORM\OneToOne(targetEntity="User", inversedBy="account")
  101. * @ORM\JoinColumns({
  102. * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
  103. * })
  104. */
  105. private $user;
  106. /**
  107. * @return int
  108. */
  109. public function getId()
  110. {
  111. return $this->id;
  112. }
  113. /**
  114. * @param int $id
  115. */
  116. public function setId($id)
  117. {
  118. $this->id = $id;
  119. }
  120. /**
  121. * @return string|null
  122. */
  123. public function getEmail()
  124. {
  125. return $this->email;
  126. }
  127. /**
  128. * @param string|null $email
  129. */
  130. public function setEmail($email)
  131. {
  132. $this->email = $email;
  133. }
  134. /**
  135. * @return string|null
  136. */
  137. public function getPassword()
  138. {
  139. return $this->password;
  140. }
  141. /**
  142. * @param string|null $password
  143. */
  144. public function setPassword($password)
  145. {
  146. $this->password = $password;
  147. }
  148. /**
  149. * @return string|null
  150. */
  151. public function getSalt()
  152. {
  153. return $this->salt;
  154. }
  155. /**
  156. * @param string|null $salt
  157. */
  158. public function setSalt($salt)
  159. {
  160. $this->salt = $salt;
  161. }
  162. /**
  163. * @return \DateTime|null
  164. */
  165. public function getRegistrationDate()
  166. {
  167. return $this->registrationDate;
  168. }
  169. /**
  170. * @param \DateTime|null $registrationDate
  171. */
  172. public function setRegistrationDate($registrationDate)
  173. {
  174. $this->registrationDate = $registrationDate;
  175. }
  176. /**
  177. * @return \DateTime|null
  178. */
  179. public function getPasswordRequestDate()
  180. {
  181. return $this->passwordRequestDate;
  182. }
  183. /**
  184. * @param \DateTime|null $passwordRequestDate
  185. */
  186. public function setPasswordRequestDate($passwordRequestDate)
  187. {
  188. $this->passwordRequestDate = $passwordRequestDate;
  189. }
  190. /**
  191. * @return string|null
  192. */
  193. public function getPasswordRequest()
  194. {
  195. return $this->passwordRequest;
  196. }
  197. /**
  198. * @param string|null $passwordRequest
  199. */
  200. public function setPasswordRequest($passwordRequest)
  201. {
  202. $this->passwordRequest = $passwordRequest;
  203. }
  204. /**
  205. * @return bool|null
  206. */
  207. public function getEmailValid()
  208. {
  209. return $this->emailValid;
  210. }
  211. /**
  212. * @param bool|null $emailValid
  213. */
  214. public function setEmailValid($emailValid)
  215. {
  216. $this->emailValid = $emailValid;
  217. }
  218. /**
  219. * @return string|null
  220. */
  221. public function getEmailValidToken()
  222. {
  223. return $this->emailValidToken;
  224. }
  225. /**
  226. * @param string|null $emailValidToken
  227. */
  228. public function setEmailValidToken($emailValidToken)
  229. {
  230. $this->emailValidToken = $emailValidToken;
  231. }
  232. /**
  233. * @return \DateTime|null
  234. */
  235. public function getLastLogin()
  236. {
  237. return $this->lastLogin;
  238. }
  239. /**
  240. * @param \DateTime|null $lastLogin
  241. */
  242. public function setLastLogin($lastLogin)
  243. {
  244. $this->lastLogin = $lastLogin;
  245. }
  246. /**
  247. * @return bool|null
  248. */
  249. public function getEnabled()
  250. {
  251. return $this->enabled;
  252. }
  253. /**
  254. * @param bool|null $enabled
  255. */
  256. public function setEnabled($enabled)
  257. {
  258. $this->enabled = $enabled;
  259. }
  260. /**
  261. * @return array|null
  262. */
  263. public function getRoles()
  264. {
  265. if ($this->getManager()) {
  266. $roles = ["ROLE_MANAGER"];
  267. if ($this->getManager()->getAdmin()) {
  268. $roles[] = "ROLE_ADMIN";
  269. }
  270. if ($this->getManager()->getAllowParticuliers()) {
  271. $roles[] = "ROLE_PARTICULIERS";
  272. }
  273. if ($this->getManager()->getAllowOffresSurGrilles()) {
  274. $roles[] = "ROLE_OFFRES_SUR_GRILLES";
  275. }
  276. if ($this->getManager()->getAllowCotations()) {
  277. $roles[] = "ROLE_COTATIONS";
  278. }
  279. if ($this->getManager()->getAllowCustomerBase()) {
  280. $roles[] = "ROLE_CUSTOMER_BASE";
  281. }
  282. return $roles;
  283. }
  284. if ($this->getUser()) {
  285. return ["ROLE_USER"];
  286. }
  287. return [];
  288. }
  289. /**
  290. * @return Manager
  291. */
  292. public function getManager()
  293. {
  294. return $this->manager;
  295. }
  296. /**
  297. * @param Manager $manager
  298. */
  299. public function setManager($manager)
  300. {
  301. $this->manager = $manager;
  302. }
  303. /**
  304. * @return User
  305. */
  306. public function getUser()
  307. {
  308. return $this->user;
  309. }
  310. /**
  311. * @param User $user
  312. */
  313. public function setUser($user)
  314. {
  315. $this->user = $user;
  316. }
  317. public function eraseCredentials()
  318. {
  319. // TODO: Implement eraseCredentials() method.
  320. }
  321. public function getUsername()
  322. {
  323. return $this->getEmail();
  324. }
  325. public function __call(string $name, array $arguments)
  326. {
  327. // TODO: Implement @method string getUserIdentifier()
  328. }
  329. }