You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This implements the following main pieces of functionality:
Renames key spec "CHANNEL" to be "NOT_KEY", and update the documentation to indicate it's for cluster routing and not for any other key related purpose.
Add the getchannels-api, so that modules can now define commands that are subject to ACL channel permission checks.
Add 4 new flags that describe how a module interacts with a command (SUBSCRIBE, PUBLISH, UNSUBSCRIBE, and PATTERN). They are all technically composable, however not sure how a command could both subscribe and unsubscribe from a command at once, but didn't see a reason to add explicit validation there.
Add two new module apis RM_ChannelAtPosWithFlags and RM_IsChannelsPositionRequest to duplicate the functionality provided by the keys position APIs.
The RM_ACLCheckChannelPermissions (only released in 7.0 RC1) was changed to take flags rather than a boolean literal.
The RM_ACLCheckKeyPermissions (only released in 7.0 RC1) was changed to take flags corresponding to keyspecs instead of custom permission flags. These keyspec flags mimic the flags for ACLCheckChannelPermissions.
NOTE: I considered renaming all of the keyReference/keyResult -> argReference/argResult, but decided against and just added a small comment.
Note 2: There was a comment about changing the API for RM_ACLCheckChannelPermissions to take flags, but the module is the one doing the checking and knows what the arguments for the command represents, so not sure what the new flags would be for.
wasn't that needed so that ACL can decide if the request should be rejected or not?
i.e. we had some logic about always allowing unsubscribe (similar to the check we currently have in ACLDoesCommandHaveChannels).
The alternative is to expect modules to know not to call this API for unsubscribe (even if the command take channel arguments)
p.s. we already have a literal boolean, so that's overlapping with a PATTERN flag.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #10156.
This implements the following main pieces of functionality:
NOTE: I considered renaming all of the keyReference/keyResult -> argReference/argResult, but decided against and just added a small comment.
To Do:
channel->not_keyflag (Updated documentation for not key redis-doc#1799)