如何将actioncable聊天锁定到管理员?

时间:2017-02-23 20:14:47

标签: ruby-on-rails ruby devise ruby-on-rails-5 actioncable

Hello Guys感谢您抽出宝贵时间查看我的问题。

所以要解释一下,因为标题可能没有正义问题,

我想学习设置检查角色的方法的最佳方法,如果是管理员,那么请继续让该人进行操作聊天,如果没有,则阻止所有连接。

所以总结一下:因为这是实时的,我想我需要在actioncable房间/连接处理程序的js部分进行某种启动检查,然后在事情的红宝石一侧。

我不希望完全失败,因为这可能是你要求的。

只是一个小小的垫脚石。

  • 设计用于帐户处理,我已经建立了我的简单角色系统。

  • 我使用redis来处理创建消息的后台作业。

我对此的第一个简单方法是 只需在对消息创建操作之前检查角色,但仍然保持对actioncable / redis / chat的连接。

如上所述,任何指针都将非常感激

提前谢谢。

1 个答案:

答案 0 :(得分:1)

解决方案

def connect
  self.current_user = find_verified_user
  logger.add_tags 'ActionCable', current_user.email, current_user.access
end

protected
def find_verified_user
  if (current_user = User.find_by_id cookies.signed['user.id'])
    if(current_user.access == "mod")
      current_user
  else
    reject_unauthorized_connection
  end
end

端  结束 端