From 483f4c2f1e695e9142ca2c0d3ffbb9bea58af8ba Mon Sep 17 00:00:00 2001 From: Matthew Vliet Date: Mon, 24 Jan 2011 20:07:30 -0800 Subject: [PATCH] add/remove permissions from groups --- .../repoman_client/subcommands/permissions.py | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 repoman-client/repoman_client/subcommands/permissions.py diff --git a/repoman-client/repoman_client/subcommands/permissions.py b/repoman-client/repoman_client/subcommands/permissions.py new file mode 100644 index 0000000..bdecbb8 --- /dev/null +++ b/repoman-client/repoman_client/subcommands/permissions.py @@ -0,0 +1,53 @@ +from repoman_client.subcommand import SubCommand +from repoman_client.client import RepomanClient, RepomanError +from repoman_client.config import config +from repoman_client.subcommand import SubCommand +from argparse import ArgumentParser + +class AddPermission(SubCommand): + command_group = 'advanced' + command = 'add-permissions' + alias = None + description = 'Add permissions to groups' + + def get_parser(self): + p = ArgumentParser(self.description) + p.add_argument('group', help='group to add permissions to') + p.add_argument('-p', '--permissions', nargs='+', metavar='PERMISSION', + help='List of permissions to add') + return p + + def __call__(self, args, extra_args=None): + repo = RepomanClient(config.host, config.port, config.proxy) + for p in args.permissions: + status = "Adding permission: '%s' to group: '%s'" % (p, args.group) + try: + repo.add_permission(args.group, p) + print "[OK] %s" % status + except RepomanError, e: + print "[FAILED] %s\n\t-%s" % (status, e) + + +class RemovePermission(SubCommand): + command_group = 'advanced' + command = 'remove-permissions' + alias = None + description = 'Remove specified permissions from group' + + def get_parser(self): + p = ArgumentParser(self.description) + p.add_argument('group', help='group to remove permissions from') + p.add_argument('-p', '--permissions', nargs='+', metavar='PERMISSION', + help='List of permissions to remove') + return p + + def __call__(self, args, extra_args=None): + repo = RepomanClient(config.host, config.port, config.proxy) + for p in args.permissions: + status = "Removing permission: '%s' from group: '%s'" % (p, args.group) + try: + repo.remove_permission(args.group, p) + print "[OK] %s" % status + except RepomanError, e: + print "[FAILED] %s\n\t-%s" % (status, e) +