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的创建和应用。<br /><br />一、权限的创建<br /><br />  权限组的创建可以在设置中创建,也可以通过下面的方法进行创建,以下面方法创建的好处是可以在iew中通过groups_id来实现同一页面对不同权限用户显示的不同的view.<br /><br />    groups的创建在模块下的security文件夹内。通常包含两个文件xml和csv。<br />    [img]http://images.cnitblog.com/i/396990/201406/041116343951253.png[/img]<br />    model="ir.module.category" 是创建一个应用程序目录,下面的user和manager则是属于该应用程序的两个group,category_id指定目录id(这里是新创建的目录id),implied_ids可以理解为继承的group.<br />    更新后的效果如下图:<br />    [img]http://images.cnitblog.com/i/396990/201406/041117505672882.png[/img]<br />    可以看到我们手动添加的这个group已经出现在application目录下。<br />    但此时,在groups中我们新建的test/user还没有任何的权限,menus和access rights都还是空,要设置这些权限就用到了上面提到的csv文件:<br />    [img]http://images.cnitblog.com/i/396990/201406/041123101458615.png[/img]<br />    具体这些内容的含义如下:  <br /><br />Fields => Value => Description<br /><br />id => access_testing_for_user => id must be unique.<br /><br />name => testing.for.user => name is given as we want.<br /><br />model_id:id => model_test_name => model_id:id is given like model_our_class_name.<br /><br />group_id:id => group_name_test_user => group_id:id is xml id of above we create like for User and Manager.<br /><br />perm_read => 1 for True and 0 for False for read record.<br /><br />perm_write => 1 for True and 0 for False for write record.<br /><br />perm_create => 1 for True and 0 for False for create record.<br /><br />perm_unlink => 1 for True and 0 for False for delete record.<br /><br />  最后把xml和csv文件添加到__openerp__.py中。<br />二、应用<br />      以仓库盘点表为例,想要实现的是仓库的盘点由仓库人员创建和确认,由我刚才创建的test组里的人来审核。下面是stock.inventory xml文件的内容:<br />      [code]<header><br />                    <button name="action_confirm" states="draft" string="Confirm Inventory" type="object" class="oe_highlight" groups="stock.group_stock_user"/><br />                    <button name="action_done" states="confirm" string="Validate Inventory" type="object" class="oe_highlight" groups="stock.group_stock_manager"/><br />                    <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/><br />                    <button name="action_cancel_inventory" states="draft,confirm,done" string="Cancel Inventory" type="object"/><br />                    <field name="state" widget="statusbar" statusbar_visible="draft,confirm"/><br />                </header>[/code]<br />    这里的groups="stock.group_stock_manager",就是说,只有拥有仓库管理员权限的人才可以看到审核按钮,这里把它改成刚才我们创建的ID:module.group_rainsoft_test_user,这样就实现了,只有属于test组的用户才能看到审核按钮的效果。<br /><br />总结:通过设置settings中的groups可以对OpenERP的目录、action等进行控制,但对于view中的button等元素就需要依靠groups_id来进行精细控制了。<br /><br />   



  • 关于groups_id的作用,参考http://cn.openerp.cn/view_groups/,这里主要探讨的是自定义groups的创建和应用。<br /><br />一、权限的创建<br /><br />  权限组的创建可以在设置中创建,也可以通过下面的方法进行创建,以下面方法创建的好处是可以在iew中通过groups_id来实现同一页面对不同权限用户显示的不同的view.<br /><br />    groups的创建在模块下的security文件夹内。通常包含两个文件xml和csv。<br />    [img]http://images.cnitblog.com/i/396990/201406/041116343951253.png[/img]<br />    model="ir.module.category" 是创建一个应用程序目录,下面的user和manager则是属于该应用程序的两个group,category_id指定目录id(这里是新创建的目录id),implied_ids可以理解为继承的group.<br />    更新后的效果如下图:<br />    [img]http://images.cnitblog.com/i/396990/201406/041117505672882.png[/img]<br />    可以看到我们手动添加的这个group已经出现在application目录下。<br />    但此时,在groups中我们新建的test/user还没有任何的权限,menus和access rights都还是空,要设置这些权限就用到了上面提到的csv文件:<br />    [img]http://images.cnitblog.com/i/396990/201406/041123101458615.png[/img]<br />    具体这些内容的含义如下:  <br /><br />Fields => Value => Description<br /><br />id => access_testing_for_user => id must be unique.<br /><br />name => testing.for.user => name is given as we want.<br /><br />model_id:id => model_test_name => model_id:id is given like model_our_class_name.<br /><br />group_id:id => group_name_test_user => group_id:id is xml id of above we create like for User and Manager.<br /><br />perm_read => 1 for True and 0 for False for read record.<br /><br />perm_write => 1 for True and 0 for False for write record.<br /><br />perm_create => 1 for True and 0 for False for create record.<br /><br />perm_unlink => 1 for True and 0 for False for delete record.<br /><br />  最后把xml和csv文件添加到__openerp__.py中。<br />二、应用<br />      以仓库盘点表为例,想要实现的是仓库的盘点由仓库人员创建和确认,由我刚才创建的test组里的人来审核。下面是stock.inventory xml文件的内容:<br />      [code]<header><br />                    <button name="action_confirm" states="draft" string="Confirm Inventory" type="object" class="oe_highlight" groups="stock.group_stock_user"/><br />                    <button name="action_done" states="confirm" string="Validate Inventory" type="object" class="oe_highlight" groups="stock.group_stock_manager"/><br />                    <button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object"/><br />                    <button name="action_cancel_inventory" states="draft,confirm,done" string="Cancel Inventory" type="object"/><br />                    <field name="state" widget="statusbar" statusbar_visible="draft,confirm"/><br />                </header>[/code]<br />    这里的groups="stock.group_stock_manager",就是说,只有拥有仓库管理员权限的人才可以看到审核按钮,这里把它改成刚才我们创建的ID:module.group_rainsoft_test_user,这样就实现了,只有属于test组的用户才能看到审核按钮的效果。<br /><br />总结:通过设置settings中的groups可以对OpenERP的目录、action等进行控制,但对于view中的button等元素就需要依靠groups_id来进行精细控制了。<br /><br />   



  • 好文,很详细



  • 好文,记下了。


登录后回复
 

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