2011-08-03 14 views
1

複雑なアクセス権を実現する方法をモデルにアサーションするには? ROLE_MANAGER、ROLE_OPERATORsymfony2のオブジェクト状態別ロールへのアクセス

アクセス権は、注文の$ statusプロパティに依存します:どんな状況で ROLE_MANAGERビュー順序

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_CONFIRMEDにのみSTATUS_NEEDCONFIRMから注文状況を切り替えることができSTATUS_CLOSEDする とSTATUS_CONFIRMEDをSTATUS_NEEDCONFIRMするだけSTATUS_NEWから注文状況を切り替えることができ、場合: ROLE_OPERATORはSTATUS_NEEDCONFIRMで

ステータスの変更を単位とビューのオーダーを追加することができます注文単位数> 0

symfony2のワークフローモジュールまたはサンプルがありますか?

答えて

0

私はおそらくOrderUserエンティティをとるserviceを作成し、ステータスいる権限を持っている役割を決定する方法を知っているし、許可または拒否されたため、trueまたはfalseを返します。

ACL systemを使用していますが、これまでのところ、広範な使用法が説明されている限り、現在はまれに文書化されています。そのルートに行く場合、適切な権限を与える(または取る)ためにステータスが変更されたときにACEを更新する必要があります。そのためには、おそらく何らかのサービスを検討している可能性があります。

関連する問題