@@ -28,12 +28,17 @@ def parse_args(self, ctx, args):
2828@click .option ('--role' , 'roles' , multiple = True , help = 'List of roles' )
2929@click .option ('--text' , help = 'Description of user' )
3030@click .option ('--email-verified/--email-not-verified' , default = None , help = 'Email address verified flag' )
31+ @click .option ('--groups' , '-g' , is_flag = True , help = 'Get list of user groups' )
3132@click .option ('--delete' , '-D' , metavar = 'ID' , help = 'Delete user using ID' )
3233@click .pass_obj
33- def cli (obj , id , name , email , password , status , roles , text , email_verified , delete ):
34- """Create user, show or update user details, including password reset."""
34+ def cli (obj , id , name , email , password , status , roles , text , email_verified , groups , delete ):
35+ """Create user, show or update user details, including password reset, list user groups and delete user ."""
3536 client = obj ['client' ]
36- if delete :
37+ if groups :
38+ user_groups = client .get_user_groups (id )
39+ headers = {'id' : 'ID' , 'name' : 'USER' , 'text' : 'TEXT' , 'count' : 'COUNT' }
40+ click .echo (tabulate ([ug .tabular () for ug in user_groups ], headers = headers , tablefmt = obj ['output' ]))
41+ elif delete :
3742 client .delete_user (delete )
3843 elif id :
3944 if not any ([name , email , password , status , roles , text , (email_verified is not None )]):
0 commit comments