src/AtechNet/CoreBundle/Entity/UserPermission.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\AtechNet\CoreBundle\Entity;
  3. use Doctrine\ORM\Mapping\Column;
  4. use Doctrine\ORM\Mapping\Entity;
  5. use Doctrine\ORM\Mapping\JoinColumn;
  6. use Doctrine\ORM\Mapping\ManyToOne;
  7. use Doctrine\ORM\Mapping\Table as Table;
  8. /**
  9.  * @Table(name="users_permission")
  10.  * @Entity()
  11.  */
  12. class UserPermission extends AbstractEntity
  13. {
  14.     public const PERMISSION_PRODUCTS = 0;
  15.     public const PERMISSION_TRANSLATIONS = 1;
  16.     public const PERMISSION_USERS = 2;
  17.     public const PERMISSION_TASKS = 3;
  18.     public const PERMISSION_USER_ABSENCES = 4;
  19.     public const PERMISSION_CUSTOMERS = 5;
  20.     public const PERMISSION_BASKETS = 6;
  21.     public const PERMISSION_ORDERS = 7;
  22.     public const PERMISSION_DOMAINS = 8;
  23.     public const PERMISSION_KNOWLEDGE_BASE = 9;
  24.     public const PERMISSION_FEEDBACKS = 10;
  25.     public const PERMISSION_STATISTICS = 11;
  26.     public const PERMISSION_DOCUMENTS = 12;
  27.     public const PERMISSION_STOCK_MOVEMENTS = 13;
  28.     public const PERMISSION_CLAIMS = 14;
  29.     /**
  30.      * @return array
  31.      */
  32.     public static function getPermissionChoices(): array
  33.     {
  34.         return [
  35.             self::PERMISSION_PRODUCTS => 'products',
  36.             self::PERMISSION_TRANSLATIONS => 'translation',
  37.             self::PERMISSION_USERS => 'users',
  38.             self::PERMISSION_TASKS => 'tasks',
  39.             self::PERMISSION_USER_ABSENCES => 'user_absence',
  40.             self::PERMISSION_CUSTOMERS => 'customers',
  41.             self::PERMISSION_BASKETS => 'basket',
  42.             self::PERMISSION_ORDERS => 'order',
  43.             self::PERMISSION_DOMAINS => 'domain',
  44.             self::PERMISSION_KNOWLEDGE_BASE => 'knowledge_base',
  45.             self::PERMISSION_FEEDBACKS => 'feedback',
  46.             self::PERMISSION_STATISTICS => 'statistics',
  47.             self::PERMISSION_DOCUMENTS => 'documents',
  48.             self::PERMISSION_STOCK_MOVEMENTS => 'stock_movements',
  49.             self::PERMISSION_CLAIMS => 'claims',
  50.         ];
  51.     }
  52.     /**
  53.      * @ManyToOne(targetEntity="App\AtechNet\CoreBundle\Entity\User", inversedBy="canView")
  54.      * @JoinColumn(name="user_id", referencedColumnName="id")
  55.      */
  56.     private $user;
  57.     /**
  58.      * @var string
  59.      *
  60.      * @Column(name="controller", type="string", length=255)
  61.      */
  62.     private $controller;
  63.     /**
  64.      * Set user
  65.      *
  66.      * @param User $user
  67.      * @return UserPermission
  68.      */
  69.     public function setUser(User $user): UserPermission
  70.     {
  71.         $this->user = $user;
  72.         return $this;
  73.     }
  74.     /**
  75.      * Get user
  76.      *
  77.      * @return User
  78.      */
  79.     public function getUser(): User
  80.     {
  81.         return $this->user;
  82.     }
  83.     /**
  84.      * Set controller
  85.      *
  86.      * @param string $controller
  87.      * @return UserPermission
  88.      */
  89.     public function setController(string $controller): UserPermission
  90.     {
  91.         $this->controller = $controller;
  92.         return $this;
  93.     }
  94.     /**
  95.      * Get controller
  96.      *
  97.      * @return string
  98.      */
  99.     public function getController(): string
  100.     {
  101.         return $this->controller;
  102.     }
  103.     /**
  104.      * @return string
  105.      */
  106.     public function getTitle(): string
  107.     {
  108.         return self::getPermissionChoices()[$this->getController()];
  109.     }
  110. }