如何将 actioncable 聊天仅锁定为管理员?
How to lock actioncable chat to admins only?
大家好,感谢您花时间查看我的问题。
所以稍微解释一下标题可能不公平,
我想了解我可以着手设置检查角色的方法的最佳方法,如果是管理员,则继续让该人进入 actioncable 聊天,如果不是,则阻止所有连接。
所以总结一下:因为这是实时的,我想我需要在 actioncable room/connection 处理程序的 js 部分进行某种开始检查,然后在 ruby 端进行检查的事情。
我不想要一个完整的 运行 下来,因为这对你来说太过分了。
只是一块小垫脚石
设计用于帐户处理,我已经制作了简单的角色系统。
我使用 redis 来处理创建消息的后台作业。
我的第一个简单方法是
只需在对消息创建操作之前检查角色,但仍然会打开与 actioncable/redis/chat.
的连接
如前所述,如有任何指点,我们将不胜感激
提前致谢。
解决方案
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
结束
结尾
结束
大家好,感谢您花时间查看我的问题。
所以稍微解释一下标题可能不公平,
我想了解我可以着手设置检查角色的方法的最佳方法,如果是管理员,则继续让该人进入 actioncable 聊天,如果不是,则阻止所有连接。
所以总结一下:因为这是实时的,我想我需要在 actioncable room/connection 处理程序的 js 部分进行某种开始检查,然后在 ruby 端进行检查的事情。
我不想要一个完整的 运行 下来,因为这对你来说太过分了。
只是一块小垫脚石
设计用于帐户处理,我已经制作了简单的角色系统。
我使用 redis 来处理创建消息的后台作业。
我的第一个简单方法是 只需在对消息创建操作之前检查角色,但仍然会打开与 actioncable/redis/chat.
的连接如前所述,如有任何指点,我们将不胜感激
提前致谢。
解决方案
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
结束 结尾 结束