Home

Awesome

acl_elasticsearch_backend

An Elasticsearch backend for NODE ACL

#Installation

npm install acl-elasticsearch-backend

#How to use it

Usage sample:

'use strict';

var Elasticsearch = require('elasticsearch');
var AclEsBackend = require('acl-elasticsearch-backend');
var Acl = require('acl');

var client = new Elasticsearch.Client({
  apiVersion: '1.7',
  hosts: ['localhost:9200'],
  log: 'trace',
  keepAlive: true,
  maxSockets: 100,
  minSockets: 100
});
client.indices.putTemplate({
  name: 'acltest-template',
  body: {
    template: 'acltest',
    mappings: {
      _default_: {
        dynamic_templates: [
          {
            string_fields: {
              match: '*',
              match_mapping_type: 'string',
              mapping: {
                type: 'string',
                index: 'not_analyzed'
              }
            }
          }
        ]
      }
    }
  }
}, function(err, resp) {
  if (err) {
    throw new Error(err);
  }
  var aclEsBackend = new AclEsBackend({
    client: client,
    index: 'acltest',
    prefix: 'test_',
    refresh: true,
    size: 1000
  });
  var acl = new Acl(aclEsBackend);
  acl.addUserRoles('Joe', ['Admin', 'Moderator'], function(err) {
    if (err) {
      throw new Error(err);
    }
    acl.userRoles('Joe', function(err, roles) {
      console.log('Joe user roles are: ', roles);
    });
  });
});

#Documentation See NODE ACL documentation