mirror of
https://github.com/fluencelabs/redis
synced 2025-03-19 09:00:51 +00:00
ACL: Add skeleton for function checking ability to execute a command.
This commit is contained in:
parent
4376575d83
commit
f95152d4c8
23
src/acl.c
23
src/acl.c
@ -222,6 +222,29 @@ user *ACLGetUserByName(const char *name, size_t namelen) {
|
|||||||
return myuser;
|
return myuser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Check if the command ready to be excuted in the client 'c', and already
|
||||||
|
* referenced by c->cmd, can be executed by this client according to the
|
||||||
|
* ACls associated to the client user c->user.
|
||||||
|
*
|
||||||
|
* If the user can execute the command C_OK is returned, otherwise
|
||||||
|
* C_ERR is returned. */
|
||||||
|
int ACLCheckCommandPerm(client *c) {
|
||||||
|
/* If there is no associated user, the connection can run anything. */
|
||||||
|
if (c->user == NULL) return C_OK;
|
||||||
|
|
||||||
|
/* Check if the user can execute this command. */
|
||||||
|
if (!(c->user->flags & USER_FLAG_ALLCOMMANDS)) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Check if the user can execute touch this keys. */
|
||||||
|
if (!(c->user->flags & USER_FLAG_ALLKEYS)) {
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If we survived all the above checks, the user can execute the
|
||||||
|
* command. */
|
||||||
|
return C_OK;
|
||||||
|
}
|
||||||
|
|
||||||
/* =============================================================================
|
/* =============================================================================
|
||||||
* ACL related commands
|
* ACL related commands
|
||||||
* ==========================================================================*/
|
* ==========================================================================*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user