acl-backend-rethinkdb
v1.0.0
Published
RethinkDB backend for acl
Maintainers
Readme
acl-backend-rethinkdb
RethinkDB backend for acl that
works with both rethinkdb
and rethinkdbdash drivers
Using rethinkdbdash driver
This driver takes care of creating the connection for the user so usage is more straightforward
var acl = require('acl')
var r = require('rethinkdbdash')()
var RethinkDBBackend = require('acl-backend-rethinkdb')
var options = {
prefix: 'acl_',
useSingle: true,
ensureTable: true
}
acl = new acl(new RethinkDBBackend(r, options))
acl.addUserRoles('john', 'admin', function(err) {
...
})Using rethinkdb driver
Since the official rethinkdb driver requires a connection to be passed to
the run method, the connection parameter is required for the backend to function
var acl = require('acl')
var r = require('rethinkdb')
var RethinkDBBackend = require('acl-backend-rethinkdb')
r.connect({}).then(function (connection) {
var options = {
prefix: 'acl_',
useSingle: true,
ensureTable: true
}
acl = new acl(new RethinkDBBackend(r, options, connection))
acl.addUserRoles('john', 'admin', function(err) {
...
})
})API
RethinkDBBackend ( rethink, [ options ], [ connection ] )
rethink{Object} - RethinkDB instanceoptions{Object}- [
db="test"] {String} - Database name - [
prefix="acl_"] {String} - Prefix for table names - [
table="resources"] {String} - Table name for useSingle - [
useSingle=true] {Boolean} - Use a single table for storing data whentrue - [
ensureTable=true] {Boolean} - Creates a table if it does not exist whentrue. Should betruewhenuseSingle=falsesince bucket/table names are created based on resource names
- [
- [
connection] {Object} - Database connection object. Required forrethinkdbdriver and not used byrethinkdbdashdriver
Notes
- When
useSingle=falseis set buckets not matching/A-Za-z0-9_/will have their bucket/table name names encoded with their hex value. This allows any character to be used for the bucket name without violating RethinkDB's table naming constraint.
