summaryrefslogtreecommitdiff
path: root/redis/client.py
diff options
context:
space:
mode:
Diffstat (limited to 'redis/client.py')
-rwxr-xr-xredis/client.py27
1 files changed, 18 insertions, 9 deletions
diff --git a/redis/client.py b/redis/client.py
index 6072c69..8bb428f 100755
--- a/redis/client.py
+++ b/redis/client.py
@@ -955,7 +955,8 @@ class Redis(object):
def acl_setuser(self, username, enabled=False, nopass=False,
add_passwords=None, remove_passwords=None, categories=None,
- commands=None, keys=None, reset=False):
+ add_hashes=None, remove_hashes=None, commands=None,
+ keys=None, reset=False):
"""
Create or update an ACL user.
@@ -1016,20 +1017,28 @@ class Redis(object):
# to be specified as a simple string or a list
remove_passwords = list_or_args(remove_passwords, [])
for password in remove_passwords:
- if len(password) == 64:
- pieces.append('!%s' % password)
- else:
- pieces.append('<%s' % password)
+ pieces.append('<%s' % password)
+
+ if remove_hashes:
+ # as most users will have only one password, allow remove_passwords
+ # to be specified as a simple string or a list
+ remove_hashes = list_or_args(remove_hashes, [])
+ for password in remove_hashes:
+ pieces.append('!%s' % password)
if add_passwords:
# as most users will have only one password, allow add_passwords
# to be specified as a simple string or a list
add_passwords = list_or_args(add_passwords, [])
for password in add_passwords:
- if len(password) == 64:
- pieces.append('#%s' % password)
- else:
- pieces.append('<%s' % password)
+ pieces.append('>%s' % password)
+
+ if add_hashes:
+ # as most users will have only one password, allow remove_passwords
+ # to be specified as a simple string or a list
+ add_hashes = list_or_args(add_hashes, [])
+ for password in remove_hashes:
+ pieces.append('#%s' % password)
if nopass:
pieces.append(b'nopass')