From 0db42d4ba8148a1e493f2da208d4bcf509716870 Mon Sep 17 00:00:00 2001 From: antirez Date: Wed, 16 Jan 2019 13:29:04 +0100 Subject: [PATCH] ACL: implement the key match opcode in ACLSetUser(). --- src/acl.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/acl.c b/src/acl.c index 38c4f89b..e03c2a1b 100644 --- a/src/acl.c +++ b/src/acl.c @@ -203,6 +203,12 @@ int ACLSetUser(user *u, const char *op, ssize_t oplen) { listNode *ln = listSearchKey(u->passwords,delpass); if (ln) listDelNode(u->passwords,ln); sdsfree(delpass); + } else if (op[0] == '~') { + sds newpat = sdsnewlen(op+1,oplen-1); + listNode *ln = listSearchKey(u->patterns,newpat); + /* Avoid re-adding the same pattern multiple times. */ + if (ln == NULL) listAddNodeTail(u->patterns,newpat); + u->flags &= ~USER_FLAG_ALLKEYS; } else { return C_ERR; }