【问题标题】:Custome module is not showing to users XML,CSV access rights issue自定义模块未向用户显示 XML、CSV 访问权限问题
【发布时间】:2014-02-07 07:01:25
【问题描述】:

您好 Openerp 开发人员。我今天创建了一个自定义模块,当 Admin 访问时它工作正常,但是当其他用户访问时,模块菜单不会出现在顶部菜单栏上。我在安全文件夹中创建了访问权限,我认为我在 security.xmlcsv 文件 中做错了,谁能帮我解决这个问题。

我在下面列出了我的模块文件和代码。检查一下,让我看看我做错了什么或错过了什么。

forum_view.xml,
forum.py, 
__init__.py,
__openerp__.py
security/forum_nyros_security.xml
security/ir.model.access.csv

_初始化_.py

# -*- coding: utf-8 -*-
import forum

_openerp_.py

# -*- coding: utf-8 -*-

{
   'name' : "Nyros Discussion Forum",
   'category' : "Test",
   'version' : "1.0",
   'depends' : ['base','mail'],
   'author' : "Me",
   'description' : """\
     Open Academy modsule for managing trainings:
      - training courses
       - training sessions
     - attendees registration""",
   'data' : ['forum_view.xml',
             'security/forum_nyros_security.xml',
             'security/ir.model.access.csv'

             ],
}

forum.py

import datetime
import time
import openerp
from openerp.osv import osv, fields


class Course(osv.osv):
    _name = "forum.course"
    _inherit = ['mail.thread', 'ir.needaction_mixin']

    _columns = {
              'name' : fields.char(string="Question Title", size=256, required=True),
              'description' : fields.text(string="Question Description", required=True),
              'date_of_q_created': fields.datetime('Date of Created'),
              'category_question': fields.many2one('forum.categ', 'Question Category'),
              'create_uid': fields.many2one('res.users', 'Question Created By', readonly=True),
                 }

Course()
class question_categ(osv.osv):
    _name='forum.categ'
    _description='category of Question'
    _columns={
       'name':fields.char('Create a Category type',size=100)
    }
question_categ()

forum_view.xml

<openerp>
    <data>

        <!--  search view -->

        <record id="forum_search" model="ir.ui.view">
            <field name="name">forum.search</field>
            <field name="model">forum.course</field>
            <field name="type">search</field>
            <field name="arch" type="xml">
                <search string="Question Answer Discussion Forum">
                       <field name="name"/>
                       <field name="description"/>
                       <field name="date_of_q_created"/>
                </search>
            </field>
        </record>

        <!--  Tree View -->

        <record model="ir.ui.view" id="course_tree_view">
            <field name="name">forum.course.tree</field>
            <field name="model">forum.course</field>
            <field name="arch" type="xml">
                <tree string="Questions">
                    <field name="name"/>
                   <!-- <field name="description"/>-->
                    <field name="date_of_q_created" />
                    <field name="category_question"/>
                    <field name="create_uid"/>
                </tree>
            </field>
        </record>

        <!--  Form View -->

        <record model="ir.ui.view" id="course_form_view">
            <field name="name">forum.course.form</field>
            <field name="model">forum.course</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string="Question and Answer" version = "v7">
                    <sheet>
                    <group string="Question">
                    <field name="name"/>
                    <field name="description"/>
                    <field name="date_of_q_created" />
                    <field name="category_question"/>
                    <field name="create_uid"/>
                    </group>
                    <group string="Answers and Comments">
                    <div class="oe_chatter">
                        <field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
                        <field name="message_ids" widget="mail_thread"/>
                    </div>
                    </group>
                    </sheet>
                </form>
            </field>
        </record>

        <!--  Action View -->


    <record model="ir.actions.act_window" id="course_list_action">
        <field name="name">Questions form</field>
        <field name="res_model">forum.course</field>
                <field name="target">current</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
    </record>

        <!-- Menu Items -->

        <menuitem id="main_forum_menu" name="Manage forum" />
        <menuitem id="forum_menu" name="Discussion Forum" parent="main_forum_menu" />
        <menuitem id="courses_menu" name="Questions sidemenu" parent="forum_menu" action="course_list_action" />


    </data>
</openerp>

security/forum_nyros_security.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
    <record id="group_forum_manager" model="res.groups">
        <field name="name">Forum Management/ Manager</field>
    </record>
    <record id="group_forum_user" model="res.groups">
        <field name="name">Forum Management / User</field>
    </record>
</data>
</openerp>

security/ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_forum_course,forum.course,model_forum_course,forum_nyros.group_forum_user,1,1,1,1
access_forum_categ,forum.categ,model_forum_categ,forum_nyros.group_forum_user,1,1,1,1

【问题讨论】:

    标签: python openerp openerp-7


    【解决方案1】:

    在您的 _openerp_.py 文件中尝试以下行

    'installable': True,
    'auto_install': False,
    

    您的security/forum_nyros_security.xml

    <?xml version="1.0" encoding="utf-8"?>
    <openerp>
    <data noupdate="0">
        <record model="ir.module.category" id="module_category_forum">
            <field name="name">Forum Management</field>
            <field name="sequence">7</field>
        </record>
    
        <record id="group_forum_user" model="res.groups">
            <field name="name">User</field>
            <field name="category_id" ref="module_category_forum"/>
            <field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
        </record>
    
        <record id="group_forum_manager" model="res.groups">
            <field name="name">Manager</field>
            <field name="category_id" ref="module_category_forum"/>
            <field name="implied_ids" eval="[(4, ref('group_forum_user'))]"/>
            <field name="users" eval="[(4, ref('base.user_root'))]"/>
        </record>
    </data>
    </openerp>
    

    还有你的security/ir.model.access.csv

    id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
    access_forum_course,forum.course,model_forum_course,group_forum_user,1,1,1,1
    access_forum_categ,forum.categ,model_forum_categ,group_forum_user,1,1,1,1
    

    现在执行以下步骤。

    • 设置 => 用户 => 点击演示用户
    • 现在转到访问权限 => 您将看到 论坛管理
    • 选择用户并保存。
    • 现在使用演示用户登录,您将看到您的模块。

    注意:作为管理员,您可以授予用户权限。如果用户对论坛管理(保持空白)没有任何访问权限,则用户将不会显示模块。

    之后你就可以展示你的模块了。

    【讨论】:

    • 我试过你说的,但没有改变。你能帮我进一步吗..?
    • 很抱歉.. 没有变化.. 感谢您的帮助.. 但是您能在这方面提供更多帮助吗.. 仍然没有显示在用户中。我更新了模块,重新启动了服务器,没有用。你能找到哪里出错了
    • 我不知道你是如何测试的,因为我的目的是它的工作。我添加了我的答案并执行了每个步骤。
    • 请尝试一下,如果有任何问题,请告诉我。
    【解决方案2】:

    代码对我来说似乎还不错。

    您的非管理员用户呢?是在新组吗?如果没有,请把它放在那里:-)

    【讨论】:

    • 创建了组,将用户添加到该组后,用户可以访问模块,但我想删除这个“将用户添加到组”步骤,你能告诉我我们如何允许管理员和用户拥有对模块的完全访问权限。
    • 在您的 csv 文件中用 base.group_user 替换 group_forum_user,这样每个用户都可以获得新模型的所有权限
    【解决方案3】:

    在您的 openerp 客户端中,转到设置/技术/安全/访问权限。检查您的访问创建的访问权限是否存在。

    【讨论】:

      猜你喜欢
      • 2020-07-19
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 2017-11-12
      相关资源
      最近更新 更多