File tree Expand file tree Collapse file tree 4 files changed +134
-0
lines changed Expand file tree Collapse file tree 4 files changed +134
-0
lines changed Original file line number Diff line number Diff line change 1+ # Description:
2+ # Adds an iam user to an iam group
3+ #
4+ # Commands:
5+ # hubot iam add user to group --username=*** --groupname=***
6+
7+ # Notes:
8+ # --username=*** : [required] The iam username.
9+ # --groupname=*** : [required] The iam groupname.
10+
11+ getArgParams = (arg ) ->
12+ username_capture = / --username=(. *? )( | $ )/ .exec (arg)
13+ username = if username_capture then username_capture[1 ] else ' '
14+
15+ groupname_capture = / --groupname=(. *? )( | $ )/ .exec (arg)
16+ groupname = if groupname_capture then groupname_capture[1 ] else ' '
17+
18+ return {
19+ username : username,
20+ groupname : groupname
21+ }
22+
23+ module .exports = (robot ) ->
24+ robot .respond / iam add user to group(. * )$ / i , (msg ) ->
25+ arg_params = getArgParams (msg .match [1 ])
26+ username = arg_params .username
27+ groupname = arg_params .groupname
28+
29+ msg .send " Adding user #{ username} to group #{ groupname} "
30+
31+ params = {
32+ GroupName : groupname,
33+ UserName : username
34+ };
35+
36+ require (' ./lib_user_group.coffee' ).addUserToGroup (params, msg)
Original file line number Diff line number Diff line change 1+ addUserToGroup = (params ,msg ) ->
2+ aws = require (' ../../aws.coffee' ).aws ()
3+ iam = new aws.IAM ({apiVersion : ' 2010-05-08' })
4+ iam .addUserToGroup params, (err , data ) ->
5+ if err
6+ msg .send " Error #{ err .stack .split (' \n ' )[0 ]} "
7+ else
8+ msg .send " Success"
9+
10+ removeUserFromGroup = (params ,msg ) ->
11+ aws = require (' ../../aws.coffee' ).aws ()
12+ iam = new aws.IAM ({apiVersion : ' 2010-05-08' })
13+ iam .removeUserFromGroup params, (err , data ) ->
14+ if err
15+ msg .send " Error #{ err .stack .split (' \n ' )[0 ]} "
16+ else
17+ msg .send " Success"
18+
19+ listUsersInGroup = (params ,msg ) ->
20+ aws = require (' ../../aws.coffee' ).aws ()
21+ iam = new aws.IAM ({apiVersion : ' 2010-05-08' })
22+ iam .getGroup params, (err , data ) ->
23+ if err
24+ msg .send " Error #{ err .stack .split (' \n ' )[0 ]} "
25+ else
26+ for user in data .Users
27+ msg .send " #{ user .UserName } "
28+
29+ module .exports = {
30+ addUserToGroup : addUserToGroup,
31+ removeUserFromGroup : removeUserFromGroup,
32+ listUsersInGroup : listUsersInGroup
33+ }
Original file line number Diff line number Diff line change 1+ # Description:
2+ # Lists users of an iam group
3+ #
4+ # Commands:
5+ # hubot iam list users in group --groupname=***
6+
7+ # Notes:
8+ # --groupname=*** : [required] The iam groupname.
9+
10+ getArgParams = (arg ) ->
11+ groupname_capture = / --groupname=(. *? )( | $ )/ .exec (arg)
12+ groupname = if groupname_capture then groupname_capture[1 ] else ' '
13+
14+ return {
15+ groupname : groupname
16+ }
17+
18+ module .exports = (robot ) ->
19+ robot .respond / iam list users in group(. * )$ / i , (msg ) ->
20+ arg_params = getArgParams (msg .match [1 ])
21+ groupname = arg_params .groupname
22+
23+ msg .send " Listing users in group #{ groupname} "
24+
25+ params = {
26+ GroupName : groupname
27+ };
28+
29+ require (' ./lib_user_group.coffee' ).listUsersInGroup (params, msg)
Original file line number Diff line number Diff line change 1+ # Description:
2+ # Removes an iam user from an iam group
3+ #
4+ # Commands:
5+ # hubot iam remove user from group --username=*** --groupname=***
6+
7+ # Notes:
8+ # --username=*** : [required] The iam username.
9+ # --groupname=*** : [required] The iam groupname.
10+
11+ getArgParams = (arg ) ->
12+ username_capture = / --username=(. *? )( | $ )/ .exec (arg)
13+ username = if username_capture then username_capture[1 ] else ' '
14+
15+ groupname_capture = / --groupname=(. *? )( | $ )/ .exec (arg)
16+ groupname = if groupname_capture then groupname_capture[1 ] else ' '
17+
18+ return {
19+ username : username,
20+ groupname : groupname
21+ }
22+
23+ module .exports = (robot ) ->
24+ robot .respond / iam remove user from group(. * )$ / i , (msg ) ->
25+ arg_params = getArgParams (msg .match [1 ])
26+ username = arg_params .username
27+ groupname = arg_params .groupname
28+
29+ msg .send " Removing user #{ username} from group #{ groupname} "
30+
31+ params = {
32+ GroupName : groupname,
33+ UserName : username
34+ };
35+
36+ require (' ./lib_user_group.coffee' ).removeUserFromGroup (params, msg)
You can’t perform that action at this time.
0 commit comments