5

我在 OpenERP 7 中开发了一个自定义模块,我的管理员用户只能看到这个模块。

1-如何让普通用户访问我的自定义模块?

2-解决此问题的步骤是什么。

请举一个详细的例子。

4

1 回答 1

16

创建一个Security folder具有以下两个文件的文件。例如,

  • test_security.xml 和
  • ir.model.access.csv

安全/test_security.xml 文件

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data noupdate="0">
        <record model="ir.module.category" id="module_category_name_test">
            <field name="name">Management</field> 
            <field name="sequence">7</field>
        </record>

        <record id="group_name_test_user" model="res.groups">
            <field name="name">User</field>
            <field name="category_id" ref="module_category_name_test"/>
            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
        </record>

        <record id="group_name_test_manager" model="res.groups">
            <field name="name">Manager</field>
            <field name="category_id" ref="module_category_name_test"/>
            <field name="implied_ids" eval="[(4, ref('group_name_test_user'))]"/>
            <field name="users" eval="[(4, ref('base.user_root'))]"/>
        </record>
    </data>
</openerp>

在执行此管理选项后显示两个选择值,如用户和管理员setting => Users => Access Rights => Application

现在转向security/ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
unique_id, test.name, model_test_name, group_name_test_user, 1,1,0,0
unique_id, test.name, model_test_name, group_name_test_manager, 1,1,1,1

test.name是一个表名。

csv文件示例,如何创建?在哪里

  • Fields => Value => Description

  • id=> access_testing_for_user=> id 必须是唯一的。

  • name=> testing.for.user=> 名字是我们想要的。

  • model_id:id=> model_test_name=> model_id:id 像 model_our_class_name 一样给出。

  • group_id:id=> group_name_test_user=> group_id:id 是上面我们为 User 和 Manager 创建的 xml id。

  • perm_read=> 1 表示 True,0 表示 False 表示读取记录。

  • perm_write=> 1 表示 True,0 表示 False 表示写入记录。

  • perm_create=> 1 表示 True,0 表示 False 用于创建记录。

  • perm_unlink=> 1 表示 True,0 表示 False 表示删除记录。

笔记

这两个文件.xml and .csv必须列在__openerp__.py其他视图文件中。

于 2014-03-20T13:23:29.873 回答