• 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

工作流中如何根据用户组的权限判断该用户是否有权进行某一步的操作?

已定时 已固定 已锁定 已移动 Odoo 新手求助
15 帖子 3 发布者 8711 浏览
    • 从旧到新
    • 从新到旧
    • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • B 离线
    B 离线
    BraidTim
    写于 最后由 编辑
    #1

    RT,是在工作流那儿实现还是在类里面实现?
    自带的模块里面有没有什么简单的例子可以借鉴一下?
    谢谢各位大神

    D 1 条回复 最后回复
    0
  • JoshuaJ 离线
    JoshuaJ 离线
    Joshua 管理员
    写于 最后由 编辑
    #2

    定义WorkflowTransition上的group_id可以限制只有具有这些权限组的用户才能执行这个Transition。

    【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

    B 1 条回复 最后回复
    0
  • D 离线
    D 离线
    dodo
    在 中回复了BraidTim 最后由 编辑
    #3

    @braidtim 0_1501656664004_74b9f617-c2c5-4dc4-8d2d-af2edce4489b-image.png
    直接加上group即可,这是自带的休假模块

    B 1 条回复 最后回复
    0
  • B 离线
    B 离线
    BraidTim
    在 中回复了Joshua 最后由 编辑
    #4

    @joshua 在 工作流中如何根据用户组的权限判断该用户是否有权进行某一步的操作? 中说:

    WorkflowTransition
    如何知道我在UI界面自己新建的group的group_id?
    或者用代码创建group和user并给予对应关系应该如何操作?

    1 条回复 最后回复
    0
  • B 离线
    B 离线
    BraidTim
    在 中回复了dodo 最后由 编辑
    #5

    @dodo
    谢谢,我自己在UI界面设置那儿新建了一个group,并新建了一个user归于这个group想测试一下,但是不知道group_id后面ref应该填什么。
    比如我新建的group叫GroupA,直接ref="GroupA"会报错,那么应该怎么写?

    1 条回复 最后回复
    0
  • JoshuaJ 离线
    JoshuaJ 离线
    Joshua 管理员
    写于 最后由 Joshua 编辑
    #6

    ref的值是External ID也叫xml-id,External ID是通过xml来创建这个记录时赋予的,例如:<record id="sale.group_sale_layout" model="res.groups">。External ID就是sale.group_sale_layout
    如果记录是在界面创建的,是没有个External ID的。解决办法:在界面导出这个界面创建的group,系统会自动分配一个External ID,但是为了以后维护我建议是你用xml来创建group比较好。

    【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

    B 2 条回复 最后回复
    0
  • B 离线
    B 离线
    BraidTim
    在 中回复了Joshua 最后由 编辑
    #7

    @joshua
    先谢谢大神!
    group可能包含对多个应用的权限控制吧?那么xml是要写在自己的应用里面还是写在什么系统路径?写在自己应用或者是系统的话,删除的时候会不会有什么残留或者出错?
    我看UI界面创建group里面参数还挺多的,有什么系统自带的例子么(不好意思,我又厚脸皮的来要例子了)?

    1 条回复 最后回复
    0
  • B 离线
    B 离线
    BraidTim
    在 中回复了Joshua 最后由 BraidTim 编辑
    #8

    @joshua
    我按照您说的导出,看到ID是__export__.res_groups_25,果然是导出才生成的,不易于管理。但是我去wkf_transition表里面看记录的就是25这个值啊,找了找名字带group的其他表,也没看到哪儿有__export__.res_groups_25对应25这个关系表啊?
    虽然实现了权限控制,但是好像啥提示都没有?比如弹窗您无权限之类的,就是单纯的点了没用吗?还是说提示要在python里面写?
    初始admin账户是不是默认所有权限的?我新建的group没加admin,似乎都能无障碍操作。

    1 条回复 最后回复
    0
  • JoshuaJ 离线
    JoshuaJ 离线
    Joshua 管理员
    写于 最后由 Joshua 编辑
    #9

    也没看到哪儿有__export__.res_groups_25对应25这个关系表啊?

    关系表ir.model.data。

    虽然实现了权限控制,但是好像啥提示都没有?比如弹窗您无权限之类的,就是单纯的点了没用吗?还是说提示要在python里面写?

    对的,目前在工作流里面写的group是没有提示的,如果需要提示,你可以在python里面写。

    初始admin账户是不是默认所有权限的?我新建的group没加admin,似乎都能无障碍操作。

    对的,他是有访问操作所有对象/记录的权限。

    【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

    B 1 条回复 最后回复
    0
  • B 离线
    B 离线
    BraidTim
    在 中回复了Joshua 最后由 编辑
    #10

    @joshua
    我看写在python里面的都是输出到服务器那个exe上面的
    有什么接口可以在python那儿给浏览器弹窗吗?
    我看有onchange函数可以return warning的,试了一下似乎不行?是因为按钮是multi吗?
    顺便问问python函数前面@api.onchange('XX')或者@api.multi
    这些前缀,那么在哪儿能看到更详细一点各种前缀的介绍?
    谢谢

    1 条回复 最后回复
    0
  • JoshuaJ 离线
    JoshuaJ 离线
    Joshua 管理员
    写于 最后由 编辑
    #11

    有什么接口可以在python那儿给浏览器弹窗吗?
    我看有onchange函数可以return warning的,试了一下似乎不行?是因为按钮是multi吗?

    return warning是onchange用的,平时的方法可以用通过raise来实现,例如:
    raise UserError(_('You can not delete a sent quotation or a sales order! Try to cancel it before.'))

    顺便问问python函数前面@api.onchange('XX')或者@api.multi
    这些前缀,那么在哪儿能看到更详细一点各种前缀的介绍?

    参考这个帖子:http://odoocn.org/topic/4602/odoo-装饰器的用法/3

    【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

    B 1 条回复 最后回复
    0
  • B 离线
    B 离线
    BraidTim
    在 中回复了Joshua 最后由 编辑
    #12

    @joshua
    试了一下似乎出错了
    NameError: global name 'UserError' is not defined
    要加什么头文件吗?我这儿odoo10.0

    JoshuaJ 1 条回复 最后回复
    0
  • JoshuaJ 离线
    JoshuaJ 离线
    Joshua 管理员
    在 中回复了BraidTim 最后由 编辑
    #13

    @braidtim
    在文件开头要加入引入这个python模块from odoo.exceptions import UserError

    【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

    B 1 条回复 最后回复
    0
  • B 离线
    B 离线
    BraidTim
    在 中回复了Joshua 最后由 编辑
    #14

    @joshua
    谢谢!最后问问去哪儿能看到自己建的类里面除了自己定义的还有那些默认的参数可以调用?我看是从models.Model继承的,但是去看model.py文件也没找到什么。比如我想判断当前用户的组别,如果没权限就raise个error,有了就直接通过这样。组别这个参数该怎么获取?

    1 条回复 最后回复
    0
  • JoshuaJ 离线
    JoshuaJ 离线
    Joshua 管理员
    写于 最后由 Joshua 编辑
    #15

    @BraidTim
    建议一个帖子一个主题,你的问题在文档里都有介绍,完整的入门教程可以参考这个:http://www.odoo.com/documentation/10.0/howtos/backend.html,
    更多的框架的信息可以看其他章节 http://www.odoo.com/documentation/10.0/index.html

    【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

    1 条回复 最后回复
    0

  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。