This commit is contained in:
Timothy Warren 2019-02-08 13:44:52 -05:00
commit c985215714
615 changed files with 47872 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
config/config.php
queries/custom_*
templates/*/custom_*

23
INSTALL Normal file
View File

@ -0,0 +1,23 @@
For install instructions in non-English languages, see the wiki:
http://phpldapadmin.sourceforge.net
* Requirements
phpLDAPadmin requires the following:
a. A web server (Apache, IIS, etc).
b. PHP 5.0.0 or newer (with LDAP support)
* To install
1. Unpack the archive (if you're reading this, you already did that).
2. Put the resulting 'phpldapadmin' directory somewhere in your webroot.
3. Copy 'config.php.example' to 'config.php' and edit to taste (this is in the config/ directory).
4. Then, point your browser to the phpldapadmin directory.
* For additional help
See the wiki:
http://phpldapadmin.sourceforge.net
Join our mailing list:
https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel

341
LICENSE Normal file
View File

@ -0,0 +1,341 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
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 2 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, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

1
VERSION Normal file
View File

@ -0,0 +1 @@
RELEASE-1.2.3

576
config/config.php.example Normal file
View File

@ -0,0 +1,576 @@
<?php
/** NOTE **
** Make sure that <?php is the FIRST line of this file!
** IE: There should NOT be any blank lines or spaces BEFORE <?php
**/
/**
* The phpLDAPadmin config file
* See: http://phpldapadmin.sourceforge.net/wiki/index.php/Config.php
*
* This is where you can customise some of the phpLDAPadmin defaults
* that are defined in config_default.php.
*
* To override a default, use the $config->custom variable to do so.
* For example, the default for defining the language in config_default.php
*
* $this->default->appearance['language'] = array(
* 'desc'=>'Language',
* 'default'=>'auto');
*
* to override this, use $config->custom->appearance['language'] = 'en_EN';
*
* This file is also used to configure your LDAP server connections.
*
* You must specify at least one LDAP server there. You may add
* as many as you like. You can also specify your language, and
* many other options.
*
* NOTE: Commented out values in this file prefixed by //, represent the
* defaults that have been defined in config_default.php.
* Commented out values prefixed by #, dont reflect their default value, you can
* check config_default.php if you want to see what the default is.
*
* DONT change config_default.php, you changes will be lost by the next release
* of PLA. Instead change this file - as it will NOT be replaced by a new
* version of phpLDAPadmin.
*/
/*********************************************
* Useful important configuration overrides *
*********************************************/
/* If you are asked to put PLA in debug mode, this is how you do it: */
# $config->custom->debug['level'] = 255;
# $config->custom->debug['syslog'] = true;
# $config->custom->debug['file'] = '/tmp/pla_debug.log';
/* phpLDAPadmin can encrypt the content of sensitive cookies if you set this
to a big random string. */
// $config->custom->session['blowfish'] = null;
/* If your auth_type is http, you can override your HTTP Authentication Realm. */
// $config->custom->session['http_realm'] = sprintf('%s %s',app_name(),'login');
/* The language setting. If you set this to 'auto', phpLDAPadmin will attempt
to determine your language automatically.
If PLA doesnt show (all) strings in your language, then you can do some
translation at http://translations.launchpad.net/phpldapadmin and download
the translation files, replacing those provided with PLA.
(We'll pick up the translations before making the next release too!) */
// $config->custom->appearance['language'] = 'auto';
/* The temporary storage directory where we will put jpegPhoto data
This directory must be readable and writable by your web server. */
// $config->custom->jpeg['tmpdir'] = '/tmp'; // Example for Unix systems
# $config->custom->jpeg['tmpdir'] = 'c:\\temp'; // Example for Windows systems
/* Set this to (bool)true if you do NOT want a random salt used when
calling crypt(). Instead, use the first two letters of the user's
password. This is insecure but unfortunately needed for some older
environments. */
# $config->custom->password['no_random_crypt_salt'] = true;
/* PHP script timeout control. If php runs longer than this many seconds then
PHP will stop with an Maximum Execution time error. Increase this value from
the default if queries to your LDAP server are slow. The default is either
30 seconds or the setting of max_exection_time if this is null. */
// $config->custom->session['timelimit'] = 30;
/* Our local timezone
This is to make sure that when we ask the system for the current time, we
get the right local time. If this is not set, all time() calculations will
assume UTC if you have not set PHP date.timezone. */
// $config->custom->appearance['timezone'] = null;
# $config->custom->appearance['timezone'] = 'Australia/Melbourne';
/*********************************************
* Commands *
*********************************************/
/* Command availability ; if you don't authorize a command the command
links will not be shown and the command action will not be permitted.
For better security, set also ACL in your ldap directory. */
/*
$config->custom->commands['cmd'] = array(
'entry_internal_attributes_show' => true,
'entry_refresh' => true,
'oslinks' => true,
'switch_template' => true
);
$config->custom->commands['script'] = array(
'add_attr_form' => true,
'add_oclass_form' => true,
'add_value_form' => true,
'collapse' => true,
'compare' => true,
'compare_form' => true,
'copy' => true,
'copy_form' => true,
'create' => true,
'create_confirm' => true,
'delete' => true,
'delete_attr' => true,
'delete_form' => true,
'draw_tree_node' => true,
'expand' => true,
'export' => true,
'export_form' => true,
'import' => true,
'import_form' => true,
'login' => true,
'logout' => true,
'login_form' => true,
'mass_delete' => true,
'mass_edit' => true,
'mass_update' => true,
'modify_member_form' => true,
'monitor' => true,
'purge_cache' => true,
'query_engine' => true,
'rename' => true,
'rename_form' => true,
'rdelete' => true,
'refresh' => true,
'schema' => true,
'server_info' => true,
'show_cache' => true,
'template_engine' => true,
'update_confirm' => true,
'update' => true
);
*/
/*********************************************
* Appearance *
*********************************************/
/* If you want to choose the appearance of the tree, specify a class name which
inherits from the Tree class. */
// $config->custom->appearance['tree'] = 'AJAXTree';
# $config->custom->appearance['tree'] = 'HTMLTree';
/* Just show your custom templates. */
// $config->custom->appearance['custom_templates_only'] = false;
/* Disable the default template. */
// $config->custom->appearance['disable_default_template'] = false;
/* Hide the warnings for invalid objectClasses/attributes in templates. */
// $config->custom->appearance['hide_template_warning'] = false;
/* Set to true if you would like to hide header and footer parts. */
// $config->custom->appearance['minimalMode'] = false;
/* Configure what objects are shown in left hand tree */
// $config->custom->appearance['tree_filter'] = '(objectclass=*)';
/* The height and width of the tree. If these values are not set, then
no tree scroll bars are provided. */
// $config->custom->appearance['tree_height'] = null;
# $config->custom->appearance['tree_height'] = 600;
// $config->custom->appearance['tree_width'] = null;
# $config->custom->appearance['tree_width'] = 250;
/* Confirm create and update operations, allowing you to review the changes
and optionally skip attributes during the create/update operation. */
// $config->custom->confirm['create'] = true;
// $config->custom->confirm['update'] = true;
/* Confirm copy operations, and treat them like create operations. This allows
you to edit the attributes (thus changing any that might conflict with
uniqueness) before creating the new entry. */
// $config->custom->confirm['copy'] = true;
/*********************************************
* User-friendly attribute translation *
*********************************************/
/* Use this array to map attribute names to user friendly names. For example, if
you don't want to see "facsimileTelephoneNumber" but rather "Fax". */
// $config->custom->appearance['friendly_attrs'] = array();
$config->custom->appearance['friendly_attrs'] = array(
'facsimileTelephoneNumber' => 'Fax',
'gid' => 'Group',
'mail' => 'Email',
'telephoneNumber' => 'Telephone',
'uid' => 'User Name',
'userPassword' => 'Password'
);
/*********************************************
* Hidden attributes *
*********************************************/
/* You may want to hide certain attributes from being edited. If you want to
hide attributes from the user, you should use your LDAP servers ACLs.
NOTE: The user must be able to read the hide_attrs_exempt entry to be
excluded. */
// $config->custom->appearance['hide_attrs'] = array();
# $config->custom->appearance['hide_attrs'] = array('objectClass');
/* Members of this list will be exempt from the hidden attributes. */
// $config->custom->appearance['hide_attrs_exempt'] = null;
# $config->custom->appearance['hide_attrs_exempt'] = 'cn=PLA UnHide,ou=Groups,c=AU';
/*********************************************
* Read-only attributes *
*********************************************/
/* You may want to phpLDAPadmin to display certain attributes as read only,
meaning that users will not be presented a form for modifying those
attributes, and they will not be allowed to be modified on the "back-end"
either. You may configure this list here:
NOTE: The user must be able to read the readonly_attrs_exempt entry to be
excluded. */
// $config->custom->appearance['readonly_attrs'] = array();
/* Members of this list will be exempt from the readonly attributes. */
// $config->custom->appearance['readonly_attrs_exempt'] = null;
# $config->custom->appearance['readonly_attrs_exempt'] = 'cn=PLA ReadWrite,ou=Groups,c=AU';
/*********************************************
* Group attributes *
*********************************************/
/* Add "modify group members" link to the attribute. */
// $config->custom->modify_member['groupattr'] = array('member','uniqueMember','memberUid');
/* Configure filter for member search. This only applies to "modify group members" feature */
// $config->custom->modify_member['filter'] = '(objectclass=Person)';
/* Attribute that is added to the group member attribute. */
// $config->custom->modify_member['attr'] = 'dn';
/* For Posix attributes */
// $config->custom->modify_member['posixattr'] = 'uid';
// $config->custom->modify_member['posixfilter'] = '(uid=*)';
// $config->custom->modify_member['posixgroupattr'] = 'memberUid';
/*********************************************
* Support for attrs display order *
*********************************************/
/* Use this array if you want to have your attributes displayed in a specific
order. You can use default attribute names or their fridenly names.
For example, "sn" will be displayed right after "givenName". All the other
attributes that are not specified in this array will be displayed after in
alphabetical order. */
// $config->custom->appearance['attr_display_order'] = array();
# $config->custom->appearance['attr_display_order'] = array(
# 'givenName',
# 'sn',
# 'cn',
# 'displayName',
# 'uid',
# 'uidNumber',
# 'gidNumber',
# 'homeDirectory',
# 'mail',
# 'userPassword'
# );
/*********************************************
* Define your LDAP servers in this section *
*********************************************/
$servers = new Datastore();
/* $servers->NewServer('ldap_pla') must be called before each new LDAP server
declaration. */
$servers->newServer('ldap_pla');
/* A convenient name that will appear in the tree viewer and throughout
phpLDAPadmin to identify this LDAP server to users. */
$servers->setValue('server','name','My LDAP Server');
/* Examples:
'ldap.example.com',
'ldaps://ldap.example.com/',
'ldapi://%2fusr%local%2fvar%2frun%2fldapi'
(Unix socket at /usr/local/var/run/ldap) */
// $servers->setValue('server','host','127.0.0.1');
/* The port your LDAP server listens on (no quotes). 389 is standard. */
// $servers->setValue('server','port',389);
/* Array of base DNs of your LDAP server. Leave this blank to have phpLDAPadmin
auto-detect it for you. */
// $servers->setValue('server','base',array(''));
/* Five options for auth_type:
1. 'cookie': you will login via a web form, and a client-side cookie will
store your login dn and password.
2. 'session': same as cookie but your login dn and password are stored on the
web server in a persistent session variable.
3. 'http': same as session but your login dn and password are retrieved via
HTTP authentication.
4. 'config': specify your login dn and password here in this config file. No
login will be required to use phpLDAPadmin for this server.
5. 'sasl': login will be taken from the webserver's kerberos authentication.
Currently only GSSAPI has been tested (using mod_auth_kerb).
Choose wisely to protect your authentication information appropriately for
your situation. If you choose 'cookie', your cookie contents will be
encrypted using blowfish and the secret your specify above as
session['blowfish']. */
// $servers->setValue('login','auth_type','session');
/* The DN of the user for phpLDAPadmin to bind with. For anonymous binds or
'cookie','session' or 'sasl' auth_types, LEAVE THE LOGIN_DN AND LOGIN_PASS
BLANK. If you specify a login_attr in conjunction with a cookie or session
auth_type, then you can also specify the bind_id/bind_pass here for searching
the directory for users (ie, if your LDAP server does not allow anonymous
binds. */
// $servers->setValue('login','bind_id','');
# $servers->setValue('login','bind_id','cn=Manager,dc=example,dc=com');
/* Your LDAP password. If you specified an empty bind_id above, this MUST also
be blank. */
// $servers->setValue('login','bind_pass','');
# $servers->setValue('login','bind_pass','secret');
/* Use TLS (Transport Layer Security) to connect to the LDAP server. */
// $servers->setValue('server','tls',false);
/************************************
* SASL Authentication *
************************************/
/* Enable SASL authentication LDAP SASL authentication requires PHP 5.x
configured with --with-ldap-sasl=DIR. If this option is disabled (ie, set to
false), then all other sasl options are ignored. */
// $servers->setValue('login','auth_type','sasl');
/* SASL auth mechanism */
// $servers->setValue('sasl','mech','GSSAPI');
/* SASL authentication realm name */
// $servers->setValue('sasl','realm','');
# $servers->setValue('sasl','realm','EXAMPLE.COM');
/* SASL authorization ID name
If this option is undefined, authorization id will be computed from bind DN,
using authz_id_regex and authz_id_replacement. */
// $servers->setValue('sasl','authz_id', null);
/* SASL authorization id regex and replacement
When authz_id property is not set (default), phpLDAPAdmin will try to
figure out authorization id by itself from bind distinguished name (DN).
This procedure is done by calling preg_replace() php function in the
following way:
$authz_id = preg_replace($sasl_authz_id_regex,$sasl_authz_id_replacement,
$bind_dn);
For info about pcre regexes, see:
- pcre(3), perlre(3)
- http://www.php.net/preg_replace */
// $servers->setValue('sasl','authz_id_regex',null);
// $servers->setValue('sasl','authz_id_replacement',null);
# $servers->setValue('sasl','authz_id_regex','/^uid=([^,]+)(.+)/i');
# $servers->setValue('sasl','authz_id_replacement','$1');
/* SASL auth security props.
See http://beepcore-tcl.sourceforge.net/tclsasl.html#anchor5 for explanation. */
// $servers->setValue('sasl','props',null);
/* Default password hashing algorithm. One of md5, ssha, sha, md5crpyt, smd5,
blowfish, crypt or leave blank for now default algorithm. */
// $servers->setValue('appearance','password_hash','md5');
/* If you specified 'cookie' or 'session' as the auth_type above, you can
optionally specify here an attribute to use when logging in. If you enter
'uid' and login as 'dsmith', phpLDAPadmin will search for (uid=dsmith)
and log in as that user.
Leave blank or specify 'dn' to use full DN for logging in. Note also that if
your LDAP server requires you to login to perform searches, you can enter the
DN to use when searching in 'bind_id' and 'bind_pass' above. */
// $servers->setValue('login','attr','dn');
/* Base DNs to used for logins. If this value is not set, then the LDAP server
Base DNs are used. */
// $servers->setValue('login','base',array());
/* If 'login,attr' is used above such that phpLDAPadmin will search for your DN
at login, you may restrict the search to a specific objectClasses. EG, set this
to array('posixAccount') or array('inetOrgPerson',..), depending upon your
setup. */
// $servers->setValue('login','class',array());
/* If you specified something different from 'dn', for example 'uid', as the
login_attr above, you can optionally specify here to fall back to
authentication with dn.
This is useful, when users should be able to log in with their uid, but
the ldap administrator wants to log in with his root-dn, that does not
necessarily have the uid attribute.
When using this feature, login_class is ignored. */
// $servers->setValue('login','fallback_dn',false);
/* Specify true If you want phpLDAPadmin to not display or permit any
modification to the LDAP server. */
// $servers->setValue('server','read_only',false);
/* Specify false if you do not want phpLDAPadmin to draw the 'Create new' links
in the tree viewer. */
// $servers->setValue('appearance','show_create',true);
/* Set to true if you would like to initially open the first level of each tree. */
// $servers->setValue('appearance','open_tree',false);
/* This feature allows phpLDAPadmin to automatically determine the next
available uidNumber for a new entry. */
// $servers->setValue('auto_number','enable',true);
/* The mechanism to use when finding the next available uidNumber. Two possible
values: 'uidpool' or 'search'.
The 'uidpool' mechanism uses an existing uidPool entry in your LDAP server to
blindly lookup the next available uidNumber. The 'search' mechanism searches
for entries with a uidNumber value and finds the first available uidNumber
(slower). */
// $servers->setValue('auto_number','mechanism','search');
/* The DN of the search base when the 'search' mechanism is used above. */
# $servers->setValue('auto_number','search_base','ou=People,dc=example,dc=com');
/* The minimum number to use when searching for the next available number
(only when 'search' is used for auto_number. */
// $servers->setValue('auto_number','min',array('uidNumber'=>1000,'gidNumber'=>500));
/* If you set this, then phpldapadmin will bind to LDAP with this user ID when
searching for the uidnumber. The idea is, this user id would have full
(readonly) access to uidnumber in your ldap directory (the logged in user
may not), so that you can be guaranteed to get a unique uidnumber for your
directory. */
// $servers->setValue('auto_number','dn',null);
/* The password for the dn above. */
// $servers->setValue('auto_number','pass',null);
/* Enable anonymous bind login. */
// $servers->setValue('login','anon_bind',true);
/* Use customized page with prefix when available. */
# $servers->setValue('custom','pages_prefix','custom_');
/* If you set this, then only these DNs are allowed to log in. This array can
contain individual users, groups or ldap search filter(s). Keep in mind that
the user has not authenticated yet, so this will be an anonymous search to
the LDAP server, so make your ACLs allow these searches to return results! */
# $servers->setValue('login','allowed_dns',array(
# 'uid=stran,ou=People,dc=example,dc=com',
# '(&(gidNumber=811)(objectClass=groupOfNames))',
# '(|(uidNumber=200)(uidNumber=201))',
# 'cn=callcenter,ou=Group,dc=example,dc=com'));
/* Set this if you dont want this LDAP server to show in the tree */
// $servers->setValue('server','visible',true);
/* Set this if you want to hide the base DNs that dont exist instead of
displaying the message "The base entry doesnt exist, create it?"
// $servers->setValue('server','hide_noaccess_base',false);
# $servers->setValue('server','hide_noaccess_base',true);
/* This is the time out value in minutes for the server. After as many minutes
of inactivity you will be automatically logged out. If not set, the default
value will be ( session_cache_expire()-1 ) */
# $servers->setValue('login','timeout',30);
/* Set this if you want phpldapadmin to perform rename operation on entry which
has children. Certain servers are known to allow it, certain are not. */
// $servers->setValue('server','branch_rename',false);
/* If you set this, then phpldapadmin will show these attributes as
internal attributes, even if they are not defined in your schema. */
// $servers->setValue('server','custom_sys_attrs',array(''));
# $servers->setValue('server','custom_sys_attrs',array('passwordExpirationTime','passwordAllowChangeTime'));
/* If you set this, then phpldapadmin will show these attributes on
objects, even if they are not defined in your schema. */
// $servers->setValue('server','custom_attrs',array(''));
# $servers->setValue('server','custom_attrs',array('nsRoleDN','nsRole','nsAccountLock'));
/* These attributes will be forced to MAY attributes and become option in the
templates. If they are not defined in the templates, then they wont appear
as per normal template processing. You may want to do this because your LDAP
server may automatically calculate a default value.
In Fedora Directory Server using the DNA Plugin one could ignore uidNumber,
gidNumber and sambaSID. */
// $servers->setValue('server','force_may',array(''));
# $servers->setValue('server','force_may',array('uidNumber','gidNumber','sambaSID'));
/*********************************************
* Unique attributes *
*********************************************/
/* You may want phpLDAPadmin to enforce some attributes to have unique values
(ie: not belong to other entries in your tree. This (together with
'unique','dn' and 'unique','pass' option will not let updates to
occur with other attributes have the same value. */
# $servers->setValue('unique','attrs',array('mail','uid','uidNumber'));
/* If you set this, then phpldapadmin will bind to LDAP with this user ID when
searching for attribute uniqueness. The idea is, this user id would have full
(readonly) access to your ldap directory (the logged in user may not), so
that you can be guaranteed to get a unique uidnumber for your directory. */
// $servers->setValue('unique','dn',null);
/* The password for the dn above. */
// $servers->setValue('unique','pass',null);
/**************************************************************************
* If you want to configure additional LDAP servers, do so below. *
* Remove the commented lines and use this section as a template for all *
* your other LDAP servers. *
**************************************************************************/
/*
$servers->newServer('ldap_pla');
$servers->setValue('server','name','LDAP Server');
$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array(''));
$servers->setValue('login','auth_type','cookie');
$servers->setValue('login','bind_id','');
$servers->setValue('login','bind_pass','');
$servers->setValue('server','tls',false);
# SASL auth
$servers->setValue('login','auth_type','sasl');
$servers->setValue('sasl','mech','GSSAPI');
$servers->setValue('sasl','realm','EXAMPLE.COM');
$servers->setValue('sasl','authz_id',null);
$servers->setValue('sasl','authz_id_regex','/^uid=([^,]+)(.+)/i');
$servers->setValue('sasl','authz_id_replacement','$1');
$servers->setValue('sasl','props',null);
$servers->setValue('appearance','password_hash','md5');
$servers->setValue('login','attr','dn');
$servers->setValue('login','fallback_dn',false);
$servers->setValue('login','class',null);
$servers->setValue('server','read_only',false);
$servers->setValue('appearance','show_create',true);
$servers->setValue('auto_number','enable',true);
$servers->setValue('auto_number','mechanism','search');
$servers->setValue('auto_number','search_base',null);
$servers->setValue('auto_number','min',array('uidNumber'=>1000,'gidNumber'=>500));
$servers->setValue('auto_number','dn',null);
$servers->setValue('auto_number','pass',null);
$servers->setValue('login','anon_bind',true);
$servers->setValue('custom','pages_prefix','custom_');
$servers->setValue('unique','attrs',array('mail','uid','uidNumber'));
$servers->setValue('unique','dn',null);
$servers->setValue('unique','pass',null);
$servers->setValue('server','visible',true);
$servers->setValue('login','timeout',30);
$servers->setValue('server','branch_rename',false);
$servers->setValue('server','custom_sys_attrs',array('passwordExpirationTime','passwordAllowChangeTime'));
$servers->setValue('server','custom_attrs',array('nsRoleDN','nsRole','nsAccountLock'));
$servers->setValue('server','force_may',array('uidNumber','gidNumber','sambaSID'));
*/
?>

View File

@ -0,0 +1,2 @@
Please see http://phpldapadmin.sourceforge.net/Translate now for information on
translating PLA.

4567
doc/certs/ca-bundle.crt Normal file

File diff suppressed because it is too large Load Diff

17
doc/certs/slapd.crt Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN CERTIFICATE-----
MIICtTCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQQFADBMMQswCQYDVQQGEwJHQjES
MBAGA1UECBMJQmVya3NoaXJlMRAwDgYDVQQHEwdOZXdidXJ5MRcwFQYDVQQKEw5N
eSBDb21wYW55IEx0ZDAeFw0wNTA5MTUwMjAyMTNaFw0yMTA3MjYxNjM2NTNaMEwx
CzAJBgNVBAYTAkdCMRIwEAYDVQQIEwlCZXJrc2hpcmUxEDAOBgNVBAcTB05ld2J1
cnkxFzAVBgNVBAoTDk15IENvbXBhbnkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GN
ADCBiQKBgQCr6PfdngYTUobwJDwIqY7ywDCWd/IJ+SL2hbe46558oVI7Vw2GbqWn
VZ1fJa0wV2pcy/e10HzZX+RpIwKOZUQvbH1jHJyZ/0bt7on8jmI5o+p+rLVspci5
yVNcgu1tQttpyKnTrDSDkLVbQ6VX8FKLnKnZ7+dk8SNibt0KbzKnOQIDAQABo4Gm
MIGjMB0GA1UdDgQWBBQ4xLvszjgfXgWht8V6s1eRAZS/OjB0BgNVHSMEbTBrgBQ4
xLvszjgfXgWht8V6s1eRAZS/OqFQpE4wTDELMAkGA1UEBhMCR0IxEjAQBgNVBAgT
CUJlcmtzaGlyZTEQMA4GA1UEBxMHTmV3YnVyeTEXMBUGA1UEChMOTXkgQ29tcGFu
eSBMdGSCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAgzaIKI03l
lZmX7IpLN3vqC/PL6QQTUQkdDRXJYGH+DdURx7v0nE/kkb3R3X92BpNxe5jywhHg
A5NaUhjAR76+F3Guk/4XFaWPctJ2PvfJWolS/VrY+KGc3N4zz9A2i8B6SHBzE6V8
EHkcGJtGXkFvCVp1ZbCyejJhw4PUEYawsQ==
-----END CERTIFICATE-----

15
doc/certs/slapd.key Normal file
View File

@ -0,0 +1,15 @@
-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQCr6PfdngYTUobwJDwIqY7ywDCWd/IJ+SL2hbe46558oVI7Vw2G
bqWnVZ1fJa0wV2pcy/e10HzZX+RpIwKOZUQvbH1jHJyZ/0bt7on8jmI5o+p+rLVs
pci5yVNcgu1tQttpyKnTrDSDkLVbQ6VX8FKLnKnZ7+dk8SNibt0KbzKnOQIDAQAB
AoGAdfKYpag3WOiFhpwFyJe1aV5tt79CBI+36lZicHDQw4fXqLkYoYSnCYFXQSHT
ithfNJ4JLeiG0InXaD9KELLwLU2C7rr7mgOBczzmVBGCYUDNuV3bMcNDOQk/drum
GLGqHhxU6W0dlCUnoBZoEHK6dvtDZnxCa+cUBozvFbuLOTUCQQDZJf+Mz7vc78nn
Cc7nnHFfO+79NQi9h0ydW6kb2LLSGB/f3oqwary8eqCs7RVinG21PMWbjrh0lGOJ
DjYP6dLDAkEAyqrs8pgxcxSTcJiaU4/sxGCeaS4fvoeCbYvKLlS5k5Km6DmA3nY+
KwxQyLHg64g1ImDSuLy3P/E2lZGCPhZGUwJAMVUxpqL3Mi2D+CpBSFtBYnpyRDJN
Rwm6/TD6zWnAznxOmYSsi4HkWQmfAUpnhly1i+w/lKSrAUlJB7Uj0R+1EwJAOADv
pUIFOCXRcGXbD4hQBxwj6jDCuOW9VwQwBImJFoyJ7tYlFFRcbYzjrfHpk2x6MlvL
Hx2XDeZcDQy+juWc3QJAHOpmlHuWqS07i5UIXVl5ohhoWkFd9Qs7/TowyFQF3zpO
BqnwfHZRpySjSUlNE0QpoJRJQPq7p3BWtS3PWMj0/A==
-----END RSA PRIVATE KEY-----

18
doc/demo-reset.sh Normal file
View File

@ -0,0 +1,18 @@
#!/bin/sh
for i in $(grep directory phpldapadmin-demo.conf|awk '{print $2}'); do
if [ -d $i ]; then
rm -f $i/*.dbb $i/*.bdb $i/__db.??? $i/alock $i/log.*
else
mkdir $i
fi
done
slapadd -b "dc=example.com" -l ldif-example.com
slapadd -b "dc=example,dc=com" -l ldif-example-com
slapadd -b "o=Simpsons" -l ldif-Simpsons
slapadd -b "o=Flintstones" -l ldif-Flintstones
for i in $(grep directory phpldapadmin-demo.conf|awk '{print $2}'); do
chown -R ldap:ldap $i
done

992
doc/ldif-Flintstones Normal file
View File

@ -0,0 +1,992 @@
# LDIF Export for o=Flintstones
# Server: C5: OpenLDAP 2.3.27: config (c5dev.leenooks.vpn)
# Search Scope: sub
# Search Filter: (objectClass=*)
# Total Entries: 12
#
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on April 26, 2011 9:03 pm
# Version: 1.2.0.5
#version: 1
# Entry 1: o=Flintstones
dn: o=Flintstones
o: Flintstones
objectclass: organization
objectclass: top
# Entry 2: cn=Flintstones-PG,o=Flintstones
dn: cn=Flintstones-PG,o=Flintstones
cn: flintstones-pg
gidnumber: 1001
objectclass: posixGroup
objectclass: top
# Entry 3: ou=People,o=Flintstones
dn: ou=People,o=Flintstones
objectclass: organizationalUnit
objectclass: top
ou: People
# Entry 4: cn=Bamm Bamm Rubble,ou=People,o=Flintstones
dn: cn=Bamm Bamm Rubble,ou=People,o=Flintstones
cn: Bamm Bamm Rubble
gidnumber: 1001
givenname: Bamm Bamm
homedirectory: /home/users/flintstones/bammbamm
jpegphoto:: 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
s9UUUV6eBRRRQH/9k=
l: Bedrock
loginshell: /bin/sh
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: Rubble
uid: bammbamm
uidnumber: 1105
userpassword: bammbamm
# Entry 5: cn=Barney Rubble,ou=People,o=Flintstones
dn: cn=Barney Rubble,ou=People,o=Flintstones
cn: Barney Rubble
gidnumber: 1001
givenname: Barney
homedirectory: /home/users/flintstones/barney
jpegphoto:: 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
l: Bedrock
loginshell: /bin/sh
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: Rubble
uid: barney
uidnumber: 1102
# Entry 6: cn=Betty Rubble,ou=People,o=Flintstones
dn: cn=Betty Rubble,ou=People,o=Flintstones
cn: Betty Rubble
gidnumber: 1001
givenname: Betty
homedirectory: /home/users/flintstones/betty
jpegphoto:: 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
l: Bedrock
loginshell: /bin/sh
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: Rubble
uid: betty
uidnumber: 1103
# Entry 7: cn=Fred Flintstone,ou=People,o=Flintstones
dn: cn=Fred Flintstone,ou=People,o=Flintstones
cn: Fred Flintstone
gidnumber: 1001
givenname: Fred
homedirectory: /home/users/flintstones/fred
jpegphoto:: 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
EFZAKtieQxViUpTVjGsGGjRQnOLjkpSlK9LC/9k=
l: Bedrock
loginshell: /bin/sh
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: Flintstone
st: 345 Stonecave Road
uid: fred
uidnumber: 1100
userpassword: yabbadabbado
# Entry 8: cn=Pebbles Flintstone,ou=People,o=Flintstones
dn: cn=Pebbles Flintstone,ou=People,o=Flintstones
cn: Pebbles Flintstone
gidnumber: 1001
givenname: Pebbles
homedirectory: /home/users/flintstones/pebbles
jpegphoto:: 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
l: Bedrock
loginshell: /bin/sh
objectclass: inetOrgPerson
objectclass: posixAccount
objectclass: top
sn: Flintstone
st: 345 Stonecave Road
uid: pebbles
uidnumber: 1104
# Entry 9: cn=Wilma Flintstone,ou=People,o=Flintstones
dn: cn=Wilma Flintstone,ou=People,o=Flintstones
cn: Wilma Flintstone
gidnumber: 1001
givenname: Wilma
homedirectory: /home/users/flintstones/wilma
jpegphoto:: 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