• YaacovHazan's avatar
    Adding ACL support for modules (#9309) · a56d4533
    YaacovHazan authored
    This commit introduced a new flag to the RM_Call:
    'C' - Check if the command can be executed according to the ACLs associated with it.
    
    Also, three new API's added to check if a command, key, or channel can be executed or accessed
    by a user, according to the ACLs associated with it.
    - RM_ACLCheckCommandPerm
    - RM_ACLCheckKeyPerm
    - RM_ACLCheckChannelPerm
    
    The user for these API's is a RedisModuleUser object, that for a Module user returned by the RM_CreateModuleUser API, or for a general ACL user can be retrieved by these two new API's:
    - RM_GetCurrentUserName - Retrieve the user name of the client connection behind the current context.
    - RM_GetModuleUserFromUserName - Get a RedisModuleUser from a user name
    
    As a result of getting a RedisModuleUser from name, it can now also access the general ACL users (not just ones created by the module).
    This mean the already existing API RM_SetModuleUserACL(), can be used to change the ACL rules for such users.
    a56d4533
multi.c 14.5 KB