1- """List A users permissions."""
1+ """List a users permissions."""
22import click
33
44import SoftLayer
1111@click .argument ('identifier' )
1212@environment .pass_env
1313def cli (env , identifier ):
14- """User Permissions."""
14+ """User Permissions.
15+
16+ Some permissions here may also be managed by IBM IAM service.
17+ See https://cloud.ibm.com/docs/account?topic=account-migrated_permissions for more details.
18+ """
1519
1620 mgr = SoftLayer .UserManager (env .client )
1721 user_id = helpers .resolve_id (mgr .resolve_ids , identifier , 'username' )
1822 object_mask = "mask[id, permissions, isMasterUserFlag, roles]"
1923
2024 user = mgr .get_user (user_id , object_mask )
21- all_permissions = mgr .get_all_permissions ()
22- user_permissions = perms_to_dict (user ['permissions' ])
25+ all_permissions = mgr .get_permission_departments ()
2326
27+ user_permissions = perms_to_dict (user ['permissions' ])
28+ all_table = formatting .KeyValueTable (['Department' , 'Permissions' ])
2429 if user ['isMasterUserFlag' ]:
2530 click .secho ('This account is the Master User and has all permissions enabled' , fg = 'green' )
2631
2732 env .fout (roles_table (user ))
28- env .fout (permission_table (user_permissions , all_permissions ))
33+ for department in all_permissions :
34+ all_table .add_row ([
35+ department .get ('name' ),
36+ permission_table (user_permissions , department .get ('permissions' , []))
37+ ])
38+ env .fout (all_table )
2939
3040
3141def perms_to_dict (perms ):
@@ -39,18 +49,13 @@ def perms_to_dict(perms):
3949def permission_table (user_permissions , all_permissions ):
4050 """Creates a table of available permissions"""
4151
42- table = formatting .Table (['Description ' , 'KeyName ' , 'Assigned ' ])
52+ table = formatting .Table (['KeyName ' , 'Assigned ' , 'Description ' ])
4353 table .align ['KeyName' ] = 'l'
4454 table .align ['Description' ] = 'l'
4555 table .align ['Assigned' ] = 'l'
4656 for perm in all_permissions :
4757 assigned = user_permissions .get (perm ['keyName' ], False )
48- hide_permission_list = ['ACCOUNT_SUMMARY_VIEW' , 'REQUEST_COMPLIANCE_REPORT' ,
49- 'COMPANY_EDIT' , 'ONE_TIME_PAYMENTS' , 'UPDATE_PAYMENT_DETAILS' ,
50- 'EU_LIMITED_PROCESSING_MANAGE' , 'TICKET_ADD' , 'TICKET_EDIT' ,
51- 'TICKET_SEARCH' , 'TICKET_VIEW' , 'TICKET_VIEW_ALL' ]
52- if perm ['keyName' ] not in hide_permission_list :
53- table .add_row ([perm ['name' ], perm ['keyName' ], assigned ])
58+ table .add_row ([perm ['keyName' ], assigned , perm ['description' ]])
5459 return table
5560
5661
0 commit comments