src/Entity/User.php line 12

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use Serializable;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Symfony\Component\Security\Core\User\UserInterface;
  7. use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
  8. use App\Entity\UserRole;
  9. class User implements UserInterfacePasswordAuthenticatedUserInterface {
  10.     /**
  11.      * @var integer
  12.      */
  13.     private $id;
  14.     /**
  15.      * @var string
  16.      */
  17.     private $uuid;
  18.     /**
  19.      * @var string
  20.      */
  21.     private $username;
  22.     /**
  23.      * @var string
  24.      */
  25.     private $password;
  26.     /**
  27.      * @var string
  28.      */
  29.     private $email;
  30.     /**
  31.      * @var boolean
  32.      */
  33.     private $isActive;
  34.     /**
  35.      * @var \DateTime
  36.      */
  37.     private $createdAt;
  38.     /**
  39.      * @var \DateTime
  40.      */
  41.     private $lastLogin;
  42.     /**
  43.      * @var \Doctrine\Common\Collections\Collection
  44.      */
  45.     private $roles;
  46.     /**
  47.      * @var \App\Entity\UserData
  48.      */
  49.     private $userData;
  50.     /**
  51.      * @var \App\Entity\UserSetting
  52.      */
  53.     private $userSetting;
  54.     /**
  55.      * @var \App\Entity\UserAvatar|null
  56.      */
  57.     private $avatar;
  58.     /**
  59.      * Constructor
  60.      */
  61.     public function __construct() {
  62.         $this->uuid "";
  63.         $this->username "";
  64.         $this->password "";
  65.         $this->isActive true;
  66.         $this->roles = new ArrayCollection();
  67.     }
  68.     /**
  69.      * Get id
  70.      *
  71.      * @return integer
  72.      */
  73.     public function getId() {
  74.         return $this->id;
  75.     }
  76.     public function getUuid(): string {
  77.         return $this->uuid;
  78.     }
  79.     /**
  80.      * Set username
  81.      *
  82.      * @param string $username
  83.      *
  84.      * @return User
  85.      */
  86.     public function setUsername($username) {
  87.         $this->username $username;
  88.         return $this;
  89.     }
  90.     /**
  91.      * Get username
  92.      *
  93.      * @return string
  94.      */
  95.     public function getUsername() {
  96.         return $this->username;
  97.     }
  98.     /**
  99.      * Get user identifier
  100.      *
  101.      * @return string
  102.      */
  103.     public function getUserIdentifier(): string {
  104.         return $this->uuid;
  105.     }
  106.     /**
  107.      * Set password
  108.      *
  109.      * @param string $password
  110.      *
  111.      * @return User
  112.      */
  113.     public function setPassword($password) {
  114.         $this->password $password;
  115.         return $this;
  116.     }
  117.     /**
  118.      * Get password
  119.      *
  120.      * @return string
  121.      */
  122.     public function getPassword(): ?string {
  123.         return $this->password;
  124.     }
  125.     public function setUuid(string $uuid) {
  126.         $this->uuid $uuid;
  127.         return $this;
  128.     }
  129.     /**
  130.      * Set email
  131.      *
  132.      * @param string $email
  133.      *
  134.      * @return User
  135.      */
  136.     public function setEmail($email) {
  137.         $this->email $email;
  138.         return $this;
  139.     }
  140.     /**
  141.      * Get email
  142.      *
  143.      * @return string
  144.      */
  145.     public function getEmail() {
  146.         return $this->email;
  147.     }
  148.     /**
  149.      * Set isActive
  150.      *
  151.      * @param boolean $isActive
  152.      *
  153.      * @return User
  154.      */
  155.     public function setIsActive($isActive) {
  156.         $this->isActive $isActive;
  157.         return $this;
  158.     }
  159.     /**
  160.      * Get isActive
  161.      *
  162.      * @return boolean
  163.      */
  164.     public function getIsActive() {
  165.         return $this->isActive;
  166.     }
  167.     /**
  168.      * Set createdAt
  169.      *
  170.      * @param \DateTime $createdAt
  171.      *
  172.      * @return User
  173.      */
  174.     public function setCreatedAt($createdAt) {
  175.         $this->createdAt $createdAt;
  176.         return $this;
  177.     }
  178.     /**
  179.      * Get createdAt
  180.      *
  181.      * @return \DateTime
  182.      */
  183.     public function getCreatedAt() {
  184.         return $this->createdAt;
  185.     }
  186.     /**
  187.      * Set lastLogin
  188.      *
  189.      * @param \DateTime $lastLogin
  190.      *
  191.      * @return User
  192.      */
  193.     public function setLastLogin($lastLogin) {
  194.         $this->lastLogin $lastLogin;
  195.         return $this;
  196.     }
  197.     /**
  198.      * Get lastLogin
  199.      *
  200.      * @return \DateTime
  201.      */
  202.     public function getLastLogin() {
  203.         return $this->lastLogin;
  204.     }
  205.     /**
  206.      * Add role
  207.      *
  208.      * @param UserRole $role
  209.      *
  210.      * @return User
  211.      */
  212.     public function addRole(UserRole $role) {
  213.         $this->roles[] = $role;
  214.         return $this;
  215.     }
  216.     /**
  217.      * Remove role
  218.      *
  219.      * @param UserRole $role
  220.      */
  221.     public function removeRole(UserRole $role) {
  222.         $this->roles->removeElement($role);
  223.     }
  224.     /**
  225.      * Get roles
  226.      *
  227.      * @return \Doctrine\Common\Collections\Collection
  228.      */
  229.     // Because of the symfony security UserInterface, this has to return
  230.     // an Array of strings
  231.     public function getRoles() {
  232.         $roleArray = array();
  233.         foreach ($this->roles as $role) {
  234.             array_push($roleArray$role->getName());
  235.         }
  236.         return $roleArray;
  237.     }
  238.     /**
  239.      * Get roles
  240.      *
  241.      * @return \Doctrine\Common\Collections\Collection
  242.      */
  243.     // Because of the symfony security UserInterface, this has to return
  244.     // an Array of strings
  245.     public function getRolesAsObjects() {
  246.         $roleArray = array();
  247.         foreach ($this->roles as $role) {
  248.             array_push($roleArray$role);
  249.         }
  250.         return $roleArray;
  251.     }
  252.     // this is our actual getRolesFunction to get them as Entity Collection
  253.     public function getRolesAsCollection() {
  254.         return $this->roles;
  255.     }
  256.     public function countUserRoles() {
  257.         return count($this->roles);
  258.     }
  259.     public function hasRoleID($roleID) {
  260.         /* @var $userRole UserRole */
  261.         foreach ($this->roles as $userRole) {
  262.             if ($userRole->getId() == $roleID) {
  263.                 return true;
  264.             }
  265.         }
  266.         return false;
  267.     }
  268.     public function hasRole($roleText) {
  269.         if (in_array($roleText$this->getRoles())) {
  270.             return true;
  271.         } else {
  272.             return false;
  273.         }
  274.     }
  275.     public function hasRoleArr($roles) {
  276.         $userRoles $this->getRoles();
  277.         foreach ($roles as $role) {
  278.             if (in_array($role$userRoles)) {
  279.                 return true;
  280.             }
  281.         }
  282.         return false;
  283.     }
  284.     public function isTeacher() {
  285.         return $this->hasRole('ROLE_TEACHER');
  286.     }
  287.     public function isDirector() {
  288.         return $this->hasRole('ROLE_DIRECTOR');
  289.     }
  290.     public function isCompany() {
  291.         return $this->hasRole('ROLE_COMPANY');
  292.     }
  293.     public function isBoPartner() {
  294.         return $this->hasRole('ROLE_BOPARTNER');
  295.     }
  296.     public function isSchool() {
  297.         return $this->hasRole('ROLE_SECONDARY_SCHOOL');
  298.     }
  299.     public function isSchoolClass() {
  300.         return $this->hasRole('ROLE_SCHOOL_CLASS');
  301.     }
  302.     /**
  303.      * Set userData.
  304.      *
  305.      * @param \App\Entity\UserData|null $userData
  306.      *
  307.      * @return User
  308.      */
  309.     public function setUserData(\App\Entity\UserData $userData null) {
  310.         $this->userData $userData;
  311.         return $this;
  312.     }
  313.     /**
  314.      * Get userData.
  315.      *
  316.      * @return \App\Entity\UserData|null
  317.      */
  318.     public function getUserData() {
  319.         return $this->userData;
  320.     }
  321.     /**
  322.      * Set userSetting.
  323.      *
  324.      * @param \App\Entity\UserSetting|null $userSetting
  325.      *
  326.      * @return User
  327.      */
  328.     public function setUserSetting(\App\Entity\UserSetting $userSetting null) {
  329.         $this->userSetting $userSetting;
  330.         return $this;
  331.     }
  332.     /**
  333.      * Get userSetting.
  334.      *
  335.      * @return \App\Entity\UserSetting|null
  336.      */
  337.     public function getUserSetting() {
  338.         return $this->userSetting;
  339.     }
  340.     public function getAvatar(): ?\App\Entity\UserAvatar {
  341.         return $this->avatar;
  342.     }
  343.     public function setAvatar(?\App\Entity\UserAvatar $avatar): void {
  344.         $this->avatar $avatar;
  345.     }
  346.     public function getTypeText() {
  347.         if ($this->isCompany()) {
  348.             return 'UNT';
  349.         }
  350.         if ($this->isBoPartner()) {
  351.             return 'BOP';
  352.         }
  353.         if ($this->isSchool()) {
  354.             return 'WFS';
  355.         }
  356.         if ($this->isDirector()) {
  357.             return 'DIR';
  358.         }
  359.         if ($this->isTeacher()) {
  360.             return 'LEH';
  361.         }
  362.         return '';
  363.     }
  364.     public function getName() {
  365.         if (!empty($this->userData)) {
  366.             return $this->userData->getName();
  367.         }
  368.         return '';
  369.     }
  370.     public function getFullName() {
  371.         if (!empty($this->userData)) {
  372.             return $this->userData->getFullName();
  373.         }
  374.         return '';
  375.     }
  376.     public function __serialize(): array {
  377.         return array(
  378.             'id' => $this->id,
  379.             'uuid' => $this->uuid,
  380.             'email' => $this->email,
  381.             'username' => $this->username,
  382.             'password' => $this->password,
  383.             'isactive' => $this->isActive
  384.         );
  385.     }
  386.     public function __unserialize(array $data): void {
  387.         $this->id $data['id'];
  388.         $this->uuid $data['uuid'];
  389.         $this->email $data['email'];
  390.         $this->username $data['username'];
  391.         $this->password $data['password'];
  392.         $this->isActive $data['isactive'];
  393.     }
  394.     /**
  395.      * The User Interface forces us to implement that method
  396.      */
  397.     public function eraseCredentials() {
  398.         
  399.     }
  400.     public function isAccountNonExpired(): bool {
  401.         return true;
  402.     }
  403.     public function isAccountNonLocked(): bool {
  404.         return true;
  405.     }
  406.     public function isCredentialsNonExpired(): bool {
  407.         return true;
  408.     }
  409.     public function isEnabled(): bool {
  410.         return $this->isActive;
  411.     }
  412.     public function getSalt(): ?string {
  413.         return null;
  414.     }
  415.     public function __toString() {
  416.         $id $this->id;
  417.         $username $this->username;
  418.         return "UserID: $id, Username: $username";
  419.     }
  420. }