2017-02-23 31 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 

末 結束 結束