diff options
author | dvora-h <67596500+dvora-h@users.noreply.github.com> | 2022-05-03 14:04:14 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-03 14:04:14 +0300 |
commit | 5c99e27459a047cd1334e1b87fb0623ac2c881db (patch) | |
tree | 67434cb616fdcfa0dfaf852f42fba0934cf3a0fe /redis/client.py | |
parent | fa7b3f6213625f248764b134ed2c82fcdba95d62 (diff) | |
download | redis-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-x | redis/client.py | 13 |
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 = [], [] |