Как реализовать сложные права доступа для модели?
У меня есть модели:
class Unit {
...
}
class Order {
const STATUS_NEW = 0;
const STATUS_NEEDCONFIRM = 1;
const STATUS_CONFIRMED = 2;
const StATUS_CLOSED = 3;
/* @Column(name="status", type="smallint") */
public $status = 0;
/**
* @var Doctrine\Common\Collections\ArrayCollection <Unit>
*
* @OneToMany(
* targetEntity="Unit",
* mappedBy="order",
* cascade={"persist", "remove"}
* )
*/
public $units;
}
У меня есть роли: ROLE_MANAGER, ROLE_OPERATOR
Права доступа зависят от свойства $ order:
ROLE_MANAGER просмотреть заказ в любом статусе.
ROLE_OPERATOR может добавлять юниты и просматривать заказы только с STATUS_NEEDCONFIRM
Изменения статуса:
ROLE_MANAGER может переключать статус заказа только с STATUS_NEW на STATUS_NEEDCONFIRM
и STATUS_CONFIRMED - STATUS_CLOSED
ROLE_OPERATOR может переключать статус заказа только с STATUS_NEEDCONFIRM на STATUS_CONFIRMED, если количество единиц заказа> 0
Есть модули рабочего процесса или примеры для symfony2?