Skip to content
Snippets Groups Projects
Commit 794f67a1 authored by I. Nüske's avatar I. Nüske
Browse files

MNT: Added error messages for all user and role updates, unified message layout.

parent dbfc4bf5
No related branches found
No related tags found
2 merge requests!159Release 0.16.o,!153Error message for missing users and roles in linkahead_admin.py
Pipeline #56637 passed with warnings
......@@ -33,7 +33,7 @@ from argparse import ArgumentParser, RawDescriptionHelpFormatter
import linkahead as db
from linkahead import administration as admin
from linkahead.exceptions import HTTPClientError, HTTPResourceNotFoundError
from linkahead.exceptions import HTTPClientError, HTTPResourceNotFoundError, HTTPForbiddenError
__all__ = []
__version__ = 0.3
......@@ -42,22 +42,35 @@ __updated__ = '2018-12-11'
def do_update_role(args):
admin._update_role(name=args.role_name, description=args.role_description)
try:
admin._update_role(name=args.role_name, description=args.role_description)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot update role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_create_role(args):
admin._insert_role(name=args.role_name, description=args.role_description)
try:
admin._insert_role(name=args.role_name, description=args.role_description)
except (HTTPClientError, HTTPForbiddenError) as e:
print(f"Error: Cannot create role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_retrieve_role(args):
try:
print(admin._retrieve_role(name=args.role_name))
except HTTPResourceNotFoundError:
print(f"Error: Role '{args.role_name}' does not exist.")
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot retrieve role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_delete_role(args):
admin._delete_role(name=args.role_name)
try:
admin._delete_role(name=args.role_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot delete role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_retrieve(args):
......@@ -129,22 +142,25 @@ def do_create_user(args):
if args.activate_user:
do_activate_user(args)
except HTTPClientError as e:
print(e.msg)
except (HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot create user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_activate_user(args):
try:
admin._update_user(name=args.user_name, status="ACTIVE")
except HTTPClientError as e:
print(e.msg)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot activate user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_deactivate_user(args):
try:
admin._update_user(name=args.user_name, status="INACTIVE")
except HTTPClientError as e:
print(e.msg)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot deactivate user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_set_user_password(args):
......@@ -154,66 +170,109 @@ def do_set_user_password(args):
password = args.user_password
try:
admin._update_user(name=args.user_name, password=password)
except HTTPClientError as e:
print(e.msg)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot set password for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_add_user_roles(args):
roles = admin._get_roles(username=args.user_name, realm=None)
try:
roles = admin._get_roles(username=args.user_name, realm=None)
except (HTTPForbiddenError, HTTPResourceNotFoundError) as e:
print(f"Error: Cannot access roles for user '{args.user_name}', "
f"reason: '{e.msg}'")
return
for r in args.user_roles:
roles.add(r)
admin._set_roles(username=args.user_name, roles=roles)
try:
admin._set_roles(username=args.user_name, roles=roles)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot add new roles for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_remove_user_roles(args):
roles = admin._get_roles(username=args.user_name, realm=None)
try:
roles = admin._get_roles(username=args.user_name, realm=None)
except (HTTPForbiddenError, HTTPResourceNotFoundError) as e:
print(f"Error: Cannot access roles for user '{args.user_name}', "
f"reason: '{e.msg}'")
return
for r in args.user_roles:
if r in roles:
roles.remove(r)
admin._set_roles(username=args.user_name, roles=roles)
try:
admin._set_roles(username=args.user_name, roles=roles)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot remove roles from user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_set_user_entity(args):
admin._update_user(name=args.user_name, entity=args.user_entity)
try:
admin._update_user(name=args.user_name, entity=args.user_entity)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot set entity for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_reset_user_entity(args):
admin._update_user(name=args.user_name, entity="")
try:
admin._update_user(name=args.user_name, entity="")
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot remove entity for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_set_user_email(args):
admin._update_user(name=args.user_name, email=args.user_email)
try:
admin._update_user(name=args.user_name, email=args.user_email)
except (HTTPResourceNotFoundError, HTTPForbiddenError, HTTPClientError) as e:
print(f"Error: Cannot set email for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_retrieve_user(args):
try:
print(admin._retrieve_user(name=args.user_name))
except HTTPResourceNotFoundError:
print(f"Error: User '{args.user_name}' does not exist.")
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot retrieve user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_delete_user(args):
admin._delete_user(name=args.user_name)
try:
admin._delete_user(name=args.user_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot delete user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_retrieve_user_roles(args):
try:
print(admin._get_roles(username=args.user_name))
except HTTPResourceNotFoundError:
print(f"Error: User '{args.user_name}' does not exist.")
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot retrieve roles for user '{args.user_name}', "
f"reason: '{e.msg}'")
def do_retrieve_role_permissions(args):
try:
print(admin._get_permissions(role=args.role_name))
except HTTPResourceNotFoundError:
print(f"Error: Role '{args.role_name}' does not exist.")
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot retrieve permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_grant_role_permissions(args):
perms = admin._get_permissions(args.role_name)
try:
perms = admin._get_permissions(role=args.role_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot access permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
return
for p in args.role_permissions:
g = admin.PermissionRule(
......@@ -227,11 +286,20 @@ def do_grant_role_permissions(args):
if d in perms:
perms.remove(d)
perms.add(g)
admin._set_permissions(role=args.role_name, permission_rules=perms)
try:
admin._set_permissions(role=args.role_name, permission_rules=perms)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot set permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_revoke_role_permissions(args):
perms = admin._get_permissions(args.role_name)
try:
perms = admin._get_permissions(role=args.role_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot access permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
return
for p in args.role_permissions:
g = admin.PermissionRule(
......@@ -244,11 +312,20 @@ def do_revoke_role_permissions(args):
if d in perms:
perms.remove(d)
admin._set_permissions(role=args.role_name, permission_rules=perms)
try:
admin._set_permissions(role=args.role_name, permission_rules=perms)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot revoke permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_deny_role_permissions(args):
perms = admin._get_permissions(args.role_name)
try:
perms = admin._get_permissions(role=args.role_name)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot access permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
return
for p in args.role_permissions:
g = admin.PermissionRule(
......@@ -262,7 +339,11 @@ def do_deny_role_permissions(args):
if d in perms:
perms.remove(d)
perms.add(d)
admin._set_permissions(role=args.role_name, permission_rules=perms)
try:
admin._set_permissions(role=args.role_name, permission_rules=perms)
except (HTTPResourceNotFoundError, HTTPForbiddenError) as e:
print(f"Error: Cannot deny permissions for role '{args.role_name}', "
f"reason: '{e.msg}'")
def do_retrieve_entity_acl(args):
......
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