如何在odoo11中为用户创建规则

时间:2018-05-02 11:15:53

标签: odoo-10 odoo-11

如何为odoo11中的用户创建 规则。我想向管理员显示特定的菜单项而不是用户。在这里,我为用户和经理创建了组,但无法为用户创建规则。我的代码是:

http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.my</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>myproject</name>
<description>Demo project for Spring Boot</description>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
    <relativePath/>
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud-gcp.version>1.0.0.M3</spring-cloud-gcp.version>
    <spring-cloud.version>Finchley.M9</spring-cloud.version>
    <appengine.maven.plugin>1.3.2</appengine.maven.plugin>


    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>

    <INSTANCE_CONNECTION_NAME>mytestproject1-123456:europe-west1:mydb</INSTANCE_CONNECTION_NAME>
    <user>username</user>
    <password>password</password>
    <database>exam</database>
    <sqlURL>jdbc:mysql://google/${database}?cloudSqlInstance=${INSTANCE_CONNECTION_NAME}&amp;socketFactory=com.google.cloud.sql.mysql.SocketFactory&amp;user=${user}&amp;password=${password}&amp;useSSL=false</sqlURL>

</properties>


<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-gcp-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.google.cloud.sql</groupId>
        <artifactId>mysql-socket-factory-connector-j-6</artifactId>
        <version>1.0.8</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-gcp-dependencies</artifactId>
            <version>${spring-cloud-gcp.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-maven-plugin</artifactId>
            <version>1.9.63</version>
        </plugin>
        <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>appengine-maven-plugin</artifactId>
            <version>${appengine.maven.plugin}</version>
        </plugin>
    </plugins>
</build>

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

1 个答案:

答案 0 :(得分:0)

创建规则后,您需要向菜单项上的属性添加组 例如:- 如果您想显示特定用户代码的菜单,例如

<menuitem
        id="sub_menu"
        parent="main_menu"
        name="Sub Menu1"
        groups="weather.group_manager"
        action="weather.sub_menu_action"/>

或者您也可以在字段级别进行分组

 <record id="weather.weather_menu_view_form" model="ir.ui.view">
        <field name="name">form</field>
        <field name="model">my.app</field>
        <field name="arch" type="xml">
            <form>
                  <field name="name"/>
                  <field name="description"/>
                  <field name="verified_at" groups="weather.rights_current_weather_manager"/>
            </form>
        </field>
</record>

[编辑]

在您的代码中,两组

1。用户(rights_current_weather_user) 该用户来自“ base.group_user”

2.Manager(rights_current_weather_manager) 从“ rights_current_weather_user”发出的经理用户

这意味着base.group_user>用户>管理器

现在是否要隐藏“用户”菜单。并仅显示“管理员”,请立即向“用户”登录时将属性添加到menuitem groups =“ weather.rights_current_weather_manager”

关于规则,一条记录规则限制了访问权限 例如:- 您只想显示“用户”的今天天气数据,您可以像这样

<record id="today_weather_data_only" model="ir.rule">
    <field name="name">Only Today Data For User</field>
    <field name="model_id" ref="weather.model_name"/>
    <field name="groups" eval="[(4,ref('weather.rights_current_weather_user'))]"/>
    <field name="perm_read" eval="1"/>
    <field name="perm_write" eval="0"/>
    <field name="perm_create" eval="0"/>
    <field name="perm_unlink" eval="0" />
    <field name="domain_force">[('state','=','today')]</field>
</record>

“用户”登录时,只会显示今天的数据。