ACL: implement the key match opcode in ACLSetUser().

This commit is contained in:
antirez 2019-01-16 13:29:04 +01:00
parent ff92c06947
commit 0db42d4ba8

View File

@ -203,6 +203,12 @@ int ACLSetUser(user *u, const char *op, ssize_t oplen) {
listNode *ln = listSearchKey(u->passwords,delpass); listNode *ln = listSearchKey(u->passwords,delpass);
if (ln) listDelNode(u->passwords,ln); if (ln) listDelNode(u->passwords,ln);
sdsfree(delpass); 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 { } else {
return C_ERR; return C_ERR;
} }