跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. OpenERP的权限设置

OpenERP的权限设置

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
8 帖子 7 发布者 10.5k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • N 离线
    N 离线
    NewZN
    写于 最后由 编辑
    #1

    OpenERP的权限的核心是权限组(res_groups)。对每个权限组,可以设置权限组的Menus,Access Right,Record Rule。

    Menus表示,该权限组可以访问哪些菜单。如果指定某权限组可以访问某父菜单,那么,系统会根据该权限组可访问的对象(Access Right中定义)自动计算,哪些子菜单可以显示。计算规则是,如果没有为该子菜单指定任何权限组,且该权限组对该子菜单关联的对象有至少读的权限,那么,系统会自动显示该菜单。如果不希望系统自动显示某子菜单,只要把该子菜单加入系统自带的“Useability / No One”权限组,该菜单就不会被显示了。“Useability / No One”通常用来隐藏某些菜单,通常不会指定任何用户属于“Useability / No One”权限组。

    Access Right表示,该权限组可以访问哪些对象,以及拥有读、写、删、建中的哪个权限。如下图中最后一行,表示,Employee权限组对Partner(res_partner)对象只有读权限。
    [attachimg=1]

    Record Rule表示,该权限组可以访问对象中的哪些记录,以及拥有读、写、删、建中的哪个权限。Access Right指定的权限,是对该对象的数据表里的所有记录拥有该权限。Record Rule指定,只对该对象的数据表里的某些记录(通过定义过滤条件Domain指定)拥有某些(读、写、删、建)权限。
    [attachimg=2]

    如上图表示,Employee权限组,对申购单(Purchase Requisition) 对象中,对本部门的,且处于草稿状态的申购单,拥有创建、删除、更新的权限。对于非本部门的或者不是草稿状态的申购单,由于不符合Domain条件,更新或删除时候,系统都会报错。
    ['&',('department', '=', user.context_department_id.id),('state', '=', 'pr_draft')]

    这个Domain条件表示,申购单的部门等于当前用户的部门,申购单的状态是草稿(pr_draft)。系统的实际实现是,在数据库访问的Update, Delete等语句中,强行加上本处定义的Domain条件(因此在系统内部,此处的Domain条件叫“Domain_Force”,哈哈)。

    字段权限,还可以指定,某字段只能供某权限组访问。Access Right和Record Rule表示,权限组可以访问哪些对象,以及对象里的哪些记录。而字段权限指定,权限组能访问记录里的哪个字段。如下例表示,只有base.group_admin权限组才可以读、写name字段。
    'name': fields.char('Name', size=128, required=True, select=True, write=['base.group_admin'],read=['base.group_admin'] ),
    又如下例在视图上指定,只有group_product_variant权限组才能看到产品的variants(规格)字段。
    <field name="variants" groups="product.group_product_variant"/>

    工作流权限,在工作流的迁移(Transition)的定义中,可以指定哪个权限组可以触发本迁移,定义语法是:<field name="group_id" ref="groupid"/> 。

    灵活组合上述权限设置,可以满足非常复杂的权限要求,如工作流的审批权限,菜单的访问权限,记录的访问权限,字段的访问权限,等等。

    1 条回复 最后回复
    0
    • M 离线
      M 离线
      mrshelly
      写于 最后由 编辑
      #2

      占座慢慢看.....

      1 条回复 最后回复
      0
      • 小 离线
        小 离线
        小鑫
        写于 最后由 编辑
        #3

        支持

        1 条回复 最后回复
        0
        • Q 离线
          Q 离线
          qincai
          写于 最后由 编辑
          #4

          [quote author=小鑫 link=topic=2503.msg8286#msg8286 date=1309848882]
          支持
          [/quote] 😄 😄

          1 条回复 最后回复
          0
          • L 离线
            L 离线
            lmjavajas
            写于 最后由 编辑
            #5

            太棒了。

            1 条回复 最后回复
            0
            • 1 离线
              1 离线
              1348647581qq.com
              写于 最后由 编辑
              #6

              说的很清楚,谢谢!!

              1 条回复 最后回复
              0
              • M 离线
                M 离线
                mf1389004071
                写于 最后由 编辑
                #7

                mark

                1 条回复 最后回复
                0

                • 登录

                • 没有帐号? 注册

                • 登录或注册以进行搜索。
                • 第一个帖子
                  最后一个帖子
                0
                • 版块
                • 标签
                • 热门
                • 用户
                • 群组