<?php
namespace App\AtechNet\CoreBundle\Entity;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\Table as Table;
/**
* @Table(name="users_permission")
* @Entity()
*/
class UserPermission extends AbstractEntity
{
public const PERMISSION_PRODUCTS = 0;
public const PERMISSION_TRANSLATIONS = 1;
public const PERMISSION_USERS = 2;
public const PERMISSION_TASKS = 3;
public const PERMISSION_USER_ABSENCES = 4;
public const PERMISSION_CUSTOMERS = 5;
public const PERMISSION_BASKETS = 6;
public const PERMISSION_ORDERS = 7;
public const PERMISSION_DOMAINS = 8;
public const PERMISSION_KNOWLEDGE_BASE = 9;
public const PERMISSION_FEEDBACKS = 10;
public const PERMISSION_STATISTICS = 11;
public const PERMISSION_DOCUMENTS = 12;
public const PERMISSION_STOCK_MOVEMENTS = 13;
public const PERMISSION_CLAIMS = 14;
/**
* @return array
*/
public static function getPermissionChoices(): array
{
return [
self::PERMISSION_PRODUCTS => 'products',
self::PERMISSION_TRANSLATIONS => 'translation',
self::PERMISSION_USERS => 'users',
self::PERMISSION_TASKS => 'tasks',
self::PERMISSION_USER_ABSENCES => 'user_absence',
self::PERMISSION_CUSTOMERS => 'customers',
self::PERMISSION_BASKETS => 'basket',
self::PERMISSION_ORDERS => 'order',
self::PERMISSION_DOMAINS => 'domain',
self::PERMISSION_KNOWLEDGE_BASE => 'knowledge_base',
self::PERMISSION_FEEDBACKS => 'feedback',
self::PERMISSION_STATISTICS => 'statistics',
self::PERMISSION_DOCUMENTS => 'documents',
self::PERMISSION_STOCK_MOVEMENTS => 'stock_movements',
self::PERMISSION_CLAIMS => 'claims',
];
}
/**
* @ManyToOne(targetEntity="App\AtechNet\CoreBundle\Entity\User", inversedBy="canView")
* @JoinColumn(name="user_id", referencedColumnName="id")
*/
private $user;
/**
* @var string
*
* @Column(name="controller", type="string", length=255)
*/
private $controller;
/**
* Set user
*
* @param User $user
* @return UserPermission
*/
public function setUser(User $user): UserPermission
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return User
*/
public function getUser(): User
{
return $this->user;
}
/**
* Set controller
*
* @param string $controller
* @return UserPermission
*/
public function setController(string $controller): UserPermission
{
$this->controller = $controller;
return $this;
}
/**
* Get controller
*
* @return string
*/
public function getController(): string
{
return $this->controller;
}
/**
* @return string
*/
public function getTitle(): string
{
return self::getPermissionChoices()[$this->getController()];
}
}