Access Control List filter for security-aware search
Public fields
acl_field
Metadata field containing ACLs
Methods
Method new()
Create a new ACLFilter
Arguments
acl_field
Field name for ACLs (default: "_acl")
Filter documents based on user's ACL principals
Usage
ACLFilter$filter(documents, user_principals, default_allow = FALSE)
Arguments
documents
List of documents with metadata
user_principals
Character vector or list of ACLPrincipal
default_allow
Allow if no ACL defined (default: FALSE)
Returns
Filtered documents
Method add_acl()
Add ACL to document metadata
Usage
ACLFilter$add_acl(metadata, principals)
Arguments
metadata
Document metadata
principals
Character vector of principal strings
Method create_filter_condition()
Create ACL filter condition for query
Usage
ACLFilter$create_filter_condition(user_principals)
Arguments
user_principals
Character vector of principals
Returns
Filter condition list
Method clone()
The objects of this class are cloneable with this method.
Usage
ACLFilter$clone(deep = FALSE)
Arguments
deep
Whether to make a deep clone.
Examples
if (FALSE) { # \dontrun{
acl_filter <- ACLFilter$new()
filtered <- acl_filter$filter(
documents = results,
user_principals = c("user:alice", "group:engineering")
)
} # }