Smegdap is a project mainly written in JAVASCRIPT and PERL, it's free.
ldap group manager for enterprise systems
apt-get install -y dh-make-perl
libcatalyst-perl libcatalyst-modules-perl
libcatalyst-modules-extra-perl
libnet-ldap-perl libnet-ldap-server-perl
libconvert-asn1-perl libmoose-perl
libcatalyst-plugin-requiressl-perl
libcatalyst-authentication-store-ldap-perl
libio-socket-ssl-perl
################################################################################ wget -O Catalyst-Model-LDAP-0.17.tar.gz http://search.cpan.org/CPAN/authors/id/D/DA/DANIELTWC/Catalyst-Model-LDAP-0.17.tar.gz tar xvzf Catalyst-Model-LDAP-0.17.tar.gz (cd Catalyst-Model-LDAP-0.17; dh-make-perl) (cd Catalyst-Model-LDAP-0.17; debian/rules binary) dpkg -i libcatalyst-model-ldap-perl_0.17-1_all.deb ################################################################################
git clone git://github.com/fapestniegd/smegdap.git smegdap/bin/local_config # <-- parse /etc/ldap/ldap.conf and write authconfig.yaml smegdap/script/smegdap_server.pl #<-- run on prort 3000 (no ssl)
################################################################################
################################################################################ apt-get install -y apache2-mpm-prefork libapache2-mod-perl2 libcatalyst-engine-apache-perl perlmagick libcatalyst-modules-extra-perl libcatalyst-modules-perl libcatalyst-perl libcatalyst-plugin-session-fastmmap-perl libcatalyst-view-tt-perl libhtml-prototype-perl (cd /etc/apache2/sites-enabled; ln -s ../sites-available/default-ssl 001-ssl) (cd /etc/apache2/mods-enabled; ln -s ../mods-available/ssl.load) (cd /etc/apache2/mods-enabled; ln -s ../mods-available/ssl.conf)
cat<
<Location /smegdap>
SetHandler modperl
PerlResponseHandler smegdap
</Location>
EOF mkdir -p /var/www/smegdap /etc/init.d/apache2 restart
################################################################################
################################################################################
"login" view
"create account" view that creates => cn=
"verify email link" view that creates => dc=
"create domain" view that creates => cn=
# may write dc=<domain>,dc=<userid>,${basedn}
dc=<domain>,dc=<userid>,${basedn}
+ ou=Aliases
+ ou=DNS
+ ou=Group
+ ou=Hosts
+ ou=Networks
+ ou=People
+ ou=Sets
+ ou=Special
+ ou=sudoers
"verify email link": "verifies payment" prompts for basedn, sees if it's available,
view that creates => dc=