首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何设置Hubot基本权限?

如何设置Hubot基本权限?
EN

Stack Overflow用户
提问于 2014-07-10 12:44:44
回答 3查看 3.6K关注 0票数 9

如何设置基本的用户权限,使用户不能运行诸如"Hubot死“或"Hubot显示存储”之类的命令?

我可以看到有一个名为hubot-auth的脚本,但这似乎是为了在其他脚本中实现它,而不是控制现有的命令。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-07-12 05:49:05

基于Hubot的自动化与监控的书(无耻的插头)中有一小章。节选:

分配角色

只有管理员用户才能分配角色。您不需要在分配之前创建一个角色。你所要做的就是告诉Hubot谁是谁使用hubot <user> has <role> role。你再也不用用那些神秘的身份证了:

代码语言:javascript
复制
Tomas     hubot Jesse Pinkman has developer role
Hubot     Tomas: Ok, Jesse Pinkman has the 'developer' role.

使用hubot what roles does <user> have?检查指定的角色

代码语言:javascript
复制
Tomas     hubot what roles does Jesse Pinkman have?  
Hubot     Tomas: Jesse Pinkman has the following roles: developer.

若要从某人中删除该角色,请使用hubot <user> does not have <role> role

代码语言:javascript
复制
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>')。这是如何在脚本中使用它:

代码语言:javascript
复制
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"
票数 10
EN

Stack Overflow用户

发布于 2015-09-25 07:32:00

正如在最初的答案中所述,为了分配角色,您必须是一个Hubot管理员。要定义Hubot管理员,必须将HUBOT_AUTH_ADMIN环境变量设置为以逗号分隔的管理员ID字符串。如果您使用Slack,您可以使用他们的API接口来计算应该是管理员的用户的ID。对于Slack,这些ID看起来类似于U123ABC1D

票数 2
EN

Stack Overflow用户

发布于 2014-07-11 13:04:03

我可以看到hubot die是在ping.coffee脚本中定义的。也许您可以在运行命令时对授权用户进行检查?

像这样吗?

代码语言:javascript
复制
if msg.message.user.name in [authorized_user1, authorized_user2,..]
  # Do more stuff

对于另一个显示存储脚本也可以这样做。我不太确定这是否是最好的方法,尽管,因为您将不得不修改所有的脚本,您不希望被执行。

一种更简洁的方法是在启动时将用户列表设置为env变量(就像hubot-auth所做的那样),然后在每个脚本中检查它,而不是硬编码用户名。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24676910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档