Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

再谈Odoo中的groups_id的应用



  • 关于groups_id的作用,参考http://cn.openerp.cn/view_groups/,这里主要探讨的是自定义groups的创建和应用。

    一、权限的创建

      权限组的创建可以在设置中创建,也可以通过下面的方法进行创建,以下面方法创建的好处是可以在iew中通过groups_id来实现同一页面对不同权限用户显示的不同的view.

        groups的创建在模块下的security文件夹内。通常包含两个文件xml和csv。
        [img]http://images.cnitblog.com/i/396990/201406/041116343951253.png[/img]
        model="ir.module.category" 是创建一个应用程序目录,下面的user和manager则是属于该应用程序的两个group,category_id指定目录id(这里是新创建的目录id),implied_ids可以理解为继承的group.
        更新后的效果如下图:
        [img]http://images.cnitblog.com/i/396990/201406/041117505672882.png[/img]
        可以看到我们手动添加的这个group已经出现在application目录下。
        但此时,在groups中我们新建的test/user还没有任何的权限,menus和access rights都还是空,要设置这些权限就用到了上面提到的csv文件:
        [img]http://images.cnitblog.com/i/396990/201406/041123101458615.png[/img]
        具体这些内容的含义如下:  

    Fields => Value => Description

    id => access_testing_for_user => id must be unique.

    name => testing.for.user => name is given as we want.

    model_id:id => model_test_name => model_id:id is given like model_our_class_name.

    group_id:id => group_name_test_user => group_id:id is xml id of above we create like for User and Manager.

    perm_read => 1 for True and 0 for False for read record.

    perm_write => 1 for True and 0 for False for write record.

    perm_create => 1 for True and 0 for False for create record.

    perm_unlink => 1 for True and 0 for False for delete record.

      最后把xml和csv文件添加到__openerp__.py中。
    二、应用
          以仓库盘点表为例,想要实现的是仓库的盘点由仓库人员创建和确认,由我刚才创建的test组里的人来审核。下面是stock.inventory xml文件的内容:
          [code]<header>
                        <button name="action_confirm" states="draft" string="Confirm Inventory" type="object" class="oe_highlight" groups="stock.group_stock_user"/>
                        <button name="action_done" states="confirm" string="Validate Inventory" type="object" class="oe_highlight" groups="stock.group_stock_manager"/>
                        <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/>
                        <button name="action_cancel_inventory" states="draft,confirm,done" string="Cancel Inventory" type="object"/>
                        <field name="state" widget="statusbar" statusbar_visible="draft,confirm"/>
                    </header>[/code]
        这里的groups="stock.group_stock_manager",就是说,只有拥有仓库管理员权限的人才可以看到审核按钮,这里把它改成刚才我们创建的ID:module.group_rainsoft_test_user,这样就实现了,只有属于test组的用户才能看到审核按钮的效果。

    总结:通过设置settings中的groups可以对OpenERP的目录、action等进行控制,但对于view中的button等元素就需要依靠groups_id来进行精细控制了。

       



  • 关于groups_id的作用,参考http://cn.openerp.cn/view_groups/,这里主要探讨的是自定义groups的创建和应用。

    一、权限的创建

      权限组的创建可以在设置中创建,也可以通过下面的方法进行创建,以下面方法创建的好处是可以在iew中通过groups_id来实现同一页面对不同权限用户显示的不同的view.

        groups的创建在模块下的security文件夹内。通常包含两个文件xml和csv。
        [img]http://images.cnitblog.com/i/396990/201406/041116343951253.png[/img]
        model="ir.module.category" 是创建一个应用程序目录,下面的user和manager则是属于该应用程序的两个group,category_id指定目录id(这里是新创建的目录id),implied_ids可以理解为继承的group.
        更新后的效果如下图:
        [img]http://images.cnitblog.com/i/396990/201406/041117505672882.png[/img]
        可以看到我们手动添加的这个group已经出现在application目录下。
        但此时,在groups中我们新建的test/user还没有任何的权限,menus和access rights都还是空,要设置这些权限就用到了上面提到的csv文件:
        [img]http://images.cnitblog.com/i/396990/201406/041123101458615.png[/img]
        具体这些内容的含义如下:  

    Fields => Value => Description

    id => access_testing_for_user => id must be unique.

    name => testing.for.user => name is given as we want.

    model_id:id => model_test_name => model_id:id is given like model_our_class_name.

    group_id:id => group_name_test_user => group_id:id is xml id of above we create like for User and Manager.

    perm_read => 1 for True and 0 for False for read record.

    perm_write => 1 for True and 0 for False for write record.

    perm_create => 1 for True and 0 for False for create record.

    perm_unlink => 1 for True and 0 for False for delete record.

      最后把xml和csv文件添加到__openerp__.py中。
    二、应用
          以仓库盘点表为例,想要实现的是仓库的盘点由仓库人员创建和确认,由我刚才创建的test组里的人来审核。下面是stock.inventory xml文件的内容:
          [code]<header>
                        <button name="action_confirm" states="draft" string="Confirm Inventory" type="object" class="oe_highlight" groups="stock.group_stock_user"/>
                        <button name="action_done" states="confirm" string="Validate Inventory" type="object" class="oe_highlight" groups="stock.group_stock_manager"/>
                        <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/>
                        <button name="action_cancel_inventory" states="draft,confirm,done" string="Cancel Inventory" type="object"/>
                        <field name="state" widget="statusbar" statusbar_visible="draft,confirm"/>
                    </header>[/code]
        这里的groups="stock.group_stock_manager",就是说,只有拥有仓库管理员权限的人才可以看到审核按钮,这里把它改成刚才我们创建的ID:module.group_rainsoft_test_user,这样就实现了,只有属于test组的用户才能看到审核按钮的效果。

    总结:通过设置settings中的groups可以对OpenERP的目录、action等进行控制,但对于view中的button等元素就需要依靠groups_id来进行精细控制了。

       



  • 好文,很详细



  • 好文,记下了。


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待