跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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 中文社区

  1. 主页
  2. 版块
  3. Odoo 新手求助
  4. 请问:7.0 如何限制用户重复登录?

请问:7.0 如何限制用户重复登录?

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

    各位大牛,小弟刚接触OpenERP一个月,最近遇到用户重复登录的问题。
    问题描述:同一个用户可以在不同电脑上或者同一台电脑不同浏览器同时在线。
    请问各位大牛们是怎么解决这个问题的呢?

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

      想问一下为什么要解决这个“问题”

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

      1 条回复 最后回复
      0
      • T 离线
        T 离线
        tudou
        写于 最后由 编辑
        #3

        额,这个算是一个客户需求,同一个用户如果同时在线操作很容易出错的。

        1 条回复 最后回复
        0
        • digitalsatoriD 离线
          digitalsatoriD 离线
          digitalsatori 管理员
          写于 最后由 编辑
          #4

          我是希望能了解这个需求的合理性。你能举个例子,怎么样操作会导致很容易出错,而单一用户在线怎样就防止了这种出错。

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

          1 条回复 最后回复
          0
          • T 离线
            T 离线
            tudou
            写于 最后由 编辑
            #5

            比方说,公用账号admin,他们同时在不同地方登陆操作相同一条数据,但是对数据的处理不同。A人员将数据置为状态1,B人员将数据置为状态2,这时A先保存数据进入1流程,B在保存时不会再次判断该条数据的状态数据进入2流程,这个时候就会将流程打乱了。

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

              [quote author=tudou link=topic=16434.msg28172#msg28172 date=1402374122]
              比方说,公用账号admin,他们同时在不同地方登陆操作相同一条数据,但是对数据的处理不同。A人员将数据置为状态1,B人员将数据置为状态2,这时A先保存数据进入1流程,B在保存时不会再次判断该条数据的状态数据进入2流程,这个时候就会将流程打乱了。
              [/quote]


              首先你说的这种情况跟是否单个用户登录没有关系,因为不同用户也可能出现同时操作同一个数据记录的情况。
              第二,什么是同时?如果确实是有两个数据库的transaction在操作同一条记录,一个transaction是会abort掉的。所以,在同时的情况下也只会有一个transaction能成功更新数据,这是在数据库层面保证的。


              另外你说不希望同一用户重复登录。是指:后登录的用户把前一个用户踢掉呢?还是前一个用户没有退出的情况下,后一个用户登不进来?
              如果是后者,那我希望既可以在PC机登录,同时也希望我的移动客户端上的APP也能连接到应用服务器,怎么办?


              我还是没有看出单一用户单次登录的好处,也没有看到同一用户多次登录的不好的地方,也许还有我没有注意到的情况。

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

              1 条回复 最后回复
              0
              • T 离线
                T 离线
                tudou
                写于 最后由 编辑
                #7

                感谢您的回答,您说的有道理。那么如果我只是想要在PC浏览器上,如果用户已登录那么同一个账号,如果登录就给出提示“该用户已在线”,并且不能登录。那么怎么才能检测在线状态呢?什么时候怎么做将用户在线状态置为注销呢?

                1 条回复 最后回复
                0
                • mrshellyM 离线
                  mrshellyM 离线
                  mrshelly
                  写于 最后由 编辑
                  #8

                  [quote author=tudou link=topic=16434.msg28174#msg28174 date=1402381886]
                  感谢您的回答,您说的有道理。那么如果我只是想要在PC浏览器上,如果用户已登录那么同一个账号,如果登录就给出提示“该用户已在线”,并且不能登录。那么怎么才能检测在线状态呢?什么时候怎么做将用户在线状态置为注销呢?
                  [/quote]

                  理论上做是没有啥大问题... 只是意义何在.
                  一般的B/S架构的在线都是用心跳来玩的.
                  OE的玩法可以这样. 给用户一个 最后 心跳时间记录. 然后 修改 osv.osv  read 方法(估计只要用户动作 都会调用这个方法), 记录用户最后 表示存在感的时间点, 然后 大部分给一个 timeout 时间 做为不在线的标准.  这是一种玩法.


                  另一种, 同样是给用户最后一个心跳时间 只是 心跳的记录方式 改为 在 OE header 区(用户登陆后的区域) 用 Javascript 设置 定时器, 每几秒发一个 心跳信息给服务器..
                  同样, 以一个 用户最后心跳时间与 当前时间 的 timeout 时差做不在线的标准 即可.

                  然后限制登录. 就判断一下 timeout 时差即可. 未超过时差. 就禁止登陆吧....

                  个人觉得这个没有啥大意义... 别把ERP 软件当行业软件来用....

                  1 条回复 最后回复
                  0
                  • wjfonhandW 离线
                    wjfonhandW 离线
                    wjfonhand
                    写于 最后由 编辑
                    #9

                    http://blog.sina.com.cn/s/blog_53d318170101kvi3.html

                    GoodERP -- Odoo China fork

                    1 条回复 最后回复
                    0

                    • 登录

                    • 没有帐号? 注册

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