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;
|
||||
}
|
||||
|
||||
/* 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
|
||||
* ==========================================================================*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user