src/V4/Model/Security/UserInfo.php line 41

Open in your IDE?
  1. <?php
  2. namespace App\V4\Model\Security;
  3. use ApiPlatform\Core\Annotation\ApiProperty;
  4. use ApiPlatform\Core\Annotation\ApiResource;
  5. use App\Model\Customer\Customer;
  6. use App\Model\IriNormalizableInterface;
  7. use App\Model\NormalizeAsIRITrait;
  8. use App\Model\RGPDConfig\RGPDConfig;
  9. use App\Model\SecurityGroup\SecurityGroup;
  10. use App\Model\Traits\ImportableObjectTrait;
  11. use DateTime;
  12. use Doctrine\Common\Collections\ArrayCollection;
  13. use Symfony\Component\Serializer\Annotation\Groups;
  14. use Symfony\Component\Validator\Constraints as Assert;
  15. /**
  16.  * @ApiResource(
  17.  *     shortName="V4/UserInfo",
  18.  *     attributes={
  19.  *         "api_allow_update": true
  20.  *     },
  21.  *     collectionOperations={
  22.  *        "get": {
  23.  *             "path": "/V4/user_infos",
  24.  *             "normalization_context": {
  25.  *                  "groups": {"user_info:list"},
  26.  *                  "isFromAdmin": true
  27.  *             },
  28.  *             "security": "is_granted(constant('App\\V4\\Voters\\UserInfoVoter::USER_INFO_SHOW_LIST'), 'App\V4\Voters\UserInfoVoter')"
  29.  *         }
  30.  *     },
  31.  *     itemOperations={
  32.  *        "get": {
  33.  *             "path": "/V4/user_infos/{id}",
  34.  *         }
  35.  *     }
  36.  * )
  37.  */
  38. class UserInfo implements IriNormalizableInterface
  39. {
  40.     use ImportableObjectTrait;
  41.     use NormalizeAsIRITrait;
  42.     /**
  43.      * @ApiProperty(identifier=true)
  44.      *
  45.      * @var string|null
  46.      * @Groups({
  47.      *     "outlook_subscription_configuration_user:update",
  48.      *     "section:list", "section:read", "section:write", "section:update",
  49.      *     "user_info:list",
  50.      *     "read", "list_last_visit", "read_last_visit", "read_post_last_visit", "write", "list"})
  51.      */
  52.     private $id;
  53.     /**
  54.      * @var string|null
  55.      * @Assert\NotNull(message="field_not_valid")
  56.      * @Assert\NotBlank(message="field_not_valid")
  57.      * @Groups({"read"})
  58.      */
  59.     private $login;
  60.     /**
  61.      * @var string|null
  62.      * @Groups({"read"})
  63.      */
  64.     private $civility;
  65.     /**
  66.      * @var string|null
  67.      * @Groups({"read"})
  68.      * @Assert\NotNull(message="field_not_valid")
  69.      * @Assert\NotBlank(message="field_not_valid")
  70.      */
  71.     private $firstname;
  72.     /**
  73.      * @var string|null
  74.      * @Assert\NotNull(message="field_not_valid")
  75.      * @Assert\NotBlank(message="field_not_valid")
  76.      * @Groups({"read"})
  77.      */
  78.     private $lastname;
  79.     /**
  80.      * @var string|null
  81.      * @Groups({
  82.      *     "section:list", "section:read", "section:write", "section:update",
  83.      *     "outlook_subscription_configuration_user:list", "outlook_subscription_configuration_user:read",
  84.      *     "user_info:list",
  85.      *     "read"
  86.      * })
  87.      */
  88.     private $fullname;
  89.     /**
  90.      * @var string|null
  91.      * @Groups({
  92.      *     "section:list", "section:read", "section:write", "section:update",
  93.      *     "outlook_subscription_configuration_user:list", "outlook_subscription_configuration_user:read",
  94.      *     "user_info:list",
  95.      *     "read"
  96.      * })
  97.      */
  98.     private $job;
  99.     /**
  100.      * @var SecurityGroup|null
  101.      * @Groups({"read"})
  102.      */
  103.     private $securityGroup;
  104.     /**
  105.      * @var string|null
  106.      * @Assert\Email()
  107.      * @Groups({
  108.      *     "read",
  109.      *     "outlook_subscription_configuration_user:list", "outlook_subscription_configuration_user:read"
  110.      * })
  111.      */
  112.     private $email;
  113.     /**
  114.      * @var string|null
  115.      * @Assert\Length(max="5", maxMessage="Les initiales sont limités à 5 caractères")
  116.      * @Groups({"read"})
  117.      */
  118.     private $initials;
  119.     /**
  120.      * @Assert\Callback({"App\FormValidator\PasswordValidator", "validate"})
  121.      * @Groups({"read"})
  122.      */
  123.     private $plainPassword;
  124.     /**
  125.      * @var string|null
  126.      * @Groups({"read"})
  127.      */
  128.     private $phone;
  129.     /**
  130.      * @Assert\NotNull(message="field_not_valid")
  131.      * @Assert\NotBlank(message="field_not_valid")
  132.      *
  133.      * @var Customer|null
  134.      * @Groups({"read"})
  135.      */
  136.     private $customer;
  137.     /**
  138.      * @var RGPDConfig|null
  139.      * @Groups({"read"})
  140.      */
  141.     private $rgpdConfig;
  142.     /**
  143.      * @var array|null
  144.      * @Groups({"read"})
  145.      */
  146.     private $roles;
  147.     /**
  148.      * @var array|null
  149.      * @Groups({"read"})
  150.      */
  151.     private $orders;
  152.     /**
  153.      * @var array|null
  154.      * @Groups({"read"})
  155.      */
  156.     private $tabs;
  157.     /**
  158.      * @var array|null
  159.      * @Groups({"read"})
  160.      */
  161.     private $savedUserSearchs;
  162.     /**
  163.      * @var string|null
  164.      * @Groups({"read"})
  165.      */
  166.     private $sfiMailingHosts;
  167.     /**
  168.      * @var bool|null
  169.      * @Groups({"read"})
  170.      */
  171.     private $isActive true;
  172.     /**
  173.      * @var bool|null
  174.      * @Groups({"read"})
  175.      */
  176.     private $isSuperAdmin false;
  177.     /**
  178.      * @var string|null
  179.      * @Groups({"read"})
  180.      */
  181.     private $liveoLogin;
  182.     /**
  183.      * @var string|null
  184.      * @Groups({"read"})
  185.      */
  186.     private $liveoPassword;
  187.     /**
  188.      * @var string|null
  189.      * @Groups({"read"})
  190.      */
  191.     private $externalId;
  192.     /**
  193.      * @Groups({"read"})
  194.      */
  195.     private $isMyTaskByDefault false;
  196.     /**
  197.      * @Groups({"read"})
  198.      */
  199.     private $isMyQuoteByDefault false;
  200.     /**
  201.      * @Groups({"read"})
  202.      */
  203.     private $isMyProspectByDefault false;
  204.     /**
  205.      * @Groups({"read"})
  206.      */
  207.     private $isMyContactByDefault false;
  208.     /**
  209.      * @var string|null
  210.      * @Groups({"read"})
  211.      */
  212.     private $signature;
  213.     /**
  214.      * @var DateTime|null
  215.      * @Groups({"read"})
  216.      */
  217.     private $tokenValidAfter;
  218.     /**
  219.      * @var DateTime|null
  220.      * @Groups({"read"})
  221.      */
  222.     private $lastLogin;
  223.     /**
  224.      * @var ArrayCollection
  225.      * @Groups({"read"})
  226.      */
  227.     private $accessRights;
  228.     /**
  229.      * @var array
  230.      * @Groups({"read"})
  231.      */
  232.     private $defaultQuoteSections = [];
  233.     /**
  234.      * @var array
  235.      * @Groups({"read"})
  236.      */
  237.     private $defaultSearchFilters = [];
  238.     public function __construct()
  239.     {
  240.         $this->accessRights = new ArrayCollection();
  241.     }
  242.     /**
  243.      * @return string|null
  244.      */
  245.     public function getId(): ?string
  246.     {
  247.         return $this->id;
  248.     }
  249.     /**
  250.      * @param string|null $id
  251.      *
  252.      * @return UserInfo
  253.      */
  254.     public function setId(?string $id): UserInfo
  255.     {
  256.         $this->id $id;
  257.         return $this;
  258.     }
  259.     /**
  260.      * @return string|null
  261.      */
  262.     public function getLogin(): ?string
  263.     {
  264.         return $this->login;
  265.     }
  266.     /**
  267.      * @param string|null $login
  268.      *
  269.      * @return UserInfo
  270.      */
  271.     public function setLogin(?string $login): UserInfo
  272.     {
  273.         $this->login $login;
  274.         return $this;
  275.     }
  276.     /**
  277.      * @return string|null
  278.      */
  279.     public function getCivility(): ?string
  280.     {
  281.         return $this->civility;
  282.     }
  283.     /**
  284.      * @param string|null $civility
  285.      *
  286.      * @return UserInfo
  287.      */
  288.     public function setCivility(?string $civility): UserInfo
  289.     {
  290.         $this->civility $civility;
  291.         return $this;
  292.     }
  293.     /**
  294.      * @return string|null
  295.      */
  296.     public function getFirstname(): ?string
  297.     {
  298.         return $this->firstname;
  299.     }
  300.     /**
  301.      * @param string|null $firstname
  302.      *
  303.      * @return UserInfo
  304.      */
  305.     public function setFirstname(?string $firstname): UserInfo
  306.     {
  307.         $this->firstname $firstname;
  308.         return $this;
  309.     }
  310.     /**
  311.      * @return string|null
  312.      */
  313.     public function getFullname(): ?string
  314.     {
  315.         return $this->fullname;
  316.     }
  317.     /**
  318.      * @param string|null $fullname
  319.      *
  320.      * @return UserInfo
  321.      */
  322.     public function setFullname(?string $fullname): UserInfo
  323.     {
  324.         $this->fullname $fullname;
  325.         return $this;
  326.     }
  327.     /**
  328.      * @return string|null
  329.      */
  330.     public function getJob(): ?string
  331.     {
  332.         return $this->job;
  333.     }
  334.     /**
  335.      * @param string|null $job
  336.      *
  337.      * @return $this
  338.      */
  339.     public function setJob(?string $job): UserInfo
  340.     {
  341.         $this->job $job;
  342.         return $this;
  343.     }
  344.     /**
  345.      * @return string|null
  346.      */
  347.     public function getLastname(): ?string
  348.     {
  349.         return strtoupper($this->lastname);
  350.     }
  351.     /**
  352.      * @param string|null $lastname
  353.      *
  354.      * @return UserInfo
  355.      */
  356.     public function setLastname(?string $lastname): UserInfo
  357.     {
  358.         $this->lastname strtoupper($lastname);
  359.         return $this;
  360.     }
  361.     /**
  362.      * @return SecurityGroup|null
  363.      */
  364.     public function getSecurityGroup(): ?SecurityGroup
  365.     {
  366.         return $this->securityGroup;
  367.     }
  368.     /**
  369.      * @param SecurityGroup|null $securityGroup
  370.      *
  371.      * @return UserInfo
  372.      */
  373.     public function setSecurityGroup(?SecurityGroup $securityGroup): UserInfo
  374.     {
  375.         $this->securityGroup $securityGroup;
  376.         return $this;
  377.     }
  378.     /**
  379.      * @return string|null
  380.      */
  381.     public function getEmail(): ?string
  382.     {
  383.         return $this->email;
  384.     }
  385.     /**
  386.      * @param string|null $email
  387.      *
  388.      * @return UserInfo
  389.      */
  390.     public function setEmail(?string $email): UserInfo
  391.     {
  392.         $this->email $email;
  393.         return $this;
  394.     }
  395.     /**
  396.      * @return string|null
  397.      */
  398.     public function getInitials(): ?string
  399.     {
  400.         return $this->initials;
  401.     }
  402.     /**
  403.      * @param string|null $initials
  404.      *
  405.      * @return UserInfo
  406.      */
  407.     public function setInitials(?string $initials): UserInfo
  408.     {
  409.         $this->initials $initials;
  410.         return $this;
  411.     }
  412.     public function getPlainPassword()
  413.     {
  414.         return $this->plainPassword;
  415.     }
  416.     /**
  417.      * @param  $plainPassword
  418.      *
  419.      * @return UserInfo
  420.      */
  421.     public function setPlainPassword($plainPassword): UserInfo
  422.     {
  423.         $this->plainPassword $plainPassword;
  424.         return $this;
  425.     }
  426.     /**
  427.      * @return string|null
  428.      */
  429.     public function getPhone(): ?string
  430.     {
  431.         return $this->phone;
  432.     }
  433.     /**
  434.      * @param string|null $phone
  435.      *
  436.      * @return UserInfo
  437.      */
  438.     public function setPhone(?string $phone): UserInfo
  439.     {
  440.         $this->phone $phone;
  441.         return $this;
  442.     }
  443.     /**
  444.      * @return Customer|null
  445.      */
  446.     public function getCustomer(): ?Customer
  447.     {
  448.         return $this->customer;
  449.     }
  450.     /**
  451.      * @param Customer|null $customer
  452.      *
  453.      * @return UserInfo
  454.      */
  455.     public function setCustomer(?Customer $customer): UserInfo
  456.     {
  457.         $this->customer $customer;
  458.         return $this;
  459.     }
  460.     /**
  461.      * @return array|null
  462.      */
  463.     public function getRoles(): ?array
  464.     {
  465.         return $this->roles;
  466.     }
  467.     /**
  468.      * @param array|null $roles
  469.      *
  470.      * @return UserInfo
  471.      */
  472.     public function setRoles(?array $roles): UserInfo
  473.     {
  474.         $this->roles $roles;
  475.         return $this;
  476.     }
  477.     /**
  478.      * @return array|null
  479.      */
  480.     public function getOrders(): ?array
  481.     {
  482.         return $this->orders;
  483.     }
  484.     /**
  485.      * @param array|null $orders
  486.      *
  487.      * @return UserInfo
  488.      */
  489.     public function setOrders(?array $orders): UserInfo
  490.     {
  491.         $this->orders $orders;
  492.         return $this;
  493.     }
  494.     /**
  495.      * @return array|null
  496.      */
  497.     public function getTabs(): ?array
  498.     {
  499.         return $this->tabs;
  500.     }
  501.     /**
  502.      * @param array|null $tabs
  503.      *
  504.      * @return UserInfo
  505.      */
  506.     public function setTabs(?array $tabs): UserInfo
  507.     {
  508.         $this->tabs $tabs;
  509.         return $this;
  510.     }
  511.     /**
  512.      * @return array|null
  513.      */
  514.     public function getSavedUserSearchs(): ?array
  515.     {
  516.         return $this->savedUserSearchs;
  517.     }
  518.     /**
  519.      * @param array|null $savedUserSearchs
  520.      *
  521.      * @return UserInfo
  522.      */
  523.     public function setSavedUserSearchs(?array $savedUserSearchs): UserInfo
  524.     {
  525.         $this->savedUserSearchs $savedUserSearchs;
  526.         return $this;
  527.     }
  528.     /**
  529.      * @return string|null
  530.      */
  531.     public function getSfiMailingHosts(): ?string
  532.     {
  533.         return $this->sfiMailingHosts;
  534.     }
  535.     /**
  536.      * @param string|null $sfiMailingHosts
  537.      *
  538.      * @return UserInfo
  539.      */
  540.     public function setSfiMailingHosts(?string $sfiMailingHosts): UserInfo
  541.     {
  542.         $this->sfiMailingHosts $sfiMailingHosts;
  543.         return $this;
  544.     }
  545.     /**
  546.      * @return bool|null
  547.      */
  548.     public function getIsActive(): ?bool
  549.     {
  550.         return $this->isActive;
  551.     }
  552.     /**
  553.      * @param bool|null $isActive
  554.      *
  555.      * @return UserInfo
  556.      */
  557.     public function setIsActive(?bool $isActive): UserInfo
  558.     {
  559.         $this->isActive $isActive;
  560.         return $this;
  561.     }
  562.     /**
  563.      * @return RGPDConfig|null
  564.      */
  565.     public function getRgpdConfig(): ?RGPDConfig
  566.     {
  567.         return $this->rgpdConfig;
  568.     }
  569.     /**
  570.      * @param RGPDConfig|null $rgpdConfig
  571.      *
  572.      * @return UserInfo
  573.      */
  574.     public function setRgpdConfig(?RGPDConfig $rgpdConfig): UserInfo
  575.     {
  576.         $this->rgpdConfig $rgpdConfig;
  577.         return $this;
  578.     }
  579.     /**
  580.      * @return string|null
  581.      */
  582.     public function getExternalId(): ?string
  583.     {
  584.         return $this->externalId;
  585.     }
  586.     /**
  587.      * @param string|null $externalId
  588.      *
  589.      * @return UserInfo
  590.      */
  591.     public function setExternalId(?string $externalId): UserInfo
  592.     {
  593.         $this->externalId $externalId;
  594.         return $this;
  595.     }
  596.     /**
  597.      * @return string
  598.      */
  599.     public function __toString(): string
  600.     {
  601.         return $this->getFirstname().' '.strtoupper($this->getLastname());
  602.     }
  603.     /**
  604.      * @return bool|null
  605.      */
  606.     public function getIsSuperAdmin(): ?bool
  607.     {
  608.         return $this->isSuperAdmin;
  609.     }
  610.     /**
  611.      * @param bool|null $isSuperAdmin
  612.      *
  613.      * @return UserInfo
  614.      */
  615.     public function setIsSuperAdmin(?bool $isSuperAdmin): UserInfo
  616.     {
  617.         $this->isSuperAdmin $isSuperAdmin;
  618.         return $this;
  619.     }
  620.     /**
  621.      * @return bool
  622.      */
  623.     public function getIsMyTaskByDefault(): bool
  624.     {
  625.         return $this->isMyTaskByDefault;
  626.     }
  627.     /**
  628.      * @param bool $isMyTaskByDefault
  629.      *
  630.      * @return UserInfo
  631.      */
  632.     public function setIsMyTaskByDefault(bool $isMyTaskByDefault): UserInfo
  633.     {
  634.         $this->isMyTaskByDefault $isMyTaskByDefault;
  635.         return $this;
  636.     }
  637.     /**
  638.      * @return bool
  639.      */
  640.     public function getIsMyQuoteByDefault(): bool
  641.     {
  642.         return $this->isMyQuoteByDefault;
  643.     }
  644.     /**
  645.      * @param bool $isMyQuoteByDefault
  646.      *
  647.      * @return UserInfo
  648.      */
  649.     public function setIsMyQuoteByDefault(bool $isMyQuoteByDefault): UserInfo
  650.     {
  651.         $this->isMyQuoteByDefault $isMyQuoteByDefault;
  652.         return $this;
  653.     }
  654.     /**
  655.      * @return bool
  656.      */
  657.     public function getIsMyProspectByDefault(): bool
  658.     {
  659.         return $this->isMyProspectByDefault;
  660.     }
  661.     /**
  662.      * @param bool $isMyProspectByDefault
  663.      *
  664.      * @return UserInfo
  665.      */
  666.     public function setIsMyProspectByDefault(bool $isMyProspectByDefault): UserInfo
  667.     {
  668.         $this->isMyProspectByDefault $isMyProspectByDefault;
  669.         return $this;
  670.     }
  671.     /**
  672.      * @return bool
  673.      */
  674.     public function getIsMyContactByDefault(): bool
  675.     {
  676.         return $this->isMyContactByDefault;
  677.     }
  678.     /**
  679.      * @param bool $isMyContactByDefault
  680.      *
  681.      * @return UserInfo
  682.      */
  683.     public function setIsMyContactByDefault(bool $isMyContactByDefault): UserInfo
  684.     {
  685.         $this->isMyContactByDefault $isMyContactByDefault;
  686.         return $this;
  687.     }
  688.     /**
  689.      * @return string|null
  690.      */
  691.     public function getSignature(): ?string
  692.     {
  693.         return $this->signature;
  694.     }
  695.     /**
  696.      * @param string|null $signature
  697.      *
  698.      * @return UserInfo
  699.      */
  700.     public function setSignature(?string $signature): UserInfo
  701.     {
  702.         $this->signature $signature;
  703.         return $this;
  704.     }
  705.     /**
  706.      * @return string|null
  707.      */
  708.     public function getLiveoLogin(): ?string
  709.     {
  710.         return $this->liveoLogin;
  711.     }
  712.     /**
  713.      * @param string|null $liveoLogin
  714.      *
  715.      * @return UserInfo
  716.      */
  717.     public function setLiveoLogin(?string $liveoLogin): UserInfo
  718.     {
  719.         $this->liveoLogin $liveoLogin;
  720.         return $this;
  721.     }
  722.     /**
  723.      * @return string|null
  724.      */
  725.     public function getLiveoPassword(): ?string
  726.     {
  727.         return $this->liveoPassword;
  728.     }
  729.     /**
  730.      * @param string|null $liveoPassword
  731.      *
  732.      * @return UserInfo
  733.      */
  734.     public function setLiveoPassword(?string $liveoPassword): UserInfo
  735.     {
  736.         $this->liveoPassword $liveoPassword;
  737.         return $this;
  738.     }
  739.     /**
  740.      * @return DateTime|null
  741.      */
  742.     public function getTokenValidAfter(): ?DateTime
  743.     {
  744.         return $this->tokenValidAfter;
  745.     }
  746.     /**
  747.      * @param DateTime|null $tokenValidAfter
  748.      *
  749.      * @return UserInfo
  750.      */
  751.     public function setTokenValidAfter(?DateTime $tokenValidAfter): UserInfo
  752.     {
  753.         $this->tokenValidAfter $tokenValidAfter;
  754.         return $this;
  755.     }
  756.     /**
  757.      * @return DateTime|null
  758.      */
  759.     public function getLastLogin(): ?DateTime
  760.     {
  761.         return $this->lastLogin;
  762.     }
  763.     /**
  764.      * @param DateTime|null $lastLogin
  765.      *
  766.      * @return UserInfo
  767.      */
  768.     public function setLastLogin(?DateTime $lastLogin): UserInfo
  769.     {
  770.         $this->lastLogin $lastLogin;
  771.         return $this;
  772.     }
  773.     /**
  774.      * @return ArrayCollection
  775.      */
  776.     public function getAccessRights(): ArrayCollection
  777.     {
  778.         return $this->accessRights;
  779.     }
  780.     /**
  781.      * @param ArrayCollection $accessRights
  782.      *
  783.      * @return UserInfo
  784.      */
  785.     public function setAccessRights(ArrayCollection $accessRights): UserInfo
  786.     {
  787.         $this->accessRights $accessRights;
  788.         return $this;
  789.     }
  790.     /**
  791.      * @return array
  792.      */
  793.     public function getDefaultQuoteSections(): array
  794.     {
  795.         return $this->defaultQuoteSections;
  796.     }
  797.     /**
  798.      * @param array $defaultQuoteSections
  799.      *
  800.      * @return self
  801.      */
  802.     public function setDefaultQuoteSections(array $defaultQuoteSections): self
  803.     {
  804.         $this->defaultQuoteSections $defaultQuoteSections;
  805.         return $this;
  806.     }
  807.     /**
  808.      * @return array
  809.      */
  810.     public function getDefaultSearchFilters(): array
  811.     {
  812.         return $this->defaultSearchFilters;
  813.     }
  814.     /**
  815.      * @param array $defaultSearchFilters
  816.      *
  817.      * @return $this
  818.      */
  819.     public function setDefaultSearchFilters(array $defaultSearchFilters): self
  820.     {
  821.         $this->defaultSearchFilters $defaultSearchFilters;
  822.         return $this;
  823.     }
  824. }