Odoo 中文社区

    • 注册
    • 登录
    • 搜索
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组

    Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

    由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

    本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

    开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

    如果您登录系统碰到问题,请在微信公众号留言:

    已解决 user_has_groups 里的 用户组别名怎么获取

    Odoo 新手求助
    2
    8
    614
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • 元
      元宝 最后由 编辑

      比如我要判断这个用户是不是库存的管理员 user_has_groups('stock.XXXXXX');
      里面的stock.XXX 该怎么填写。这个值可以在哪里看到

      1 条回复 最后回复 回复 引用 0
      • digitalsatori
        digitalsatori 管理员 最后由 digitalsatori 编辑

        在模块的翻译文件里 搜索 model:res.groups。大致可以找到需要的用户组名。如何找到自己创建的用户组的name。如图是库存用户的 groupsname

        这个找法不太正确啊😲

        用户组其实就是res_groups表中的一条记录。这条记录在Odoo中一般是通过xml的导入生成的。一般用户组的记录都是放在security目录下,比如你所说的stock模块的库存管理员的用户组的定义就在stock/security/stock_security.xml文件中定义, 注意下面的id(group_stock_manager):

        <?xml version="1.0" encoding="utf-8"?>
        <odoo>
        <data noupdate="0">
         ...
            <record id="group_stock_manager" model="res.groups">
                <field name="name">Manager</field>
                <field name="category_id" ref="base.module_category_warehouse_management"/>
                <field name="implied_ids" eval="[(4, ref('group_stock_user'))]"/>
                <field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
            </record>
        ....
        

        【上海先安科技】(tony AT openerp.cn)

        元 1 条回复 最后回复 回复 引用 0
        • 元
          元宝 最后由 元宝 编辑

          在模块的翻译文件里 搜索 model:res.groups。大致可以找到需要的用户组名。如何找到自己创建的用户组的name。如图是库存用户的 groupsname 613201bf-44f6-4e5d-ac04-23ae93d3021a-image.png

          1 条回复 最后回复 回复 引用 0
          • 元
            元宝 最后由 编辑

            已解决 ir_model_data 筛选 model 是res.group 就是用户所在的用户组了。name是用户组的名称 res_id 对应res_groups 里的用户组主键id

            digitalsatori 1 条回复 最后回复 回复 引用 0
            • digitalsatori
              digitalsatori 管理员 最后由 digitalsatori 编辑

              在模块的翻译文件里 搜索 model:res.groups。大致可以找到需要的用户组名。如何找到自己创建的用户组的name。如图是库存用户的 groupsname

              这个找法不太正确啊😲

              用户组其实就是res_groups表中的一条记录。这条记录在Odoo中一般是通过xml的导入生成的。一般用户组的记录都是放在security目录下,比如你所说的stock模块的库存管理员的用户组的定义就在stock/security/stock_security.xml文件中定义, 注意下面的id(group_stock_manager):

              <?xml version="1.0" encoding="utf-8"?>
              <odoo>
              <data noupdate="0">
               ...
                  <record id="group_stock_manager" model="res.groups">
                      <field name="name">Manager</field>
                      <field name="category_id" ref="base.module_category_warehouse_management"/>
                      <field name="implied_ids" eval="[(4, ref('group_stock_user'))]"/>
                      <field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
                  </record>
              ....
              

              【上海先安科技】(tony AT openerp.cn)

              元 1 条回复 最后回复 回复 引用 0
              • digitalsatori
                digitalsatori 管理员 @元宝 最后由 digitalsatori 编辑

                @元宝

                已解决 ir_model_data 筛选 model 是res.group 就是用户所在的用户组了。name是用户组的名称 res_id 对应res_groups 里的用户组主键id

                这也的确是一个方法,因为所有从xml导入的数据都会同时在ir.model.data表中留下记录。

                【上海先安科技】(tony AT openerp.cn)

                1 条回复 最后回复 回复 引用 0
                • 元
                  元宝 @digitalsatori 最后由 编辑

                  @digitalsatori
                  fb6aaa47-dc1b-4003-a38b-ef982ad1cbca-image.png
                  daac18b6-2ed2-4bfc-89af-1f73a7818b1a-image.png
                  我新增一个用户组的话 我怎么在页面修改name。还是说 新增用户组的操作 最好是通过 security 去新增用户组 然后更新模块。

                  1 条回复 最后回复 回复 引用 0
                  • digitalsatori
                    digitalsatori 管理员 最后由 digitalsatori 编辑

                    @元宝
                    在界面中新增的群组是没有xmlid的,也就是没有ir.model.data表的一条对应记录从而没有记录xmlid的name字段值,比如group_stock_manager。
                    这样你就不能在程序中通过xmlid来引用这条记录,当然你仍然可以通过search这个组的比如组名来得到这条记录。
                    如果你需要在程序中引用到对应用户组,最好的办法是在你的模块的security目录下通过xml来添加用户组。

                    【上海先安科技】(tony AT openerp.cn)

                    元 1 条回复 最后回复 回复 引用 0
                    • 元
                      元宝 @digitalsatori 最后由 编辑

                      @digitalsatori 在 user_has_groups 里的 用户组别名怎么获取 中说:

                      的办法是在你的模块的security目录下通过xml来添加用

                      ♥ 好的。谢谢你!

                      1 条回复 最后回复 回复 引用 0
                      • First post
                        Last post