Skip to content
Snippets Groups Projects
Commit c2e0e1f3 authored by Eesaan Atluri's avatar Eesaan Atluri
Browse files

Add functionality to support both addition & removal from groups.

User would be removed from one or more groups according to the
list provided in msg, before they are added to one or more groups.
parent 6fa93bb3
No related branches found
No related tags found
3 merge requests!147Merge previous default branch feat-cod-rmq into main,!136Agent that adds a user to a group list,!137Refactor ssh access agent
...@@ -26,26 +26,34 @@ def group_member(ch, method, properties, body): ...@@ -26,26 +26,34 @@ def group_member(ch, method, properties, body):
state = msg["state"] state = msg["state"]
try: try:
if 'remove' in msg["groups"]:
for each_group in msg["groups"]["remove"]:
logger.debug(f'Removing user {username} from group {each_group}')
if str(rcfg.bright_cm_version).split(".")[0] == "8":
grp_remove_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; removefrom {each_group} groupmembers {username}; commit;"'
else:
grp_remove_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; removefrom {each_group} members {username}; commit;"'
proc = Popen(shlex.split(grp_remove_user_cmd), stdout=PIPE, stderr=PIPE)
out,err = proc.communicate()
logger.info(f'Running command: {grp_remove_user_cmd}')
logger.debug(f'Result: {err}')
logger.info(f'User {username} is removed from {each_group} group')
if action == 'add': if 'add' in msg["groups"]:
for each_group in msg["groupnames"]: for each_group in msg["groups"]["add"]:
logger.debug(f'Adding user {username} to group {each_group}') logger.debug(f'Adding user {username} to group {each_group}')
grp_add_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; append {each_group} members {username}; commit;"' if str(rcfg.bright_cm_version).split(".")[0] == "8":
grp_add_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; append {each_group} groupmembers {username}; commit;"'
else:
grp_add_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; append {each_group} members {username}; commit;"'
proc = Popen(shlex.split(grp_add_user_cmd), stdout=PIPE, stderr=PIPE) proc = Popen(shlex.split(grp_add_user_cmd), stdout=PIPE, stderr=PIPE)
logger.info(f'Running command: {grp_add_user_cmd}') logger.info(f'Running command: {grp_add_user_cmd}')
out,err = proc.communicate() out,err = proc.communicate()
logger.debug(f'Result: {err}') logger.debug(f'Result: {err}')
logger.info(f'User {username} is added to {each_group} group') logger.info(f'User {username} is added to {each_group} group')
elif action == 'remove':
for each_group in msg["groupnames"]:
logger.debug(f'Removing user {username} from group {each_group}')
grp_remove_user_cmd = f'/cm/local/apps/cmd/bin/cmsh -n -c "group; removefrom {each_group} members {username}; commit;"'
proc = Popen(shlex.split(grp_remove_user_cmd), stdout=PIPE, stderr=PIPE)
out,err = proc.communicate()
logger.info(f'Running command: {grp_remove_user_cmd}')
logger.debug(f'Result: {err}')
logger.info(f'User {username} is removed from {each_group} group')
msg["success"] = True msg["success"] = True
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment