[ 
https://issues.apache.org/jira/browse/CASSANDRA-900?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12847770#action_12847770
 ] 

Ted Zlatanov commented on CASSANDRA-900:
----------------------------------------

I separated an INSERT level for writers that shouldn't be able to delete 
(logging agents).  Overwriting is not the same as deleting: you can only 
overwrite what you know; deleting can use ranges.  This is a necessary use case 
in my environment.

I considered a DELETE access level too, since as you see INSERT and DELETE are 
really separate.  Perhaps with a separate DELETE, the ALL AccessLevel won't be 
needed (see below) because it's an OR of READ+INSERT+DELETE.

The client gets back an AccessLevel so they know in advance what they've been 
authorized to do.  Throwing an exception later in the game is still done.  It's 
a single-byte return code, we already store it, and it won't change for the 
duration of the connection.  I don't see the harm in sending it back.  The 
client can just ignore it if they want.  We could change the return to an int, 
though, so we can express "INSERT+DELETE" or "READ+INSERT" numerically without 
more AccessLevels.


> access levels for Thrift authorization
> --------------------------------------
>
>                 Key: CASSANDRA-900
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-900
>             Project: Cassandra
>          Issue Type: New Feature
>          Components: Core
>            Reporter: Ted Zlatanov
>         Attachments: 0001-access-levels-for-Thrift-authorization.patch
>
>
> Provide access levels at the API level, set by the login() method relayed 
> through IAuthenticator.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to