src/Entity/UserSettings.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Enum\User\Permission;
  4. use App\Enum\User\PermissionGroup;
  5. use App\Repository\UserSettingsRepository;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8.  * @ORM\Entity(repositoryClass=UserSettingsRepository::class)
  9.  */
  10. class UserSettings
  11. {
  12.     /**
  13.      * @ORM\Id
  14.      * @ORM\GeneratedValue
  15.      * @ORM\Column(type="integer")
  16.      */
  17.     private $id;
  18.     /**
  19.      * @ORM\Column(type="boolean", nullable=true)
  20.      */
  21.     private $canEditCalendarEvents;
  22.     /**
  23.      * @ORM\Column(type="boolean", nullable=true)
  24.      */
  25.     private $canEditStudents;
  26.     /**
  27.      * @ORM\Column(type="boolean", nullable=true)
  28.      */
  29.     private $canViewCandidates;
  30.     /**
  31.      * @ORM\Column(type="boolean", nullable=true)
  32.      */
  33.     private $canEditPayments;
  34.     /**
  35.      * @ORM\Column(type="boolean", nullable=true)
  36.      */
  37.     private $canReviewCandidates;
  38.     /**
  39.      * @ORM\Column(type="boolean", nullable=true)
  40.      */
  41.     private $canViewStudents;
  42.     /**
  43.      * @ORM\Column(type="boolean", nullable=true)
  44.      */
  45.     private $canViewCalendarEvents;
  46.     /**
  47.      * @ORM\Column(type="boolean", nullable=true)
  48.      */
  49.     private $canViewZoomReport;
  50.     /**
  51.      * @ORM\Column(type="boolean", nullable=true)
  52.      */
  53.     private $canViewPaymentsReport;
  54.     /**
  55.      * @ORM\Column(type="boolean", nullable=true)
  56.      */
  57.     private $canViewStudentsPersonalData;
  58.     /**
  59.      * @ORM\Column(type="boolean", nullable=true)
  60.      */
  61.     private $canViewPayments;
  62.     /**
  63.      * @ORM\Column(type="boolean", nullable=true)
  64.      */
  65.     private $canEditCandidates;
  66.     /**
  67.      * @ORM\Column(type="boolean", nullable=true)
  68.      */
  69.     private $canViewCampaigns;
  70.     /**
  71.      * @ORM\Column(type="boolean", nullable=true)
  72.      */
  73.     private $canViewPaymentRequisites;
  74.     /**
  75.      * @ORM\Column(type="boolean", nullable=true)
  76.      */
  77.     private $canSendCampaigns;
  78.     /**
  79.      * @ORM\Column(type="boolean", nullable=true)
  80.      */
  81.     private $canUseTestFeatures;
  82.     /**
  83.      * @ORM\Column(type="boolean", nullable=true)
  84.      */
  85.     private $canRemovePayments;
  86.     /**
  87.      * @ORM\Column(type="boolean", nullable=true)
  88.      */
  89.     private $canCompareTable;
  90.     /**
  91.      * @ORM\Column(type="boolean", nullable=true)
  92.      */
  93.     private $canEditCandidateAccessByReceipt;
  94.     /**
  95.      * @ORM\Column(type="boolean", nullable=true)
  96.      */
  97.     private $canEditAllCandidateParams;
  98.     /**
  99.      * @ORM\Column(type="boolean", nullable=true)
  100.      */
  101.     private $isCurator;
  102.     /**
  103.      * @ORM\Column(type="boolean", nullable=true)
  104.      */
  105.     private $canViewDelayedMessages;
  106.     /**
  107.      * @ORM\Column(type="boolean", nullable=true)
  108.      */
  109.     private $canViewCallLists;
  110.     /**
  111.      * @ORM\Column(type="boolean", nullable=true)
  112.      */
  113.     private $canEditCallLists;
  114.     public function getId(): ?int
  115.     {
  116.         return $this->id;
  117.     }
  118.     public function isCanEditCalendarEvents(): ?bool
  119.     {
  120.         return $this->canEditCalendarEvents;
  121.     }
  122.     public function setCanEditCalendarEvents(?bool $canEditCalendarEvents): self
  123.     {
  124.         $this->canEditCalendarEvents $canEditCalendarEvents;
  125.         return $this;
  126.     }
  127.     public function isCanEditStudents(): ?bool
  128.     {
  129.         return $this->canEditStudents;
  130.     }
  131.     public function setCanEditStudents(?bool $canEditStudents): self
  132.     {
  133.         $this->canEditStudents $canEditStudents;
  134.         return $this;
  135.     }
  136.     public function isCanViewCandidates(): ?bool
  137.     {
  138.         return $this->canViewCandidates;
  139.     }
  140.     public function setCanViewCandidates(?bool $canViewCandidates): self
  141.     {
  142.         $this->canViewCandidates $canViewCandidates;
  143.         return $this;
  144.     }
  145.     public function isCanEditPayments(): ?bool
  146.     {
  147.         return $this->canEditPayments;
  148.     }
  149.     public function setCanEditPayments(?bool $canEditPayments): self
  150.     {
  151.         $this->canEditPayments $canEditPayments;
  152.         return $this;
  153.     }
  154.     public function isCanReviewCandidates(): ?bool
  155.     {
  156.         return $this->canReviewCandidates;
  157.     }
  158.     public function setCanReviewCandidates(?bool $canReviewCandidates): self
  159.     {
  160.         $this->canReviewCandidates $canReviewCandidates;
  161.         return $this;
  162.     }
  163.     public function isCanViewStudents(): ?bool
  164.     {
  165.         return $this->canViewStudents;
  166.     }
  167.     public function setCanViewStudents(?bool $canViewStudents): self
  168.     {
  169.         $this->canViewStudents $canViewStudents;
  170.         return $this;
  171.     }
  172.     public function isCanViewCalendarEvents(): ?bool
  173.     {
  174.         return $this->canViewCalendarEvents;
  175.     }
  176.     public function setCanViewCalendarEvents(?bool $canViewCalendarEvents): self
  177.     {
  178.         $this->canViewCalendarEvents $canViewCalendarEvents;
  179.         return $this;
  180.     }
  181.     public function isCanViewZoomReport(): ?bool
  182.     {
  183.         return $this->canViewZoomReport;
  184.     }
  185.     public function setCanViewZoomReport(?bool $canViewZoomReport): self
  186.     {
  187.         $this->canViewZoomReport $canViewZoomReport;
  188.         return $this;
  189.     }
  190.     public function isCanViewPaymentsReport(): ?bool
  191.     {
  192.         return $this->canViewPaymentsReport;
  193.     }
  194.     public function setCanViewPaymentsReport(?bool $canViewPaymentsReport): self
  195.     {
  196.         $this->canViewPaymentsReport $canViewPaymentsReport;
  197.         return $this;
  198.     }
  199.     public function isCanViewStudentsPersonalData(): ?bool
  200.     {
  201.         return $this->canViewStudentsPersonalData;
  202.     }
  203.     public function setCanViewStudentsPersonalData(?bool $canViewStudentsPersonalData): self
  204.     {
  205.         $this->canViewStudentsPersonalData $canViewStudentsPersonalData;
  206.         return $this;
  207.     }
  208.     public function isCanViewPayments(): ?bool
  209.     {
  210.         return $this->canViewPayments;
  211.     }
  212.     public function setCanViewPayments(?bool $canViewPayments): self
  213.     {
  214.         $this->canViewPayments $canViewPayments;
  215.         return $this;
  216.     }
  217.     public function setPermission(string $keybool $value): self
  218.     {
  219.         $this->$key $value;
  220.         return $this;
  221.     }
  222.     public function getPermission(string $key): bool
  223.     {
  224.         return $this->$key ?? false;
  225.     }
  226.     public function getAllPermissionsGrouped(array $options null): array
  227.     {
  228.         $options array_merge([
  229.             'grantedOnly' => false,
  230.         ], $options ?? []);
  231.         $data = [];
  232.         foreach (PermissionGroup::getAsArray() as $group) {
  233.             $data[$group] = [
  234.                 "text" => PermissionGroup::getText($group),
  235.                 "permissions" => [],
  236.             ];
  237.             foreach (Permission::getAsArray() as $permission) {
  238.                 if (PermissionGroup::getGroup($permission) === $group) {
  239.                     if ($options['grantedOnly'] && !$this->getPermission($permission)) {
  240.                         continue;
  241.                     }
  242.                     $data[$group]["permissions"][$permission] = [
  243.                         "text" => Permission::getText($permission),
  244.                         "value" => $this->getPermission($permission),
  245.                         "shortText" => Permission::getShortText($permission),
  246.                     ];
  247.                 }
  248.             }
  249.         }
  250.         return $data;
  251.     }
  252.     public function isCanEditCandidates(): ?bool
  253.     {
  254.         return $this->canEditCandidates;
  255.     }
  256.     public function setCanEditCandidates(?bool $canEditCandidates): self
  257.     {
  258.         $this->canEditCandidates $canEditCandidates;
  259.         return $this;
  260.     }
  261.     public function isCanViewCampaigns(): ?bool
  262.     {
  263.         return $this->canViewCampaigns;
  264.     }
  265.     public function setCanViewCampaigns(?bool $canViewCampaigns): self
  266.     {
  267.         $this->canViewCampaigns $canViewCampaigns;
  268.         return $this;
  269.     }
  270.     public function isCanViewPaymentRequisites(): ?bool
  271.     {
  272.         return $this->canViewPaymentRequisites;
  273.     }
  274.     public function setCanViewPaymentRequisites(?bool $canViewPaymentRequisites): self
  275.     {
  276.         $this->canViewPaymentRequisites $canViewPaymentRequisites;
  277.         return $this;
  278.     }
  279.     public function isCanSendCampaigns(): ?bool
  280.     {
  281.         return $this->canSendCampaigns;
  282.     }
  283.     public function setCanSendCampaigns(?bool $canSendCampaigns): self
  284.     {
  285.         $this->canSendCampaigns $canSendCampaigns;
  286.         return $this;
  287.     }
  288.     public function isCanUseTestFeatures(): ?bool
  289.     {
  290.         return $this->canUseTestFeatures;
  291.     }
  292.     public function setCanUseTestFeatures(?bool $canUseTestFeatures): self
  293.     {
  294.         $this->canUseTestFeatures $canUseTestFeatures;
  295.         return $this;
  296.     }
  297.     public function isCanRemovePayments(): ?bool
  298.     {
  299.         return $this->canRemovePayments;
  300.     }
  301.     public function setCanRemovePayments(?bool $canRemovePayments): self
  302.     {
  303.         $this->canRemovePayments $canRemovePayments;
  304.         return $this;
  305.     }
  306.     public function isCanCompareTable(): ?bool
  307.     {
  308.         return $this->canCompareTable;
  309.     }
  310.     public function setCanCompareTable(?bool $canCompareTable): self
  311.     {
  312.         $this->canCompareTable $canCompareTable;
  313.         return $this;
  314.     }
  315.     public function isCanEditCandidateAccessByReceipt(): ?bool
  316.     {
  317.         return $this->isCanEditAllCandidateParams() || $this->canEditCandidateAccessByReceipt;
  318.     }
  319.     public function setCanEditCandidateAccessByReceipt(?bool $canEditCandidateAccessByReceipt): self
  320.     {
  321.         $this->canEditCandidateAccessByReceipt $canEditCandidateAccessByReceipt;
  322.         return $this;
  323.     }
  324.     public function isCanEditAllCandidateParams(): ?bool
  325.     {
  326.         return $this->canEditAllCandidateParams;
  327.     }
  328.     public function setCanEditAllCandidateParams(?bool $canEditAllCandidateParams): self
  329.     {
  330.         $this->canEditAllCandidateParams $canEditAllCandidateParams;
  331.         return $this;
  332.     }
  333.     public function isIsCurator(): ?bool
  334.     {
  335.         return $this->isCurator;
  336.     }
  337.     public function setIsCurator(?bool $isCurator): self
  338.     {
  339.         $this->isCurator $isCurator;
  340.         return $this;
  341.     }
  342.     public function isCanViewDelayedMessages(): ?bool
  343.     {
  344.         return $this->canViewDelayedMessages;
  345.     }
  346.     public function setCanViewDelayedMessages(?bool $canViewDelayedMessages): self
  347.     {
  348.         $this->canViewDelayedMessages $canViewDelayedMessages;
  349.         return $this;
  350.     }
  351.     public function isCanViewCallLists(): ?bool
  352.     {
  353.         return $this->canViewCallLists;
  354.     }
  355.     public function setCanViewCallLists(?bool $canViewCallLists): self
  356.     {
  357.         $this->canViewCallLists $canViewCallLists;
  358.         return $this;
  359.     }
  360.     public function isCanEditCallLists(): ?bool
  361.     {
  362.         return $this->canEditCallLists;
  363.     }
  364.     public function setCanEditCallLists(?bool $canEditCallLists): self
  365.     {
  366.         $this->canEditCallLists $canEditCallLists;
  367.         return $this;
  368.     }
  369. }