diff options
author | naumbi4 <naumbi4@yandex-team.com> | 2023-09-27 14:18:23 +0300 |
---|---|---|
committer | naumbi4 <naumbi4@yandex-team.com> | 2023-09-27 14:40:34 +0300 |
commit | 2dc62334f06ca1302a23f9907f8db5f75da99456 (patch) | |
tree | 11eecfc1cfb31cd7e2134db93bffd255f3d5c2fd | |
parent | 18d7ae3d5e6fbed6dd9f7f53168c0c28d3a302dd (diff) | |
download | ydb-2dc62334f06ca1302a23f9907f8db5f75da99456.tar.gz |
KIKIMR-13498: add scheme permissions list command for ydb cli
Add scheme permissions list command for ydb cli
5 files changed, 42 insertions, 1 deletions
diff --git a/ydb/apps/ydb/version.txt b/ydb/apps/ydb/version.txt index e70b4523ae7..6a6a3d8e35c 100644 --- a/ydb/apps/ydb/version.txt +++ b/ydb/apps/ydb/version.txt @@ -1 +1 @@ -2.6.0 +2.6.1 diff --git a/ydb/docs/en/core/reference/ydb-cli/_includes/commands.md b/ydb/docs/en/core/reference/ydb-cli/_includes/commands.md index 100f15c1993..5727ae2d4db 100644 --- a/ydb/docs/en/core/reference/ydb-cli/_includes/commands.md +++ b/ydb/docs/en/core/reference/ydb-cli/_includes/commands.md @@ -50,6 +50,7 @@ Any command can be run from the command line with the `--help` option to get hel | scheme permissions remove | Removing a permission | | scheme permissions revoke | Revoking a permission | | scheme permissions set | Setting permissions | +| scheme permissions list | List permissions | | [scheme rmdir](../commands/dir.md#rmdir) | Deleting a directory | | [scripting yql](../scripting-yql.md) | Executing a YQL script | | table attribute add | Adding a table attribute | diff --git a/ydb/docs/ru/core/reference/ydb-cli/_includes/commands.md b/ydb/docs/ru/core/reference/ydb-cli/_includes/commands.md index 35aa2f19b53..21ca10d484e 100644 --- a/ydb/docs/ru/core/reference/ydb-cli/_includes/commands.md +++ b/ydb/docs/ru/core/reference/ydb-cli/_includes/commands.md @@ -50,6 +50,7 @@ scheme permissions grant | Предоставление разрешения scheme permissions remove | Удаление разрешения scheme permissions revoke | Удаление разрешения scheme permissions set | Установка разрешений +scheme permissions list | Просмотр списка разрешений [scheme rmdir](../commands/dir.md#rmdir) | Удаление директории [scripting yql](../scripting-yql.md) | Выполнение YQL-скрипта table attribute add | Добавление атрибута таблицы diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp index 3eb76bf17d0..537f66baf7e 100644 --- a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp +++ b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp @@ -912,6 +912,7 @@ TCommandPermissions::TCommandPermissions() AddCommand(std::make_unique<TCommandPermissionSet>()); AddCommand(std::make_unique<TCommandChangeOwner>()); AddCommand(std::make_unique<TCommandPermissionClear>()); + AddCommand(std::make_unique<TCommandPermissionList>()); } TCommandPermissionGrant::TCommandPermissionGrant() @@ -1102,5 +1103,35 @@ int TCommandPermissionClear::Run(TConfig& config) { return EXIT_SUCCESS; } +TCommandPermissionList::TCommandPermissionList() + : TYdbOperationCommand("list", std::initializer_list<TString>(), "List permissions") +{} + +void TCommandPermissionList::Config(TConfig& config) { + TYdbOperationCommand::Config(config); + + config.SetFreeArgsNum(1); + SetFreeArgTitle(0, "<path>", "Path to list permissions for"); +} + +void TCommandPermissionList::Parse(TConfig& config) { + TClientCommand::Parse(config); + ParsePath(config, 0); +} + +int TCommandPermissionList::Run(TConfig& config) { + TDriver driver = CreateDriver(config); + NScheme::TSchemeClient client(driver); + NScheme::TDescribePathResult result = client.DescribePath( + Path, + FillSettings(NScheme::TDescribePathSettings()) + ).GetValueSync(); + ThrowOnError(result); + NScheme::TSchemeEntry entry = result.GetEntry(); + Cout << Endl; + PrintAllPermissions(entry.Owner, entry.Permissions, entry.EffectivePermissions); + return EXIT_SUCCESS; +} + } } diff --git a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h index f7be849879b..080a5ac91a4 100644 --- a/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h +++ b/ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h @@ -164,5 +164,13 @@ public: virtual int Run(TConfig& config) override; }; +class TCommandPermissionList : public TYdbOperationCommand, public TCommandWithPath { +public: + TCommandPermissionList(); + virtual void Config(TConfig& config) override; + virtual void Parse(TConfig& config) override; + virtual int Run(TConfig& config) override; +}; + } } |