我想为用户添加一个新角色,当他能够为 Hubot 提供正确的密码时。
这是我现在拥有的脚本:
module.exports = (robot) ->
robot.respond /PasswOrd (.*)/, (res) ->
paSS = res.match[1]
if paSS is "1234"
role = 'h1'
user = robot.brain.userForName(res.message.user.name)
#CODE TO ADD ROLE h1 FOR THIS USER ???
res.reply "Correct." + user.id
else
res.reply "Incorrect password."
它使用
@bot PasswOrd 1234
正确启动但我不知道如何添加角色。
谢谢。
最佳答案
没有其他办法,我能够使用 REST API “解决”这个问题。这是个坏主意吗?
我已经简化了我的实际代码来回答原始问题。
user = robot.brain.userForName(res.message.user.name)
robot.http("https://xxx.xxx.xxx/api/v1/users.info?userId=" + user['id'])
.headers("X-Auth-Token":"xxxxxxxxxxxxxxx", "X-User-Id":"xxxxxxx")
.get() (err, response, body) ->
Info = JSON.parse(body)
Info.user.roles.push("newRole")
robot.http("https://xxx.xxx.xxx/api/v1/users.update")
.headers("X-Auth-Token":"xxxxxxxxxxxxxxx", "X-User-Id":"xxxxxxx", "Content-type":"application/json")
.post('{"userId": "' + user['id'] + '", "data": { "roles": ' + JSON.stringify(Info.user.roles) + ' }}')
关于hubot - 如何在使用密码向 Hubot 私信后向用户添加角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48582477/