企业网站怎么做外链,wordpress建立网站实例,网站制作最便宜,wordpress 创建招生网假设一个小区管理员用户#xff0c;只想看到自己小区的信息。
首先添加一个用户信息选项卡界面#xff0c;如下图的 用户 隶属信息#xff1a; 我们在自己创建的user模块中#xff0c;views文件夹下添加base_user.xml
?xml version1.0 encoding只想看到自己小区的信息。
首先添加一个用户信息选项卡界面如下图的 用户 隶属信息 我们在自己创建的user模块中views文件夹下添加base_user.xml
?xml version1.0 encodingUTF-8 ?
odoorecord idev_01_base_res_users_inherit_form modelir.ui.viewfield namenameres.users.simple.form.inherit/fieldfield namemodelres.users/fieldfield nameinherit_id refbase.view_users_form/field namearch typexmlxpath expr//page[nameaccess_rights] positionafterpage string隶属信息group col4field nameuse_community_id//group/page/xpath/field/record
/odoo
上述代码中添加的use_community_id字段是引用的user模型层如下
# -*- coding: utf-8 -*-from odoo import models, fields, apiclass user(models.Model):_inherit res.usersclass ResUsers(models.Model):扩展用户类型_name res.users_inherit res.usersuse_community_id fields.Many2one(community, stringu所属小区)api.model# tools.ormcache(self._uid)def context_get(self):# 扩展context,方便xml里面写domainuser self.env.userresult super(ResUsers, self).context_get()result[self_community_id] user.use_community_id.idreturn result
user模块的最后一项工作就是在__manifest__.py中添加依赖项在depends属性中添加需要被权限控制的模块名添加刚才创建的base_user.xml。
在需要被控制的模块的views.xml的action中添加一个名为domain的字段来控制是否为与当前用户关联的数据。换言之就是只显示自己数据。
!-- 小区 Action --
record idaction_community modelir.actions.act_windowfield namename小区信息/fieldfield nameres_modelcommunity/fieldfield nameview_typeform/fieldfield nameview_modetree,form/fieldfield namehelp typehtmlp classoe_view_nocontent_create创建第一个小区信息/p/fieldfield namedomain[(id,,self_community_id)]/field
/record上述代码中的self_community_id是ResUsers类的context_get方法注册来的。做完这一步就是注册菜单了如下代码
!-- 小区 Menuitem --
menuitem idmenu_community_root name小区 groupsev_01.group_tw_use_xq_user/
menuitem idmenu_community name小区信息 parentmenu_community_root actionaction_community sequence10 groupsev_01.group_tw_use_xq_user/通过配置多个action和菜单可以让不同的用户显示不同的菜单例如超级管理员的菜单应该显示全部小区信息而小区用户只能显示自己小区的信息。最后记得升级user模块和被权限控制的模块效果如下