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

ACL: implement ACL SAVE.

parent 484af7aa
...@@ -1491,11 +1491,12 @@ void aclCommand(client *c) { ...@@ -1491,11 +1491,12 @@ void aclCommand(client *c) {
} else { } else {
addReplyNull(c); addReplyNull(c);
} }
} else if (!strcasecmp(sub,"load") && c->argc == 2) { } else if (server.acl_filename[0] == '\0' &&
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."); 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; return;
} else { } else if (!strcasecmp(sub,"load") && c->argc == 2) {
sds errors = ACLLoadFromFile(server.acl_filename); sds errors = ACLLoadFromFile(server.acl_filename);
if (errors == NULL) { if (errors == NULL) {
addReply(c,shared.ok); addReply(c,shared.ok);
...@@ -1503,6 +1504,13 @@ void aclCommand(client *c) { ...@@ -1503,6 +1504,13 @@ void aclCommand(client *c) {
addReplyError(c,errors); addReplyError(c,errors);
sdsfree(errors); sdsfree(errors);
} }
} else if (!strcasecmp(sub,"save") && c->argc == 2) {
if (ACLSaveToFile(server.acl_filename) == C_OK) {
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