Как создать правило для пользователей в odoo11 - PullRequest
0 голосов
/ 02 мая 2018

Как создать правило для пользователей в odoo11. Я хочу показать конкретный пункт меню только менеджеру, а не пользователю. Здесь я создал группу для пользователя и менеджера, но не смог создать правило для пользователя. Мой код:

<?xml version="1.0" encoding="utf-8"?>

<odoo>
    <data noupdate="1">
        <record model="ir.module.category" id="rights_current_weather">
            <field name="name">Weather Info</field> 
            <field name="sequence">2</field>
        </record>

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

        <record id="rights_current_weather_manager" model="res.groups">
            <field name="name">Manager</field>
            <field name="category_id" ref="rights_current_weather"/>
            <field name="implied_ids" eval="[(4, ref('rights_current_weather_user'))]"/>
            <field name="users" eval="[(4, ref('base.user_root'))]"/>
        </record>

    </data>
</odoo>

1 Ответ

0 голосов
/ 11 июля 2018

После создания правила необходимо добавить группы к атрибуту в пункте меню. например:- Если вы хотите показать меню для определенного кода пользователя, например

<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>

[EDIT]

в вашем коде, две группы

1.Пользователь (rights_current_weather_user) этот пользователь унаследован от "base.group_user"

2. Менеджер (rights_current_weather_manager) Пользователь менеджера, унаследованный от "rights_current_weather_user"

, что означает base.group_user> Пользователь> Менеджер

теперь, если вы хотите скрыть какое-то меню для «Пользователь». и показывать только для «Менеджера», добавьте атрибут в menuitem groups = «weather.rights_current_weather_manager» теперь, когда вы входите в систему с «User», вы не можете видеть это меню

Теперь о правиле, правило записи ограничивает права доступа. например:- Вы хотите, чтобы отображались только данные о погоде для пользователя "Пользователь", который можно кодировать как

<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>

при входе пользователя в систему будут отображаться только данные за сегодня.

...