2017-02-23 28 views
0

你好,谢谢你花时间检查我的问题。如何锁定仅限管理员的actioncable聊天?

所以要解释一下作为标题可能不会做的问题公正,

我想了解我可以去设置,检查角色的方法的最佳途径,如果它的管理员,然后继续前进,如果不是,则让该人进入actioncable聊天,然后阻止所有连接。

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

我不想全面磨合,因为这样会给你很多问题。

只是一个小垫脚石。

  • devise用于帐户处理,我做了我的简单角色系统。

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

我的第一个简单的方法,这是 只是检查角色之前创建行动的消息,但仍留下开放actioncable/redis的/聊天的连接。

如上所述,任何指针将不胜感激

在此先感谢您。

+0

为什么不检查添加到输入的WebSocket连接处理器和否则拒绝它? –

+0

@maxple试图在我的connection.rb中添加一个检查,但它没有工作,逻辑失败,所有连接都被拒绝。 – EVX

+0

我没有解决这个问题,它似乎工作。 – EVX

回答

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 

末 结束 结束