1.0.0 • Published 8 years ago
acl-backend-rethinkdb v1.0.0
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 nameprefix="acl_"{String} - Prefix for table namestable="resources"{String} - Table name for useSingleuseSingle=true{Boolean} - Use a single table for storing data whentrueensureTable=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.