1.0.0 • Published 7 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 whentrue
ensureTable=true
{Boolean
} - Creates a table if it does not exist whentrue
. Should betrue
whenuseSingle=false
since bucket/table names are created based on resource names
connection
{Object
} - Database connection object. Required forrethinkdb
driver and not used byrethinkdbdash
driver
Notes
- When
useSingle=false
is 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.