diff --git a/delivery2/client/bin/rep_acl_doc b/delivery2/client/bin/rep_acl_doc new file mode 100644 index 0000000..5e28a31 --- /dev/null +++ b/delivery2/client/bin/rep_acl_doc @@ -0,0 +1,61 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role - permission +def aclDoc(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('name', nargs='?',default=None) + parser.add_argument('change', nargs='?',default=None) + parser.add_argument('role', nargs='?',default=None) + parser.add_argument('permission', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role or not args.permission or not args.change or not args.name: + logger.error("Need session file, document name, +/- , role and permission.") + sys.exit(1) + + #Validate role name + #TODO + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + aclDoc(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_add_permission b/delivery2/client/bin/rep_add_permission new file mode 100644 index 0000000..94012cb --- /dev/null +++ b/delivery2/client/bin/rep_add_permission @@ -0,0 +1,59 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role - permission +def addPermission(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + parser.add_argument('permission', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role or not args.permission: + logger.error("Need session file and role.") + sys.exit(1) + + #Validate role name + #TODO + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + addPermission(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_add_role b/delivery2/client/bin/rep_add_role new file mode 100644 index 0000000..277f7b8 --- /dev/null +++ b/delivery2/client/bin/rep_add_role @@ -0,0 +1,58 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role +def addRole(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role: + logger.error("Need session file and role.") + sys.exit(1) + + #Validate role name + #TODO + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + addRole(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_assume_role b/delivery2/client/bin/rep_assume_role new file mode 100644 index 0000000..b2eafa8 --- /dev/null +++ b/delivery2/client/bin/rep_assume_role @@ -0,0 +1,57 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role +def assumeRole(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role: + logger.error("Need session file and username.") + sys.exit(1) + + #Validate role name + #TODO + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + assumeRole(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_drop_role b/delivery2/client/bin/rep_drop_role new file mode 100644 index 0000000..a5a8dda --- /dev/null +++ b/delivery2/client/bin/rep_drop_role @@ -0,0 +1,57 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role +def dropRole(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role: + logger.error("Need session file and username.") + sys.exit(1) + + #Validate role name + #TODO + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + dropRole(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_list_permission_roles b/delivery2/client/bin/rep_list_permission_roles new file mode 100644 index 0000000..850f10c --- /dev/null +++ b/delivery2/client/bin/rep_list_permission_roles @@ -0,0 +1,58 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - permission +def listPermissionRoles(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('permission', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.permission: + logger.error("Need session file and permission.") + sys.exit(1) + + #Validate permission name + #TODO + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + listPermissionRoles(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_list_role_permissions b/delivery2/client/bin/rep_list_role_permissions new file mode 100644 index 0000000..038db12 --- /dev/null +++ b/delivery2/client/bin/rep_list_role_permissions @@ -0,0 +1,55 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role +def listRolePermissions(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role: + logger.error("Need session file and role.") + sys.exit(1) + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + listRolePermissions(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_list_role_subjects b/delivery2/client/bin/rep_list_role_subjects new file mode 100644 index 0000000..26f436c --- /dev/null +++ b/delivery2/client/bin/rep_list_role_subjects @@ -0,0 +1,58 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role +def listRoleSubjects(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role: + logger.error("Need session file and role.") + sys.exit(1) + + #Validate role name + #TODO + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + listRoleSubjects(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_list_roles b/delivery2/client/bin/rep_list_roles new file mode 100644 index 0000000..44db243 --- /dev/null +++ b/delivery2/client/bin/rep_list_roles @@ -0,0 +1,58 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role +def listRoles(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role: + logger.error("Need session file and username.") + sys.exit(1) + + #Validate role name + #TODO + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + listRoles(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_list_subject_roles b/delivery2/client/bin/rep_list_subject_roles new file mode 100644 index 0000000..9d6c8cb --- /dev/null +++ b/delivery2/client/bin/rep_list_subject_roles @@ -0,0 +1,55 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - username +def listSubjectRoles(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('username', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.username: + logger.error("Need session file and username.") + sys.exit(1) + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + listSubjectRoles(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_reactivate_role b/delivery2/client/bin/rep_reactivate_role new file mode 100644 index 0000000..3d90244 --- /dev/null +++ b/delivery2/client/bin/rep_reactivate_role @@ -0,0 +1,58 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role +def reactivateRole(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role: + logger.error("Need session file and role.") + sys.exit(1) + + #Validate role name + #TODO + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + reactivateRole(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_remove_permission b/delivery2/client/bin/rep_remove_permission new file mode 100644 index 0000000..6f04e24 --- /dev/null +++ b/delivery2/client/bin/rep_remove_permission @@ -0,0 +1,59 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role - permission +def removePermission(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + parser.add_argument('permission', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role or not args.permission: + logger.error("Need session file and role.") + sys.exit(1) + + #Validate role name + #TODO + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + removePermission(sys.argv[1:]) \ No newline at end of file diff --git a/delivery2/client/bin/rep_suspend_role b/delivery2/client/bin/rep_suspend_role new file mode 100644 index 0000000..4c08590 --- /dev/null +++ b/delivery2/client/bin/rep_suspend_role @@ -0,0 +1,58 @@ +#!/bin/python3 +import os +import sys +import logging +import requests +import json +import argparse + +from subject import main + +logging.basicConfig(format='%(levelname)s\t- %(message)s') +logger = logging.getLogger() +logger.setLevel(logging.INFO) + +state = main(sys.argv) + +BASE_DIR = os.path.join(os.path.expanduser('~'), '.sio/') + +#session file - role +def suspendRole(args): + parser = argparse.ArgumentParser() + + parser.add_argument("-k", '--key', nargs=1, help="Path to the key file") + parser.add_argument("-r", '--repo', nargs=1, help="Address:Port of the repository") + parser.add_argument("-v", '--verbose', help="Increase verbosity", action="store_true") + + parser.add_argument('session', nargs='?', default=None) + parser.add_argument('role', nargs='?',default=None) + + args = parser.parse_args() + + #Check number of arguments + if not args.session or not args.role: + logger.error("Need session file and role.") + sys.exit(1) + + #Validate role name + #TODO + + # Check for session file + if (not os.path.isfile(BASE_DIR + args.session)): + logger.error("File '" + args.session + "' not found.") + sys.exit(1) + + # Get session file content + with open(BASE_DIR + args.session, 'r') as f: + args.session = json.load(f) + + # TODO: + try: + req = requests.post(f'http://{state['REP_ADDRESS']}/user/' + args.username + '/activate', headers={'Authorization': args.session['token']}) + req.raise_for_status() + except requests.exceptions.RequestException as errex: + logger.error("Failed to obtain response from server.") + sys.exit(-1) + +if __name__ == '__main__': + suspendRole(sys.argv[1:]) \ No newline at end of file