如何实现模型的复杂访问权限断言? 我有一个模特:
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
访问权限取决于订单$ status属性: ROLE_MANAGER以任何状态查看订单。 ROLE_OPERATOR只能使用STATUS_NEEDCONFIRM
添加单位和查看订单状态变化: ROLE_MANAGER只能将订单状态从STATUS_NEW切换到STATUS_NEEDCONFIRM 和STATUS_CONFIRMED到STATUS_CLOSED
如果订单单元数>&gt;,则ROLE_OPERATOR只能将订单状态从STATUS_NEEDCONFIRM切换到STATUS_CONFIRMED。 0
symfony2有工作流程模块或示例吗?
答案 0 :(得分:0)
我可能会创建一个service来获取Order
和User
个实体,知道如何确定哪些角色具有哪些状态的权限,并为允许或拒绝返回true或false。
你可以使用ACL system,但就广泛使用情况而言,它现在已经非常稀少了。如果你走这条路线,你需要在状态改变时更新ACE以提供(或获取)适当的权限,为此,你可能再次查看某种类型的服务。