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

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

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

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

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



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



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


  • 管理员

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



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


  • 管理员

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



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


  • 管理员

    [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也能连接到应用服务器,怎么办?


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



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



  • [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 软件当行业软件来用....




登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待