summaryrefslogtreecommitdiff
path: root/redis/client.py
diff options
context:
space:
mode:
authordvora-h <67596500+dvora-h@users.noreply.github.com>2022-05-03 14:04:14 +0300
committerGitHub <noreply@github.com>2022-05-03 14:04:14 +0300
commit5c99e27459a047cd1334e1b87fb0623ac2c881db (patch)
tree67434cb616fdcfa0dfaf852f42fba0934cf3a0fe /redis/client.py
parentfa7b3f6213625f248764b134ed2c82fcdba95d62 (diff)
downloadredis-py-5c99e27459a047cd1334e1b87fb0623ac2c881db.tar.gz
ACL SETUSER - add selectors and key based permissions (#2161)
* acl setuser * async tests Co-authored-by: Chayim <chayim@users.noreply.github.com>
Diffstat (limited to 'redis/client.py')
-rwxr-xr-xredis/client.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/redis/client.py b/redis/client.py
index e44f5ab..87c7991 100755
--- a/redis/client.py
+++ b/redis/client.py
@@ -580,6 +580,19 @@ def parse_acl_getuser(response, **options):
data["flags"] = list(map(str_if_bytes, data["flags"]))
data["passwords"] = list(map(str_if_bytes, data["passwords"]))
data["commands"] = str_if_bytes(data["commands"])
+ if isinstance(data["keys"], str) or isinstance(data["keys"], bytes):
+ data["keys"] = list(str_if_bytes(data["keys"]).split(" "))
+ if data["keys"] == [""]:
+ data["keys"] = []
+ if "channels" in data:
+ if isinstance(data["channels"], str) or isinstance(data["channels"], bytes):
+ data["channels"] = list(str_if_bytes(data["channels"]).split(" "))
+ if data["channels"] == [""]:
+ data["channels"] = []
+ if "selectors" in data:
+ data["selectors"] = [
+ list(map(str_if_bytes, selector)) for selector in data["selectors"]
+ ]
# split 'commands' into separate 'categories' and 'commands' lists
commands, categories = [], []