mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2025-05-10 18:05:44 +02:00
feat(acl): add acl keys to acl list command (#2261)
* add acl keys to acl list
This commit is contained in:
parent
87ec0a1d65
commit
8126cf8252
3 changed files with 13 additions and 11 deletions
|
@ -65,12 +65,14 @@ void AclFamily::List(CmdArgList args, ConnectionContext* cntx) {
|
|||
const std::string password = pass == "nopass" ? "nopass" : PrettyPrintSha(pass);
|
||||
const std::string acl_cat = AclCatToString(user.AclCategory());
|
||||
const std::string acl_commands = AclCommandToString(user.AclCommandsRef());
|
||||
const std::string maybe_space = acl_commands.empty() ? "" : " ";
|
||||
const std::string maybe_space_com = acl_commands.empty() ? "" : " ";
|
||||
const std::string acl_keys = AclKeysToString(user.Keys());
|
||||
const std::string maybe_space = acl_keys.empty() ? "" : " ";
|
||||
|
||||
using namespace std::string_view_literals;
|
||||
|
||||
absl::StrAppend(&buffer, username, " ", user.IsActive() ? "on "sv : "off "sv, password, " ",
|
||||
acl_cat, maybe_space, acl_commands);
|
||||
acl_cat, maybe_space_com, acl_commands, maybe_space, acl_keys);
|
||||
|
||||
cntx->SendSimpleString(buffer);
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ TEST_F(AclFamilyTest, AclSetUser) {
|
|||
EXPECT_THAT(resp, "OK");
|
||||
resp = Run({"ACL", "LIST"});
|
||||
auto vec = resp.GetVec();
|
||||
EXPECT_THAT(vec, UnorderedElementsAre("user default on nopass +@ALL +ALL",
|
||||
EXPECT_THAT(vec, UnorderedElementsAre("user default on nopass +@ALL +ALL ~*",
|
||||
"user vlad off nopass +@NONE"));
|
||||
|
||||
resp = Run({"ACL", "SETUSER", "vlad", "+ACL"});
|
||||
|
@ -54,7 +54,7 @@ TEST_F(AclFamilyTest, AclSetUser) {
|
|||
|
||||
resp = Run({"ACL", "LIST"});
|
||||
vec = resp.GetVec();
|
||||
EXPECT_THAT(vec, UnorderedElementsAre("user default on nopass +@ALL +ALL",
|
||||
EXPECT_THAT(vec, UnorderedElementsAre("user default on nopass +@ALL +ALL ~*",
|
||||
"user vlad off nopass +@NONE +ACL"));
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,7 @@ TEST_F(AclFamilyTest, AclDelUser) {
|
|||
EXPECT_THAT(resp, "OK");
|
||||
|
||||
resp = Run({"ACL", "LIST"});
|
||||
EXPECT_THAT(resp.GetString(), "user default on nopass +@ALL +ALL");
|
||||
EXPECT_THAT(resp.GetString(), "user default on nopass +@ALL +ALL ~*");
|
||||
}
|
||||
|
||||
TEST_F(AclFamilyTest, AclList) {
|
||||
|
@ -95,7 +95,7 @@ TEST_F(AclFamilyTest, AclList) {
|
|||
|
||||
resp = Run({"ACL", "LIST"});
|
||||
auto vec = resp.GetVec();
|
||||
EXPECT_THAT(vec, UnorderedElementsAre("user default on nopass +@ALL +ALL",
|
||||
EXPECT_THAT(vec, UnorderedElementsAre("user default on nopass +@ALL +ALL ~*",
|
||||
"user kostas off d74ff0ee8da3b98 +@ADMIN",
|
||||
"user adi off d74ff0ee8da3b98 +@FAST"));
|
||||
}
|
||||
|
@ -146,7 +146,7 @@ TEST_F(AclFamilyTest, TestAllCategories) {
|
|||
|
||||
resp = Run({"ACL", "LIST"});
|
||||
EXPECT_THAT(resp.GetVec(),
|
||||
UnorderedElementsAre("user default on nopass +@ALL +ALL",
|
||||
UnorderedElementsAre("user default on nopass +@ALL +ALL ~*",
|
||||
absl::StrCat("user kostas off nopass ", "+@", cat)));
|
||||
|
||||
resp = Run({"ACL", "SETUSER", "kostas", absl::StrCat("-@", cat)});
|
||||
|
@ -154,7 +154,7 @@ TEST_F(AclFamilyTest, TestAllCategories) {
|
|||
|
||||
resp = Run({"ACL", "LIST"});
|
||||
EXPECT_THAT(resp.GetVec(),
|
||||
UnorderedElementsAre("user default on nopass +@ALL +ALL",
|
||||
UnorderedElementsAre("user default on nopass +@ALL +ALL ~*",
|
||||
absl::StrCat("user kostas off nopass ", "+@NONE")));
|
||||
|
||||
resp = Run({"ACL", "DELUSER", "kostas"});
|
||||
|
@ -193,7 +193,7 @@ TEST_F(AclFamilyTest, TestAllCommands) {
|
|||
EXPECT_THAT(resp, "OK");
|
||||
|
||||
resp = Run({"ACL", "LIST"});
|
||||
EXPECT_THAT(resp.GetVec(), UnorderedElementsAre("user default on nopass +@ALL +ALL",
|
||||
EXPECT_THAT(resp.GetVec(), UnorderedElementsAre("user default on nopass +@ALL +ALL ~*",
|
||||
absl::StrCat("user kostas off nopass +@NONE ",
|
||||
"+", command_name)));
|
||||
|
||||
|
@ -201,7 +201,7 @@ TEST_F(AclFamilyTest, TestAllCommands) {
|
|||
|
||||
resp = Run({"ACL", "LIST"});
|
||||
EXPECT_THAT(resp.GetVec(),
|
||||
UnorderedElementsAre("user default on nopass +@ALL +ALL",
|
||||
UnorderedElementsAre("user default on nopass +@ALL +ALL ~*",
|
||||
absl::StrCat("user kostas off nopass ", "+@NONE")));
|
||||
|
||||
resp = Run({"ACL", "DELUSER", "kostas"});
|
||||
|
|
|
@ -336,7 +336,7 @@ async def test_good_acl_file(df_local_factory, tmp_dir):
|
|||
assert "user roy on ea71c25a7a60224 +@STRING +HSET" in result
|
||||
assert "user shahar off ea71c25a7a60224 +@SET" in result
|
||||
assert "user vlad off nopass +@STRING" in result
|
||||
assert "user default on nopass +@ALL +ALL" in result
|
||||
assert "user default on nopass +@ALL +ALL ~*" in result
|
||||
|
||||
result = await client.execute_command("ACL DELUSER shahar")
|
||||
assert result == b"OK"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue