• Madelyn Olson's avatar
    Improve testing and update flags around commands without ACL keyspec flags (#10167) · 823da543
    Madelyn Olson authored
    This PR aims to improve the flags associated with some commands and adds various tests around
    these cases. Specifically, it's concerned with commands which declare keys but have no ACL
    flags (think `EXISTS`), the user needs either read or write permission to access this type of key.
    
    This change is primarily concerned around commands in three categories:
    
    # General keyspace commands
    These commands are agnostic to the underlying data outside of side channel attacks, so they are not
    marked as ACCESS.
    * TOUCH
    * EXISTS
    * TYPE
    * OBJECT 'all subcommands'
    
    Note that TOUCH is not a write command, it could be a side effect of either a read or a write command.
    
    # Length and cardinality commands
    These commands are marked as NOT marked as ACCESS since they don't return actual user strings,
    just metadata.
    * LLEN
    * STRLEN
    * SCARD
    * HSTRLEN
    
    # Container has member commands
    These commands return information about the existence or metadata about the key. These commands
    are NOT marked as ACCESS since the check of membership is used widely in write commands
    e.g. the response of HSET. 
    * SISMEMBER
    * HEXISTS
    
    # Intersection cardinality commands
    These commands are marked as ACCESS since they process data to compute the result.
    * PFCOUNT
    * ZCOUNT
    * ZINTERCARD
    * SINTERCARD
    823da543
commands.c 298 KB