代码之家  ›  专栏  ›  技术社区  ›  Andrius

使用不同的CRUD选项在同一对象上记录规则?

  •  0
  • Andrius  · 技术社区  · 11 年前

    我需要对同一对象应用不同的记录规则,以根据记录的状态赋予不同的访问权限。 例如,有三个阶段:阶段1、阶段2、阶段3。

    在第一阶段,具有特定访问权限组的用户可以执行以下操作:

    读,写,创建自己的记录。当他按下按钮转到阶段2时,他只能读取该记录(如果该记录将返回到阶段1,而不是由该用户执行,则他可以执行以前的操作)。而在舞台3上,该用户既看不到任何记录,也看不到他的任何其他记录。

    我试过这样做:

    第一条规则(适用于r、w、c):

    [('user_id','=',user.id)]

    这个有效。 但我在进入其他阶段时会遇到问题。 我试图创建另一条规则2(apply r):

    [('stage','=','stage2')] 但它不起作用,用户仍然可以在阶段1中做任何他可以做的事情。

    如果我制定了这样的规则(适用于r、w、c):

    ['|', ('user_id','=',user.id),('stage','=','stage1')]

    然后它会给出访问权限错误,您无法进入下一阶段,因为您在该阶段并没有读取访问权限。 如何解决这一问题?。。

    1 回复  |  直到 11 年前
        1
  •  0
  •   Andrius    11 年前

    这一条似乎有效:

    需要创建两个规则(应用r、w、c):

    ['&', ('user_id','=',user.id),('state','=','stage1')]

    第二条规则(适用于r):

    [('stage','=','stage2')]