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

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