fix stuff that can be fixed

This commit is contained in:
Matvey Aksenov 2015-11-23 22:04:59 +00:00
parent 82b1769fc9
commit 990a1021b8
4 changed files with 43 additions and 34 deletions

View File

@ -27,7 +27,7 @@ spec = do
res `shouldBe` Left
(Ldap.ResponseError
(Ldap.ResponseErrorCode (Ldap.Type.DeleteRequest
(Ldap.Type.LdapDn (Ldap.Type.LdapString "cn=oddish, o=localhost")))
(Ldap.Type.LdapDn (Ldap.Type.LdapString "cn=oddish,o=localhost")))
Ldap.NoSuchObject
(Dn "o=localhost")
"cn=oddish, o=localhost"))
"cn=oddish,o=localhost"))

View File

@ -30,7 +30,7 @@ spec = do
res `shouldBe` Left
(ResponseError
(ResponseErrorCode
(Ldap.Type.ModifyRequest (Ldap.Type.LdapDn (Ldap.Type.LdapString "cn=pikachu, o=localhost"))
(Ldap.Type.ModifyRequest (Ldap.Type.LdapDn (Ldap.Type.LdapString "cn=pikachu,o=localhost"))
[( Ldap.Type.Delete
, Ldap.Type.PartialAttribute
(Ldap.Type.AttributeDescription (Ldap.Type.LdapString "password"))

View File

@ -59,49 +59,49 @@ dns (SearchEntry dn _ : es) = dn : dns es
dns [] = []
bulbasaur :: Dn
bulbasaur = Dn "cn=bulbasaur, o=localhost"
bulbasaur = Dn "cn=bulbasaur,o=localhost"
ivysaur :: Dn
ivysaur = Dn "cn=ivysaur, o=localhost"
ivysaur = Dn "cn=ivysaur,o=localhost"
venusaur :: Dn
venusaur = Dn "cn=venusaur, o=localhost"
venusaur = Dn "cn=venusaur,o=localhost"
charmander :: Dn
charmander = Dn "cn=charmander, o=localhost"
charmander = Dn "cn=charmander,o=localhost"
charmeleon :: Dn
charmeleon = Dn "cn=charmeleon, o=localhost"
charmeleon = Dn "cn=charmeleon,o=localhost"
charizard :: Dn
charizard = Dn "cn=charizard, o=localhost"
charizard = Dn "cn=charizard,o=localhost"
squirtle :: Dn
squirtle = Dn "cn=squirtle, o=localhost"
squirtle = Dn "cn=squirtle,o=localhost"
wartortle :: Dn
wartortle = Dn "cn=wartortle, o=localhost"
wartortle = Dn "cn=wartortle,o=localhost"
blastoise :: Dn
blastoise = Dn "cn=blastoise, o=localhost"
blastoise = Dn "cn=blastoise,o=localhost"
caterpie :: Dn
caterpie = Dn "cn=caterpie, o=localhost"
caterpie = Dn "cn=caterpie,o=localhost"
metapod :: Dn
metapod = Dn "cn=metapod, o=localhost"
metapod = Dn "cn=metapod,o=localhost"
butterfree :: Dn
butterfree = Dn "cn=butterfree, o=localhost"
butterfree = Dn "cn=butterfree,o=localhost"
pikachu :: Dn
pikachu = Dn "cn=pikachu, o=localhost"
pikachu = Dn "cn=pikachu,o=localhost"
raichu :: Dn
raichu = Dn "cn=raichu, o=localhost"
raichu = Dn "cn=raichu,o=localhost"
vulpix :: Dn
vulpix = Dn "cn=vulpix, o=localhost"
vulpix = Dn "cn=vulpix,o=localhost"
oddish :: Dn
oddish = Dn "cn=oddish, o=localhost"
oddish = Dn "cn=oddish,o=localhost"

View File

@ -3,9 +3,18 @@
var fs = require('fs');
var ldapjs = require('ldapjs');
// Stub unimplemented functionality.
ldapjs.ExtensibleFilter.prototype.matches = ldapjs.EqualityFilter.prototype.matches;
ldapjs.ApproximateFilter.prototype.matches = ldapjs.EqualityFilter.prototype.matches;
// Remove superfluous spaces from DNs.
var wrappee = ldapjs.DN.prototype.format;
ldapjs.DN.prototype.format = function(options) {
options = options || this._format;
options['skipSpace'] = true;
return (wrappee.bind(this))(options);
};
var port = process.env.PORT;
var certificate = fs.readFileSync(process.env.SSL_CERT, "utf-8");
var key = fs.readFileSync(process.env.SSL_KEY, "utf-8");
@ -13,43 +22,43 @@ var server = ldapjs.createServer({certificate: certificate, key: key});
// <http://bulbapedia.bulbagarden.net/wiki/List_of_Pok%C3%A9mon_by_National_Pok%C3%A9dex_number>
var pokemon = [
{ dn: 'cn=bulbasaur, o=localhost',
{ dn: 'cn=bulbasaur,o=localhost',
attributes: { cn: 'bulbasaur', evolution: "0", type: ["grass", "poison"], }
},
{ dn: 'cn=ivysaur, o=localhost',
{ dn: 'cn=ivysaur,o=localhost',
attributes: { cn: 'ivysaur', evolution: "1", type: ["grass", "poison"], }
},
{ dn: 'cn=venusaur, o=localhost',
{ dn: 'cn=venusaur,o=localhost',
attributes: { cn: 'venusaur', evolution: "2", type: ["grass", "poison"], }
},
{ dn: 'cn=charmander, o=localhost',
{ dn: 'cn=charmander,o=localhost',
attributes: { cn: 'charmander', evolution: "0", type: ["fire"], }
},
{ dn: 'cn=charmeleon, o=localhost',
{ dn: 'cn=charmeleon,o=localhost',
attributes: { cn: 'charmeleon', evolution: "1", type: ["fire"], }
},
{ dn: 'cn=charizard, o=localhost',
{ dn: 'cn=charizard,o=localhost',
attributes: { cn: 'charizard', evolution: "2", type: ["fire", "flying"], }
},
{ dn: 'cn=squirtle, o=localhost',
{ dn: 'cn=squirtle,o=localhost',
attributes: { cn: 'squirtle', evolution: "0", type: ["water"], }
},
{ dn: 'cn=wartortle, o=localhost',
{ dn: 'cn=wartortle,o=localhost',
attributes: { cn: 'wartortle', evolution: "1", type: ["water"], }
},
{ dn: 'cn=blastoise, o=localhost',
{ dn: 'cn=blastoise,o=localhost',
attributes: { cn: 'blastoise', evolution: "2", type: ["water"], }
},
{ dn: 'cn=caterpie, o=localhost',
{ dn: 'cn=caterpie,o=localhost',
attributes: { cn: 'caterpie', evolution: "0", type: ["bug"], }
},
{ dn: 'cn=metapod, o=localhost',
{ dn: 'cn=metapod,o=localhost',
attributes: { cn: 'metapod', evolution: "1", type: ["bug"], }
},
{ dn: 'cn=butterfree, o=localhost',
{ dn: 'cn=butterfree,o=localhost',
attributes: { cn: 'butterfree', evolution: "2", type: ["bug", "flying"], }
},
{ dn: 'cn=pikachu, o=localhost',
{ dn: 'cn=pikachu,o=localhost',
attributes: { cn: 'pikachu', evolution: "0", type: ["electric"], password: ["i-choose-you"] }
},
];
@ -63,8 +72,8 @@ server.bind('cn=admin', function(req, res, next) {
}
});
server.bind('cn=pikachu, o=localhost', function(req, res, next) {
if ((req.dn.toString() === 'cn=pikachu, o=localhost') && (req.credentials === 'i-choose-you')) {
server.bind('cn=pikachu,o=localhost', function(req, res, next) {
if ((req.dn.toString() === 'cn=pikachu,o=localhost') && (req.credentials === 'i-choose-you')) {
res.end();
return next();
} else {