cli: [list-permissions] backward compatibility for getUserPermsInheritance call
fixes: #3959
This commit is contained in:
parent
e55303c2ce
commit
7b1f2a6137
2 changed files with 37 additions and 5 deletions
|
|
@ -2176,11 +2176,21 @@ def handle_list_permissions(goptions, session, args):
|
||||||
user = session.getUser(options.user)
|
user = session.getUser(options.user)
|
||||||
if not user:
|
if not user:
|
||||||
error("No such user: %s" % options.user)
|
error("No such user: %s" % options.user)
|
||||||
for p, groups in session.getUserPermsInheritance(user['id']).items():
|
try:
|
||||||
p = {'name': p}
|
for p, groups in session.getUserPermsInheritance(user['id']).items():
|
||||||
if groups != [None]:
|
p = {'name': p}
|
||||||
p['description'] = 'inherited from: %s' % ', '.join(groups)
|
if groups != [None]:
|
||||||
perms.append(p)
|
p['description'] = 'inherited from: %s' % ', '.join(groups)
|
||||||
|
perms.append(p)
|
||||||
|
except koji.GenericError as e:
|
||||||
|
# backwards compatible
|
||||||
|
# TODO: can be removed in 1.36
|
||||||
|
if "Invalid method" in str(e):
|
||||||
|
warn("Old hub doesn't support Inherited Group Permissions.")
|
||||||
|
for p in session.getUserPerms(user['id']):
|
||||||
|
perms.append({'name': p})
|
||||||
|
else:
|
||||||
|
raise
|
||||||
else:
|
else:
|
||||||
for p in session.getAllPerms():
|
for p in session.getAllPerms():
|
||||||
perms.append({'name': p['name'], 'description': p['description']})
|
perms.append({'name': p['name'], 'description': p['description']})
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import mock
|
||||||
import six
|
import six
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
import koji
|
||||||
from koji_cli.commands import handle_list_permissions
|
from koji_cli.commands import handle_list_permissions
|
||||||
from . import utils
|
from . import utils
|
||||||
|
|
||||||
|
|
@ -133,6 +134,27 @@ repo
|
||||||
self.session.getPerms.assert_not_called()
|
self.session.getPerms.assert_not_called()
|
||||||
self.session.getAllPerms.assert_not_called()
|
self.session.getAllPerms.assert_not_called()
|
||||||
|
|
||||||
|
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||||
|
def test_handle_list_permissions_without_group_perm_inheritance(self, stdout):
|
||||||
|
"""Test handle_list_permissions without group perm inheritance"""
|
||||||
|
expected = """build
|
||||||
|
repo
|
||||||
|
"""
|
||||||
|
self.session.getLoggedInUser.return_value = {'id': 1, 'name': 'user'}
|
||||||
|
self.session.getUserPermsInheritance.side_effect = koji.GenericError(
|
||||||
|
"Invalid method: getUserPermsInheritance"
|
||||||
|
)
|
||||||
|
self.session.getUserPerms.return_value = [p['name'] for p in self.all_perms[1:3]]
|
||||||
|
handle_list_permissions(self.options, self.session, ['--mine'])
|
||||||
|
self.assert_console_message(stdout, expected)
|
||||||
|
|
||||||
|
self.activate_session_mock.assert_called_once()
|
||||||
|
self.session.getUser.assert_called_once()
|
||||||
|
self.session.getUserPermsInheritance.assert_called_once()
|
||||||
|
self.session.getUserPerms.assert_called_once()
|
||||||
|
self.session.getPerms.assert_not_called()
|
||||||
|
self.session.getAllPerms.assert_not_called()
|
||||||
|
|
||||||
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
@mock.patch('sys.stdout', new_callable=six.StringIO)
|
||||||
def test_handle_list_permissions_all_perms_quiet_false(self, stdout):
|
def test_handle_list_permissions_all_perms_quiet_false(self, stdout):
|
||||||
"""Test handle_list_permissions all permissions and quiet is false"""
|
"""Test handle_list_permissions all permissions and quiet is false"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue