diff options
Diffstat (limited to 'deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex')
-rw-r--r-- | deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex new file mode 100644 index 0000000000..feaf917cfa --- /dev/null +++ b/deps/rabbitmq_cli/lib/rabbitmq/cli/ctl/commands/list_permissions_command.ex @@ -0,0 +1,49 @@ +## This Source Code Form is subject to the terms of the Mozilla Public +## License, v. 2.0. If a copy of the MPL was not distributed with this +## file, You can obtain one at https://mozilla.org/MPL/2.0/. +## +## Copyright (c) 2007-2020 VMware, Inc. or its affiliates. All rights reserved. + +defmodule RabbitMQ.CLI.Ctl.Commands.ListPermissionsCommand do + alias RabbitMQ.CLI.Core.DocGuide + + @behaviour RabbitMQ.CLI.CommandBehaviour + + def scopes(), do: [:ctl, :diagnostics] + use RabbitMQ.CLI.Core.AcceptsDefaultSwitchesAndTimeout + + def merge_defaults(args, opts) do + {args, Map.merge(%{vhost: "/", table_headers: true}, opts)} + end + + use RabbitMQ.CLI.Core.AcceptsNoPositionalArguments + use RabbitMQ.CLI.Core.RequiresRabbitAppRunning + + def run([], %{node: node_name, timeout: timeout, vhost: vhost}) do + :rabbit_misc.rpc_call( + node_name, + :rabbit_auth_backend_internal, + :list_vhost_permissions, + [vhost], + timeout + ) + end + + use RabbitMQ.CLI.DefaultOutput + + def formatter(), do: RabbitMQ.CLI.Formatters.Table + + def usage, do: "list_permissions [--vhost <vhost>] [--no-table-headers]" + + def usage_doc_guides() do + [ + DocGuide.access_control(), + DocGuide.virtual_hosts() + ] + end + + def help_section(), do: :access_control + def description(), do: "Lists user permissions in a virtual host" + + def banner(_, %{vhost: vhost}), do: "Listing permissions for vhost \"#{vhost}\" ..." +end |