Various updates

This commit is contained in:
Martin Dobrev 2013-11-02 15:09:05 +00:00
parent 1a6aa64a1a
commit 222d008f3e
5 changed files with 83 additions and 8 deletions

72
src/collection/ldap.js Normal file
View File

@ -0,0 +1,72 @@
/*
* LDAP collection
* Copyright (C) 2013 Martin Dobrev <martin.dobrev@unixsol.co.uk>
* UNIXSOL LTD, registered company in UK and Wales
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @autor: Martin Dobrev <martin.dobrev@unixsol.co.uk>
**/
var _ = require('underscore');
var Q = require('q');
function LDAP(options, models)
{
if (!options)
{
options = {};
}
_.defaults(options, {
'indexes': [],
});
LDAP.super_.call(this, models);
this.indexes = options.indexes;
this.prefix = options.prefix;
}
require('util').inherits(LDAP, require('../collection'));
// Private methods
LDAP.prototype._extract = function (ids)
{
console.log('Not yet implemented');
};
LDAP.prototype._get = function (properties)
{
console.log('Not yet implemented');
};
LDAP.prototype._add = function (models, options)
{
throw "Adding information to LDAP is not supported. You can manage the entries by other means."
};
LDAP.prototype._remove = function (ids)
{
throw "Removing information from LDAP is not supported. You can manage the entries by other means."
};
LDAP.prototype._update = function (models)
{
throw "Updating information from LDAP is not supported. You can manage the entries by other means."
};
//////////////////////////////////////////////////////////////////////
LDAP.extend = require('extendable');
module.exports = LDAP;

View File

@ -16,7 +16,7 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @autor: Martin Dobrev <martin.dobrev@unixsol.co.uk>
* @author: Martin Dobrev <martin.dobrev@unixsol.co.uk>
**/
var _ = require('underscore');
@ -56,7 +56,7 @@ MySQL.prototype._extract = function (ids)
var promises = [];
_.each(ids, function (id) {
promises.push(knex('users').where('email', id).andWhere('active', 1).select('password', 'email', 'permissions').then(function (model)
promises.push(knex('users').where('email', id).andWhere('active', 1).select('id', 'password', 'email', 'permissions').then(function (model)
{
if (_.isEmpty(model))
{
@ -66,6 +66,7 @@ MySQL.prototype._extract = function (ids)
var result =
{
id: id,
db_id: model[0].id,
email: model[0].email,
pw_hash: model[0].password,
permission: perms[model[0].permissions],
@ -193,7 +194,10 @@ MySQL.prototype._remove = function (ids)
}
// @todo Handle indexes.
promises.push(knex('users').whereIn('email', keys).del());
promises.push(knex('users').whereIn('email', keys).del().then(function (ids)
{
return true;
}));
return Q.all(promises);
};

View File

@ -356,7 +356,6 @@ cfg.merge({
// Modified by Martin Dobrev @ 2013-10-22
'mysql': {
'enabled' : false,
'uri' : 'mysql://xoauser:xoapass@localhost:3306/xoa',
'username' : 'xoauser',
'password' : 'xoapass',
'database' : 'xoa',

View File

@ -170,12 +170,12 @@ function InitializeUsersBackend(backend)
case 'mysql' : collection = require('./collection/mysql'); break;
case 'postgre' : break;
case 'sqlite' : break;
case 'ldap' : break;
case 'ldap' : collection = require('./collection/ldap'); break;
default : throw "Userdb backend not supported: " + backend; break;
}
if (collection !== null) {
console.info('UserDB initialized with %s backend', backend);
console.info('UserDB initialized with "%s" backend', backend);
return collection.extend({
'model': User,
@ -196,7 +196,7 @@ function InitializeUsersBackend(backend)
}
});
} else {
throw "Unable to initialize UserDB Collection";
throw "Unable to initialize UserDB Collection. Using not yet implemented backend: " + backend;
}
}