1 | 'use strict'
|
2 |
|
3 | let cli = require('heroku-cli-util')
|
4 | let co = require('co')
|
5 |
|
6 | function * run (context, heroku) {
|
7 | let lib = require('../../lib/trusted-ips')(heroku)
|
8 | let space = context.flags.space
|
9 | let ruleset = yield lib.getRules(space)
|
10 | ruleset.rules = ruleset.rules || []
|
11 | if (ruleset.rules.find((rs) => rs.source === context.args.source)) throw new Error(`A rule already exists for ${context.args.source}.`)
|
12 | ruleset.rules.push({action: 'allow', source: context.args.source})
|
13 | ruleset = yield lib.putRules(space, ruleset)
|
14 | cli.log(`Added ${cli.color.cyan.bold(context.args.source)} to trusted IP ranges on ${cli.color.cyan.bold(space)}`)
|
15 | cli.warn('It may take a few moments for the changes to take effect.')
|
16 | }
|
17 |
|
18 | module.exports = {
|
19 | topic: 'trusted-ips',
|
20 | command: 'add',
|
21 | description: 'Add one range to the list of trusted IP ranges',
|
22 | help: `
|
23 | Uses CIDR notation.
|
24 |
|
25 | Example:
|
26 | $ heroku trusted-ips:add --space my-space 192.168.2.0/24
|
27 | Added 192.168.0.1/24 to trusted IP ranges on my-space
|
28 | `,
|
29 | needsApp: false,
|
30 | needsAuth: true,
|
31 | args: [
|
32 | {name: 'source'}
|
33 | ],
|
34 | flags: [
|
35 | {name: 'space', char: 's', hasValue: true, description: 'space to add rule to'},
|
36 | {name: 'confirm', hasValue: true, description: 'set to space name to bypass confirm prompt'}
|
37 | ],
|
38 | run: cli.command(co.wrap(run))
|
39 | }
|