2017-03-20 37 views
0

我剛剛安裝了hubot,我正在嘗試一些基本的測試。hubot-auth不認證

我在/腳本這個簡單的腳本:

module.exports = (robot) -> 

    robot.respond /myscript status/i, (msg) -> 
     if robot.auth.hasRole(msg.envelope.user, 'test') 
      msg.reply "Success" 
     else 
      msg.reply "Sorry. Need 'test' role." 

我發出相應的鬆弛命令:

schroeder has test role

「OK,施羅德有 '測試' 的角色。」

myscript status

「對不起。需要 '測試' 的角色。」

我有:

  • 試圖扭轉邏輯(if VS unless
  • 驗證該腳本被更新(通過改變響應)
  • 驗證了redis的後端被存儲角色(通過redis-cli連接並檢查密鑰)。

在重新閱讀所有文檔並查找錯誤報告後,我仍然看不到我錯過的東西。它必須是簡單的東西,但我沒有想法。就好像腳本無法查看存儲的角色(hubot-auth可以,但我的腳本不能)。

回答

0

即使在啓動,hubot說,它是連接到本地Redis的服務器:

INFO hubot-redis-brain: Using default redis on localhost:6379

這是不......至少不是你所期望的方式。

如果Redis的是,其實跑步,你應該得到一個額外的信息:

INFO hubot-redis-brain: Data for hubot brain retrieved from Redis

該消息不會出現,沒有警告或錯誤的Redis沒有運行。

如果您還沒有正確設置hubot-redis-brain,您將會收到奇怪的錯誤和不一致,如hubot-auth角色檢查功能失敗。

此外,,我發現,即使我正確設置Redis後,我的測試腳本不起作用。儘管我發現的所有教程都測試了msg.envelope.user,但這對我並不適用。我需要使用msg.message.user.name並與大腦分類:

module.exports = (robot) -> 

    robot.respond /fbctf status/i, (msg) -> 
    user = robot.brain.userForName(msg.message.user.name) 
    if robot.auth.hasRole(user, 'test') 
     msg.reply "Success" 
    else 
     msg.reply "Sorry. Need 'test' role."