如何设置基本用户权限,以使用户无法运行“Hubot die”或“Hubot show storage”之类的命令?
我可以看到有一个名为hubot-auth的脚本,但这似乎是在其他脚本中实现它而不控制现有命令。
最佳答案
Automation and Monitoring with Hubot书(无耻的插件)中有一章对此进行了介绍。摘抄:
分配角色
只有管理员用户可以分配角色。分配前无需创建角色。所有你有
要做的就是告诉Hubot谁在使用hubot <user> has <role> role
。而且您不再需要使用
那些神秘的ID:
Tomas hubot Jesse Pinkman has developer role
Hubot Tomas: Ok, Jesse Pinkman has the 'developer' role.
使用
hubot what roles does <user> have?
检查分配的角色:Tomas hubot what roles does Jesse Pinkman have?
Hubot Tomas: Jesse Pinkman has the following roles: developer.
要删除某人的角色,请使用
hubot <user> does not have <role> role
:Tomas hubot Jesse Pinkman does not have developer role
Hubot Tomas: Ok, Jesse Pinkman doesn't have the 'developer' role.
您可以将多个角色分配给多个用户。
应用角色
现在,该打破坏消息了。虽然Hubot Auth非常灵活,但是您必须编辑自己的
脚本来应用这些角色。幸运的是,编辑的内容不多。有一个简单的功能
检查用户是否具有角色
robot.Auth.hasRole(msg.envelope.user, '<role>')
。这是您在脚本中使用它的方式:
module.exports = (robot) ->
robot.respond /do dangerous stuff/i, (msg) ->
if robot.auth.hasRole(msg.envelope.user, 'developer')
doDangerousStuff(msg)
else
msg.reply "Sorry, you don't have 'developer' role"
doDangerousStuff = (msg) ->
msg.send "Doing dangerous stuff"
关于hubot - 如何设置Hubot基本权限?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24676910/