1
- """List A users permissions."""
1
+ """List a users permissions."""
2
2
import click
3
3
4
4
import SoftLayer
11
11
@click .argument ('identifier' )
12
12
@environment .pass_env
13
13
def 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
+ """
15
19
16
20
mgr = SoftLayer .UserManager (env .client )
17
21
user_id = helpers .resolve_id (mgr .resolve_ids , identifier , 'username' )
18
22
object_mask = "mask[id, permissions, isMasterUserFlag, roles]"
19
23
20
24
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 ()
23
26
27
+ user_permissions = perms_to_dict (user ['permissions' ])
28
+ all_table = formatting .KeyValueTable (['Department' , 'Permissions' ])
24
29
if user ['isMasterUserFlag' ]:
25
30
click .secho ('This account is the Master User and has all permissions enabled' , fg = 'green' )
26
31
27
32
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 )
29
39
30
40
31
41
def perms_to_dict (perms ):
@@ -39,18 +49,13 @@ def perms_to_dict(perms):
39
49
def permission_table (user_permissions , all_permissions ):
40
50
"""Creates a table of available permissions"""
41
51
42
- table = formatting .Table (['Description ' , 'KeyName ' , 'Assigned ' ])
52
+ table = formatting .Table (['KeyName ' , 'Assigned ' , 'Description ' ])
43
53
table .align ['KeyName' ] = 'l'
44
54
table .align ['Description' ] = 'l'
45
55
table .align ['Assigned' ] = 'l'
46
56
for perm in all_permissions :
47
57
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' ]])
54
59
return table
55
60
56
61
0 commit comments