aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornaumbi4 <naumbi4@yandex-team.com>2023-09-27 14:18:23 +0300
committernaumbi4 <naumbi4@yandex-team.com>2023-09-27 14:40:34 +0300
commit2dc62334f06ca1302a23f9907f8db5f75da99456 (patch)
tree11eecfc1cfb31cd7e2134db93bffd255f3d5c2fd
parent18d7ae3d5e6fbed6dd9f7f53168c0c28d3a302dd (diff)
downloadydb-2dc62334f06ca1302a23f9907f8db5f75da99456.tar.gz
KIKIMR-13498: add scheme permissions list command for ydb cli
Add scheme permissions list command for ydb cli
-rw-r--r--ydb/apps/ydb/version.txt2
-rw-r--r--ydb/docs/en/core/reference/ydb-cli/_includes/commands.md1
-rw-r--r--ydb/docs/ru/core/reference/ydb-cli/_includes/commands.md1
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_service_scheme.cpp31
-rw-r--r--ydb/public/lib/ydb_cli/commands/ydb_service_scheme.h8
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;
+};
+
}
}