Commit 91aecf01 authored by antirez's avatar antirez
Browse files

ACL: implement ACL SAVE.

parent 484af7aa
...@@ -1491,18 +1491,26 @@ void aclCommand(client *c) { ...@@ -1491,18 +1491,26 @@ void aclCommand(client *c) {
} else { } else {
addReplyNull(c); addReplyNull(c);
} }
} else if (server.acl_filename[0] == '\0' &&
(!strcasecmp(sub,"load") || !strcasecmp(sub,"save")))
{
addReplyError(c,"This Redis instance is not configured to use an ACL file. You may want to specify users via the ACL SETUSER command and then issue a CONFIG REWRITE (assuming you have a Redis configuration file set) in order to store users in the Redis configuration.");
return;
} else if (!strcasecmp(sub,"load") && c->argc == 2) { } else if (!strcasecmp(sub,"load") && c->argc == 2) {
if (server.acl_filename[0] == '\0') { sds errors = ACLLoadFromFile(server.acl_filename);
addReplyError(c,"This Redis instance is not configured to use an ACL file. You may want to specify users via the ACL SETUSER command and then issue a CONFIG REWRITE (assuming you have a Redis configuration file set) in order to store users in the Redis configuration."); if (errors == NULL) {
return; addReply(c,shared.ok);
} else { } else {
sds errors = ACLLoadFromFile(server.acl_filename); addReplyError(c,errors);
if (errors == NULL) { sdsfree(errors);
addReply(c,shared.ok); }
} else { } else if (!strcasecmp(sub,"save") && c->argc == 2) {
addReplyError(c,errors); if (ACLSaveToFile(server.acl_filename) == C_OK) {
sdsfree(errors); addReply(c,shared.ok);
} } else {
addReplyError(c,"There was an error trying to save the ACLs. "
"Please check the server logs for more "
"information");
} }
} else if (!strcasecmp(sub,"cat") && c->argc == 2) { } else if (!strcasecmp(sub,"cat") && c->argc == 2) {
void *dl = addReplyDeferredLen(c); void *dl = addReplyDeferredLen(c);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment