First commit, 'forked' from https://sourceforge.net/projects/phpldapadmin/
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
config/config.php
|
||||||
|
queries/custom_*
|
||||||
|
templates/*/custom_*
|
23
INSTALL
Normal 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
@ -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.
|
||||||
|
|
576
config/config.php.example
Normal 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'));
|
||||||
|
*/
|
||||||
|
?>
|
2
doc/README-translation.txt
Normal 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
17
doc/certs/slapd.crt
Normal 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
@ -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
@ -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
@ -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:: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQSERQUEhMWFBUUGRkXGRUXGRcf
|
||||||
|
FhseFSIZJR0YGxwXGyweGxsvJR0jHzMgIycrLTgsGB4xNjAqPCcrLCkBCQoKDgwOGg8PGi8lHiQ
|
||||||
|
tLioqLTU1LDU1KjQvMTAsNSouLCwpKiwuLDArLzUsKSw0LCwvLCo1LSw1LCkpKSwsMP/AABEIAM
|
||||||
|
sAUAMBIgACEQEDEQH/xAAcAAEAAgMBAQEAAAAAAAAAAAAABQYDBAcCAQj/xABBEAACAQIEBAMDB
|
||||||
|
woFBQAAAAABAgMAEQQSITEFBhNBIlFhMoGRByQzQmJxsRQjUmNygqGywfA0Q3Oi0VOTo7Ph/8QA
|
||||||
|
GgEAAwEBAQEAAAAAAAAAAAAAAAQFAwIGAf/EAC4RAAEDAgQBDAMBAAAAAAAAAAEAAgMEERIhMUE
|
||||||
|
TBSIzUWFxgZGhseHwMsHRI//aAAwDAQACEQMRAD8A7jSlVnEfKLg1kydRm1tnRGaMa2vmAsR3uL
|
||||||
|
6Vy57W/kbLRkb5DZgJ7lZqVhwmLSVFkjYOjC4YbEVmrpZ6JWnxXi8WGj6kzhV2HmT5ADUnTb0rD
|
||||||
|
zBxxMJA0r6nZUuAWY7KPxv2AJ7VxXjPGZMRKZJDmkbt9VR2AHZR8T66mlKmpEWQzKp0HJ7qo4jk
|
||||||
|
0b9fYFdeJfKs1x0IVVe5lOp9LIbD4n3VZeTebPy1HDLlkjy5gL5CHzZSpP7JFj5eori5jABJ1IG
|
||||||
|
5/oO1XL5LP8a3n0H/AJ4aSpqmR8oDjkVXr+T4IqZzmNsRbPxtmusUpSrC8qqB8qPMDIEw0dx1AX
|
||||||
|
kINrpqFTXsxuTY7IR9aualyNdfuO/uI/Cr18qeEcYiOS3gaMID9pGckHy0YEedm8jVIb1qBWvJm
|
||||||
|
IOy9vyRE1tK1zdTe6uvIXOawZ4sRJaIIXjudQVOqKLXa4a4H2TYa6S2P+VaIfQwvJtq5CC3e2jN
|
||||||
|
f0Kgetcyiit/fbyr3Q2sexgY3bdD+SYZZTLJvtspTmPm6bFsvWyqiA5QgYLc7lrsbm1gDppm8zU
|
||||||
|
K+uocC/3E6ev/AMrJFnZ2VI3cqAxygbHQHU3OotXp8DIAScPIABcllRQAO5LMAB61i4vecTtUww
|
||||||
|
wQt4bSABssIAOg2vqfO341075KuFERy4hh9IQiaC+WO+Zgd7Fja36sHWufvwuRFWWZT0gVZ1j8T
|
||||||
|
dIFeoxZTZRlJIylmPbzrvUUQVQqgKqiwAFgANgANhT9DDnjOyicrVzXM4LN9T+gvdKUqsvNrW4j
|
||||||
|
w5J42jlXMrCxHf7wexG4Nc+5r+TyDD4LEyp1ZWADKGNwgDKTYIovYd2voD610qsONwayxvG4uki
|
||||||
|
sjDzDAgjT0NZuja7MjNbx1EkYs1xtuOtfnuVvGgPct7yB/Z91eZ8XlOxsACx8gSRf12v6Cs3F+F
|
||||||
|
vBI8Lay4dtDtnA9lvuZT8SR2rDFZiWGqso/hmuCK865mE2dtkvesl4gxMP5Zjy/uvet/hWI6eIi
|
||||||
|
cd2yN6rJp+Nj7quXFeHddVQ2KZ0Z1OzKpvlPmLgaVzmJisJ11QEX/0zp+ArqdfDzfBT6toc6/WA
|
||||||
|
VRcZzm+IwOMOFQxS4ZgCuh8AbVgLW2Ugi3Y1035NuLGbBRIws8SRjL3yMoMbW8reG/mja3Bqu4D
|
||||||
|
gEUDzSQrkec5nOpBIvqAdBqSffXvhuMkhfrks3Sdlew1ki7+EWBZTdl07Nb2jd6nqGMdYCwP33U
|
||||||
|
Ooge9tybkffZdKpXiKUMoZSGVgCCDcEHYgjcV7qyo6UpShCr3N3KKYxLiyTIDkk7fsPbdD8QdR3
|
||||||
|
B4xjcDJBK6MhVwfHEbA3/TU7EHz2P33FfoiozjvLcGMVVnTNkN1YEqy+dmXUA9xsbC+1KT0wlzG
|
||||||
|
RVSi5RdTc05t9R3fxcFEBZMmxlbKB5GRgLaffXUaw4n5OTh3WaAticg+icoHBN7urABWa1gFYDd
|
||||||
|
jmvYV9w+LVyV1V19qNwVkX9pTrbyOx7E1JmgfGOcFVdWR1DuYdBbPVRHGuNmOQQllw4cXGJkBZN
|
||||||
|
N1VUBJk/asO+u1fOWMeWilkaRpfzxVWIChgCqoEW9gTcC1/aJFTOLRMv5wKVuNGFxc6AAWNzc2A
|
||||||
|
AuSbCpTl3l7qBJp4yiobxQMBYWtlkdMvhkGpC3sAQbBttIIxMAwNt1lKTzCG5Jz2H0ftTPLfD3g
|
||||||
|
wsUchuyrr5C5JyjU6C+UeijbapOlKujJQTmlKUoQlKV4mmCKWYhVUEliQAANySdAPWhC0uN4npx
|
||||||
|
5mJVAwMjDsmuYnuF8yNt6p0uGw8vEIfyeU5JYpFkkSQsG6dmjjRyxs3iZiF7fwzTznEkyyi6nWO
|
||||||
|
Jh4VW91LKdDIbBiT7OwtY3T4dXFnUMN7MAdRsRfY+oqZLWtvhw3CoxUbrYr2KxY3h8OHx0XVxEi
|
||||||
|
wpG0gzN9G7EKM8ltFILEZu4bW2lWjlzFiQS5JTNGshVHJU7BcwzL7VmuLnXtra9VbD8PV5Y4EUW
|
||||||
|
ciSS+pyREXzZtTc5U17E+VYsFmwc8xg2imKyRAaPG1mGUD/MVX8JG4UIdLZdo52hmLDZpNvnzWU
|
||||||
|
kJLsN7kBdGpWDA45Jo1kiYOji6sNiP77Vnp1JpSlKEJVb5wxYbp4bcynO4/VxEE3+9iq+8+RqyV
|
||||||
|
ScXN1MTNJpYERKRb2Yr31H22b4W7UtVScOMnryTNNHjkA8Vr4/FZEJFixIVQe7MbAfHX7gaxS40
|
||||||
|
5hFGpmnI0jXf9tztGn2j7gdqjeNG8sErJLJBHP0mSJWLM8kb6gqb2XRdN2dhuutq5a4/hG/Nwp0
|
||||||
|
CxtlKgZmtsWUkF7DZjm9KQgow4Bzza/qnpqotJDBot/l/gn5OrM7Z5pSDI4vl02RAdkXYD1JOpN
|
||||||
|
VvHYgDiGJQ3BYRsLjRsqKGynYkXW43Fwe9XTGYtYkZ3vlUXNgST6ADUsdgBqSQKgMdhEGC+cydG
|
||||||
|
V3aVGIDSJI5YqFUe2wXwlV3AYba1SnhD4iwZKfDKWSYzmtbl/GnDz9OxMOIa4A2jlNydAL5X330
|
||||||
|
Zftm10rm+GdporTRGPMuozC9/TKbqRuDuNO4q58u8U60VmN5Ij05NLeIAG+wGoIaw0Ga3alaKYu
|
||||||
|
HDdqExWQhpxt0KlaUpVBILU4tj+hDJLbNkUkLe2Y9lv2ubD31RheGEDV2UBQL6u7EAC57sx3+1e
|
||||||
|
rJzdiNIogfpHzML65IrE6W1GYovb2hUNhAhlzzZRBhh1HZhcZz9GoHdh7Vt7mO2pqdUjiytj21K
|
||||||
|
oUx4UTpPALY5miXBcMDM6q0LRyZyCVMgYEsQBcgkk2+4aVWkUyDr4hHyTDpmYgaa+FWkBzKQdmA
|
||||||
|
VQwsDoDV7xmHbGRFHDRQuPEhA6ri4Nje4RbCxBBbX6ttZFoFKlCoKkZcpAy28rbW7WpuSDiC17B
|
||||||
|
KxzYDe11RcbjcXKsUbOiCJgzTEBmly3ynIRlU6hiTfxLoLVqx4yLq2VmxGIe40PUlawuRf2UXS9
|
||||||
|
rqNNqn4eWIsLJI/Q68UjXIN3aFbKMqxtcNHdS3h8QzWANWnCBMi9LLksMuS2Sx2y5dLfdWDqZ8m
|
||||||
|
Ur8uoLdtQyPo259qrfDuXJZDeb80hAsim8lze4ZrWX9y5v9YWsbHg8EkSBI1CqLmw9dSfU+tZ6U
|
||||||
|
xHCyIWaEvJK+Q3cUpVL5+4kVaOKOSfrSghYo8uUgalm8BYnSwAPYm3nDK2Iw8JlnWWzEWDSkNts
|
||||||
|
A7iwtqdEtY32rmSYs0bddRwhwzNlKcax2bETSEErCBEoAJYkWLZR3LMVUW3KLW3wjhT9WOOYqwg
|
||||||
|
UTMo1+cTF99fZRR4R3LhrXAt84HwcyujshWFDnW+mdzqDlIuVFy1zYlrHtrK8MT5zjD5yR/wijr
|
||||||
|
inYS4yOGZ9l3O8ACNpyHupSlKU8lEqNwMxjxTwm3TdOrFYAWIa0y6drsji+t5G8tJKorjIyy4SQ
|
||||||
|
AXE2TbXLKrA/wAQD7q5KFN0pSuV9StfEcPjd0d0VmjvkJFyt8t7eXsg+4VsUoQlVfHPNh8RNNYf
|
||||||
|
k5MckjWJYjLkYLY3GQIJCSDowA7kWilCFU+Mc2tBiFHTD4bRJJFJLq7KXGVR7aBBc218QtfaprG
|
||||||
|
cTRMO84IdEjaUEEWYKpNwRpY23qB5i4VFhoI4oUIMuIRhdmNjH4ibk6AImVV2ACi1VrmPBMMHiU
|
||||||
|
jlaOJo3Z4gAVOUE+C+sdyBe2h10ub0vJUiN+F26ZjpzIzE3ZXLlzmgYiySIYZ8oYxE3BB+tG1hn
|
||||||
|
XsdAQdwNL/OF8PMhE6SmzSuzxtqh6buuZLaq1gBuVsu1/EIThWBSfGxCVA4EEri/wBVi0AzAjZr
|
||||||
|
Ei48z51eMDglhjSOMWRFCgXJNh5k6k+pruCQyRhx1XE8YjeWhZ6UpWqxSlKUISlKUIVW5sc/lGH
|
||||||
|
W/hyTvb7SmBQfg7D96q3zIL4WYfpLk/7hC/1qx81n5zh/9LEfzYWq9xptIU/6k0Y9y3c/y1Eq+n
|
||||||
|
8lapeg81PcvR/OgfKKQfFof+KttU7gE3z1V/USt/vgH/NXGn6LoR4pCs6YpSlKcSiUpShCUpShC
|
||||||
|
rvNkQzQPbxZnQH0ZSSPii/Cqri2vioF/RWWQ/7UX+c/CrTzg9jhR5yuP/FLVOhnvxGVey4eP4l3
|
||||||
|
J/EVGrB/qT2fCr0h/wAwO35Vn5WiBxUzfWSKJRrsJGlJFv3F+FW2q5ydD/iH0s0oAPe0aIpB/eB
|
||||||
|
+PrVjqjTC0TR2KfUG8rj2pSlKYWCUpShCUpShCrfOQ1wvpK3/AKpaq2GhInL2FnbEa97RjBqAfe
|
||||||
|
G09amOKz9XGSHtABCuvdsrSHbf2B+561rcO4NNIBNGFYHrLlZrf5u4sDuL32+jHnpLlBlkeGjQW
|
||||||
|
9VTitHGwuO9/RWHlRoxGyK4L52d1uCQZCSNOwt/XyqdqjTcJnJGfDPddVeN0JU+YbMrKdO1TfLc
|
||||||
|
2LuUxEQEaiySM46rWy6Mq3B7nNcbAZfrFqnkdYMc0iyVnY25c1wN1PUpSmkslKUoQlKUoQqfx3g
|
||||||
|
80U7zxLnicZnjUEuH8ILBVF2uoA9Dc7HSxcE4f0II4yblV8RF7FjqxF9bFiT763qVm2NrXFw3Wj
|
||||||
|
pHOaGnZKUpWizSlKUIX//Z
|
||||||
|
l: Bedrock
|
||||||
|
loginshell: /bin/sh
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: posixAccount
|
||||||
|
objectclass: top
|
||||||
|
sn: Flintstone
|
||||||
|
st: 345 Stonecave Road
|
||||||
|
uid: wilma
|
||||||
|
uidnumber: 1101
|
||||||
|
userpassword: pebble
|
||||||
|
|
||||||
|
# Entry 10: ou=Pets,o=Flintstones
|
||||||
|
dn: ou=Pets,o=Flintstones
|
||||||
|
objectclass: organizationalUnit
|
||||||
|
objectclass: top
|
||||||
|
ou: Pets
|
||||||
|
|
||||||
|
# Entry 11: cn=Baby Puss Flintstone,ou=Pets,o=Flintstones
|
||||||
|
dn: cn=Baby Puss Flintstone,ou=Pets,o=Flintstones
|
||||||
|
cn: Baby Puss Flintstone
|
||||||
|
gidnumber: 1001
|
||||||
|
givenname: Baby Puss
|
||||||
|
homedirectory: /home/users/flintstones/babypuss
|
||||||
|
jpegphoto:: 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
|
||||||
|
zklF+QxU4BWaKltZeIooor1C//9k=
|
||||||
|
l: Bedrock
|
||||||
|
loginshell: /bin/sh
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: posixAccount
|
||||||
|
objectclass: top
|
||||||
|
sn: Flintstone
|
||||||
|
uid: babypuss
|
||||||
|
uidnumber: 1010
|
||||||
|
|
||||||
|
# Entry 12: cn=Hoppy Rubble,ou=Pets,o=Flintstones
|
||||||
|
dn: cn=Hoppy Rubble,ou=Pets,o=Flintstones
|
||||||
|
cn: Hoppy Rubble
|
||||||
|
gidnumber: 1001
|
||||||
|
givenname: Hoppy
|
||||||
|
homedirectory: /home/users/flintstones/hoppy
|
||||||
|
jpegphoto:: /9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBhQSEBUTEhIWExUWGBkaFhYXGBkX
|
||||||
|
FxcZFhcZFhgbFhwbGyYhHBwkGxgZIy8gJCcpLi4tGiAyNTEqOCYrMCkBCQoKDgwOGg8PGi8kHyU
|
||||||
|
1LDI2Li4sKSwqLS80LTAsKSoxLDA2NDA1KiotLCkwLC8sLio0NTUsMi8sNSspLDQvNP/AABEIAL
|
||||||
|
cAeAMBIgACEQEDEQH/xAAcAAEAAgMBAQEAAAAAAAAAAAAABgcDBAUCAQj/xABEEAACAQMCBAMFB
|
||||||
|
AUICwEAAAABAgMABBESIQUGEzFBUWEHIjJxgRQjkaEzQlJykyU0Q1NisrPRFmNkc3SCkqKxwcIV
|
||||||
|
/8QAGgEBAAIDAQAAAAAAAAAAAAAAAAQFAgMGAf/EAC8RAAEDAgMFBwQDAAAAAAAAAAEAAgMEERI
|
||||||
|
hMQVBUWFxEyKBkaHB8DKx0fEUI0L/2gAMAwEAAhEDEQA/ALxpSlESlKURKUpREpSolzHzFK0xtL
|
||||||
|
RgjqAZ5yA3TDbqiKdjIRvvsowSDkCtcsjImGR5sAsmtLjYKW0qMcgcWaaCZXkaVobiWLW+nLBSC
|
||||||
|
vwgDs2Ow7VGuEc6unFZllOYZpjAuy/dtGxSM5CglWYMMEnBYY8a9D24Wuv9VreIuFg4hpseisyl
|
||||||
|
KVmvUpSlESlKURKUpREpSlESlKURKq9OKhbSe6B1GSSZ1J7ktKYogfkAg+Qq0KpvjKiK2FuBp6d
|
||||||
|
3JHjucK8kyZ+alTvVLtpuKBg3YhfpYrfFJ2Ye/gCur7LOICGS6iZjoEcc2T2GnVHIx8ckKhPyP1
|
||||||
|
hKgyw5Y+9KC5J76pCZM/MM2fpWZ+ImHXhivWhlg285dOn+6d6+y5Awi6mJCoo/WdjpRR8yRUaaY
|
||||||
|
yQQtb9XuDYKje8uYwDVXRypxM3FjbzHOZIkZs99WkavzzXWrm8t8K+zWkEH9XGinfO4UZ/PNdKu
|
||||||
|
ldqVapSlKxRKUpREpSlESlKURKUpRF5dwASSAAMknYADuTVN858XimuWNqeqjmN3ce6gkTMbYJA
|
||||||
|
1aoyM4zuo+jmrm1+ISMqMVs1JCqD/ADjBwXfzj/ZXx7muO8qqBkhR2GSB9BVLtGsZYwNFzvPDpz
|
||||||
|
+ZqFNU2uxme5a3ENLFYyW1E6lKd107asnYDfH1rm3vDekVkLSSqGGsMQdKnYsCVIGAfFSPTapHw
|
||||||
|
a5szdRfayGiLaQB7ytKSqosmP1RqZsHb3a7HGrOwteJG2uEIhm0JCEOOlJLpGc5GkDcjuBntitV
|
||||||
|
DDIzBKw79D8+arXDG4AOBUi9nRKs66ABj3gjFVib3W0yQFmVWOSRJGSrip5UP9l1wr2CnAMkf3D
|
||||||
|
v4sISenk+WhwQN8Bu9TCujkeHuxBWKUpStaJSlKIlKUoiUpSiJUT9qF40fDJQhwZWjiJGchZXCM
|
||||||
|
Rjx0k1LK5vMfAkvLaS3clQ42Yd1YHUrD1DAH6Uz3Gy8OmSpVECgADAAwB5AbAVIuUbb7qWVQplL
|
||||||
|
siknYBMADIGQM5JA7/hjgXtpLbzG3uF0yjsR8Eq/txHxHmO6nY11+UuIiOVoW2Eh1xnw1gAOvzI
|
||||||
|
AYeeG9M8JVxSRhzHDMeo/G9RtmWjqbP1sfNZuV5ouI2iTTqkkgdtR0gGN0bYKR7wwNJGST23Ndi
|
||||||
|
Tg1uOo8iK2reR5TrJC75ZnJwB9O3pVZ3Qn4PezyxYeF2LtC2waNjkFCP1lJIzjb1zU84PztaXcQ
|
||||||
|
bXoDe6VmGgE+K5b3W+QJrXVQyt78JJjOeV8t9rcl0zQBbtBn9937W/a8EtwpMQKq51ZilkUMdhn
|
||||||
|
3HAOwAz6V4sLno8Qt0iuJTqfpyxvI8qMrRSOMaycODGDkHOO/evR4pa26H72KNSc4DAkk+QBJZv
|
||||||
|
kCa6HKPBHkuDeSxGBAGEETLpkYvgPNKPBiFCqp3AznGanbGFVJOHYnYBxJt0+dVHqezay1hdTal
|
||||||
|
KV2Kq0pSlESlKURKUpREpSlEWjxjgsN1EYp4xImc4PcEdmUjdWGdiN6rXmX2dS20Zkhka4iXcqc
|
||||||
|
CeMLvqVwQHIwT2DdsZ7VbFYL3X0n6WOppbRntqwdOfTOK1yQsmGF4v7eKwcwO1VLy8WiurfpXsZ
|
||||||
|
lUj3ZohvgjvgbqxHfTkHyHYfOFcIAhWz4WWmaMvOTMoAOwTADqFZgXBAIxkDJqPT3ssMzxyhEkL
|
||||||
|
szxv90UZiWOkDI0E7jAxv3rb4Bx25W8jNoydYkRiIe+sgZlJDnAIQBc5GMYJztVFS0hhqg3PCDe
|
||||||
|
26+djbrwyU8Q1pHfALbHvXGlr8dfBdnhHMU9lcMJIY5HjOHR4oY5ASucRyxKBqx4EHue1XLw+/S
|
||||||
|
aJJYzqR1DKfQjO/kfTwqqfaNyp9nuFnilGLiQ5iI3jJHUkeMjuDpIIPYuMHfFS/wBlh/k5fSWfH
|
||||||
|
8Z6uY3P7R0bzcDMcbc/nmFWMLg4tKl9KUqQt6UpSiJSlKIlKUoiUrW4jxBIInlkOlEGWOCdvQDc
|
||||||
|
n0FRPjvP0iW8rQWc5YIxRnVNOQM5Zepqx6Yz6Vg+SNlsbgL8SAsg1ztApfe3axRvI+dKKzNgZOF
|
||||||
|
BY4HjsKr3mfnab7MBNbSW6u8YLxTK7aS2WQ6dLBiBgac9zuO9Qu7uZbgE3FzLMHG41skRB3wEQh
|
||||||
|
dP4/WsDcPQkEqTg5GWY4PmMt3qnqNqC9otM73Gfhnl4hQ/5sbb5ErLgszu+cuc4Zi5UDZU1MSSF
|
||||||
|
H55rNw/iMdrc2075CRy5bSpY+9G6bKNycsBtXitXifwA+Txn/vA/wDdVMMzhM2Q5m6r2yEyYzqu
|
||||||
|
vxzjj3k5nkBRQNMUZOemnc58NbEAtjyA3xk2N7NbUpwyHV+vrkH7srtIuf8AlYVVaWL3EiW0X6S
|
||||||
|
YlQf2Vx945x2AXO/mQPGr3tbdY0VFGFVQqjyCjA/IVfbPL5Mc7/8AVh4D208lOpsTryO3rLSlKs
|
||||||
|
1MSlKURKUpREpSotxvmOb7Q9tbhEKIjPLIC/6TXgIgK5I05JZvoa1yyshYZJDYD9LJrS82Cy8+/
|
||||||
|
wA1TyNxb6vl1l7/AFxUM5n5mMbGCAjq4y7ndYVPp4uRuFOw7nbAOTnHiV0towe6DlyqovRQanJB
|
||||||
|
XBBBGCNWd8BT3qGXVs5jYK+ZGOpnOxdictqI7Z7bdhjyrma+SCreyVjrgXGh4657l7PUOpGdmMn
|
||||||
|
H0C0ophp6SS7N+ibOGz8Whs4Iz4bdj6DPSs2BQEFt/wBoktnsQc+IIxXNsbtVOjQ3UUaQjAFgPA
|
||||||
|
CQDdPUnb8q6dtDpXB3JJJx2ydzj0qPNll8PNUUiy1p8YXMLYOD7pB74IdSK3K1OLH7lvmo/F1FY
|
||||||
|
0wvMwcx91hH9YVycq8kQWWWUtLM3xTSYL4291cABUyM6R5+NSKvgr7XaaCwV4BbRKUpRepSlKIl
|
||||||
|
KUoiVD+YbXp3yy4GmeMRk+PUhLOo+sbv/D9RUwqu+Z+MT3XWSJYYo7eUgPKZOoHhwxcBQAq42wc
|
||||||
|
6lJPY1B2iI3Uz2yusDlfPXUacwt0GIPBaovzPe9W7K59y3XT6dRxqc/RNI+rVG5L2N3CyShFb4I
|
||||||
|
9WlpAezN44PgPHvvnA3LYmWPXIPemzI49ZDqx8gCF+QrhX3LYN011K46SYfSM59wDY+m1c5TsY3
|
||||||
|
uONrDLry6lVE0ommc8np7LDwqdGDtcrFArNiH3RG4wTkggatttz41IuHTlkwxy6Eqx8yvj9Rg/W
|
||||||
|
ove2K8SlWSKTCqAsitsy7k5A7b5/KpJw5NLzKOwZAP4SVIqg0jgdSOG713+a1TAW58OC3q8opa4
|
||||||
|
tUUElrq32G5wsqyMfoEJ+leq6/IHCzc8TV/6OzGpj5zSKVRfohYn5isNnxGSobyz8lhTtxSBXJS
|
||||||
|
lK6xXKUpSiJSlKIlKUoiVVXtOuRHLcC3Da3gUXIyAmmUmGN18eqNxsMEYyQQKtWoP7W7BDY9Ur9
|
||||||
|
4kkKqw2Ol54wynzU7HB8QD3rVMztI3Ny8eRv+ua9DsOarwDG1cSLgOmeaaSQukisNGD8JG+fPA2
|
||||||
|
GK7dK41kjmXtvVA15bouZwTgMVsD0yW14JZiDkDtjAAxvWxw/fqN+1I2PkuEH92vvDjiMA/qll+
|
||||||
|
isQPyxWzbctXf/wCabogQxrH1FJw0khkYMNK9lB1/Ed9tl7VMjglqXOtmcrk/OS3Bj5CV9tbaS4
|
||||||
|
nFtbANMwySfhiTsZJPQZGB3Y4Aq5eV+XI7G2WCMlsZZ3PxSO27O3qT+AwPCq79lduEv5Aq7fZzk
|
||||||
|
9yS0oyWJOT8NW1V5s+FscIc3/X5IU+mY0MuN6UpSp6kpSlKIlKUoiUpSiJUP9rA/kuT/eQf48dT
|
||||||
|
CoF7UuMxmJbNSGkZ0dwP1ERtYLepZQAPmfCsXuDGFx0AKxeQ1pJUBrHczhEZz2UE/PHgPU9qyVt
|
||||||
|
8CsPtF9bQkZXX1XH9iD399twX0DHjk1x1NF20rWcftv8ARUsbMbg1cee0kginSbHUTqa8ds6NZA
|
||||||
|
+WcfSrS5jjI4AFGxEFuPziFV7zsfv+JfvS/wCAtWdxvhzz8HEcSa3MUJVQQCSvTbYkgdge5roqV
|
||||||
|
gBnwjf+VYxCxeAor7L2/lGYf7Mn+M/+VWpVBG7a2lLF5rSQqFOrXASuSwB1AA7k4xmvSTyEfzm4
|
||||||
|
Yf8AESn/AO61RVzKeJscrXAgcOZ4kLBlQI2BrgVfTMB3OK415zrYxDL3kA9OqhO/kqkk/hVNTQB
|
||||||
|
/0mZMduozSYz5aycdh+FfYoFX4VVf3QB/4FYO2vGNGE+NvyvDWjcFb9lz7YStpS7iz5M2jOPLXj
|
||||||
|
P0rv1+fZm1BlKhiMEK24YHt37diPnU59lPMLFntHkLroWW21ElhH8Lx5J3Ce4QO+H9KlUtc2oOE
|
||||||
|
ix63ut0NR2hsRZWTSlKnqStPjEsy28jW6LJMEYxoxwrNjYE+Wfl8x3qpBz5xIkj7TGCpwytbAMr
|
||||||
|
DYhhryCD4Grnrgcw8kW14dbho5RsJYiEfHkcghh+8DWqVsjm/wBbsJ6Aj19vVa5GuI7psq2m5u4
|
||||||
|
g4w95pH+qiSM/idRH0IrkxxBc47k5YkksxPcsTuT6mpNe+zO9jP3UkFwvm5aF/DvgMpPftitb/Q
|
||||||
|
PiP9RCPnPt+UdUdRT10ps/MciLeWX2UCSKd2RzXFqa+yfhOrq3pzhvuYe2DGhBdx4+9JkeGyDvk
|
||||||
|
Y1+FeyeWQg30yhNswwZGrzDyNvp9FAz51ZVtbLGioihEUAKqjAUDYAAdhU2goTAS+TXhw+clvp6
|
||||||
|
csOJ2qojjzNLLfZ3LTXCjw7Exr+QAqwOEe0y1S3iRhOXWNFYdFx7yqAdyAO4865nHfZndCWWS1l
|
||||||
|
ikV3Z+nLlGBkYswDqCCMk4yuceNRq44JeRHTLYz584lE6nfGQYyT+IB9K8P8AJgfI5jA4ON/vuG
|
||||||
|
e9Y/2xucQL3U0uPalC4K/YpnX+30gDg7HBc1E+KcXgmDEcKtY3bGW6jKfX9EinOPHNceTiCKSHP
|
||||||
|
TIOCJFaMgjuCHAOdq8Di8J/po/+tf8AOor9o1YywW8D7rU6om4ei8XFnIx9xhD5BXlkA/ikmtnl
|
||||||
|
zhpnuEgku2Tq5EcirFIpdQToOUGCQDjcjbFaB4nEsi6ZVYPnUobWQcZBUDJ3xjA8xUz5M5BnluF
|
||||||
|
uLhGghjlWSNGGmV3QDBKke6moE77nPh47KTtZpQZGNLd92NHtqsog57swLdAuxb+x9dRMl9O22B
|
||||||
|
oSGM987nQ1d7ln2eWti/Uj6kkmCoeVy5VTjKqAAoBwOwzUmryxO2Bnf8B51ctjY091oHQAKeGNb
|
||||||
|
oF6pSlZLJKUpREpSlESlKURKUpRF5ZARg7g9x4VqPwSA94Ij840/wAqUr25CL1bcJhjOqOGND5q
|
||||||
|
iqfxArbpSvESlKURKUpRF//Z
|
||||||
|
l: Bedrock
|
||||||
|
loginshell: /bin/sh
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: posixAccount
|
||||||
|
objectclass: top
|
||||||
|
sn: Rubble
|
||||||
|
uid: hoppy
|
||||||
|
uidnumber: 1009
|
496
doc/ldif-Simpsons
Normal file
@ -0,0 +1,496 @@
|
|||||||
|
# LDIF Export for o=Simpsons
|
||||||
|
# Server: C5: OpenLDAP 2.3.27: config (c5dev.leenooks.vpn)
|
||||||
|
# Search Scope: sub
|
||||||
|
# Search Filter: (objectClass=*)
|
||||||
|
# Total Entries: 11
|
||||||
|
#
|
||||||
|
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on April 26, 2011 9:05 pm
|
||||||
|
# Version: 1.2.0.5
|
||||||
|
|
||||||
|
#version: 1
|
||||||
|
|
||||||
|
# Entry 1: o=Simpsons
|
||||||
|
dn: o=Simpsons
|
||||||
|
o: Simpsons
|
||||||
|
objectclass: organization
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 2: cn=Simpsons-GOUN,o=Simpsons
|
||||||
|
dn: cn=Simpsons-GOUN,o=Simpsons
|
||||||
|
cn: simpsons-goun
|
||||||
|
objectclass: groupOfUniqueNames
|
||||||
|
objectclass: top
|
||||||
|
uniquemember: cn=Bart Simpson,ou=People,o=Simpsons
|
||||||
|
uniquemember: cn=Homer Simpson,ou=People,o=Simpsons
|
||||||
|
uniquemember: cn=Lisa Simpson,ou=People,o=Simpsons
|
||||||
|
uniquemember: cn=Maggie Simpson,ou=People,o=Simpsons
|
||||||
|
uniquemember: cn=Marge Simpson,ou=People,o=Simpsons
|
||||||
|
|
||||||
|
# Entry 3: cn=Simpsons-PG,o=Simpsons
|
||||||
|
dn: cn=Simpsons-PG,o=Simpsons
|
||||||
|
cn: simpsons-pg
|
||||||
|
gidnumber: 1000
|
||||||
|
memberuid: maggie
|
||||||
|
memberuid: marg
|
||||||
|
memberuid: lisa
|
||||||
|
memberuid: homer
|
||||||
|
memberuid: bart
|
||||||
|
objectclass: posixGroup
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 4: ou=People,o=Simpsons
|
||||||
|
dn: ou=People,o=Simpsons
|
||||||
|
objectclass: organizationalUnit
|
||||||
|
objectclass: top
|
||||||
|
ou: People
|
||||||
|
|
||||||
|
# Entry 5: cn=Bart Simpson,ou=People,o=Simpsons
|
||||||
|
dn: cn=Bart Simpson,ou=People,o=Simpsons
|
||||||
|
cn: Bart Simpson
|
||||||
|
gidnumber: 1000
|
||||||
|
givenname: Bart
|
||||||
|
homedirectory: /home/users/simpsons/bart
|
||||||
|
jpegphoto:: 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
|
||||||
|
l: Springfield
|
||||||
|
mail: bart.simpson@example.com
|
||||||
|
o: The Simpsons
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: posixAccount
|
||||||
|
objectclass: top
|
||||||
|
objectclass: shadowAccount
|
||||||
|
sn: Simpson
|
||||||
|
st: 742 Evergreen Terrace
|
||||||
|
telephonenumber: +1 939 555 3126
|
||||||
|
uid: bart
|
||||||
|
uidnumber: 1000
|
||||||
|
userpassword: eatmyshorts
|
||||||
|
|
||||||
|
# Entry 6: cn=Homer Simpson,ou=People,o=Simpsons
|
||||||
|
dn: cn=Homer Simpson,ou=People,o=Simpsons
|
||||||
|
cn: Homer Simpson
|
||||||
|
gidnumber: 1000
|
||||||
|
givenname: Homer
|
||||||
|
homedirectory: /home/users/simpsons/homer
|
||||||
|
jpegphoto:: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0V
|
||||||
|
FhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw
|
||||||
|
7KCIoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wA
|
||||||
|
ARCABPAHIDASIAAhEBAxEB/8QAGwAAAgIDAQAAAAAAAAAAAAAABAUDBgACBwH/xABHEAACAQIEB
|
||||||
|
AEHBgoIBwAAAAABAgMEEQAFEiEGEzFBIhQyNVFhcYEHFlWRk6EVI0JSU2JzdJKyJFSCosHR0uEX
|
||||||
|
JTSkscLT/8QAGgEAAwEBAQEAAAAAAAAAAAAAAgMEBQYBAP/EAC4RAAEEAQMCAwYHAAAAAAAAAAE
|
||||||
|
AAgMRBBIhMQVBE1FhInGhsdHwFBUygZHB4f/aAAwDAQACEQMRAD8AFyDIMnn4foJpsspZJHp0Zm
|
||||||
|
aIEsSOpOGHzbyP6Io/sVwLw/RyPw7lzCvqkvTIdKlLDbtdMMHo2jRnfM6tVUEsS0dgB1PmYQTvy
|
||||||
|
qQNuEBX5RkNDBzDk9EzNcKDEoGwJJJtsAASevsBJAwD+CqaNVkk4fotDMFGqlVASTYC+tmW52uV
|
||||||
|
6kXtiw0fC8mZaKnMaysEFrxU5ZVaxsbsQoIJsNhYjueoDZ+GcskjKMlSQbX/AKbNv/fxkS9axon
|
||||||
|
6Nz7k0QOcLpVyDIcgqII5o8ppCkihlvAt7EXxv828j+iKP7FcE1mRTZWyGLMqw0TMEAuhaFj0ud
|
||||||
|
O6k7XO4Nut9vBQyAg/hGsPsJj/ANGNCDIZkM1xmwhLNJohQDhvI7j/AJRR2v8AoRgTK+H8mlyyn
|
||||||
|
kkyqkZmS5JhFzgx8vmmzVpmlZY2A0sjAMlrWAFvWCd7jfp3xDlNFI2VUxGYVa3ToDHYf3MPv1QV
|
||||||
|
vwpPm3kf0RR/YriGpyXIKQJryancuSAsdOGOwJO3sAP++NswpJeR5PHU1lXPL5lNdPxoBBYGyiy
|
||||||
|
22Jv39oBa0XCsU1NE9XW1EniEscSMY44lP5AGzEWJXxHoeg6Yjyc6HGA8Q/sjbGXcBLU4eyF1DL
|
||||||
|
lVEysAQRCtiD0OPfm3kf0RR/Yrh3UcL0opzHl1RUZcwWycpy6D+w9xb3W9+E0VJU8ySnqK6rjqI
|
||||||
|
SBIqtGVN+jKdG6nt7iOoOAxOoQ5Vhh3HYr10ZbyFr828j+iKP7FcZ828jv6Io/sVxP5BJ9JVn1x
|
||||||
|
/wCjGeQSX9JVn1x/6MXX6oKHkuL5siRZxWxxqERKiRVUbAAMbDGY9zcac5rlJLWqJBdup8R64zF
|
||||||
|
ClXYOG7HhrLbdqaO/8IwbUosghibdZKiFGHrBkW4+I2xXuG2gWDLSdKyrRxKbQg31DbxXuD4T2t
|
||||||
|
YYf1EsUdZQGokEUAqVZ3PYqCyD4sFH3d8RZFiN1eRVbN6VrG++MwPF5fmUbLldOy7G1TVxtHEp9
|
||||||
|
gNmf4C3txC1TUtTPT6OXmIk8mEexHNtcEG26keO9vNvtcWxwv5fkhrXFlWaVvjMsi+Ftm8fNyat
|
||||||
|
QC5NPJb36Tb77YSxSCaJJR0dQw+Ivh/JT5zBEy1eU89dPiainVwR3sraW+AuffisZWwfLICurRp
|
||||||
|
Ij1+doBITV7dNr+2+Oj6RjT44eyVtcKeR7XkFpRi+cPfgHKPQ9N+z/wA8HL5w9+Acn9EUv7P/AD
|
||||||
|
xtpXdOMhgU+U1pF5JJWiB/NRCVsPewY/EeoYcYTZDJolraQnzZBMg/VcWP95W+sYc44LqWr8W/V
|
||||||
|
5/Dt8FdFWgUswoz2ARrHmAB/E+CW36Mnr/ZNj7Bqw3wNUGoqJI6Ghfl1VRe0mnVyUFtUhHsuAPW
|
||||||
|
xUdL4HAMoyWeELNr6StBtJFYMoZSCCLgg3Bx73xolHJlk0uWzlTLTPuUFlZWuysB2Fja3axG9r4
|
||||||
|
3747/AN6hBsWuG516cr/3mT+Y4zGZ16cr/wB5k/mOMxSpF0XJ4My8jyU0xhjWSFTJN5KCdAj2DM
|
||||||
|
GueoAvb7sPWq6rKK6gzCpljqIqapEjxxU7Byulg2nxNchSxtbt1HXAHDdbN+Cctp1pyV8nQE9LL
|
||||||
|
pXxX6Wuw29h9VsN6yKpdEko5hFUxEmNje1ypX/2v7wMTvLhZaN1SACFdF4iySWsFWmfxuDFy/Il
|
||||||
|
kUkte9+Xbma+1vuxXxUyM44ourLzRWcm1tMPJMZW/dgpLerVt03wHTV0nEdKlS7OlC6ACJGK85r
|
||||||
|
eIkjfSDdQO9iTcWGNxkmWBOWKNOV+hueV/BfT92MuWaeZrSfYIINc/RG2NovurJNxTlKSmrgr6m
|
||||||
|
qdISvkEMRuxve5UqCrbWuxAF98ULLlr5KTUtXDH421RvRsGRiblTdx0J9Q2thpVytkFDNUUrSrS
|
||||||
|
rGwaBTqEZsdLoD5tmsCBtY3ttvFSQPBEwlbVK7l3Nydz7TubAAXO5tfFkc0sjyHABo4KERhvfdR
|
||||||
|
rDmWof06n6/1Q/8A0wHlMOYHKqYrWQKNGwNMT9/Mw4Xzh78A5P6Ipf2f+JxQve68iqZcqzSlq6y
|
||||||
|
tpyjkwMoj5ZZWtuLub2IU+7VhnPn00jmjiiakqZKw09PLKutJAsml2FrbgK3hNj0Iv1wDWUENcU
|
||||||
|
WoUNGoZWUqDcMLfAjrhhlcco4WYUrO9XolIaR9Tc+7Am5/XuRf145/q8MbXNmIsnb6f76J0RP6Q
|
||||||
|
toqvM3qp6hkASnKxPRoyuW2u0ikb3udgbXCkWBw0oK9cmrauSooqioWpZWWogTmMqgW5ZXqADqI
|
||||||
|
sCPEb2N7pchWGKsljRw4VbRL5KEaJLLcO1rhtV7hiSxGod8F1VZNVzSUtHKYY4m0zVCgFtXdUvt
|
||||||
|
cd2N7dAL305+M+WHKHgtHHrx8/ut0bmh7PaKglyc5jmtbnCtLliVZUtEiJrIUW1uW1AMbnYdAB3
|
||||||
|
vhPT+XTcww5jBJCsrJFKabVzFB2a4cA+8AA222wzmySgqY2SqjkqdYIJnneQ/DUTY+7pgakaTS8
|
||||||
|
MrapadzE7Wtqtax+KlT8cdFi+MXudI+77VQCSWgAALieb3GdVwc6mFRJcgWBOo9sZj3OvTlf+8y
|
||||||
|
fzHGY1lCul8PwxyRZWS6EiihOjWoIIBN7dey9ug62FsWKpaRKWV4VLSLGxQDqWtt9+Kzw/ST+Q0
|
||||||
|
TxzIGlpoGB5SmwCkX3PUDYWG99z6nkkOYKFWOtaWWRxHFGtOl3cmwH+/YXPbCSN1S07IzLq2ngy
|
||||||
|
ymjgp6l6eKJUEqQllNhYnbc79duuCRmtAQCtSjk9EQFn/hAv8AdgDJqHMqZKwsyvWrUk1NJJ+LH
|
||||||
|
mrYrtseovbS9r7dcMvKa1jpGU1ur9Zogv168ZD54Q9zS7ceZr5pzQSAUPX1lO+U1bTJLHGYmS0k
|
||||||
|
RUuWBAAB3JJNre3EcWsRJzPP0jV77b40zegq5441VklzbmI9JSQ+LljUAzbjfwkguQABsOpuNFD
|
||||||
|
XyJ464xuCVeNqdLowNmU+4gj4YqxHtkYXM4v7pC4kGkwXzh78A5P6Ipf2f+ONZKerkzFSksqRlF
|
||||||
|
GsEaQQb3tq3JNrgjpffA+U09YcqpiuYaRo2HIU2xXWyHum+DOHzZK6PslVcf2kRj95P14RzQZpZ
|
||||||
|
I6atEtTM6xQo0CgM5Nhc9gNyT6gcN8oirMjpZ0zyKaKaSdnafkfiitgq+JCyrso6kYyurxPfikN
|
||||||
|
FmxwjicA/dPB1W+4BxXMvnhosmhernSKzOsjyMFBk1tq69y18PKaspa1NVLUw1C+uGQP/wCMJMy
|
||||||
|
Vsqqy70j1UFRUcyAIVBimKnUDqIsDZmB3sS3svhdJcGSujdsT/Xb4qiXiwtZM8hWdYYqWsmdlLj
|
||||||
|
TDoBW9r3kK33I6YhiEktdPVNDyFlVByy4Yki41G2wNtIsL+bgZKKtM0lS9aqzzG72hDBR2UE76R
|
||||||
|
2+J6nEnk1df0j/26461kYbv3UpJXGc69OV/7zJ/McZjzNwRnNcGOphUSXa1rnUcZi1RrpvD80S5
|
||||||
|
dlsrSEaaeGHVp6EgeHzu5tvp29Y3xbMjqYYs7pcyqUYZaqvGlWwAiE7WVfETuLa1uLgE2J3xTeE
|
||||||
|
eJODIKSlbPqvQ0ECRGnFM7c2wG7kCxW42Xobb32At1R8qnBdTm9M0mYP5HSxOyg0sljI3hG2nsm
|
||||||
|
serx+zAhu9phftQVr4hoKfM6qioQvLqZCXNTH4ZYYksW0t1F2KLbp4j6sJXq6mOkngcKMxhcU+m
|
||||||
|
2zSsQEYD81tSt7AT6jgDL/lG+TnLKmSelzGoUuoQK0MzLGoJOlARZBc9BYdPVjaf5S/k7qM0gzK
|
||||||
|
TMJTUQKVUimlAPWxItYkamtfpqPrxDm4EeVpLuQR/HcL2OUx3SsuQUUGQVs2UBQ3NTyiGoYfjJw
|
||||||
|
CA4durMpI3P5LqOxxWc2qKWXPKmqojrpKhlXnrvG9QAQ6q3S9gnvN7X3tJX/Kd8nOZrEtbV89Ym
|
||||||
|
1IHo5CAbW/N3Fj0OxwJ/xM4FavrYpazmZfWQprjNJJp5i3U+HT3UR/wYu0iqQB1G1uvnD34Byf0
|
||||||
|
RS/s/8AE4VScccMU1bJFT5nLUUos0MjwPrAPVWuLki3XuCL7gki5dxvw/T5fBDLWOHRbMOS5t92
|
||||||
|
FaSnhwKt+XGp+cNC9JSGsenDyvEHCaVKlQ2o7X3IAPUk+okXNeIsvjISuMuXSdNNYnLF/UH8xvg
|
||||||
|
xxQuHvlM4MybKXkmrpZK6e8s6JTPctbwxgkW8IsvW17nucbH5VsmqVMsnE8dIzdKePLJJUX2MzA
|
||||||
|
FveNPuw1ooJDjZtX+pybJc2tPUZfR1RYXErRKx94br9Rwi4h4SyemyOsrIRVwSUsLzRFKyXSrqp
|
||||||
|
0nQWK/C3fFYo/lD4AZ5PK2WknU/9Tl0M0AmB7+CzA+sG/axPbeu484FzClaiqOKc0ejcjmQNASH
|
||||||
|
AN7FjHrtcD8rHxaDuQvASFML9+vfHvfFYp+PMiECLUVzNKoszCF7MRtq6d+vxxJ8/eHP66/2D/5
|
||||||
|
YVpKp1N81zDOvTlf+8yfzHGYjzOZKnNKueI3jlnd1NrXBYkYzD1Kv/9k=
|
||||||
|
l: Springfield
|
||||||
|
mail: homer.simpson@example.com
|
||||||
|
o: The Simpsons
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: posixAccount
|
||||||
|
objectclass: top
|
||||||
|
objectclass: shadowAccount
|
||||||
|
sn: Simpson
|
||||||
|
st: 742 Evergreen Terrace
|
||||||
|
telephonenumber: +1 939 555 3126
|
||||||
|
uid: homer
|
||||||
|
uidnumber: 1001
|
||||||
|
userpassword: mmm.beer
|
||||||
|
|
||||||
|
# Entry 7: cn=Lisa Simpson,ou=People,o=Simpsons
|
||||||
|
dn: cn=Lisa Simpson,ou=People,o=Simpsons
|
||||||
|
cn: Lisa Simpson
|
||||||
|
gidnumber: 1000
|
||||||
|
givenname: Lisa
|
||||||
|
homedirectory: /home/users/simpsons/lisa
|
||||||
|
jpegphoto:: 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
|
||||||
|
zt1Zj1J/wDtsTcHQxCJtll8Rr3105kOg4DkF//Z
|
||||||
|
l: Springfield
|
||||||
|
mail: lisa.simpson@example.com
|
||||||
|
o: The Simpsons
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: posixAccount
|
||||||
|
objectclass: top
|
||||||
|
objectclass: shadowAccount
|
||||||
|
sn: Simpson
|
||||||
|
st: 742 Evergreen Terrace
|
||||||
|
telephonenumber: +1 939 555 3126
|
||||||
|
uid: lisa
|
||||||
|
uidnumber: 1002
|
||||||
|
userpassword: brains
|
||||||
|
|
||||||
|
# Entry 8: cn=Maggie Simpson,ou=People,o=Simpsons
|
||||||
|
dn: cn=Maggie Simpson,ou=People,o=Simpsons
|
||||||
|
cn: Maggie Simpson
|
||||||
|
gidnumber: 1000
|
||||||
|
givenname: Maggie
|
||||||
|
homedirectory: /home/users/simpsons/maggie
|
||||||
|
jpegphoto:: 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
|
||||||
|
l: Springfield
|
||||||
|
mail: maggie.simpson@example.com
|
||||||
|
o: The Simpsons
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: posixAccount
|
||||||
|
objectclass: top
|
||||||
|
objectclass: shadowAccount
|
||||||
|
sn: Simpson
|
||||||
|
st: 742 Evergreen Terrace
|
||||||
|
telephonenumber: +1 939 555 3126
|
||||||
|
uid: maggie
|
||||||
|
uidnumber: 1003
|
||||||
|
userpassword: dummy
|
||||||
|
|
||||||
|
# Entry 9: cn=Marge Simpson,ou=People,o=Simpsons
|
||||||
|
dn: cn=Marge Simpson,ou=People,o=Simpsons
|
||||||
|
cn: Marge Simpson
|
||||||
|
gidnumber: 1000
|
||||||
|
givenname: Marge
|
||||||
|
homedirectory: /home/users/simpsons/marge
|
||||||
|
jpegphoto:: R0lGODlhhABwAIcAAAAAAAICBQIEAgUFAQUFBAICCwYICw4EBAsJAgkJCAgJDQ4N
|
||||||
|
CA0NDQECEgEDGwsMEA4QDhMEAhILAhANARANBBYODhwCARoJARMQAhIQBBURARQRBBcVAhIQCBE
|
||||||
|
QDRQSDhgSABkUARwTARwVAB0YARISERsbGwIEIgIEKgEENAAEPAQINAQIOiMBASwCAiIbATUDAz
|
||||||
|
0CAicgAiogASsjBCskAS0jAS0kAS4oBTEnATQqAjkuATswAz0xATwxBj80BCIiIikpKS8vLzQ0N
|
||||||
|
Dk5OT09PQIFQwEGTAQJRAMITQEFUQEGWwMIUwMIWgIIYwIIbAAGcQAGfwEIdAEIfEICAksBAVIB
|
||||||
|
AV8AAEAzAUE1AUU2AUU3BEU4AUw8AVA+AWEBAWsCAnIBAXwBAU5ABFRDAlhGAVxHAltJAWFNAWB
|
||||||
|
NBGJQBGVRAmpUAW1YAW1YBHFZAHFaBHFcAnRaAnVdAXVeBHleAHdgAntiAURERElJSU1NTVJSUl
|
||||||
|
lZWV1dXWFhYWVlZWxsbHJycnV1dXt7ewAIg4QBAYwBAZIAAJsCAqICAqsCArQDA7sCAoFlAYRpA
|
||||||
|
ohqAIptAIxuAo1wApN0AZZ5Bph3AJp7AaB/AYF/f8ECAssBAdMEBNwBAeICAuwBAfIBAf4AAJ6A
|
||||||
|
AqGAAaODBKaCAKSCBKaEAKqGAayHAK2JAbKMAraRAruTAcKZAcOaBMadAMidAMqgAsugBM2hAc6
|
||||||
|
iBM6kAtGlAdOoAdqsAdyuAd6wAOCuAOCxAOK0AOS1AOi3AOm5AO27AO+9AIKCgoWFhYuLi42NjZ
|
||||||
|
KSkpycnIyapI6cpZCdp5GfqJajrJyosKOjo6qqqqWwt6WwuK23vrS0tLm5ub6+vrnCyLzEysPDw
|
||||||
|
8DHzcjIyM3NzcTL0MXM0cjO08nQ1NPT09DW2tfb39fc39jY2N3d3dzg497i5d/k5uHh4eDj5uDk
|
||||||
|
5uXl5eHl6OTn6eXo6ufq7Onp6ers7uzs7Ovt8O3u8O3w8fHx8fHz9PP19vX19ff4+Pn5+f39/QA
|
||||||
|
AACH5BAAAAP8ALAAAAACEAHAAAAj/AAEIHEiwoMGDCBMqXMiwocOHDf1JnEixosWL/p41mEKoo8
|
||||||
|
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
|
||||||
|
lBDxlFAZlVI5lVIZEAA7
|
||||||
|
l: Springfield
|
||||||
|
mail: marge.simpson@example.com
|
||||||
|
o: The Simpsons
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: posixAccount
|
||||||
|
objectclass: top
|
||||||
|
objectclass: shadowAccount
|
||||||
|
sn: Simpson
|
||||||
|
st: 742 Evergreen Terrace
|
||||||
|
telephonenumber: +1 939 555 3126
|
||||||
|
uid: marge
|
||||||
|
uidnumber: 1004
|
||||||
|
userpassword: homie
|
||||||
|
|
||||||
|
# Entry 10: ou=Pets,o=Simpsons
|
||||||
|
dn: ou=Pets,o=Simpsons
|
||||||
|
objectclass: organizationalUnit
|
||||||
|
objectclass: top
|
||||||
|
ou: Pets
|
||||||
|
|
||||||
|
# Entry 11: cn=Santas Little Helper,ou=Pets,o=Simpsons
|
||||||
|
dn: cn=Santas Little Helper,ou=Pets,o=Simpsons
|
||||||
|
cn: Santas Little Helper
|
||||||
|
givenname: Santas Little Helper
|
||||||
|
jpegphoto:: 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
|
||||||
|
0rJcGRsMDnOT1q10pXgAAwJ6SScmf//Z
|
||||||
|
l: Springfield
|
||||||
|
o: The Simpsons
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: top
|
||||||
|
sn: Simpson
|
||||||
|
st: 742 Evergreen Terrace
|
||||||
|
telephonenumber: +1 939 555 3126
|
139
doc/ldif-example-com
Normal file
@ -0,0 +1,139 @@
|
|||||||
|
# LDIF Export for dc=example,dc=com
|
||||||
|
# Server: C5: OpenLDAP 2.3.27: config (c5dev.leenooks.vpn)
|
||||||
|
# Search Scope: sub
|
||||||
|
# Search Filter: (objectClass=*)
|
||||||
|
# Total Entries: 15
|
||||||
|
#
|
||||||
|
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on April 26, 2011 9:25 pm
|
||||||
|
# Version: 1.2.0.5
|
||||||
|
|
||||||
|
#version: 1
|
||||||
|
|
||||||
|
# Entry 1: dc=example,dc=com
|
||||||
|
dn: dc=example,dc=com
|
||||||
|
dc: example
|
||||||
|
objectclass: dNSDomain
|
||||||
|
|
||||||
|
# Entry 2: c=AU,dc=example,dc=com
|
||||||
|
dn: c=AU,dc=example,dc=com
|
||||||
|
c: AU
|
||||||
|
description: Australia
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 3: c=CN,dc=example,dc=com
|
||||||
|
dn: c=CN,dc=example,dc=com
|
||||||
|
c: CN
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 4: cn=你好,c=CN,dc=example,dc=com
|
||||||
|
dn:: Y2495L2g5aW9LGM9Q04sZGM9ZXhhbXBsZSxkYz1jb20=
|
||||||
|
cn:: 5L2g5aW9
|
||||||
|
gidnumber: 200
|
||||||
|
objectclass: posixGroup
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 5: c=DE,dc=example,dc=com
|
||||||
|
dn: c=DE,dc=example,dc=com
|
||||||
|
c: DE
|
||||||
|
description: Germany
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 6: c=ES,dc=example,dc=com
|
||||||
|
dn: c=ES,dc=example,dc=com
|
||||||
|
c: ES
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 7: c=FR,dc=example,dc=com
|
||||||
|
dn: c=FR,dc=example,dc=com
|
||||||
|
c: FR
|
||||||
|
description: France
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 8: c=GB,dc=example,dc=com
|
||||||
|
dn: c=GB,dc=example,dc=com
|
||||||
|
c: GB
|
||||||
|
description: Great Britain
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 9: c=IT,dc=example,dc=com
|
||||||
|
dn: c=IT,dc=example,dc=com
|
||||||
|
c: IT
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 10: c=NO,dc=example,dc=com
|
||||||
|
dn: c=NO,dc=example,dc=com
|
||||||
|
c: NO
|
||||||
|
description: Norway
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 11: c=RU,dc=example,dc=com
|
||||||
|
dn: c=RU,dc=example,dc=com
|
||||||
|
c: RU
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 12: cn=Человеки,c=RU,dc=example,dc=com
|
||||||
|
dn:: Y2490KfQtdC70L7QstC10LrQuCxjPVJVLGRjPWV4YW1wbGUsZGM9Y29t
|
||||||
|
cn:: 0KfQtdC70L7QstC10LrQuA==
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: top
|
||||||
|
sn:: 0KfQtdC70L7QstC10LrQuA==
|
||||||
|
|
||||||
|
# Entry 13: cn=Дед Логопед,cn=Человеки,c=RU,dc=example,...
|
||||||
|
dn:: Y2490JTQtdC0INCb0L7Qs9C+0L/QtdC0LGNuPdCn0LXQu9C+0LLQtdC60LgsYz1SVSxkYz1
|
||||||
|
leGFtcGxlLGRjPWNvbQ==
|
||||||
|
cn:: 0JTQtdC0INCb0L7Qs9C+0L/QtdC0
|
||||||
|
givenname:: 0JTQtdC0
|
||||||
|
jpegphoto:: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoH
|
||||||
|
BwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQk
|
||||||
|
UDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wA
|
||||||
|
ARCAAwAEADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAA
|
||||||
|
gEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcY
|
||||||
|
GRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipK
|
||||||
|
TlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8v
|
||||||
|
P09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFB
|
||||||
|
AQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygp
|
||||||
|
KjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJm
|
||||||
|
aoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9
|
||||||
|
oADAMBAAIRAxEAPwD9A/gj8Nx8IvhN4V8KPKsr6PpkNnJIv3WZV+Y/QnNc/wCINDutR1Q/Mux2y
|
||||||
|
xHTFeTaP+17d+IfDN94w02ODW/ANsF+0apZKZHtHOMxyKPmDDK8Ed69G8IfEHR/ij4aTxD4cv47
|
||||||
|
60VMkxEjacdGBAKn2IoA5Txn4KuIzO0v+rToyDjmvlL486HBb2jhdzEdNvrzXtvxB+NsNjeXdpF
|
||||||
|
M7JFlQpbv6GvlD4qfE6/1Ca4nktWkgI24Tkd+goA+b/ESSRXkoJIwejCuWuZFfOQAfUV1HiC9vN
|
||||||
|
VuGmj064RJOjvC4HHpxXGXwntZT50Tp6FlIoAy9UQLE5A7VzDJ5h/Guj1aUi1ZvXisTyTGuDwR1
|
||||||
|
oA/cX/gnT8CPFfwl/Z21nR/Gugpo9/rOpSXS6df7XdrdoUQCZATtJKt8p5xjPWvefh98HdE8D3d
|
||||||
|
3qcNnb2lzPGYXisVaO2EI6IIySOPWvRulYXjjWYvD/hLVdQmfy4oLd3ZvQAUAfjx+0H42kHxR8T
|
||||||
|
Lajybdb2VY4lPAAY4FefeGbx9Q1yzlu7f+0rbdmSEt8x9QAeK1PiQi614n1LUlbi4neXn3Ymud0
|
||||||
|
m9l0G6jlVC6E5OOoPqKAIPFPhq88O+Mr7V9J1i/trC4kMyWaiRHyf4Sn3BjpnJGKpT6yNe0lk1W
|
||||||
|
0jN2DgTBAN49T716NqOrXXiC1807dm3rIcV5j4mb7KrZYbsHkUAeW+JIEt7hIYwCqtvwPb/ACKw
|
||||||
|
XBySec1v39nPc3DTshCNwmR1HrVGfT2jIJHFAH9GkfxQspdds7KKOWaGZtr3CITHEMcMzdAM4/O
|
||||||
|
uR/aP1qLXPhtqOiaVdQzXV4hQ/PhQMcknFeXeAdRnSzRxG88UxGx9mVJPTnHGcGuk1+4h1LSnij
|
||||||
|
RHkYlVjk4kVvQHHrQB+f8A4m/Zy8Y380kOnapokEZGS91cvk+wAQ1zq/svfEC5/cp4i0O2KHaR5
|
||||||
|
UzsT/3yM19ea9aW8R3y3ElndKSWhdBtkB6HBxj6g1w+tarcxRRXLxS3mmxuE3ohCA9SNwwwP1oA
|
||||||
|
8Ksv2WvHGAl143s40xjba6cznn/eYVFrX7LRuYUjbxa817nkTWB2MPqrEj9a9jXxZqt4DEkqoVb
|
||||||
|
93DKN3b+8MEHjjI9Kq6j421mwSNL64ESSqytuYOj+gYdvqKAPAvF/wOv9EtR5z2tyEG3fDuX9GU
|
||||||
|
YryPXfB15axs62ryxhtu+Ebxn6rmvpXW9cilF00+piYDO17cOVK9Mc9vqO1eQ+LNVSOd3g3NAvJ
|
||||||
|
MmUJ+vP9aAP/9k=
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
objectclass: top
|
||||||
|
sn:: 0JvQvtCz0L7Qv9C10LQ=
|
||||||
|
|
||||||
|
# Entry 14: c=SE,dc=example,dc=com
|
||||||
|
dn: c=SE,dc=example,dc=com
|
||||||
|
c: SE
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 15: c=US,dc=example,dc=com
|
||||||
|
dn: c=US,dc=example,dc=com
|
||||||
|
c: US
|
||||||
|
description: United States of America
|
||||||
|
objectclass: country
|
||||||
|
objectclass: top
|
165
doc/ldif-example.com
Normal file
@ -0,0 +1,165 @@
|
|||||||
|
# LDIF Export for dc=example.com
|
||||||
|
# Server: C5: OpenLDAP 2.3.27: config (c5dev.leenooks.vpn)
|
||||||
|
# Search Scope: sub
|
||||||
|
# Search Filter: (objectClass=*)
|
||||||
|
# Total Entries: 23
|
||||||
|
#
|
||||||
|
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on April 26, 2011 9:13 pm
|
||||||
|
# Version: 1.2.0.5
|
||||||
|
|
||||||
|
#version: 1
|
||||||
|
|
||||||
|
# Entry 1: dc=example.com
|
||||||
|
dn: dc=example.com
|
||||||
|
dc: example.com
|
||||||
|
objectclass: dNSDomain
|
||||||
|
|
||||||
|
# Entry 2: cn=group,dc=example.com
|
||||||
|
dn: cn=group,dc=example.com
|
||||||
|
cn: group
|
||||||
|
gidnumber: 100
|
||||||
|
objectclass: posixGroup
|
||||||
|
objectclass: top
|
||||||
|
|
||||||
|
# Entry 3: ou=Bad DNs,dc=example.com
|
||||||
|
dn: ou=Bad DNs,dc=example.com
|
||||||
|
objectclass: organizationalUnit
|
||||||
|
ou: Bad DNs
|
||||||
|
|
||||||
|
# Entry 4: c=double plus \2B\2B,ou=Bad DNs,dc=example.com
|
||||||
|
dn: c=double plus \2B\2B,ou=Bad DNs,dc=example.com
|
||||||
|
c: double plus ++
|
||||||
|
objectclass: country
|
||||||
|
|
||||||
|
# Entry 5: c=end dollar$,ou=Bad DNs,dc=example.com
|
||||||
|
dn: c=end dollar$,ou=Bad DNs,dc=example.com
|
||||||
|
c: end dollar$
|
||||||
|
objectclass: country
|
||||||
|
|
||||||
|
# Entry 6: sn=sign@at+uid=multi-mixed,ou=Bad DNs,dc=example.com
|
||||||
|
dn: sn=sign@at+uid=multi-mixed,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: sign@at
|
||||||
|
uid: multi-mixed
|
||||||
|
|
||||||
|
# Entry 7: uid=angle\3Cleft,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=angle\3Cleft,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: angle<left
|
||||||
|
|
||||||
|
# Entry 8: uid=angle\3Eright,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=angle\3Eright,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: angle>right
|
||||||
|
|
||||||
|
# Entry 9: uid=brace(left,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=brace(left,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: brace(left
|
||||||
|
|
||||||
|
# Entry 10: uid=brace)right,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=brace)right,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: brace)right
|
||||||
|
|
||||||
|
# Entry 11: uid=colon:full,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=colon:full,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: colon:full
|
||||||
|
|
||||||
|
# Entry 12: uid=colon\3Bsemi,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=colon\3Bsemi,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: colon;semi
|
||||||
|
|
||||||
|
# Entry 13: uid=multi+uid=sign@at,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=multi+uid=sign@at,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: multi
|
||||||
|
uid: sign@at
|
||||||
|
|
||||||
|
# Entry 14: uid=multi+uid=value,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=multi+uid=value,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: multi
|
||||||
|
uid: value
|
||||||
|
|
||||||
|
# Entry 15: uid=quote\22double,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=quote\22double,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: quote"double
|
||||||
|
|
||||||
|
# Entry 16: uid=quote'single,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=quote'single,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: quote'single
|
||||||
|
|
||||||
|
# Entry 17: uid=sign%percent,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=sign%percent,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: sign%percent
|
||||||
|
|
||||||
|
# Entry 18: uid=sign\2Bplus,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=sign\2Bplus,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: sign+plus
|
||||||
|
|
||||||
|
# Entry 19: uid=sign\2Ccomma,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=sign\2Ccomma,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: sign,comma
|
||||||
|
|
||||||
|
# Entry 20: uid=sign\3Bsemicolon@at,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=sign\3Bsemicolon@at,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: sign;semicolon@at
|
||||||
|
|
||||||
|
# Entry 21: uid=sign\3Dequal,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=sign\3Dequal,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: sign=equal
|
||||||
|
|
||||||
|
# Entry 22: uid=sign?question,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=sign?question,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: sign?question
|
||||||
|
|
||||||
|
# Entry 23: uid=sign@at,ou=Bad DNs,dc=example.com
|
||||||
|
dn: uid=sign@at,ou=Bad DNs,dc=example.com
|
||||||
|
cn: Test
|
||||||
|
objectclass: inetOrgPerson
|
||||||
|
sn: Test
|
||||||
|
uid: sign@at
|
107
doc/phpldapadmin-demo.conf
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
include /etc/openldap/schema/uidpool.schema
|
||||||
|
include /etc/openldap/schema/sudo.schema
|
||||||
|
include /etc/openldap/schema/autofs.schema
|
||||||
|
|
||||||
|
TLSCACertificateFile /etc/openldap/pla/ca-bundle.crt
|
||||||
|
TLSCertificateFile /etc/openldap/pla/slapd.crt
|
||||||
|
TLSCertificateKeyFile /etc/openldap/pla/slapd.key
|
||||||
|
|
||||||
|
access to dn.regex="o=Simpsons$" attrs=userpassword
|
||||||
|
by anonymous auth
|
||||||
|
by self write
|
||||||
|
by * none
|
||||||
|
|
||||||
|
access to dn.base="" by * read
|
||||||
|
access to dn.regex="dc=example.com$"
|
||||||
|
by dn.regex="o=Flintstones$" none
|
||||||
|
by dn.regex="o=Simpsons$" none
|
||||||
|
by * write
|
||||||
|
access to dn.regex="dc=example,dc=com$"
|
||||||
|
by dn.regex="o=Flintstones$" none
|
||||||
|
by dn.regex="o=Simpsons$" none
|
||||||
|
by * write
|
||||||
|
access to dn.regex="o=Flintstones$"
|
||||||
|
by dn.regex="o=Simpsons$" none
|
||||||
|
by self write
|
||||||
|
by dn.regex="cn=.*,ou=People,o=Flintstones" write
|
||||||
|
by * read
|
||||||
|
access to dn.regex="o=Simpsons$"
|
||||||
|
by dn.regex="o=Flintstones$" none
|
||||||
|
by self write
|
||||||
|
by dn.regex="cn=.*,ou=People,o=Simpsons" write
|
||||||
|
by * read
|
||||||
|
access to *
|
||||||
|
by * read
|
||||||
|
|
||||||
|
authz-policy any
|
||||||
|
|
||||||
|
database ldbm
|
||||||
|
suffix "dc=example.com"
|
||||||
|
rootdn "cn=Manager,dc=example.com"
|
||||||
|
rootpw NotAllowed
|
||||||
|
directory /var/lib/ldap/base-example.com
|
||||||
|
dirtyread
|
||||||
|
cachesize 2000
|
||||||
|
checkpoint 32 1
|
||||||
|
# Indices to maintain for this database
|
||||||
|
index objectClass eq,pres
|
||||||
|
index ou,cn,mail,surname,givenname eq,pres,sub
|
||||||
|
index uidNumber,gidNumber,loginShell eq,pres
|
||||||
|
index uid,memberUid eq,pres,sub
|
||||||
|
index nisMapName,nisMapEntry eq,pres,sub
|
||||||
|
|
||||||
|
database ldbm
|
||||||
|
suffix "dc=example,dc=com"
|
||||||
|
rootdn "cn=Manager,dc=example,dc=com"
|
||||||
|
rootpw NotAllowed
|
||||||
|
directory /var/lib/ldap/base-example-com
|
||||||
|
dirtyread
|
||||||
|
cachesize 2000
|
||||||
|
checkpoint 32 1
|
||||||
|
# Indices to maintain for this database
|
||||||
|
index objectClass eq,pres
|
||||||
|
index ou,cn,mail,surname,givenname eq,pres,sub
|
||||||
|
index uidNumber,gidNumber,loginShell eq,pres
|
||||||
|
index uid,memberUid eq,pres,sub
|
||||||
|
index nisMapName,nisMapEntry eq,pres,sub
|
||||||
|
|
||||||
|
database ldbm
|
||||||
|
suffix "o=Simpsons"
|
||||||
|
rootdn "cn=Manager,o=Simpsons"
|
||||||
|
rootpw NotAllowed
|
||||||
|
directory /var/lib/ldap/base-simpsons
|
||||||
|
dirtyread
|
||||||
|
cachesize 2000
|
||||||
|
checkpoint 32 1
|
||||||
|
# Indices to maintain for this database
|
||||||
|
index objectClass eq,pres
|
||||||
|
index ou,cn,mail,surname,givenname eq,pres,sub
|
||||||
|
index uidNumber,gidNumber,loginShell eq,pres
|
||||||
|
index uid,memberUid eq,pres,sub
|
||||||
|
index nisMapName,nisMapEntry eq,pres,sub
|
||||||
|
|
||||||
|
sasl-regexp uid=(.*),cn=(.*),cn=gssapi,cn=auth
|
||||||
|
ldap:///dc=example.com??sub?(&(uid=$1)(objectClass=inetOrgPerson))
|
||||||
|
|
||||||
|
database bdb
|
||||||
|
suffix "o=Flintstones"
|
||||||
|
rootdn "cn=Manager,o=Flintstones"
|
||||||
|
rootpw NotAllowed
|
||||||
|
directory /var/lib/ldap/base-flintstones
|
||||||
|
dirtyread
|
||||||
|
cachesize 2000
|
||||||
|
checkpoint 32 1
|
||||||
|
# Indices to maintain for this database
|
||||||
|
index objectClass eq,pres
|
||||||
|
index ou,cn,mail,surname,givenname eq,pres,sub
|
||||||
|
index uidNumber,gidNumber,loginShell eq,pres
|
||||||
|
index uid,memberUid eq,pres,sub
|
||||||
|
index nisMapName,nisMapEntry eq,pres,sub
|
||||||
|
|
||||||
|
database monitor
|
||||||
|
access to * by * read
|
||||||
|
|
||||||
|
database config
|
||||||
|
access to * by * read
|
||||||
|
rootdn cn=admin,cn=config
|
||||||
|
rootpw password
|
66
doc/pla-test-i18n.ldif
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# This is a Test-File for characters / encoding
|
||||||
|
# 1. Change the
|
||||||
|
# ,dc=example,dc=com
|
||||||
|
# to avalue for your organisation
|
||||||
|
# 2. Import it with phpldapadmin
|
||||||
|
#
|
||||||
|
# pla-i18n, example.com
|
||||||
|
#
|
||||||
|
dn: ou=pla-i18n,dc=example,dc=com
|
||||||
|
ou: pla-i18n
|
||||||
|
objectClass: top
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
|
||||||
|
# pl, pla-i18n, example.com
|
||||||
|
dn: ou=pl,ou=pla-i18n,dc=example,dc=com
|
||||||
|
description:: IGRvcMOza2k=
|
||||||
|
description:: xITFu8WaxbnEhsWDxYHDk8SYIMSFxbzFm8W6xIfFhMWCw7PEmQ==
|
||||||
|
description:: V3NrYXrDs3drYQ==
|
||||||
|
objectClass: top
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
ou: pl
|
||||||
|
|
||||||
|
# ru, pla-i18n, example.com
|
||||||
|
dn: ou=ru,ou=pla-i18n,dc=example,dc=com
|
||||||
|
description:: 0LfQstGD0YfQuNGCINC/0L7QtNC+0LHQvdC+
|
||||||
|
description:: 0J/RgNC+0YHRgtCw0Y8g0YTQvtGA0LzQsCDQv9C+0LjRgdC6
|
||||||
|
objectClass: top
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
ou: ru
|
||||||
|
|
||||||
|
# jp, pla-i18n, example.com
|
||||||
|
dn: ou=jp,ou=pla-i18n,dc=example,dc=com
|
||||||
|
ou: jp
|
||||||
|
objectClass: top
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
description:: SVNPLTIwMjItSlDjga7lpJrlm73nsY3oqIDoqp7jgbjjga7mi6HlvLXmgKc=
|
||||||
|
|
||||||
|
# pt-br, pla-i18n, example.com
|
||||||
|
dn: ou=pt-br,ou=pla-i18n,dc=example,dc=com
|
||||||
|
ou: pt-br
|
||||||
|
objectClass: top
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
description:: VmVyIGFzIHJlcXVpc2nDp8O1ZXMgZW0gYWJlcnRv
|
||||||
|
|
||||||
|
# de, pla-i18n, example.com
|
||||||
|
dn: ou=de,ou=pla-i18n,dc=example,dc=com
|
||||||
|
ou: de
|
||||||
|
objectClass: top
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
description:: U29uZGVyemVpY2hlbiDDtsOkw7zDnyDDlsOEw5w=
|
||||||
|
description:: w5bDliDDnMOcIMOEw4Q=
|
||||||
|
|
||||||
|
# sv, pla-i18n, example.com
|
||||||
|
dn: ou=sv,ou=pla-i18n,dc=example,dc=com
|
||||||
|
ou: sv
|
||||||
|
objectClass: top
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
description:: U8O2a29tZsOlbmc=
|
||||||
|
description:: bMOldGVyIHNvbQ==
|
||||||
|
|
||||||
|
# ca, pla-i18n, example.com
|
||||||
|
dn: ou=ca,ou=pla-i18n,dc=example,dc=com
|
||||||
|
ou: ca
|
||||||
|
objectClass: top
|
||||||
|
objectClass: organizationalUnit
|
||||||
|
description:: RXMgdGluZHLDoSBxdWUgY29uZmlybWFyIGFxdWVzdGEgZGVjaXNpw7M=
|
11
doc/uidpool.schema
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
##
|
||||||
|
## Used for storing the next gid and next uid in the the directory
|
||||||
|
##
|
||||||
|
objectclass ( 1.3.6.1.4.1.7165.1.2.2.3 NAME 'uidPool' SUP top AUXILIARY
|
||||||
|
DESC 'Pool for allocating UNIX uids'
|
||||||
|
MUST ( uidNumber $ cn ) )
|
||||||
|
|
||||||
|
|
||||||
|
objectclass ( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' SUP top AUXILIARY
|
||||||
|
DESC 'Pool for allocating UNIX gids'
|
||||||
|
MUST ( gidNumber $ cn ) )
|
3
hooks/classes/README
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Put your hook class files here.
|
||||||
|
|
||||||
|
A file wich contains "class MyClass" definition must be called "MyClass.php".
|
1
hooks/functions/README
Normal file
@ -0,0 +1 @@
|
|||||||
|
Put your hook function files here.
|
402
hooks/functions/example.php
Normal file
@ -0,0 +1,402 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* An example of a hooks implementation.
|
||||||
|
*
|
||||||
|
* Functions should return true on success and false on failure.
|
||||||
|
* If a function returns false it will trigger the rollback to be executed.
|
||||||
|
*
|
||||||
|
* @author The phpLDAPadmin development team
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This example hooks implementation will just show system_messages after each hooks is called.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
# If you want to see this example in action, just comment out the return.
|
||||||
|
return false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The post_session_init function is called after lib/common.php has completed its processing.
|
||||||
|
* This can be used to further initialise the session.
|
||||||
|
*
|
||||||
|
* No arguments are passed to post_session_init.
|
||||||
|
*/
|
||||||
|
function example_post_session_init() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Global Vars</i>: <small>%s</small>',join('| ',array_keys($GLOBALS))),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('post_session_init','example_post_session_init');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This pre_connect function is called before making a connection to the LDAP server.
|
||||||
|
* While PLA makes many calls to connect to the LDAP server, this is called only once
|
||||||
|
* when caching is turned on.
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @see post_connect
|
||||||
|
*/
|
||||||
|
function example_pre_connect() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li></ul>',$args[0],$args[1]),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('pre_connect','example_pre_connect');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This post_connect function is called after making a connection to the LDAP server.
|
||||||
|
* While PLA makes many calls to connect to the LDAP server, this is called only once
|
||||||
|
* when caching is turned on.
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string User ID of the user who successfully made the connection.
|
||||||
|
* @see pre_connect
|
||||||
|
*/
|
||||||
|
function example_post_connect() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>User DN: <small>%s</small></li></ul>',$args[0],$args[1],$args[2]),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('post_connect','example_post_connect');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This pre_entry_create function is called before an entry is created in ds_ldap_pla::add().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the entry created
|
||||||
|
* @param array Attributes for the new DN
|
||||||
|
* @see post_entry_create
|
||||||
|
*/
|
||||||
|
function example_pre_entry_create() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attributes: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],join(',',(array_keys($args[3])))),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('pre_entry_create','example_pre_entry_create');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This post_entry_create function is called after an entry is created in ds_ldap_pla::add().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the entry created
|
||||||
|
* @param array Attributes for the new DN
|
||||||
|
* @see pre_entry_create
|
||||||
|
*/
|
||||||
|
function example_post_entry_create() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attributes: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],join(',',(array_keys($args[3])))),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('post_entry_create','example_post_entry_create');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This pre_entry_delete function is called before an entry is deleted in ds_ldap_pla::delete().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the entry deleted
|
||||||
|
* @see post_entry_delete
|
||||||
|
*/
|
||||||
|
function example_pre_entry_delete() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li></ul>',$args[0],$args[1],$args[2]),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('pre_entry_delete','example_pre_entry_delete');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This post_entry_delete function is called after an entry is deleted in ds_ldap_pla::delete().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the entry deleted
|
||||||
|
* @see pre_entry_delete
|
||||||
|
*/
|
||||||
|
function example_post_entry_delete() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li></ul>',$args[0],$args[1],$args[2]),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('post_entry_delete','example_post_entry_delete');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This pre_entry_rename function is called before an entry is renamed in ds_ldap_pla::rename().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string Old DN of the entry to be renamed
|
||||||
|
* @param string New RDN for the new entry
|
||||||
|
* @param string Container for the new entry
|
||||||
|
* @see post_entry_rename
|
||||||
|
*/
|
||||||
|
function example_pre_entry_rename() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>New RDN: <small>%s</small></li><li>New Container: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],$args[3],$args[4]),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('pre_entry_rename','example_pre_entry_rename');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This post_entry_rename function is called after an entry is renamed in ds_ldap_pla::rename().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string Old DN of the entry to be renamed
|
||||||
|
* @param string New RDN for the new entry
|
||||||
|
* @param string Container for the new entry
|
||||||
|
* @see pre_entry_rename
|
||||||
|
*/
|
||||||
|
function example_post_entry_rename() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>New RDN: <small>%s</small></li><li>New Container: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],$args[3],$args[4]),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('post_entry_rename','example_post_entry_rename');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This pre_entry_modify function is called before an entry is modified in ds_ldap_pla::modify().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the entry to be modified
|
||||||
|
* @param array Attributes to be modified
|
||||||
|
* @see post_entry_modify
|
||||||
|
*/
|
||||||
|
function example_pre_entry_modify() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attributes: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],join('|',array_keys($args[3]))),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('pre_entry_modify','example_pre_entry_modify');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This post_entry_modify function is called after an entry is modified in ds_ldap_pla::modify().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the entry to be modified
|
||||||
|
* @param array Attributes to be modified
|
||||||
|
* @see pre_entry_modify
|
||||||
|
*/
|
||||||
|
function example_post_entry_modify() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attributes: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],join('|',array_keys($args[3]))),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('post_entry_modify','example_post_entry_modify');
|
||||||
|
|
||||||
|
// pre_attr_add
|
||||||
|
// post_attr_add
|
||||||
|
/**
|
||||||
|
* This pre_attr_add function is called before an attribute is deleted in ds_ldap_pla::modify().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the attribute to be deleted
|
||||||
|
* @param string Attribute to be deleted
|
||||||
|
* @param array Old values
|
||||||
|
* @see post_attr_add
|
||||||
|
*/
|
||||||
|
function example_pre_attr_add() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attribute: <small>%s</small></li><li>New Values: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],$args[3],join('|',$args[4])),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('pre_attr_add','example_pre_attr_add');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This post_attr_add function is called after an attribute is added in ds_ldap_pla::modify().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the attribute to be added
|
||||||
|
* @param string Attribute to be added
|
||||||
|
* @param array New values
|
||||||
|
* @see pre_attr_add
|
||||||
|
*/
|
||||||
|
function example_post_attr_add() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attribute: <small>%s</small></li><li>New Values: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],$args[3],join('|',$args[4])),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('post_attr_add','example_post_attr_add');
|
||||||
|
|
||||||
|
// pre_attr_modify
|
||||||
|
// post_attr_modify
|
||||||
|
/**
|
||||||
|
* This pre_attr_modify function is called before an attribute is modified in ds_ldap_pla::modify().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the attribute to be modified
|
||||||
|
* @param string Attribute to be modified
|
||||||
|
* @param array New values
|
||||||
|
* @see post_attr_modify
|
||||||
|
*/
|
||||||
|
function example_pre_attr_modify() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attribute: <small>%s</small></li><li>Old Values: <small>%s</small></li><li>New Values: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],$args[3],join('|',$args[4]),join('|',$args[5])),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('pre_attr_modify','example_pre_attr_modify');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This post_attr_modify function is called after an attribute is deleted in ds_ldap_pla::modify().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the attribute to be deleted
|
||||||
|
* @param string Attribute to be deleted
|
||||||
|
* @param array Old values
|
||||||
|
* @see pre_attr_modify
|
||||||
|
*/
|
||||||
|
function example_post_attr_modify() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attribute: <small>%s</small></li><li>Old Values: <small>%s</small></li><li>New Values: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],$args[3],join('|',$args[4]),join('|',$args[5])),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('post_attr_modify','example_post_attr_modify');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This pre_attr_delete function is called before an attribute is deleted in ds_ldap_pla::modify().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the attribute to be deleted
|
||||||
|
* @param string Attribute to be deleted
|
||||||
|
* @param array Old values
|
||||||
|
* @see post_attr_delete
|
||||||
|
*/
|
||||||
|
function example_pre_attr_delete() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attribute: <small>%s</small></li><li>Old Values: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],$args[3],join('|',$args[4])),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('pre_attr_delete','example_pre_attr_delete');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This post_attr_delete function is called after an attribute is deleted in ds_ldap_pla::modify().
|
||||||
|
*
|
||||||
|
* Arguments available are:
|
||||||
|
* @param int Server ID of the server to be connected to
|
||||||
|
* @param string Method. The user connection method, normally 'user'.
|
||||||
|
* @param string DN of the attribute to be deleted
|
||||||
|
* @param string Attribute to be deleted
|
||||||
|
* @param array Old values
|
||||||
|
* @see pre_attr_delete
|
||||||
|
*/
|
||||||
|
function example_post_attr_delete() {
|
||||||
|
$args = func_get_args();
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>sprintf('Hook called [%s]',__METHOD__),
|
||||||
|
'body'=>sprintf('<i>Arguments</i>:<ul><li>Server ID: <small>%s</small></li><li>Method: <small>%s</small></li><li>DN: <small>%s</small></li><li>Attribute: <small>%s</small></li><li>Old Values: <small>%s</small></li></ul>',$args[0],$args[1],$args[2],$args[3],join('|',$args[4])),
|
||||||
|
'type'=>'info','special'=>true));
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
add_hook('post_attr_delete','example_post_attr_delete');
|
||||||
|
?>
|
185
htdocs/add_attr_form.php
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Displays a form for adding an attribute/value to an LDAP entry.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# The DN we are working with
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','GET');
|
||||||
|
|
||||||
|
# Check if the entry exists.
|
||||||
|
if (! $request['dn'] || ! $app['server']->dnExists($request['dn']))
|
||||||
|
error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php');
|
||||||
|
|
||||||
|
$request['page'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,null));
|
||||||
|
$request['page']->setDN($request['dn']);
|
||||||
|
$request['page']->accept(true);
|
||||||
|
$request['template'] = $request['page']->getTemplate();
|
||||||
|
|
||||||
|
# Render the form
|
||||||
|
if (get_request('meth','REQUEST') != 'ajax') {
|
||||||
|
$request['page']->drawTitle(sprintf('%s <b>%s</b>',_('Add new attribute'),get_rdn($request['dn'])));
|
||||||
|
$request['page']->drawSubTitle();
|
||||||
|
|
||||||
|
echo '<div style="text-align: center;">';
|
||||||
|
if (count($request['template']->getAvailAttrs())) {
|
||||||
|
# If we have more than the configured entries, we'll separate our input to the old ways.
|
||||||
|
if (count($request['template']->getAvailAttrs()) > $_SESSION[APPCONFIG]->getValue('appearance','max_add_attrs')) {
|
||||||
|
$attr = array();
|
||||||
|
$attr['avail'] = array();
|
||||||
|
$attr['binary'] = array();
|
||||||
|
|
||||||
|
foreach ($request['template']->getAvailAttrs() as $attribute)
|
||||||
|
if ($app['server']->isAttrBinary($attribute->getName()))
|
||||||
|
array_push($attr['binary'],$attribute);
|
||||||
|
else
|
||||||
|
array_push($attr['avail'],$attribute);
|
||||||
|
|
||||||
|
if (count($attr['avail']) > 0) {
|
||||||
|
echo '<br />';
|
||||||
|
echo _('Add new attribute');
|
||||||
|
echo '<br />';
|
||||||
|
echo '<br />';
|
||||||
|
|
||||||
|
echo '<form action="cmd.php" method="post">';
|
||||||
|
echo '<div>';
|
||||||
|
|
||||||
|
if ($_SESSION[APPCONFIG]->getValue('confirm','update'))
|
||||||
|
echo '<input type="hidden" name="cmd" value="update_confirm" />';
|
||||||
|
else
|
||||||
|
echo '<input type="hidden" name="cmd" value="update" />';
|
||||||
|
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($request['dn']));
|
||||||
|
|
||||||
|
echo '<select name="single_item_attr">';
|
||||||
|
|
||||||
|
foreach ($attr['avail'] as $attribute) {
|
||||||
|
# Is there a user-friendly translation available for this attribute?
|
||||||
|
if ($attribute->haveFriendlyName())
|
||||||
|
$attr_display = sprintf('%s (%s)',$attribute->getFriendlyName(),$attribute->getName(false));
|
||||||
|
else
|
||||||
|
$attr_display = $attribute->getName(false);
|
||||||
|
|
||||||
|
printf('<option value="%s">%s</option>',htmlspecialchars($attribute->getName()),$attr_display);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</select>';
|
||||||
|
|
||||||
|
echo '<input type="text" name="single_item_value" size="20" />';
|
||||||
|
printf('<input type="submit" name="submit" value="%s" class="update_dn" />',_('Add'));
|
||||||
|
echo '</div>';
|
||||||
|
echo '</form>';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
echo '<br />';
|
||||||
|
printf('<small>(%s)</small>',_('no new attributes available for this entry'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($attr['binary']) > 0) {
|
||||||
|
echo '<br />';
|
||||||
|
echo _('Add new binary attribute');
|
||||||
|
echo '<br />';
|
||||||
|
echo '<br />';
|
||||||
|
|
||||||
|
echo '<!-- Form to add a new BINARY attribute to this entry -->';
|
||||||
|
echo '<form action="cmd.php" method="post" enctype="multipart/form-data">';
|
||||||
|
echo '<div>';
|
||||||
|
|
||||||
|
if ($_SESSION[APPCONFIG]->getValue('confirm','update'))
|
||||||
|
echo '<input type="hidden" name="cmd" value="update_confirm" />';
|
||||||
|
else
|
||||||
|
echo '<input type="hidden" name="cmd" value="update" />';
|
||||||
|
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn" value="%s" />',$request['dn']);
|
||||||
|
echo '<input type="hidden" name="binary" value="true" />';
|
||||||
|
|
||||||
|
echo '<select name="single_item_attr">';
|
||||||
|
|
||||||
|
foreach ($attr['binary'] as $attribute) {
|
||||||
|
# Is there a user-friendly translation available for this attribute?
|
||||||
|
if ($attribute->haveFriendlyName())
|
||||||
|
$attr_display = sprintf('%s (%s)',$attribute->getFriendlyName(),$attribute->getName(false));
|
||||||
|
else
|
||||||
|
$attr_display = $attribute->getName(false);
|
||||||
|
|
||||||
|
printf('<option value="%s">%s</option>',htmlspecialchars($attribute->getName()),$attr_display);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</select>';
|
||||||
|
|
||||||
|
echo '<input type="file" name="single_item_value" size="20" />';
|
||||||
|
printf('<input type="submit" name="submit" value="%s" class="update_dn" />',_('Add'));
|
||||||
|
|
||||||
|
if (! ini_get('file_uploads'))
|
||||||
|
printf('<br /><small><b>%s</b></small><br />',
|
||||||
|
_('Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.'));
|
||||||
|
|
||||||
|
else
|
||||||
|
printf('<br /><small><b>%s: %s</b></small><br />',_('Maximum file size'),ini_get('upload_max_filesize'));
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
echo '</form>';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
echo '<br />';
|
||||||
|
printf('<small>(%s)</small>',_('no new binary attributes available for this entry'));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
echo '<br />';
|
||||||
|
|
||||||
|
$request['page']->drawFormStart();
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($request['dn']));
|
||||||
|
|
||||||
|
echo '<table class="entry" cellspacing="0" align="center" border="0">';
|
||||||
|
|
||||||
|
foreach ($request['template']->getAvailAttrs() as $attribute)
|
||||||
|
$request['page']->draw('Template',$attribute);
|
||||||
|
|
||||||
|
$request['page']->drawFormSubmitButton();
|
||||||
|
echo '</table>';
|
||||||
|
|
||||||
|
$request['page']->drawFormEnd();
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
printf('<small>(%s)</small>',_('no new attributes available for this entry'));
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
# The ajax addition (it is going into an existing TemplateRendered page
|
||||||
|
} else {
|
||||||
|
# Put our DIV there for the callback
|
||||||
|
echo '<fieldset>';
|
||||||
|
printf('<legend>%s</legend>',_('Add Attribute'));
|
||||||
|
echo '<div id="ajADDATTR">';
|
||||||
|
echo '<table class="entry" cellspacing="0" align="center" border="0">';
|
||||||
|
echo '<td valign="top" align="center">';
|
||||||
|
|
||||||
|
printf('<select name="attr" onchange="ajDISPLAY(\'%s\',\'cmd=add_value_form&server_id=%s&dn=%s&attr=\'+this.value,\'%s\',\'append\');">',
|
||||||
|
'ADDATTR',$app['server']->getIndex(),$request['template']->getDNEncode(),_('Please Wait'));
|
||||||
|
|
||||||
|
printf('<option value="%s">%s</option>','','');
|
||||||
|
foreach ($request['template']->getAvailAttrs() as $attribute)
|
||||||
|
printf('<option value="%s">%s</option>',htmlspecialchars($attribute->getName()),$attribute->getFriendlyName());
|
||||||
|
|
||||||
|
echo '</select>';
|
||||||
|
|
||||||
|
echo '</td>';
|
||||||
|
echo '</table>';
|
||||||
|
echo '</div>';
|
||||||
|
echo '</fieldset>';
|
||||||
|
}
|
||||||
|
?>
|
117
htdocs/add_oclass_form.php
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This page will allow the adding of additional ObjectClasses to an item.
|
||||||
|
* + If the ObjectClass to be added requires additional MUST attributes to be
|
||||||
|
* defined, then they will be prompted for.
|
||||||
|
* + If the ObjectClass doesnt need any additional MUST attributes, then it
|
||||||
|
* will be silently added to the object.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# The DN and OBJECTCLASS we are working with.
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','REQUEST',true);
|
||||||
|
|
||||||
|
# Check if the entry exists.
|
||||||
|
if (! $request['dn'] || ! $app['server']->dnExists($request['dn']))
|
||||||
|
error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php');
|
||||||
|
|
||||||
|
$request['page'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,null));
|
||||||
|
$request['page']->setDN($request['dn']);
|
||||||
|
$request['page']->accept(true);
|
||||||
|
$request['template'] = $request['page']->getTemplate();
|
||||||
|
|
||||||
|
$attribute_factory = new AttributeFactory();
|
||||||
|
|
||||||
|
# Grab the required attributes for the new objectClass
|
||||||
|
$ldap = array();
|
||||||
|
$ldap['attrs']['must'] = array();
|
||||||
|
|
||||||
|
foreach ($request['template']->getAttribute('objectclass')->getValues() as $oclass_name) {
|
||||||
|
# Exclude "top" if its there.
|
||||||
|
if (! strcasecmp('top',$oclass_name))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if ($soc = $app['server']->getSchemaObjectClass($oclass_name))
|
||||||
|
$ldap['attrs']['must'] = array_merge($ldap['attrs']['must'],$soc->getMustAttrNames(true));
|
||||||
|
}
|
||||||
|
|
||||||
|
$ldap['attrs']['must'] = array_unique($ldap['attrs']['must']);
|
||||||
|
|
||||||
|
/* Build a list of the attributes that this new objectClass requires,
|
||||||
|
* but that the object does not currently contain */
|
||||||
|
$ldap['attrs']['need'] = array();
|
||||||
|
foreach ($ldap['attrs']['must'] as $attr)
|
||||||
|
if (is_null($request['template']->getAttribute($attr)))
|
||||||
|
array_push($ldap['attrs']['need'],$attribute_factory->newAttribute($attr,array('values'=>array()),$app['server']->getIndex()));
|
||||||
|
|
||||||
|
# Mark all the need attributes as shown
|
||||||
|
foreach ($ldap['attrs']['need'] as $index => $values)
|
||||||
|
$ldap['attrs']['need'][$index]->show();
|
||||||
|
|
||||||
|
if (count($ldap['attrs']['need']) > 0) {
|
||||||
|
$request['page']->drawTitle(sprintf('%s <b>%s</b>',_('Add new objectClass to'),get_rdn($request['dn'])));
|
||||||
|
$request['page']->drawSubTitle();
|
||||||
|
|
||||||
|
echo '<div style="text-align: center">';
|
||||||
|
printf('<small><b>%s: </b>%s <b>%s</b> %s %s</small>',
|
||||||
|
_('Instructions'),
|
||||||
|
_('In order to add these objectClass(es) to this entry, you must specify'),
|
||||||
|
count($ldap['attrs']['need']),_('new attributes'),
|
||||||
|
_('that this objectClass requires.'));
|
||||||
|
|
||||||
|
echo '<br /><br />';
|
||||||
|
|
||||||
|
echo '<form action="cmd.php" method="post" id="entry_form">';
|
||||||
|
echo '<div>';
|
||||||
|
|
||||||
|
if ($_SESSION[APPCONFIG]->getValue('confirm','update'))
|
||||||
|
echo '<input type="hidden" name="cmd" value="update_confirm" />';
|
||||||
|
else
|
||||||
|
echo '<input type="hidden" name="cmd" value="update" />';
|
||||||
|
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($request['dn']));
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
echo '<table class="entry" cellspacing="0" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||||
|
printf('<tr><th colspan="2">%s</th></tr>',_('New Required Attributes'));
|
||||||
|
|
||||||
|
$counter = 0;
|
||||||
|
echo '<tr><td colspan="2">';
|
||||||
|
foreach ($request['template']->getAttribute('objectclass')->getValues() as $value)
|
||||||
|
$request['page']->draw('HiddenValue',$request['template']->getAttribute('objectclass'),$counter++);
|
||||||
|
echo '</td></tr>';
|
||||||
|
|
||||||
|
foreach ($ldap['attrs']['need'] as $count => $attr)
|
||||||
|
$request['page']->draw('Template',$attr);
|
||||||
|
|
||||||
|
echo '</table>';
|
||||||
|
|
||||||
|
printf('<div style="text-align: center;"><br /><input type="submit" value="%s" /></div>',_('Add ObjectClass and Attributes'));
|
||||||
|
echo '</form>';
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
# There are no other required attributes, so we just need to add the objectclass to the DN.
|
||||||
|
} else {
|
||||||
|
$result = $app['server']->modify($request['dn'],$request['template']->getLDAPmodify());
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s&modified_attrs[]=objectclass',
|
||||||
|
$app['server']->getIndex(),rawurlencode($request['dn']));
|
||||||
|
|
||||||
|
if (get_request('meth','REQUEST') == 'ajax')
|
||||||
|
$href .= '&meth=ajax';
|
||||||
|
|
||||||
|
header(sprintf('Location: %s',$href));
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
173
htdocs/add_value_form.php
Normal file
@ -0,0 +1,173 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Displays a form to allow the user to enter a new value to add
|
||||||
|
* to the existing list of values for a multi-valued attribute.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# The DN and ATTR we are working with.
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','GET',true);
|
||||||
|
$request['attr'] = get_request('attr','GET',true);
|
||||||
|
|
||||||
|
# Check if the entry exists.
|
||||||
|
if (! $request['dn'] || ! $app['server']->dnExists($request['dn']))
|
||||||
|
error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php');
|
||||||
|
|
||||||
|
$request['page'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,null));
|
||||||
|
$request['page']->setDN($request['dn']);
|
||||||
|
$request['page']->accept(true);
|
||||||
|
$request['template'] = $request['page']->getTemplate();
|
||||||
|
|
||||||
|
/*
|
||||||
|
if ($request['attribute']->isReadOnly())
|
||||||
|
error(sprintf(_('The attribute (%s) is in readonly mode.'),$request['attr']),'error','index.php');
|
||||||
|
*/
|
||||||
|
|
||||||
|
# Render the form
|
||||||
|
if (! strcasecmp($request['attr'],'objectclass') || get_request('meth','REQUEST') != 'ajax') {
|
||||||
|
# Render the form.
|
||||||
|
$request['page']->drawTitle(sprintf('%s <b>%s</b> %s <b>%s</b>',_('Add new'),htmlspecialchars($request['attr']),_('value to'),htmlspecialchars(get_rdn($request['dn']))));
|
||||||
|
$request['page']->drawSubTitle();
|
||||||
|
|
||||||
|
if (! strcasecmp($request['attr'],'objectclass')) {
|
||||||
|
echo '<form action="cmd.php" method="post" class="new_value" id="entry_form">';
|
||||||
|
echo '<div>';
|
||||||
|
echo '<input type="hidden" name="cmd" value="add_oclass_form" />';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
echo '<form action="cmd.php" method="post" class="new_value" id="entry_form" enctype="multipart/form-data" onsubmit="return submitForm(this)">';
|
||||||
|
echo '<div>';
|
||||||
|
if ($_SESSION[APPCONFIG]->getValue('confirm','update'))
|
||||||
|
echo '<input type="hidden" name="cmd" value="update_confirm" />';
|
||||||
|
else
|
||||||
|
echo '<input type="hidden" name="cmd" value="update" />';
|
||||||
|
}
|
||||||
|
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($request['dn']));
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
echo '<table class="forminput" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||||
|
echo '<tr>';
|
||||||
|
|
||||||
|
$request['attribute'] = $request['template']->getAttribute($request['attr']);
|
||||||
|
$request['count'] = $request['attribute']->getValueCount();
|
||||||
|
|
||||||
|
if ($request['count']) {
|
||||||
|
printf('<td class="top">%s <b>%s</b> %s <b>%s</b>:</td>',
|
||||||
|
_('Current list of'),$request['count'],_('values for attribute'),$request['attribute']->getFriendlyName());
|
||||||
|
|
||||||
|
echo '<td>';
|
||||||
|
|
||||||
|
# Display current attribute values
|
||||||
|
echo '<table border="0"><tr><td>';
|
||||||
|
for ($i=0;$i<$request['count'];$i++) {
|
||||||
|
if ($i > 0)
|
||||||
|
echo '<br/>';
|
||||||
|
$request['page']->draw('CurrentValue',$request['attribute'],$i);
|
||||||
|
$request['page']->draw('HiddenValue',$request['attribute'],$i);
|
||||||
|
}
|
||||||
|
echo '</td></tr></table>';
|
||||||
|
|
||||||
|
echo '</td>';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
printf('<td>%s <b>%s</b>.</td>',
|
||||||
|
_('No current value for attribute'),$request['attribute']->getFriendlyName());
|
||||||
|
echo '<td><br /><br /></td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</tr>';
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
printf('<td class="top">%s</td>',_('Enter the value(s) you would like to add:'));
|
||||||
|
echo '<td>';
|
||||||
|
|
||||||
|
if (! strcasecmp($request['attr'],'objectclass')) {
|
||||||
|
# If our attr is an objectClass, fetch all available objectClasses and remove those from the list that are already defined in the entry
|
||||||
|
$socs = $app['server']->SchemaObjectClasses();
|
||||||
|
|
||||||
|
foreach ($request['attribute']->getValues() as $oclass)
|
||||||
|
unset($socs[strtolower($oclass)]);
|
||||||
|
|
||||||
|
# Draw objectClass selection
|
||||||
|
echo '<table border="0">';
|
||||||
|
echo '<tr><td>';
|
||||||
|
echo '<select name="new_values[objectclass][]" multiple="multiple" size="15">';
|
||||||
|
foreach ($socs as $name => $oclass) {
|
||||||
|
# Exclude any structural ones, that are not in the heirachy, as they'll only generate an LDAP_OBJECT_CLASS_VIOLATION
|
||||||
|
if (($oclass->getType() == 'structural') && ! $oclass->isRelated($request['attribute']->getValues()))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
printf('<option value="%s">%s</option>',$oclass->getName(false),$oclass->getName(false));
|
||||||
|
}
|
||||||
|
echo '</select>';
|
||||||
|
echo '</td></tr><tr><td>';
|
||||||
|
|
||||||
|
echo '<br />';
|
||||||
|
printf('<input id="save_button" type="submit" value="%s" %s />',
|
||||||
|
_('Add new ObjectClass'),
|
||||||
|
(isAjaxEnabled() ? sprintf('onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'entry_form\'),\'%s\');"',_('Updating Object')) : ''));
|
||||||
|
echo '</td></tr></table>';
|
||||||
|
echo '</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
|
||||||
|
if ($_SESSION[APPCONFIG]->getValue('appearance','show_hints'))
|
||||||
|
printf('<tr><td colspan="2"><small><br /><img src="%s/light.png" alt="Hint" /><span class="hint">%s</span></small></td></tr>',
|
||||||
|
IMGDIR,_('Note: You may be required to enter new attributes that these objectClass(es) require'));
|
||||||
|
|
||||||
|
echo '</table>';
|
||||||
|
echo '</form>';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
# Draw a blank field
|
||||||
|
echo '<table border="0"><tr><td>';
|
||||||
|
$request['page']->draw('FormValue',$request['attribute'],$request['count']);
|
||||||
|
echo '</td></tr><tr><td>';
|
||||||
|
|
||||||
|
$sattr = $app['server']->getSchemaAttribute($request['attr']);
|
||||||
|
|
||||||
|
if ($sattr->getDescription())
|
||||||
|
printf('<small><b>%s:</b> %s</small><br />',_('Description'),$sattr->getDescription());
|
||||||
|
|
||||||
|
if ($sattr->getType())
|
||||||
|
printf('<small><b>%s:</b> %s</small><br />',_('Syntax'),$sattr->getType());
|
||||||
|
|
||||||
|
if ($sattr->getMaxLength())
|
||||||
|
printf('<small><b>%s:</b> %s %s</small><br />',
|
||||||
|
_('Maximum Length'),number_format($sattr->getMaxLength()),_('characters'));
|
||||||
|
|
||||||
|
echo '<br />';
|
||||||
|
printf('<input type="submit" id="save_button" name="submit" value="%s" />',_('Add New Value'));
|
||||||
|
echo '</td></tr></table>';
|
||||||
|
|
||||||
|
echo '</td></tr>';
|
||||||
|
echo '</table>';
|
||||||
|
echo '</form>';
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (is_null($attribute = $request['template']->getAttribute($request['attr']))) {
|
||||||
|
$request['template']->addAttribute($request['attr'],array('values'=>array()));
|
||||||
|
$attribute = $request['template']->getAttribute($request['attr']);
|
||||||
|
$attribute->show();
|
||||||
|
|
||||||
|
echo '<table class="entry" cellspacing="0" align="center" border="0">';
|
||||||
|
$request['page']->draw('Template',$attribute);
|
||||||
|
$request['page']->draw('Javascript',$attribute);
|
||||||
|
echo '</table>';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$request['count'] = $attribute->getValueCount();
|
||||||
|
$request['page']->draw('FormReadWriteValue',$attribute,$request['count']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
79
htdocs/cmd.php
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Main command page for phpLDAPadmin
|
||||||
|
* All pages are rendered through this script.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require_once './common.php';
|
||||||
|
|
||||||
|
$www = array();
|
||||||
|
$www['cmd'] = get_request('cmd','REQUEST');
|
||||||
|
$www['meth'] = get_request('meth','REQUEST');
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
|
||||||
|
switch ($www['cmd']) {
|
||||||
|
default:
|
||||||
|
if (defined('HOOKSDIR') && file_exists(HOOKSDIR.$www['cmd'].'.php'))
|
||||||
|
$app['script_cmd'] = HOOKSDIR.$www['cmd'].'.php';
|
||||||
|
|
||||||
|
elseif (defined('HTDOCDIR') && file_exists(HTDOCDIR.$www['cmd'].'.php'))
|
||||||
|
$app['script_cmd'] = HTDOCDIR.$www['cmd'].'.php';
|
||||||
|
|
||||||
|
elseif (file_exists('welcome.php'))
|
||||||
|
$app['script_cmd'] = 'welcome.php';
|
||||||
|
|
||||||
|
else
|
||||||
|
$app['script_cmd'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DEBUG_ENABLED)
|
||||||
|
debug_log('Ready to render page for command [%s,%s].',128,0,__FILE__,__LINE__,__METHOD__,$www['cmd'],$app['script_cmd']);
|
||||||
|
|
||||||
|
# Create page.
|
||||||
|
# Set the index so that we render the right server tree.
|
||||||
|
$www['page'] = new page($app['server']->getIndex());
|
||||||
|
|
||||||
|
# See if we can render the command
|
||||||
|
if (trim($www['cmd'])) {
|
||||||
|
# If this is a READ-WRITE operation, the LDAP server must not be in READ-ONLY mode.
|
||||||
|
if ($app['server']->isReadOnly() && ! in_array(get_request('cmd','REQUEST'),$app['readwrite_cmds']))
|
||||||
|
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||||
|
|
||||||
|
# If this command has been disabled by the config.
|
||||||
|
if (! $_SESSION[APPCONFIG]->isCommandAvailable('script',$www['cmd'])) {
|
||||||
|
system_message(array('title'=>_('Command disabled by the server configuration'),
|
||||||
|
_('Error'),'body'=>sprintf('%s: <b>%s</b>.',_('The command could not be run'),htmlspecialchars($www['cmd'])),'type'=>'error'),'index.php');
|
||||||
|
|
||||||
|
$app['script_cmd'] = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($app['script_cmd'])
|
||||||
|
include $app['script_cmd'];
|
||||||
|
|
||||||
|
# Refresh a frame - this is so that one frame can trigger another frame to be refreshed.
|
||||||
|
if (isAjaxEnabled() && get_request('refresh','REQUEST') && get_request('refresh','REQUEST') != get_request('frame','REQUEST')) {
|
||||||
|
echo '<script type="text/javascript" language="javascript">';
|
||||||
|
printf("ajDISPLAY('%s','cmd=refresh&server_id=%s&noheader=%s','%s');",
|
||||||
|
get_request('refresh','REQUEST'),$app['server']->getIndex(),get_request('noheader','REQUEST',false,0),_('Auto refresh'));
|
||||||
|
echo '</script>';
|
||||||
|
}
|
||||||
|
|
||||||
|
# Capture the output and put into the body of the page.
|
||||||
|
$www['body'] = new block();
|
||||||
|
$www['body']->SetBody(ob_get_contents());
|
||||||
|
$www['page']->block_add('body',$www['body']);
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
|
if ($www['meth'] == 'ajax')
|
||||||
|
$www['page']->show(get_request('frame','REQUEST',false,'BODY'),true,get_request('raw','REQUEST',false,false));
|
||||||
|
else
|
||||||
|
$www['page']->display();
|
||||||
|
?>
|
27
htdocs/collapse.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This script alters the session variable 'tree', collapsing it
|
||||||
|
* at the dn specified in the query string.
|
||||||
|
*
|
||||||
|
* Note: this script is equal and opposite to expand.php
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Tree
|
||||||
|
* @see expand.php
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
$dn = get_request('dn','GET',true);
|
||||||
|
$tree = get_cached_item($app['server']->getIndex(),'tree');
|
||||||
|
$entry = $tree->getEntry($dn);
|
||||||
|
$entry->close();
|
||||||
|
set_cached_item($app['server']->getIndex(),'tree','null',$tree);
|
||||||
|
|
||||||
|
header(sprintf('Location:index.php?server_id=%s&junk=%s#%s%s',
|
||||||
|
$app['server']->getIndex(),random_junk(),htmlid($app['server']->getIndex(),$dn),app_session_param()));
|
||||||
|
die();
|
||||||
|
?>
|
14
htdocs/common.php
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This script provides a convienent method to call the proper common.php
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (! defined('LIBDIR'))
|
||||||
|
define('LIBDIR',sprintf('%s/',realpath('../lib/')));
|
||||||
|
require_once LIBDIR.'common.php';
|
||||||
|
?>
|
188
htdocs/compare.php
Normal file
@ -0,0 +1,188 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Compares two DN entries side by side.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# The DNs we are working with
|
||||||
|
$request = array();
|
||||||
|
$request['dnSRC'] = get_request('dn_src');
|
||||||
|
$request['dnDST'] = get_request('dn_dst');
|
||||||
|
|
||||||
|
$ldap = array();
|
||||||
|
$ldap['SRC'] = $_SESSION[APPCONFIG]->getServer(get_request('server_id_src'));
|
||||||
|
$ldap['DST'] = $_SESSION[APPCONFIG]->getServer(get_request('server_id_dst'));
|
||||||
|
|
||||||
|
if (! $ldap['SRC']->dnExists($request['dnSRC']))
|
||||||
|
error(sprintf('%s (%s)',_('No such entry.'),pretty_print_dn($request['dnSRC'])),'error','index.php');
|
||||||
|
|
||||||
|
if (! $ldap['DST']->dnExists($request['dnDST']))
|
||||||
|
error(sprintf('%s (%s)',_('No such entry.'),pretty_print_dn($request['dnDST'])),'error','index.php');
|
||||||
|
|
||||||
|
$request['pageSRC'] = new PageRender($ldap['SRC']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['pageSRC']->setDN($request['dnSRC']);
|
||||||
|
$request['pageSRC']->accept();
|
||||||
|
$request['templateSRC'] = $request['pageSRC']->getTemplate();
|
||||||
|
|
||||||
|
$request['pageDST'] = new PageRender($ldap['DST']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['pageDST']->setDN($request['dnDST']);
|
||||||
|
$request['pageDST']->accept();
|
||||||
|
$request['templateDST'] = $request['pageDST']->getTemplate();
|
||||||
|
|
||||||
|
# Get a list of all attributes.
|
||||||
|
$attrs_all = array_unique(array_merge($request['templateSRC']->getAttributeNames(),$request['templateDST']->getAttributeNames()));
|
||||||
|
|
||||||
|
$request['pageSRC']->drawTitle(_('Comparing the following DNs'));
|
||||||
|
|
||||||
|
echo '<br/>';
|
||||||
|
|
||||||
|
echo '<table class="entry" width="100%" border="0">';
|
||||||
|
echo '<tr class="heading">';
|
||||||
|
|
||||||
|
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',
|
||||||
|
$ldap['SRC']->getIndex(),rawurlencode($request['dnSRC']));
|
||||||
|
printf('<td colspan="2" style="width: 40%%;">%s: <b>%s</b><br />%s: <b><a href="%s">%s</a></b></td>',
|
||||||
|
_('Server'),$ldap['SRC']->getName(),_('Distinguished Name'),
|
||||||
|
htmlspecialchars($href),$request['dnSRC']);
|
||||||
|
|
||||||
|
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',
|
||||||
|
$ldap['DST']->getIndex(),rawurlencode($request['dnDST']));
|
||||||
|
printf('<td colspan="2" style="width: 40%%;">%s: <b>%s</b><br />%s: <b><a href="%s">%s</a></b></td>',
|
||||||
|
_('Server'),$ldap['DST']->getName(),_('Distinguished Name'),
|
||||||
|
htmlspecialchars($href),$request['dnDST']);
|
||||||
|
|
||||||
|
echo '</tr>';
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td colspan="4" style="text-align: right;">';
|
||||||
|
echo '<form action="cmd.php?cmd=compare" method="post">';
|
||||||
|
echo '<div>';
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="server_id_src" value="%s" />',$ldap['DST']->getIndex());
|
||||||
|
printf('<input type="hidden" name="server_id_dst" value="%s" />',$ldap['SRC']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn_src" value="%s" />',htmlspecialchars($request['dnDST']));
|
||||||
|
printf('<input type="hidden" name="dn_dst" value="%s" />',htmlspecialchars($request['dnSRC']));
|
||||||
|
printf('<input type="submit" value="%s" />',_('Switch Entry'));
|
||||||
|
echo '</div>';
|
||||||
|
echo '</form>';
|
||||||
|
echo '</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
|
||||||
|
if (! is_array($attrs_all) || ! count($attrs_all)) {
|
||||||
|
printf('<tr><td colspan="4">(%s)</td></tr>',_('This entry has no attributes'));
|
||||||
|
print '</table>';
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sort($attrs_all);
|
||||||
|
|
||||||
|
# Work through each of the attributes.
|
||||||
|
foreach ($attrs_all as $attr) {
|
||||||
|
# Has the config.php specified that this attribute is to be hidden or shown?
|
||||||
|
if ($ldap['SRC']->isAttrHidden($attr) || $ldap['DST']->isAttrHidden($attr))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
$attributeSRC = $request['templateSRC']->getAttribute($attr);
|
||||||
|
$attributeDST = $request['templateDST']->getAttribute($attr);
|
||||||
|
|
||||||
|
# Get the values and see if they are the same.
|
||||||
|
if ($attributeSRC && $attributeDST && ($attributeSRC->getValues() == $attributeDST->getValues()))
|
||||||
|
echo '<tr>';
|
||||||
|
else
|
||||||
|
echo '<tr>';
|
||||||
|
|
||||||
|
foreach (array('src','dst') as $side) {
|
||||||
|
# If we are on the source side, show the attribute name.
|
||||||
|
switch ($side) {
|
||||||
|
case 'src':
|
||||||
|
if ($attributeSRC) {
|
||||||
|
echo '<td class="title">';
|
||||||
|
$request['pageSRC']->draw('Name',$attributeSRC);
|
||||||
|
echo '</td>';
|
||||||
|
|
||||||
|
if ($request['pageSRC']->getServerID() == $request['pageDST']->getServerID())
|
||||||
|
echo '<td class="title"> </td>';
|
||||||
|
|
||||||
|
else {
|
||||||
|
echo '<td class="note" style="text-align: right;">';
|
||||||
|
$request['pageSRC']->draw('Notes',$attributeSRC);
|
||||||
|
echo '</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
echo '<td colspan="2"> </td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'dst':
|
||||||
|
if ($attributeDST) {
|
||||||
|
if ($attributeSRC && ($request['pageSRC']->getServerID() == $request['pageDST']->getServerID()))
|
||||||
|
echo '<td class="title"> </td>';
|
||||||
|
|
||||||
|
else {
|
||||||
|
echo '<td class="title" >';
|
||||||
|
$request['pageDST']->draw('Name',$attributeDST);
|
||||||
|
echo '</td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<td class="note" style="text-align: right;">';
|
||||||
|
$request['pageDST']->draw('Notes',$attributeDST);
|
||||||
|
echo '</td>';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
echo '<td colspan="2"> </td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</tr>';
|
||||||
|
echo "\n\n";
|
||||||
|
|
||||||
|
# Get the values and see if they are the same.
|
||||||
|
if ($attributeSRC && $attributeDST && ($attributeSRC->getValues() == $attributeDST->getValues()))
|
||||||
|
echo '<tr style="background-color: #F0F0F0;">';
|
||||||
|
else
|
||||||
|
echo '<tr>';
|
||||||
|
|
||||||
|
foreach (array('src','dst') as $side) {
|
||||||
|
echo '<td class="value" colspan="2"><table border="0">';
|
||||||
|
echo '<tr><td>';
|
||||||
|
|
||||||
|
switch ($side) {
|
||||||
|
case 'src':
|
||||||
|
|
||||||
|
if ($attributeSRC && count($attributeSRC->getValues()))
|
||||||
|
$request['pageSRC']->draw('CurrentValues',$attributeSRC);
|
||||||
|
else
|
||||||
|
echo ' ';
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'dst':
|
||||||
|
if ($attributeDST && count($attributeDST->getValues()))
|
||||||
|
$request['pageDST']->draw('CurrentValues',$attributeDST);
|
||||||
|
else
|
||||||
|
echo ' ';
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</td></tr>';
|
||||||
|
echo '</table></td>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</tr>';
|
||||||
|
}
|
||||||
|
echo '</table>';
|
||||||
|
?>
|
65
htdocs/compare_form.php
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Compares two DN entries side by side.
|
||||||
|
* This is the entry form to determine which DN to compare this DN with.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# The DN we are working with
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','GET');
|
||||||
|
|
||||||
|
# Check if the entry exists.
|
||||||
|
if (! $request['dn'] || ! $app['server']->dnExists($request['dn']))
|
||||||
|
error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php');
|
||||||
|
|
||||||
|
$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['page']->setDN($request['dn']);
|
||||||
|
$request['page']->accept();
|
||||||
|
|
||||||
|
# Render the form
|
||||||
|
$request['page']->drawTitle(sprintf('%s <b>%s</b>',_('Compare another DN with'),get_rdn($request['dn'])));
|
||||||
|
$request['page']->drawSubTitle();
|
||||||
|
|
||||||
|
printf('<script type="text/javascript" src="%sdnChooserPopup.js"></script>',JSDIR);
|
||||||
|
echo '<div style="text-align: center;">';
|
||||||
|
printf('%s <b>%s</b> %s<br />',_('Compare'),get_rdn($request['dn']),_('with '));
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
echo '<form action="cmd.php" method="post" id="compare_form">';
|
||||||
|
echo '<div>';
|
||||||
|
echo '<input type="hidden" name="cmd" value="compare" />';
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="server_id_src" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn_src" value="%s" />',htmlspecialchars($request['dn']));
|
||||||
|
echo '</div>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '<table border="0" style="border-spacing: 10px; margin-left: auto; margin-right: auto;">';
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
printf('<td><acronym title="%s">%s</acronym>:</td>',
|
||||||
|
_('Compare this DN with another'),_('Destination DN'));
|
||||||
|
echo '<td>';
|
||||||
|
echo '<input type="text" name="dn_dst" size="45" value="" />';
|
||||||
|
draw_chooser_link('compare_form','dn_dst','true','');
|
||||||
|
echo '</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
printf('<tr><td>%s:</td><td>%s</td></tr>',_('Destination Server'),server_select_list($app['server']->getIndex(),true,'server_id_dst'));
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
printf('<tr><td colspan="2" style="text-align: center;"><input type="submit" value="%s" /></td></tr>',_('Compare'));
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '</table>';
|
||||||
|
echo '</form>';
|
||||||
|
?>
|
209
htdocs/copy.php
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copies a given object to create a new one.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# The DNs we are working with
|
||||||
|
$request = array();
|
||||||
|
$request['dnSRC'] = get_request('dn_src');
|
||||||
|
$request['dnDST'] = get_request('dn_dst');
|
||||||
|
|
||||||
|
$ldap = array();
|
||||||
|
$ldap['SRC'] = $_SESSION[APPCONFIG]->getServer(get_request('server_id_src'));
|
||||||
|
$ldap['DST'] = $_SESSION[APPCONFIG]->getServer(get_request('server_id_dst'));
|
||||||
|
|
||||||
|
# Error checking
|
||||||
|
if (! trim($request['dnDST']))
|
||||||
|
error(_('You left the destination DN blank.'),'error','index.php');
|
||||||
|
|
||||||
|
if ($ldap['DST']->isReadOnly())
|
||||||
|
error(_('Destination server is currently READ-ONLY.'),'error','index.php');
|
||||||
|
|
||||||
|
if ($ldap['DST']->dnExists($request['dnDST']))
|
||||||
|
error(sprintf(_('The destination entry (%s) already exists.'),pretty_print_dn($request['dnDST'])),'error','index.php');
|
||||||
|
|
||||||
|
if (! $ldap['DST']->dnExists($ldap['DST']->getContainer($request['dnDST'])))
|
||||||
|
error(sprintf(_('The destination container (%s) does not exist.'),
|
||||||
|
pretty_print_dn($ldap['DST']->getContainer($request['dnDST']))),'error','index.php');
|
||||||
|
|
||||||
|
if (pla_compare_dns($request['dnSRC'],$request['dnDST']) == 0 && $ldap['SRC']->getIndex() == $ldap['DST']->getIndex())
|
||||||
|
error(_('The source and destination DN are the same.'),'error','index.php');
|
||||||
|
|
||||||
|
$request['recursive'] = (get_request('recursive') == 'on') ? true : false;
|
||||||
|
$request['remove'] = (get_request('remove') == 'yes') ? true : false;
|
||||||
|
|
||||||
|
if ($request['recursive']) {
|
||||||
|
$filter = get_request('filter','POST',false,'(objectClass=*)');
|
||||||
|
|
||||||
|
# Build a tree similar to that of the tree browser to give to r_copy_dn
|
||||||
|
$ldap['tree'] = array();
|
||||||
|
printf('<h3 class="title">%s%s</h3>',_('Copying '),$request['dnSRC']);
|
||||||
|
printf('<h3 class="subtitle">%s</h3>',_('Recursive copy progress'));
|
||||||
|
print '<br /><br />';
|
||||||
|
|
||||||
|
print '<small>';
|
||||||
|
printf ('%s...',_('Building snapshot of tree to copy'));
|
||||||
|
|
||||||
|
$ldap['tree'] = build_tree($ldap['SRC'],$request['dnSRC'],array(),$filter);
|
||||||
|
printf('<span style="color:green">%s</span><br />',_('Success'));
|
||||||
|
|
||||||
|
# Prevent script from bailing early on a long delete
|
||||||
|
@set_time_limit(0);
|
||||||
|
|
||||||
|
$copy_result = r_copy_dn($ldap['SRC'],$ldap['DST'],$ldap['tree'],$request['dnSRC'],$request['dnDST'],$request['remove']);
|
||||||
|
$copy_message = $copy_result;
|
||||||
|
print '</small>';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if ($_SESSION[APPCONFIG]->getValue('confirm','copy')) {
|
||||||
|
$request['pageSRC'] = new TemplateRender($ldap['SRC']->getIndex(),get_request('template','REQUEST',false,null));
|
||||||
|
$request['pageSRC']->setDN($request['dnSRC']);
|
||||||
|
$request['pageSRC']->accept(true);
|
||||||
|
|
||||||
|
$request['pageDST'] = new TemplateRender($ldap['DST']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['pageDST']->setContainer($app['server']->getContainer($request['dnDST']));
|
||||||
|
$request['pageDST']->accept(true);
|
||||||
|
|
||||||
|
$request['templateSRC'] = $request['pageSRC']->getTemplate();
|
||||||
|
$request['templateDST'] = $request['pageDST']->getTemplate();
|
||||||
|
|
||||||
|
$request['templateDST']->copy($request['templateSRC'],get_rdn($request['dnDST']),true);
|
||||||
|
|
||||||
|
# Set all attributes with a values as shown, and remove the add value options
|
||||||
|
foreach ($request['templateDST']->getAttributes(true) as $sattribute)
|
||||||
|
if ($sattribute->getValues() && ! $sattribute->isInternal()) {
|
||||||
|
$sattribute->show();
|
||||||
|
$sattribute->setMaxValueCount(count($sattribute->getValues()));
|
||||||
|
}
|
||||||
|
|
||||||
|
$request['pageDST']->accept();
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$copy_result = copy_dn($ldap['SRC'],$ldap['DST'],$request['dnSRC'],$request['dnDST'],$request['remove']);
|
||||||
|
|
||||||
|
if ($copy_result)
|
||||||
|
$copy_message = sprintf('%s %s: <b>%s</b> %s',
|
||||||
|
$request['remove'] ? _('Move successful') : _('Copy successful'),
|
||||||
|
_('DN'),$request['dnDST'],_('has been created.'));
|
||||||
|
else
|
||||||
|
$copy_message = sprintf('%s %s: <b>%s</b> %s',
|
||||||
|
$request['remove'] ? _('Move NOT successful') : _('Copy NOT successful'),
|
||||||
|
_('DN'),$request['dnDST'],_('has NOT been created.'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($copy_result) {
|
||||||
|
$redirect_url = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s&refresh=SID_%s_nodes&noheader=1',
|
||||||
|
$ldap['DST']->getIndex(),rawurlencode($request['dnDST']),$ldap['DST']->getIndex());
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>_('Copy Entry'),
|
||||||
|
'body'=>$copy_message,
|
||||||
|
'type'=>'info'),
|
||||||
|
$redirect_url);
|
||||||
|
}
|
||||||
|
|
||||||
|
function r_copy_dn($serverSRC,$serverDST,$snapshottree,$dnSRC,$dnDST,$remove) {
|
||||||
|
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||||
|
debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||||
|
|
||||||
|
$copy_message = array();
|
||||||
|
|
||||||
|
$children = isset($snapshottree[$dnSRC]) ? $snapshottree[$dnSRC] : null;
|
||||||
|
|
||||||
|
# If we have children, then we need to copy, then delete for a move
|
||||||
|
if (is_array($children) && count($children)) {
|
||||||
|
|
||||||
|
$copy_result = copy_dn($serverSRC,$serverDST,$dnSRC,$dnDST,false);
|
||||||
|
|
||||||
|
if (! $copy_result)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
array_push($copy_message,sprintf('%s %s: <b>%s</b> %s',_('Copy successful'),_('DN'),$dnDST,_('has been created.')));
|
||||||
|
|
||||||
|
$hadError = false;
|
||||||
|
foreach ($children as $child_dn) {
|
||||||
|
$dnDST_new = sprintf('%s,%s',get_rdn($child_dn),$dnDST);
|
||||||
|
$copy_result = r_copy_dn($serverSRC,$serverDST,$snapshottree,$child_dn,$dnDST_new,$remove);
|
||||||
|
$copy_message = array_merge($copy_message,array_values($copy_result));
|
||||||
|
|
||||||
|
if (! $copy_result)
|
||||||
|
$hadError = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $hadError && $remove) {
|
||||||
|
$delete_result = $serverSRC->delete($dnSRC);
|
||||||
|
|
||||||
|
if ($delete_result)
|
||||||
|
array_push($copy_message,sprintf('%s %s: <b>%s</b> %s',_('Delete successful'),_('DN'),$dnDST,_('has been deleted.')));
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$copy_result = copy_dn($serverSRC,$serverDST,$dnSRC,$dnDST,$remove);
|
||||||
|
|
||||||
|
if ($copy_result)
|
||||||
|
array_push($copy_message,sprintf('%s %s: <b>%s</b> %s',
|
||||||
|
$remove ? _('Move successful') : _('Copy successful'),
|
||||||
|
_('DN'),$dnDST,_('has been created.')));
|
||||||
|
else
|
||||||
|
array_push($copy_message,sprintf('%s %s: <b>%s</b> %s',
|
||||||
|
$remove ? _('Move NOT successful') : _('Copy NOT successful'),
|
||||||
|
_('DN'),$dnDST,_('has NOT been created.')));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $copy_message;
|
||||||
|
}
|
||||||
|
|
||||||
|
function copy_dn($serverSRC,$serverDST,$dnSRC,$dnDST,$remove) {
|
||||||
|
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||||
|
debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||||
|
|
||||||
|
$request = array();
|
||||||
|
$request['pageSRC'] = new PageRender($serverSRC->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['pageSRC']->setDN($dnSRC);
|
||||||
|
$request['pageSRC']->accept();
|
||||||
|
|
||||||
|
$request['pageDST'] = new PageRender($serverDST->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['pageDST']->setContainer($serverDST->getContainer($dnDST));
|
||||||
|
$request['pageDST']->accept();
|
||||||
|
|
||||||
|
$request['templateSRC'] = $request['pageSRC']->getTemplate();
|
||||||
|
$request['templateDST'] = $request['pageDST']->getTemplate();
|
||||||
|
$request['templateDST']->copy($request['pageSRC']->getTemplate(),get_rdn($dnDST,0));
|
||||||
|
|
||||||
|
# Create of move the entry
|
||||||
|
if ($remove)
|
||||||
|
return $serverDST->rename($request['templateSRC']->getDN(),$request['templateDST']->getRDN(),$serverDST->getContainer($dnDST),true);
|
||||||
|
else
|
||||||
|
return $serverDST->add($request['templateDST']->getDN(),$request['templateDST']->getLDAPadd());
|
||||||
|
}
|
||||||
|
|
||||||
|
function build_tree($server,$dn,$buildtree) {
|
||||||
|
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||||
|
debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||||
|
|
||||||
|
# We search all children, not only the visible children in the tree
|
||||||
|
$children = $server->getContainerContents($dn,null,0);
|
||||||
|
|
||||||
|
if (count($children)) {
|
||||||
|
$buildtree[$dn] = $children;
|
||||||
|
foreach ($children as $child_dn)
|
||||||
|
$buildtree = build_tree($server,$child_dn,$buildtree);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DEBUG_ENABLED)
|
||||||
|
debug_log('Returning (%s)',1,0,__FILE__,__LINE__,__METHOD__,$buildtree);
|
||||||
|
|
||||||
|
return $buildtree;
|
||||||
|
}
|
||||||
|
?>
|
103
htdocs/copy_form.php
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copies a given object to create a new one.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# The DN we are working with
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','GET');
|
||||||
|
|
||||||
|
# Check if the entry exists.
|
||||||
|
if (! $request['dn'] || ! $app['server']->dnExists($request['dn']))
|
||||||
|
error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php');
|
||||||
|
|
||||||
|
$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['page']->setDN($request['dn']);
|
||||||
|
$request['page']->accept();
|
||||||
|
|
||||||
|
# Render the form
|
||||||
|
$request['page']->drawTitle(sprintf('%s <b>%s</b>',_('Copy'),get_rdn($request['dn'])));
|
||||||
|
$request['page']->drawSubTitle();
|
||||||
|
|
||||||
|
printf('<script type="text/javascript" src="%sdnChooserPopup.js"></script>',JSDIR);
|
||||||
|
echo '<div style="text-align: center;">';
|
||||||
|
printf('%s <b>%s</b> %s:<br /><br />',_('Copy'),get_rdn($request['dn']),_('to a new object'));
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
echo '<form action="cmd.php" method="post" id="copy_form">';
|
||||||
|
echo '<div>';
|
||||||
|
echo '<input type="hidden" name="cmd" value="copy" />';
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="server_id_src" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn_src" value="%s" />',htmlspecialchars($request['dn']));
|
||||||
|
echo '</div>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '<table border="0" style="border-spacing: 10px; margin-left: auto; margin-right: auto;">';
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
printf('<td><acronym title="%s">%s</acronym>:</td>',
|
||||||
|
_('The full DN of the new entry to be created when copying the source entry'),_('Destination DN'));
|
||||||
|
echo '<td>';
|
||||||
|
printf('<input type="text" name="dn_dst" size="45" value="%s" />',htmlspecialchars($request['dn']));
|
||||||
|
draw_chooser_link('copy_form','dn_dst','true',get_rdn($request['dn']));
|
||||||
|
echo '</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
printf('<tr><td>%s:</td><td>%s</td></tr>',_('Destination Server'),server_select_list($app['server']->getIndex(),true,'server_id_dst'));
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
# We search all children, not only the visible children in the tree
|
||||||
|
$request['children'] = $app['server']->getContainerContents($request['dn']);
|
||||||
|
|
||||||
|
if (count($request['children']) > 0) {
|
||||||
|
echo '<tr>';
|
||||||
|
printf('<td><label for="recursive">%s</label>:</td>',_('Recursive copy'));
|
||||||
|
echo '<td><input type="checkbox" id="recursive" name="recursive" onclick="copy_field_toggle(this)" />';
|
||||||
|
printf('<small>(%s)</small></td>',_('Recursively copy all children of this object as well.'));
|
||||||
|
echo '</tr>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
printf('<td><acronym title="%s">%s</acronym>:</td>',
|
||||||
|
_('When performing a recursive copy, only copy those entries which match this filter'),_('Filter'));
|
||||||
|
echo '<td><input type="text" name="filter" value="(objectClass=*)" size="45" disabled />';
|
||||||
|
echo '</tr>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
printf('<td>%s</td>',_('Delete after copy (move):'));
|
||||||
|
echo '<td><input type="checkbox" name="remove" value="yes" disabled />';
|
||||||
|
printf('<small>(%s)</small)</td>',_('Make sure your filter (above) will select all child records.'));
|
||||||
|
echo '</tr>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
printf('<tr><td>%s</td><td><input type="checkbox" name="remove" value="yes"/></td></tr>',_('Delete after copy (move):'));
|
||||||
|
}
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
printf('<tr><td colspan="2" style="text-align: center;"><input type="submit" value="%s" /></td></tr>',_('Copy '));
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '</table>';
|
||||||
|
echo '</form>';
|
||||||
|
|
||||||
|
if ($_SESSION[APPCONFIG]->getValue('appearance','show_hints'))
|
||||||
|
printf('<div style="text-align: center;"><small><img src="%s/light.png" alt="Light" /><span class="hint">%s</span></small></div>',
|
||||||
|
IMGDIR,_('Hint: Copying between different servers only works if there are no schema violations'));
|
||||||
|
|
||||||
|
|
||||||
|
# Draw the javascrpt to enable/disable the filter field if this may be a recursive copy
|
||||||
|
if (count($request['children']) > 0)
|
||||||
|
printf('<script type="text/javascript" src="%sform_field_toggle_enable.js"></script>',JSDIR);
|
||||||
|
?>
|
104
htdocs/create.php
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Creates a new object in LDAP.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# If cancel was selected, we'll redirect
|
||||||
|
if (get_request('cancel','REQUEST')) {
|
||||||
|
header('Location: index.php');
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
$request = array();
|
||||||
|
$request['redirect'] = get_request('redirect','POST',false,false);
|
||||||
|
|
||||||
|
$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['page']->setContainer(get_request('container','REQUEST',true));
|
||||||
|
$request['page']->accept();
|
||||||
|
$request['template'] = $request['page']->getTemplate();
|
||||||
|
|
||||||
|
if ((! $request['template']->getContainer() || ! $app['server']->dnExists($request['template']->getContainer())) && ! get_request('create_base'))
|
||||||
|
error(sprintf(_('The container you specified (%s) does not exist. Please try again.'),$request['template']->getContainer()),'error','index.php');
|
||||||
|
|
||||||
|
# Check if the container is a leaf - we shouldnt really return a hit here, the template engine shouldnt have allowed a user to attempt to create an entry...
|
||||||
|
$tree = get_cached_item($app['server']->getIndex(),'tree');
|
||||||
|
|
||||||
|
$request['container'] = $tree->getEntry($request['template']->getContainer());
|
||||||
|
if (! $request['container'] && ! get_request('create_base')) {
|
||||||
|
$tree->addEntry($request['template']->getContainer());
|
||||||
|
$request['container'] = $tree->getEntry($request['template']->getContainer());
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check our RDN
|
||||||
|
if (! count($request['template']->getRDNAttrs()))
|
||||||
|
error(_('The were no attributes marked as an RDN attribute.'),'error','index.php');
|
||||||
|
if (! $request['template']->getRDN())
|
||||||
|
error(_('The RDN field is empty?'),'error','index.php');
|
||||||
|
|
||||||
|
# Some other attribute checking...
|
||||||
|
foreach ($request['template']->getAttributes() as $attribute) {
|
||||||
|
# Check that our Required Attributes have a value - we shouldnt really return a hit here, the template engine shouldnt have allowed this to slip through.
|
||||||
|
# @todo this isIgnoredAttr() function is missing?
|
||||||
|
if ($attribute->isRequired() && ! count($attribute->getValues()) && ! $app['server']->isIgnoredAttr($attr->getName()))
|
||||||
|
error(sprintf(_('You left the value blank for required attribute (%s).'),
|
||||||
|
$attribute->getName(false)),'error','index.php');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create the entry
|
||||||
|
$add_result = $app['server']->add($request['template']->getDN(),$request['template']->getLDAPadd());
|
||||||
|
|
||||||
|
if ($add_result) {
|
||||||
|
$action_number = $_SESSION[APPCONFIG]->getValue('appearance','action_after_creation');
|
||||||
|
$href = sprintf('cmd=template_engine&server_id=%s',$app['server']->getIndex());
|
||||||
|
|
||||||
|
if ($request['redirect'])
|
||||||
|
$redirect_url = $request['redirect'];
|
||||||
|
|
||||||
|
else if ($action_number == 2)
|
||||||
|
$redirect_url = sprintf('cmd.php?%s&template=%s&container=%s',
|
||||||
|
$href,'default',$request['template']->getContainerEncode());
|
||||||
|
|
||||||
|
else
|
||||||
|
$redirect_url = sprintf('cmd.php?%s&template=%s&dn=%s',
|
||||||
|
$href,'default',$request['template']->getDNEncode());
|
||||||
|
|
||||||
|
if ($action_number == 1 || $action_number == 2)
|
||||||
|
printf('<meta http-equiv="refresh" content="0; url=%s" />',$redirect_url);
|
||||||
|
|
||||||
|
if ($action_number == 1 || $action_number == 2) {
|
||||||
|
$create_message = sprintf('%s %s: <b>%s</b> %s',
|
||||||
|
_('Creation successful!'),_('DN'),$request['template']->getDN(),_('has been created.'));
|
||||||
|
|
||||||
|
if (isAjaxEnabled())
|
||||||
|
$redirect_url .= sprintf('&refresh=SID_%s_nodes&noheader=1',$app['server']->getIndex());
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>_('Create Entry'),
|
||||||
|
'body'=>$create_message,
|
||||||
|
'type'=>'info'),
|
||||||
|
$redirect_url);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$request['page']->drawTitle(_('Entry created'));
|
||||||
|
$request['page']->drawSubTitle(sprintf('%s: <b>%s</b> %s: <b>%s</b>',
|
||||||
|
_('Server'),$app['server']->getName(),_('Distinguished Name'),$request['template']->getDN()));
|
||||||
|
|
||||||
|
echo '<br />';
|
||||||
|
echo '<center>';
|
||||||
|
printf('<a href="cmd.php?%s&dn=%s">%s</a>.',
|
||||||
|
htmlspecialchars($href),rawurlencode($request['template']->getDN()),_('Display the new created entry'));
|
||||||
|
echo '<br />';
|
||||||
|
printf('<a href="cmd.php?%s&container=%s">%s</a>.',
|
||||||
|
htmlspecialchars($href),rawurlencode($request['template']->getContainer()),_('Create another entry'));
|
||||||
|
echo '</center>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
143
htdocs/create_confirm.php
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Creates a new object in LDAP.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
$request = array();
|
||||||
|
$request['redirect'] = get_request('redirect','POST',false,false);
|
||||||
|
|
||||||
|
$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['page']->setContainer(get_request('container','REQUEST',true));
|
||||||
|
$request['page']->accept();
|
||||||
|
$request['template'] = $request['page']->getTemplate();
|
||||||
|
|
||||||
|
if (! $request['template']->getContainer() || ! $app['server']->dnExists($request['template']->getContainer()))
|
||||||
|
error(sprintf(_('The container you specified (%s) does not exist. Please try again.'),$request['template']->getContainer()),'error','index.php');
|
||||||
|
|
||||||
|
# Check if the container is a leaf - we shouldnt really return a hit here, the template engine shouldnt have allowed a user to attempt to create an entry...
|
||||||
|
$tree = get_cached_item($app['server']->getIndex(),'tree');
|
||||||
|
|
||||||
|
$request['container'] = $tree->getEntry($request['template']->getContainer());
|
||||||
|
if (! $request['container']) {
|
||||||
|
$tree->addEntry($request['template']->getContainer());
|
||||||
|
$request['container'] = $tree->getEntry($request['template']->getContainer());
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check our RDN
|
||||||
|
if (! count($request['template']->getRDNAttrs()))
|
||||||
|
error(_('The were no attributes marked as an RDN attribute.'),'error','index.php');
|
||||||
|
if (! $request['template']->getRDN())
|
||||||
|
error(_('The RDN field is empty?'),'error','index.php');
|
||||||
|
|
||||||
|
# Some other attribute checking...
|
||||||
|
foreach ($request['template']->getAttributes() as $attribute) {
|
||||||
|
# Check that our Required Attributes have a value - we shouldnt really return a hit here, the template engine shouldnt have allowed this to slip through.
|
||||||
|
# @todo this isIgnoredAttr() function is missing?
|
||||||
|
if ($attribute->isRequired() && ! count($attribute->getValues()) && ! $app['server']->isIgnoredAttr($attr->getName()))
|
||||||
|
error(sprintf(_('You left the value blank for required attribute (%s).'),
|
||||||
|
$attribute->getName(false)),'error','index.php');
|
||||||
|
}
|
||||||
|
|
||||||
|
# Check for unique attributes
|
||||||
|
$app['server']->checkUniqueAttrs($request['template']->getDN(),$request['template']->getLDAPadd());
|
||||||
|
|
||||||
|
$request['page']->drawTitle(_('Create LDAP Entry'));
|
||||||
|
$request['page']->drawSubTitle(sprintf('%s: <b>%s</b> %s: <b>%s</b>',
|
||||||
|
_('Server'),$app['server']->getName(),_('Container'),$request['template']->getContainer()));
|
||||||
|
|
||||||
|
# Confirm the creation
|
||||||
|
if (count($request['template']->getLDAPadd(true))) {
|
||||||
|
echo '<div style="text-align: center;">';
|
||||||
|
echo _('Do you want to create this entry?');
|
||||||
|
echo '<br /><br />';
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
echo "\n\n";
|
||||||
|
echo '<form action="cmd.php" method="post" id="create_form">';
|
||||||
|
echo '<div>';
|
||||||
|
echo '<input type="hidden" name="cmd" value="create" />';
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="container" value="%s" />',$request['template']->getContainerEncode(false));
|
||||||
|
printf('<input type="hidden" name="template" value="%s" />',$request['template']->getID());
|
||||||
|
foreach ($request['template']->getRDNAttrs() as $rdn)
|
||||||
|
printf('<input type="hidden" name="rdn_attribute[]" value="%s" />',htmlspecialchars($rdn));
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
$request['page']->drawHiddenAttributes();
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
echo '<table class="result_table" style="margin-left: auto; margin-right: auto;">';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
printf('<tr class="heading"><td>%s</td><td>%s</td><td>%s</td></tr>',
|
||||||
|
_('Attribute'),_('New Value'),_('Skip'));
|
||||||
|
echo "\n\n";
|
||||||
|
|
||||||
|
$counter = 0;
|
||||||
|
printf('<tr class="%s"><td colspan="3" style="text-align: center;"><b>%s</b></td></tr>',$counter%2 ? 'even' : 'odd',htmlspecialchars($request['template']->getDN()));
|
||||||
|
|
||||||
|
foreach ($request['template']->getLDAPadd(true) as $attribute) {
|
||||||
|
$counter++;
|
||||||
|
|
||||||
|
printf('<tr class="%s">',$counter%2 ? 'even' : 'odd');
|
||||||
|
printf('<td><b>%s</b></td>',$attribute->getFriendlyName());
|
||||||
|
|
||||||
|
# Show NEW Values
|
||||||
|
echo '<td><span style="white-space: nowrap;">';
|
||||||
|
$request['page']->draw('CurrentValues',$attribute);
|
||||||
|
echo '</span></td>';
|
||||||
|
|
||||||
|
# Show SKIP Option
|
||||||
|
$input_disabled = '';
|
||||||
|
$input_onclick = '';
|
||||||
|
|
||||||
|
if ($attribute->isRequired())
|
||||||
|
$input_disabled = 'disabled="disabled"';
|
||||||
|
|
||||||
|
printf('<td><input name="skip_array[%s]" id="skip_array_%s" type="checkbox" %s %s/></td>',
|
||||||
|
htmlspecialchars($attribute->getName()),htmlspecialchars($attribute->getName()),$input_disabled,$input_onclick);
|
||||||
|
echo '</tr>';
|
||||||
|
echo "\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</table>';
|
||||||
|
|
||||||
|
echo '<div style="text-align: center;">';
|
||||||
|
echo '<br />';
|
||||||
|
|
||||||
|
printf('<input type="submit" value="%s" %s/>',
|
||||||
|
_('Commit'),
|
||||||
|
(isAjaxEnabled() ? sprintf('onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'create_form\'),\'%s\');"',_('Updating Object')) : ''));
|
||||||
|
|
||||||
|
printf('<input type="submit" name="cancel" value="%s" %s/>',
|
||||||
|
_('Cancel'),
|
||||||
|
(isAjaxEnabled() ? sprintf('onclick="return ajDISPLAY(\'BODY\',\'cmd=template_engine&server_id=%s&container=%s\',\'%s\');"',$app['server']->getIndex(),$request['template']->getContainer(),_('Retrieving DN')) : ''));
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
echo '</form>';
|
||||||
|
echo '<br />';
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$href = sprintf('cmd=template_engine&server_id=%s&dn=%s',
|
||||||
|
$app['server']->getIndex(),$request['template']->getDNEncode());
|
||||||
|
|
||||||
|
echo '<div style="text-align: center;">';
|
||||||
|
echo _('You made no changes');
|
||||||
|
|
||||||
|
if (isAjaxEnabled())
|
||||||
|
printf(' <a href="cmd.php?%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');">%s</a>.',
|
||||||
|
htmlspecialchars($href),htmlspecialchars($href),_('Retrieving DN'),_('Go back'));
|
||||||
|
else
|
||||||
|
printf(' <a href="cmd.php?%s">%s</a>.',htmlspecialchars($href),_('Go back'));
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
}
|
||||||
|
?>
|
925
htdocs/css/default/style.css
Normal file
@ -0,0 +1,925 @@
|
|||||||
|
/* $Header$ */
|
||||||
|
|
||||||
|
/* Global Page */
|
||||||
|
table.page {
|
||||||
|
font-weight: normal;
|
||||||
|
color: #000000;
|
||||||
|
|
||||||
|
font-family: "bitstream vera sans","luxi sans",verdana,geneva,arial,helvetica,sans-serif;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
font-size: 13px;
|
||||||
|
empty-cells: hide;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Defaults */
|
||||||
|
/* A HREF Links */
|
||||||
|
table.page a {
|
||||||
|
color: #0000AA;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page a img {
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Logo & Title */
|
||||||
|
table.page tr.head {
|
||||||
|
text-align: center;
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #001188;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 11px;
|
||||||
|
height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page tr.head img.logo {
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
width: 100px;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page tr.pagehead {
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page tr.pagehead td.imagetop {
|
||||||
|
width: 100%;
|
||||||
|
vertical-align: bottom;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Control Line */
|
||||||
|
table.page tr.control td {
|
||||||
|
border-top: 1px solid #AAAACC;
|
||||||
|
border-bottom: 1px solid #AAAACC;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Control Line Menu Items */
|
||||||
|
table.page table.control {
|
||||||
|
table-layout: fixed;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control td {
|
||||||
|
border-top: 0px;
|
||||||
|
border-bottom: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
padding-top: 2px;
|
||||||
|
padding-bottom: 2px;
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control img {
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control a {
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
color: #0000AA;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control td.spacer {
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control td.logo {
|
||||||
|
text-align: right;
|
||||||
|
width: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control td.logo img.logo {
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: right;
|
||||||
|
|
||||||
|
width: 100px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - LDAP Tree */
|
||||||
|
table.page td.tree {
|
||||||
|
border-right: 1px solid #AAAACC;
|
||||||
|
vertical-align: top;
|
||||||
|
background-color: #FCFCFE;
|
||||||
|
width: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Main Body */
|
||||||
|
table.page td.body {
|
||||||
|
vertical-align: top;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #FCFCFE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Main Body System Message */
|
||||||
|
table.page table.sysmsg {
|
||||||
|
border-bottom: 2px solid #AAAACC;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.sysmsg td.head {
|
||||||
|
font-size: small;
|
||||||
|
text-align: left;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.sysmsg td.body {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.sysmsg td.icon {
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Main Body */
|
||||||
|
table.page table.body {
|
||||||
|
font-weight: normal;
|
||||||
|
background-color: #FCFCFE;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body h3.title {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 10px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #000088;
|
||||||
|
border: 1px solid #000000;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 150%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body h3.subtitle {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
font-size: 75%;
|
||||||
|
color: #FFFFFF;
|
||||||
|
border-bottom: 1px solid #000000;
|
||||||
|
border-left: 1px solid #000000;
|
||||||
|
border-right: 1px solid #000000;
|
||||||
|
background: #000088;
|
||||||
|
padding: 4px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body td.spacer {
|
||||||
|
border-top: 2px solid #AAAACC;
|
||||||
|
padding: 0px;
|
||||||
|
font-size: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body td.head {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body td.foot {
|
||||||
|
font-size: small;
|
||||||
|
border-top: 1px solid #AAAACC;
|
||||||
|
border-bottom: 1px solid #AAAACC;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page Footer */
|
||||||
|
table.page tr.foot td {
|
||||||
|
border-top: 1px solid #AAAACC;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Other Layouts */
|
||||||
|
/* Server Select */
|
||||||
|
table.page table.server_select {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Individual table layouts */
|
||||||
|
/* LDAP Tree */
|
||||||
|
table.tree {
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.server td.icon {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.server td.name {
|
||||||
|
padding-right: 10px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.server td {
|
||||||
|
padding-top: 5px;
|
||||||
|
font-size: 18px;
|
||||||
|
text-align: left;
|
||||||
|
padding-right: 0px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.server_links {
|
||||||
|
vertical-align: top;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
padding-left: 3px;
|
||||||
|
padding-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.server_links img {
|
||||||
|
height: 22px;
|
||||||
|
width: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.server_links a {
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.server_links a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.option td.expander {
|
||||||
|
text-align: center;
|
||||||
|
width: 22px;
|
||||||
|
max-width: 22px;
|
||||||
|
min-width: 22px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.option td.icon {
|
||||||
|
text-align: center;
|
||||||
|
width: 22px;
|
||||||
|
max-width: 22px;
|
||||||
|
min-width: 22px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.rdn a {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.rdn a:hover {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #841212;
|
||||||
|
background-color: #FFF0C0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.rdn span.count {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.links a {
|
||||||
|
color: #0000AA;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.link a {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.link a:hover {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #841212;
|
||||||
|
background-color: #FFF0C0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.links a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.links a img {
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.blank {
|
||||||
|
font-size: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.spacer {
|
||||||
|
width: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.logged_in {
|
||||||
|
font-size: 10px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.logged_in a {
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.logged_in a:hover {
|
||||||
|
color: #841212;
|
||||||
|
background-color: #FFF0C0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tree Global Defaults */
|
||||||
|
table.tree tr td {
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree span.dnicon img {
|
||||||
|
width: 16px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tree */
|
||||||
|
table.tree .treemenudiv {
|
||||||
|
display: block;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding-top: 1px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree .phplmnormal {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmnormal:hover {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #fff0c0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplm:link {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplm:visited {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplm:hover {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #841212;
|
||||||
|
background-color: #fff0c0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplm:active {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #ff0000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmselected:link {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #dd0000;
|
||||||
|
background-color: #ffdd76;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmselected:visited {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #dd0000;
|
||||||
|
background-color: #ffdd76;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmselected:hover {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #841212;
|
||||||
|
background-color: #fff0c0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmselected:active {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #ff0000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Standard Form */
|
||||||
|
table.forminput {
|
||||||
|
background-color: #F9F9FA;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.title {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.subtitle {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput tr td.heading {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.small {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.top {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput input.val {
|
||||||
|
width: 350px;
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput input.roval {
|
||||||
|
width: 350px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.icon {
|
||||||
|
width: 16px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.icon img {
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.label {
|
||||||
|
text-align: left;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Menu on top of entry form */
|
||||||
|
table.menu {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.menu td.icon {
|
||||||
|
width: 16px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Edit DN */
|
||||||
|
div.add_value {
|
||||||
|
font-size: 12px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Edit Entry */
|
||||||
|
table.entry {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0px;
|
||||||
|
empty-cells: show;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry input {
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry input.value {
|
||||||
|
color: #000000;
|
||||||
|
font-size: 14px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry div.helper {
|
||||||
|
text-align: left;
|
||||||
|
white-space: nowrap;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
color: #888;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry input.roval {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
color: #000000;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry textarea.value {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry textarea.roval {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
color: #000000;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td {
|
||||||
|
padding: 4px;
|
||||||
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.heading {
|
||||||
|
border-top: 3px solid #C0C0C0;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.note {
|
||||||
|
text-align: right;
|
||||||
|
background-color: #E0E0E0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.title {
|
||||||
|
background-color: #E0E0E0;
|
||||||
|
vertical-align: top;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.title a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.title a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: #016;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.value {
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: middle;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
padding-left: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** When an attr is updated, it is highlighted to indicate such */
|
||||||
|
table.entry tr.updated td.title {
|
||||||
|
border-top: 1px dashed #AAAA88;
|
||||||
|
border-left: 1px dashed #AAAA88;
|
||||||
|
background-color: #999988;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr.updated td.note {
|
||||||
|
border-top: 1px dashed #AAAA88;
|
||||||
|
border-right: 1px dashed #AAAA88;
|
||||||
|
background-color: #999988;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** An extra row that sits at the bottom of recently modified attrs to encase them in dashes */
|
||||||
|
table.entry tr.updated td.bottom {
|
||||||
|
border-top: 1px dashed #AAAA88;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Formatting for the value cell when it is the attribute that has been recently modified */
|
||||||
|
table.entry tr.updated td.value {
|
||||||
|
border-left: 1px dashed #AAAA88;
|
||||||
|
border-right: 1px dashed #AAAA88;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Need to prevent sub-tables (like the one in which jpegPhotos are displayed)
|
||||||
|
* from drawing borders as well. */
|
||||||
|
table.entry tr.updated td table td {
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr.noinput {
|
||||||
|
background: #E0E0E0;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.hint {
|
||||||
|
font-size: small;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Login Box */
|
||||||
|
#login {
|
||||||
|
background: url('../../images/default/ldap-uid.png') no-repeat 0 1px;
|
||||||
|
background-color: #FAFAFF;
|
||||||
|
color: #000000;
|
||||||
|
padding-left: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#login:focus {
|
||||||
|
background-color: #F0F0FF;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#login:disabled {
|
||||||
|
background-color: #DDDDFF;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#password {
|
||||||
|
background: url('../../images/default/key.png') no-repeat 0 1px;
|
||||||
|
background-color: #FAFAFF;
|
||||||
|
color: #000000;
|
||||||
|
padding-left: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#password:focus {
|
||||||
|
background-color: #F0F0FF;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#password:disabled {
|
||||||
|
background-color: #DDDDFF;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#generic {
|
||||||
|
background-color: #FAFAFF;
|
||||||
|
color: #000000;
|
||||||
|
padding-left: 17px;
|
||||||
|
}
|
||||||
|
#generic:focus {
|
||||||
|
background-color: #F0F0FF;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#generic:disabled {
|
||||||
|
background-color: #DDDDFF;
|
||||||
|
color: #000000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* After input results */
|
||||||
|
div.execution_time {
|
||||||
|
font-size: 75%;
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result {
|
||||||
|
width: 100%;
|
||||||
|
vertical-align: top;
|
||||||
|
empty-cells: show;
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
border-spacing: 0px;
|
||||||
|
background-color: #F2F2FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.heading {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_title {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_title td.icon {
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_item {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_item td.blank {
|
||||||
|
width: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_item td.heading {
|
||||||
|
vertical-align: top;
|
||||||
|
color: gray;
|
||||||
|
width: 10%;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_item td.value {
|
||||||
|
color: #000000;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_box {
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
border-collapse: collapse;
|
||||||
|
empty-cells: show;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table {
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
border-collapse: collapse;
|
||||||
|
empty-cells: show;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table td {
|
||||||
|
font-size: 12px;
|
||||||
|
vertical-align: top;
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table th {
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
padding: 10px;
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.highlight {
|
||||||
|
background-color: #EEEBBB;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.highlight td {
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table td.heading {
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #000088;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table td.value {
|
||||||
|
color: #000000;
|
||||||
|
background-color: #E0E0E0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.heading {
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #000088;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.heading a {
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.heading td {
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.even {
|
||||||
|
background-color: #E0E0E0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.even td {
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.even td.title {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.odd {
|
||||||
|
background-color: #F0F0F0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.odd td {
|
||||||
|
border: 1px solid #AAAACC;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.odd td.title {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table ul.list {
|
||||||
|
margin: 5px;
|
||||||
|
margin-left: 0px;
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table ul.list li {
|
||||||
|
margin-left: 0px;
|
||||||
|
padding-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table ul.list li small {
|
||||||
|
font-size: 75%;
|
||||||
|
color: #707070;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table ul.list li small a {
|
||||||
|
color: #7070C0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Error Dialog Box */
|
||||||
|
table.error {
|
||||||
|
width: 500px;
|
||||||
|
border: 1px solid #AA0000;
|
||||||
|
background-color: #FFF0F0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.error th {
|
||||||
|
background-color: #AA0000;
|
||||||
|
border: 0px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.error th.img {
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.error td {
|
||||||
|
border: 0px;
|
||||||
|
background-color: #FFF0F0;
|
||||||
|
padding: 2px;
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Popup Window */
|
||||||
|
div.popup h3.subtitle {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
border-bottom: 1px solid #000000;
|
||||||
|
border-left: 1px solid #000000;
|
||||||
|
border-right: 1px solid #000000;
|
||||||
|
background: #000088;
|
||||||
|
padding: 4px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.good {
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.bad {
|
||||||
|
color: red;
|
||||||
|
}
|
952
htdocs/css/tango/style.css
Normal file
@ -0,0 +1,952 @@
|
|||||||
|
/* $Header$ */
|
||||||
|
|
||||||
|
/* Global Page */
|
||||||
|
table.page {
|
||||||
|
font-weight: normal;
|
||||||
|
color: #2E3436;
|
||||||
|
|
||||||
|
font-family: "bitstream vera sans","luxi sans",verdana,geneva,arial,helvetica,sans-serif;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
font-size: 13px;
|
||||||
|
empty-cells: hide;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Defaults */
|
||||||
|
/* A HREF Links */
|
||||||
|
table.page a {
|
||||||
|
color: #204A87;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page a img {
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Logo & Title */
|
||||||
|
table.page tr.head {
|
||||||
|
text-align: center;
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #3465A4;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 11px;
|
||||||
|
height: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page tr.head img.logo {
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
width: 100px;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page tr.pagehead {
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page tr.pagehead td.imagetop {
|
||||||
|
width: 100%;
|
||||||
|
vertical-align: bottom;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Control Line */
|
||||||
|
table.page tr.control td {
|
||||||
|
border-top: 1px solid #BABDB6;
|
||||||
|
border-bottom: 1px solid #BABDB6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Control Line Menu Items */
|
||||||
|
table.page table.control {
|
||||||
|
table-layout: fixed;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control td {
|
||||||
|
border-top: 0px;
|
||||||
|
border-bottom: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
padding-top: 5px;
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control img {
|
||||||
|
width: 24px;
|
||||||
|
height: 24px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control a {
|
||||||
|
color: #2E3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
color: #CC0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control td.spacer {
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control td.logo {
|
||||||
|
text-align: right;
|
||||||
|
width: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.control td.logo img.logo {
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: right;
|
||||||
|
|
||||||
|
width: 100px;
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - LDAP Tree */
|
||||||
|
table.page td.tree {
|
||||||
|
border-right: 1px solid #BABDB6;
|
||||||
|
vertical-align: top;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
width: 10%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Main Body */
|
||||||
|
table.page td.body {
|
||||||
|
vertical-align: top;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Main Body System Message */
|
||||||
|
table.page table.sysmsg {
|
||||||
|
border-bottom: 2px solid #BABDB6;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.sysmsg td.head {
|
||||||
|
font-size: small;
|
||||||
|
text-align: left;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.sysmsg td.body {
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.sysmsg td.icon {
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Main Body */
|
||||||
|
table.page table.body {
|
||||||
|
font-weight: normal;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body h3.title {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 10px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #3465A4;
|
||||||
|
border: 1px solid #EEEEEC;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 150%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body h3.subtitle {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
font-size: 75%;
|
||||||
|
color: #FFFFFF;
|
||||||
|
border-bottom: 1px solid #EEEEEC;
|
||||||
|
border-left: 1px solid #EEEEEC;
|
||||||
|
border-right: 1px solid #EEEEEC;
|
||||||
|
background: #3465A4;
|
||||||
|
padding: 4px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body td.spacer {
|
||||||
|
border-top: 2px solid #BABDB6;
|
||||||
|
padding: 0px;
|
||||||
|
font-size: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body td.head {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.page table.body td.foot {
|
||||||
|
font-size: small;
|
||||||
|
border-top: 1px solid #BABDB6;
|
||||||
|
border-bottom: 1px solid #BABDB6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page Footer */
|
||||||
|
table.page tr.foot td {
|
||||||
|
border-top: 1px solid #BABDB6;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 12px;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Global Page - Other Layouts */
|
||||||
|
/* Server Select */
|
||||||
|
table.page table.server_select {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #2E3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Individual table layouts */
|
||||||
|
/* LDAP Tree */
|
||||||
|
table.tree {
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.server td.icon {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.server td.name {
|
||||||
|
padding-right: 10px;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.server td {
|
||||||
|
padding-top: 5px;
|
||||||
|
font-size: 18px;
|
||||||
|
text-align: left;
|
||||||
|
padding-right: 0px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.server_links {
|
||||||
|
vertical-align: top;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 0px;
|
||||||
|
padding-bottom: 0px;
|
||||||
|
padding-left: 3px;
|
||||||
|
padding-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.server_links img {
|
||||||
|
height: 22px;
|
||||||
|
width: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.server_links a {
|
||||||
|
color: #2E3436;
|
||||||
|
text-decoration: none;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.server_links a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
color: #CC0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.option td.expander {
|
||||||
|
text-align: center;
|
||||||
|
width: 22px;
|
||||||
|
max-width: 22px;
|
||||||
|
min-width: 22px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree tr.option td.icon {
|
||||||
|
text-align: center;
|
||||||
|
width: 22px;
|
||||||
|
max-width: 22px;
|
||||||
|
min-width: 22px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.rdn a {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #2E3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.rdn a:hover {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #CC0000;
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.rdn span.count {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #2E3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.links a {
|
||||||
|
color: #204A87;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.link a {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #2E3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.link a:hover {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #CC0000;
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.rdn a:hover {
|
||||||
|
font-size: 13px;
|
||||||
|
color: #CC0000;
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.links a:hover {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #204A87;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.links a img {
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.blank {
|
||||||
|
font-size: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.spacer {
|
||||||
|
width: 22px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.logged_in {
|
||||||
|
font-size: 10px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.logged_in a {
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree td.logged_in a:hover {
|
||||||
|
color: #CC0000;
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tree Global Defaults */
|
||||||
|
table.tree tr td {
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #2E3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: #204A87;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Tree */
|
||||||
|
table.tree .treemenudiv {
|
||||||
|
display: block;
|
||||||
|
white-space: nowrap;
|
||||||
|
padding-top: 1px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree .phplmnormal {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmnormal:hover {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
background-color: #fff0c0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplm:link {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplm:visited {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #000000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplm:hover {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #841212;
|
||||||
|
background-color: #fff0c0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplm:active {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #ff0000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmselected:link {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #dd0000;
|
||||||
|
background-color: #ffdd76;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmselected:visited {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #dd0000;
|
||||||
|
background-color: #ffdd76;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmselected:hover {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #841212;
|
||||||
|
background-color: #fff0c0;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.tree a.phplmselected:active {
|
||||||
|
font-family: bitstream vera sans, luxi sans, verdana, geneva, arial, helvetica, sans-serif;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #ff0000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Standard Form */
|
||||||
|
table.forminput {
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
padding: 10px;
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.title {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.subtitle {
|
||||||
|
text-align: center;
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: small;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput tr td.heading {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.small {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.top {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput input.val {
|
||||||
|
width: 350px;
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput input.roval {
|
||||||
|
width: 350px;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.icon {
|
||||||
|
width: 16px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.icon img {
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forminput td.label {
|
||||||
|
text-align: left;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Menu on top of entry form */
|
||||||
|
table.menu {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.menu td.icon {
|
||||||
|
width: 16px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Edit DN */
|
||||||
|
div.add_value {
|
||||||
|
font-size: 12px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Edit Entry */
|
||||||
|
table.entry {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0px;
|
||||||
|
empty-cells: show;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry input {
|
||||||
|
margin: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry input.value {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry div.helper {
|
||||||
|
text-align: left;
|
||||||
|
white-space: nowrap;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry input.roval {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry textarea.value {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry textarea.roval {
|
||||||
|
font-size: 14px;
|
||||||
|
width: 350px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td {
|
||||||
|
padding: 4px;
|
||||||
|
padding-right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.heading {
|
||||||
|
border-top: 3px solid #D3D7CF;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.note {
|
||||||
|
text-align: right;
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.title {
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
vertical-align: top;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.title a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #2E3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.title a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: #204A87;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.value {
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: middle;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
padding-left: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** When an attr is updated, it is highlighted to indicate such */
|
||||||
|
table.entry tr.updated td.title {
|
||||||
|
border-top: 1px dashed #BABDB6;
|
||||||
|
border-left: 1px dashed #BABDB6;
|
||||||
|
background-color: #888A85;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr.updated td.note {
|
||||||
|
border-top: 1px dashed #BABDB6;
|
||||||
|
border-right: 1px dashed #BABDB6;
|
||||||
|
background-color: #888A85;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** An extra row that sits at the bottom of recently modified attrs to encase them in dashes */
|
||||||
|
table.entry tr.updated td.bottom {
|
||||||
|
border-top: 1px dashed #BABDB6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Formatting for the value cell when it is the attribute that has been recently modified */
|
||||||
|
table.entry tr.updated td.value {
|
||||||
|
border-left: 1px dashed #BABDB6;
|
||||||
|
border-right: 1px dashed #BABDB6;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Need to prevent sub-tables (like the one in which jpegPhotos are displayed)
|
||||||
|
* from drawing borders as well. */
|
||||||
|
table.entry tr.updated td table td {
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr.noinput {
|
||||||
|
background: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.hint {
|
||||||
|
font-size: small;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Edit DN - EntryWriter2 */
|
||||||
|
table.entry tr.spacer {
|
||||||
|
background-color: #D3D7CF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.ew2_icon {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.ew2_attr {
|
||||||
|
vertical-align: top;
|
||||||
|
text-align: right;
|
||||||
|
font-size: 75%;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.ew2_attr a {
|
||||||
|
text-decoration: none;
|
||||||
|
color: #2E3436;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.ew2_attr a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
color: #204A87;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr td.ew2_val {
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
padding-left: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr.updated td.ew2_attr {
|
||||||
|
text-align: right;
|
||||||
|
font-size: 75%;
|
||||||
|
border-top: 1px dashed green;
|
||||||
|
border-left: 1px dashed green;
|
||||||
|
border-bottom: 1px dashed green;
|
||||||
|
background-color: #ded;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.entry tr.updated td.ew2_val {
|
||||||
|
border-top: 1px dashed green;
|
||||||
|
border-left: 1px dashed green;
|
||||||
|
border-right: 1px dashed green;
|
||||||
|
border-bottom: 1px dashed green;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Login Box */
|
||||||
|
#login {
|
||||||
|
background: url('../../images/tango/ldap-uid.png') no-repeat 0 1px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
padding-left: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#login:focus {
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
#login:disabled {
|
||||||
|
background-color: #D3D7CF;
|
||||||
|
}
|
||||||
|
|
||||||
|
#password {
|
||||||
|
background: url('../../images/tango/key.png') no-repeat 0 1px;
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
padding-left: 17px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#password:focus {
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
#password:disabled {
|
||||||
|
background-color: #D3D7CF;
|
||||||
|
}
|
||||||
|
|
||||||
|
#generic {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
padding-left: 17px;
|
||||||
|
}
|
||||||
|
#generic:focus {
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
#generic:disabled {
|
||||||
|
background-color: #D3D7CF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* After input results */
|
||||||
|
div.execution_time {
|
||||||
|
font-size: 75%;
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result {
|
||||||
|
width: 100%;
|
||||||
|
vertical-align: top;
|
||||||
|
empty-cells: show;
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
border-spacing: 0px;
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.heading {
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_title {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_title td.icon {
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_item {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_item td.blank {
|
||||||
|
width: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_item td.heading {
|
||||||
|
vertical-align: top;
|
||||||
|
color: gray;
|
||||||
|
width: 10%;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result tr.list_item td.value {
|
||||||
|
color: #2E3436;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table {
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
border-collapse: collapse;
|
||||||
|
empty-cells: show;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table td {
|
||||||
|
vertical-align: top;
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
padding: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table th {
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
padding: 10px;
|
||||||
|
padding-left: 20px;
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.highlight {
|
||||||
|
background-color: #FCE94F;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.highlight td {
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table td.heading {
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #3465A4;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table td.value {
|
||||||
|
color: #2E3436;
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.heading {
|
||||||
|
color: #FFFFFF;
|
||||||
|
background-color: #3465A4;
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.heading a {
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.heading td {
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.even {
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.even td {
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.even td.title {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.odd {
|
||||||
|
background-color: #EEEEEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.odd td {
|
||||||
|
border: 1px solid #BABDB6;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table tr.odd td.title {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table ul.list {
|
||||||
|
margin: 5px;
|
||||||
|
margin-left: 0px;
|
||||||
|
padding-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table ul.list li {
|
||||||
|
margin-left: 0px;
|
||||||
|
padding-left: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table ul.list li small {
|
||||||
|
font-size: 75%;
|
||||||
|
color: #707070;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.result_table ul.list li small a {
|
||||||
|
color: #7070C0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Error Dialog Box */
|
||||||
|
table.error {
|
||||||
|
width: 500px;
|
||||||
|
border: 1px solid #AA0000;
|
||||||
|
background-color: #FFF0F0;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.error th {
|
||||||
|
background-color: #AA0000;
|
||||||
|
border: 0px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.error th.img {
|
||||||
|
vertical-align: middle;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.error td {
|
||||||
|
border: 0px;
|
||||||
|
background-color: #FFF0F0;
|
||||||
|
padding: 2px;
|
||||||
|
text-align: left;
|
||||||
|
vertical-align: top;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Popup Window */
|
||||||
|
div.popup h3.subtitle {
|
||||||
|
text-align: center;
|
||||||
|
margin: 0px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
color: #FFFFFF;
|
||||||
|
border-bottom: 1px solid #2E3436;
|
||||||
|
border-left: 1px solid #2E3436;
|
||||||
|
border-right: 1px solid #2E3436;
|
||||||
|
background: #3465A4;
|
||||||
|
padding: 4px;
|
||||||
|
font-weight: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.good {
|
||||||
|
color: green;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.bad {
|
||||||
|
color: red;
|
||||||
|
}
|
40
htdocs/delete.php
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Deletes a DN and presents a "job's done" message.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# The DNs we are working with
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','REQUEST',true);
|
||||||
|
|
||||||
|
if (! $app['server']->dnExists($request['dn']))
|
||||||
|
error(sprintf('%s (%s)',_('No such entry.'),'<b>'.pretty_print_dn($request['dn']).'</b>'),'error','index.php');
|
||||||
|
|
||||||
|
# Delete the entry.
|
||||||
|
$result = $app['server']->delete($request['dn']);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$redirect_url = '';
|
||||||
|
|
||||||
|
if (isAjaxEnabled())
|
||||||
|
$redirect_url .= sprintf('&refresh=SID_%s_nodes&noheader=1',$app['server']->getIndex());
|
||||||
|
|
||||||
|
system_message(array(
|
||||||
|
'title'=>_('Delete DN'),
|
||||||
|
'body'=>_('Successfully deleted DN ').sprintf('<b>%s</b>',$request['dn']),
|
||||||
|
'type'=>'info'),
|
||||||
|
sprintf('index.php?server_id=%s%s',$app['server']->getIndex(),$redirect_url));
|
||||||
|
} else
|
||||||
|
system_message(array(
|
||||||
|
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($request['dn'])),
|
||||||
|
'body'=>ldap_error_msg($app['server']->getErrorMessage(null),$app['server']->getErrorNum(null)),
|
||||||
|
'type'=>'error'));
|
||||||
|
?>
|
49
htdocs/delete_attr.php
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Deletes an attribute from an entry with NO confirmation.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','REQUEST',true);
|
||||||
|
$request['attr'] = get_request('attr','REQUEST',true);
|
||||||
|
$request['index'] = get_request('index','REQUEST',true);
|
||||||
|
|
||||||
|
if ($app['server']->isAttrReadOnly($request['attr']))
|
||||||
|
error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),$request['attr']),'error','index.php');
|
||||||
|
|
||||||
|
$update_array = array();
|
||||||
|
$update_array[$request['attr']] = $app['server']->getDNAttrValue($request['dn'],$request['attr']);
|
||||||
|
|
||||||
|
$redirect_url = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',
|
||||||
|
$app['server']->getIndex(),rawurlencode($request['dn']));
|
||||||
|
|
||||||
|
if (! isset($update_array[$request['attr']][$request['index']]))
|
||||||
|
system_message(array(
|
||||||
|
'title'=>_('Could not delete attribute value.'),
|
||||||
|
'body'=>sprintf('%s. %s/%s',_('The attribute value does not exist'),$request['attr'],$request['index']),
|
||||||
|
'type'=>'warn'),$redirect_url);
|
||||||
|
|
||||||
|
else {
|
||||||
|
unset($update_array[$request['attr']][$request['index']]);
|
||||||
|
foreach ($update_array as $key => $values)
|
||||||
|
$update_array[$key] = array_values($values);
|
||||||
|
|
||||||
|
$result = $app['server']->modify($request['dn'],$update_array);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
foreach ($update_array as $attr => $junk)
|
||||||
|
$redirect_url .= sprintf('&modified_attrs[]=%s',$attr);
|
||||||
|
|
||||||
|
header("Location: $redirect_url");
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
157
htdocs/delete_form.php
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Displays a last chance confirmation form to delete a DN.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
# The DN we are working with
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','GET');
|
||||||
|
|
||||||
|
$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['page']->setDN($request['dn']);
|
||||||
|
$request['page']->accept();
|
||||||
|
$request['template'] = $request['page']->getTemplate();
|
||||||
|
|
||||||
|
# Check if the entry exists.
|
||||||
|
if (! $request['dn'] || ! $app['server']->dnExists($request['dn']))
|
||||||
|
system_message(array(
|
||||||
|
'title'=>_('Entry does not exist'),
|
||||||
|
'body'=>sprintf('%s (%s)',_('The entry does not exist'),$request['dn']),
|
||||||
|
'type'=>'error'),'index.php');
|
||||||
|
|
||||||
|
# We search all children, not only the visible children in the tree
|
||||||
|
$request['children'] = $app['server']->getContainerContents($request['dn'],null,0,'(objectClass=*)',LDAP_DEREF_NEVER);
|
||||||
|
|
||||||
|
printf('<h3 class="title">%s %s</h3>',_('Delete'),htmlspecialchars(get_rdn($request['dn'])));
|
||||||
|
printf('<h3 class="subtitle">%s: <b>%s</b> %s: <b>%s</b></h3>',
|
||||||
|
_('Server'),$app['server']->getName(),_('Distinguished Name'),$request['dn']);
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '<center>';
|
||||||
|
|
||||||
|
if (count($request['children'])) {
|
||||||
|
printf('<b>%s</b><br /><br />',_('Permanently delete all children also?'));
|
||||||
|
|
||||||
|
$search['href'] = htmlspecialchars(sprintf('cmd.php?cmd=query_engine&server_id=%s&filter=%s&base=%s&scope=sub&query=none&format=list',
|
||||||
|
$app['server']->getIndex(),rawurlencode('objectClass=*'),rawurlencode($request['dn'])));
|
||||||
|
|
||||||
|
$query = array();
|
||||||
|
$query['base'] = $request['dn'];
|
||||||
|
$query['scope'] = 'sub';
|
||||||
|
$query['attrs'] = array('dn');
|
||||||
|
$query['size_limit'] = 0;
|
||||||
|
$query['deref'] = LDAP_DEREF_NEVER;
|
||||||
|
$request['search'] = $app['server']->query($query,null);
|
||||||
|
|
||||||
|
echo '<table class="forminput" border="0">';
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td colspan="2">';
|
||||||
|
printf(_('This entry is the root of a sub-tree containing %s entries.'),count($request['search']));
|
||||||
|
printf(' <small>(<a href="%s">%s</a>)</small>',
|
||||||
|
$search['href'],_('view entries'));
|
||||||
|
echo '</td></tr>';
|
||||||
|
|
||||||
|
echo '<tr><td colspan="2"> </td></tr>';
|
||||||
|
|
||||||
|
printf('<tr><td colspan="2">%s</td></tr>',
|
||||||
|
sprintf(_('phpLDAPadmin can recursively delete this entry and all %s of its children. See below for a list of all the entries that this action will delete. Do you want to do this?'),count($request['search'])));
|
||||||
|
|
||||||
|
echo '<tr><td colspan="2"> </td></tr>';
|
||||||
|
|
||||||
|
printf('<tr><td colspan="2"><small>%s</small></td></tr>',
|
||||||
|
_('Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.'));
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td style="width: 50%; text-align: center;">';
|
||||||
|
echo '<form action="cmd.php" method="post" id="delete_form">';
|
||||||
|
echo '<input type="hidden" name="cmd" value="rdelete" />';
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn" value="%s" />',$request['template']->getDNEncode(false));
|
||||||
|
//@todo need to refresh the tree after a delete
|
||||||
|
printf('<input type="submit" value="%s" %s />',
|
||||||
|
sprintf(_('Delete all %s objects'),count($request['search'])),
|
||||||
|
(isAjaxEnabled() ? sprintf('onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'delete_form\'),\'%s\');"',_('Deleting Object(s)')) : ''));
|
||||||
|
echo '</form>';
|
||||||
|
echo '</td>';
|
||||||
|
|
||||||
|
echo '<td style="width: 50%; text-align: center;">';
|
||||||
|
echo '<form action="cmd.php" method="get">';
|
||||||
|
echo '<input type="hidden" name="cmd" value="template_engine" />';
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn" value="%s" />',$request['template']->getDNEncode(false));
|
||||||
|
printf('<input type="submit" name="submit" value="%s" %s />',
|
||||||
|
_('Cancel'),
|
||||||
|
(isAjaxEnabled() ? sprintf('onclick="return ajDISPLAY(\'BODY\',\'cmd=template_engine&server_id=%s&dn=%s\',\'%s\');"',$app['server']->getIndex(),$request['template']->getDNEncode(),_('Retrieving DN')) : ''));
|
||||||
|
echo '</form>';
|
||||||
|
echo '</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '</table>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '<br /><br />';
|
||||||
|
echo _('List of entries to be deleted:');
|
||||||
|
echo '<br />';
|
||||||
|
|
||||||
|
$i = 0;
|
||||||
|
printf('<select size="%s" multiple disabled style="background:white; color:black;width:500px" >',min(10,count($request['search'])));
|
||||||
|
foreach ($request['search'] as $key => $value)
|
||||||
|
printf('<option>%s. %s</option>',++$i,dn_unescape($value['dn']));
|
||||||
|
echo '</select>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
} else {
|
||||||
|
echo '<table class="forminput" border="0">';
|
||||||
|
|
||||||
|
printf('<tr><td colspan="4">%s</td></tr>',_('Are you sure you want to permanently delete this object?'));
|
||||||
|
echo '<tr><td colspan="4"> </td></tr>';
|
||||||
|
|
||||||
|
printf('<tr><td style="width: 10%%;">%s:</td><td colspan="3" style="width: 75%%;"><b>%s</b></td></tr>',_('Server'),$app['server']->getName());
|
||||||
|
printf('<tr><td style="width: 10%%;"><acronym title="%s">%s</acronym></td><td colspan="3" style="width: 75%%;"><b>%s</b></td></tr>',
|
||||||
|
_('Distinguished Name'),_('DN'),$request['dn']);
|
||||||
|
echo '<tr><td colspan="4"> </td></tr>';
|
||||||
|
echo "\n";
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td colspan="2" style="width: 50%; text-align: center;">';
|
||||||
|
echo '<form action="cmd.php" method="post" id="delete_form">';
|
||||||
|
echo '<input type="hidden" name="cmd" value="delete" />';
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn" value="%s" />',$request['template']->getDNEncode(false));
|
||||||
|
//@todo need to refresh the tree after a delete
|
||||||
|
printf('<input type="submit" name="submit" value="%s" %s />',
|
||||||
|
_('Delete'),
|
||||||
|
(isAjaxEnabled() ? sprintf('onclick="return ajSUBMIT(\'BODY\',document.getElementById(\'delete_form\'),\'%s\');"',_('Deleting Object(s)')) : ''));
|
||||||
|
echo '</form>';
|
||||||
|
|
||||||
|
echo '</td>';
|
||||||
|
echo '<td colspan="2" style="width: 50%; text-align: center;">';
|
||||||
|
|
||||||
|
echo '<form action="cmd.php" method="get">';
|
||||||
|
echo '<input type="hidden" name="cmd" value="template_engine" />';
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
printf('<input type="hidden" name="dn" value="%s" />',$request['template']->getDNEncode(false));
|
||||||
|
printf('<input type="submit" name="submit" value="%s" %s />',
|
||||||
|
_('Cancel'),
|
||||||
|
(isAjaxEnabled() ? sprintf('onclick="return ajDISPLAY(\'BODY\',\'cmd=template_engine&server_id=%s&dn=%s\',\'%s\');"',$app['server']->getIndex(),$request['template']->getDNEncode(),_('Retrieving DN')) : ''));
|
||||||
|
echo '</form>';
|
||||||
|
|
||||||
|
echo '</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
echo '</table>';
|
||||||
|
echo "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</center>';
|
||||||
|
echo '<br />';
|
||||||
|
?>
|
49
htdocs/download_binary_attr.php
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Download a binary value attribute to the user.
|
||||||
|
* A server ID, DN and Attribute must be provided in the GET attributes.
|
||||||
|
* Optionally an index, type and filename can be supplied.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','GET');
|
||||||
|
$request['attr'] = strtolower(get_request('attr','GET',true));
|
||||||
|
$request['index'] = get_request('index','GET',false,0);
|
||||||
|
$request['type'] = get_request('type','GET',false,'octet-stream');
|
||||||
|
$request['filename'] = get_request('filename','GET',false,sprintf('%s:%s.bin',get_rdn($request['dn'],true),$request['attr']));
|
||||||
|
|
||||||
|
if (! $app['server']->dnExists($request['dn']))
|
||||||
|
error(sprintf(_('The entry (%s) does not exist.'),$request['dn']),'error','index.php');
|
||||||
|
|
||||||
|
$search = $app['server']->getDNAttrValues($request['dn'],null,LDAP_DEREF_NEVER,array($request['attr']));
|
||||||
|
|
||||||
|
# Dump the binary data to the browser
|
||||||
|
$obStatus = ob_get_status();
|
||||||
|
if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status'])
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
|
if (! isset($search[$request['attr']][$request['index']])) {
|
||||||
|
# We cant display an error, but we can set a system message, which will be display on the next page render.
|
||||||
|
system_message(array(
|
||||||
|
'title'=>_('No binary data available'),
|
||||||
|
'body'=>sprintf(_('Could not fetch binary data from LDAP server for attribute [%s].'),$request['attr']),
|
||||||
|
'type'=>'warn'));
|
||||||
|
|
||||||
|
die();
|
||||||
|
}
|
||||||
|
|
||||||
|
header(sprintf('Content-type: %s',$request['type']));
|
||||||
|
header(sprintf('Content-disposition: attachment; filename="%s"',$request['filename']));
|
||||||
|
header(sprintf('Expires: Mon, 26 Jul 1997 05:00:00 GMT',gmdate('r')));
|
||||||
|
header(sprintf('Last-Modified: %s',gmdate('r')));
|
||||||
|
echo $search[$request['attr']][$request['index']];
|
||||||
|
die();
|
||||||
|
?>
|
61
htdocs/draw_tree_node.php
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Draw a portion of the LDAP tree.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Tree
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','REQUEST');
|
||||||
|
$request['server_id'] = get_request('server_id','REQUEST');
|
||||||
|
$request['code'] = get_request('code','REQUEST');
|
||||||
|
$request['action'] = get_request('action','REQUEST');
|
||||||
|
$request['noheader'] = get_request('noheader','REQUEST',false,0);
|
||||||
|
|
||||||
|
$tree = Tree::getInstance($request['server_id']);
|
||||||
|
if (! $tree)
|
||||||
|
die();
|
||||||
|
|
||||||
|
$treesave = false;
|
||||||
|
|
||||||
|
if ($request['dn']) {
|
||||||
|
$dnentry = $tree->getEntry($request['dn']);
|
||||||
|
|
||||||
|
if (! $dnentry) {
|
||||||
|
$tree->addEntry($request['dn']);
|
||||||
|
$dnentry = $tree->getEntry($request['dn']);
|
||||||
|
$treesave = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch ($request['action']) {
|
||||||
|
case 0:
|
||||||
|
$dnentry->close();
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 2:
|
||||||
|
default:
|
||||||
|
if ($dnentry->isSizeLimited()) {
|
||||||
|
$tree->readChildren($request['dn'],true);
|
||||||
|
|
||||||
|
$treesave = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
$dnentry->open();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($treesave)
|
||||||
|
set_cached_item($app['server']->getIndex(),'tree','null',$tree);
|
||||||
|
|
||||||
|
if ($request['dn'])
|
||||||
|
echo $tree->draw_children($dnentry,$request['code']);
|
||||||
|
else
|
||||||
|
$tree->draw($request['noheader']);
|
||||||
|
|
||||||
|
die();
|
||||||
|
?>
|
135
htdocs/entry_chooser.php
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Display a selection (popup window) to pick a DN.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
include './common.php';
|
||||||
|
|
||||||
|
$www['page'] = new page();
|
||||||
|
|
||||||
|
$request = array();
|
||||||
|
$request['container'] = get_request('container','GET');
|
||||||
|
$request['form'] = get_request('form','GET');
|
||||||
|
$request['element'] = get_request('element','GET');
|
||||||
|
$request['rdn'] = get_request('rdn','GET');
|
||||||
|
|
||||||
|
echo '<div class="popup">';
|
||||||
|
printf('<h3 class="subtitle">%s</h3>',_('Entry Chooser'));
|
||||||
|
|
||||||
|
echo '<script type="text/javascript">';
|
||||||
|
echo ' function returnDN(dn) {';
|
||||||
|
printf(" eval ('o = opener.document.getElementById(\"%s\").%s;');",$request['form'],$request['element']);
|
||||||
|
echo ' o.value = dn;';
|
||||||
|
echo ' close();';
|
||||||
|
echo ' }';
|
||||||
|
echo '</script>';
|
||||||
|
|
||||||
|
echo '<table class="forminput" width="100%" border="0">';
|
||||||
|
if ($request['container']) {
|
||||||
|
printf('<tr><td class="heading" colspan="3">%s:</td><td>%s</td></tr>',_('Server'),$app['server']->getName());
|
||||||
|
printf('<tr><td class="heading" colspan="3">%s:</td><td>%s</td></tr>',_('Looking in'),$request['container']);
|
||||||
|
echo '<tr><td class="blank" colspan="4"> </td></tr>';
|
||||||
|
}
|
||||||
|
|
||||||
|
# Has the user already begun to descend into a specific server tree?
|
||||||
|
if (isset($app['server']) && ! is_null($request['container'])) {
|
||||||
|
$tree = get_cached_item($app['server']->getIndex(),'tree');
|
||||||
|
|
||||||
|
$request['children'] = $app['server']->getContainerContents($request['container'],null,0,'(objectClass=*)',$_SESSION[APPCONFIG]->getValue('deref','tree'));
|
||||||
|
sort($request['children']);
|
||||||
|
|
||||||
|
foreach ($app['server']->getBaseDN() as $base) {
|
||||||
|
if (DEBUG_ENABLED)
|
||||||
|
debug_log('Comparing BaseDN [%s] with container [%s]',64,0,__FILE__,__LINE__,__METHOD__,$base,$request['container']);
|
||||||
|
|
||||||
|
if (! pla_compare_dns($request['container'],$base)) {
|
||||||
|
$parent_container = false;
|
||||||
|
$href['up'] = sprintf('entry_chooser.php?form=%s&element=%s&rdn=%s',$request['form'],$request['element'],rawurlencode($request['rdn']));
|
||||||
|
break;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$parent_container = $app['server']->getContainer($request['container']);
|
||||||
|
$href['up'] = sprintf('entry_chooser.php?form=%s&element=%s&rdn=%s&server_id=%s&container=%s',
|
||||||
|
$request['form'],$request['element'],$request['rdn'],$app['server']->getIndex(),rawurlencode($parent_container));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td class="blank"> </td>';
|
||||||
|
printf('<td class="icon"><a href="%s"><img src="%s/up.png" alt="Up" /></a></td>',$href['up'],IMGDIR);
|
||||||
|
printf('<td colspan="2"><a href="%s">%s...</a></td>',$href['up'],_('Back Up'));
|
||||||
|
echo '</tr>';
|
||||||
|
|
||||||
|
if (! count($request['children']))
|
||||||
|
printf('<td class="blank" colspan="2"> </td><td colspan="2">(%s)</td>',_('no entries'));
|
||||||
|
|
||||||
|
else
|
||||||
|
foreach ($request['children'] as $dn) {
|
||||||
|
$href['return'] = sprintf("javascript:returnDN('%s%s')",($request['rdn'] ? sprintf('%s,',$request['rdn']) : ''),str_replace('\\','\\\\',$dn));
|
||||||
|
$href['expand'] = sprintf('entry_chooser.php?server_id=%s&form=%s&element=%s&rdn=%s&container=%s',
|
||||||
|
$app['server']->getIndex(),$request['form'],$request['element'],$request['rdn'],rawurlencode($dn));
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td class="blank"> </td>';
|
||||||
|
printf('<td class="icon"><a href="%s"><img src="%s/plus.png" alt="Plus" /></a></td>',$href['expand'],IMGDIR);
|
||||||
|
|
||||||
|
$entry = $tree->getEntry($dn);
|
||||||
|
if (is_null($entry)) {
|
||||||
|
$tree->addEntry($dn);
|
||||||
|
$entry = $tree->getEntry($dn);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($entry)
|
||||||
|
$item = draw_formatted_dn($app['server'], $entry);
|
||||||
|
else
|
||||||
|
$item = $dn;
|
||||||
|
|
||||||
|
printf('<td colspan="2"><a href="%s">%s</a></td>',$href['return'], $item );
|
||||||
|
echo '</tr>';
|
||||||
|
echo "\n\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Draw the root of the selection tree (ie, list all the servers)
|
||||||
|
} else {
|
||||||
|
foreach ($_SESSION[APPCONFIG]->getServerList() as $index => $server) {
|
||||||
|
if ($server->isLoggedIn(null)) {
|
||||||
|
printf('<tr><td class="heading" colspan="3">%s:</td><td class="heading">%s</td></tr>',_('Server'),$server->getName());
|
||||||
|
foreach ($server->getBaseDN() as $dn) {
|
||||||
|
if (! $dn) {
|
||||||
|
printf('<tr><td class="blank"> </td><td colspan="3">(%s)</td></tr>',_('Could not determine base DN'));
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$href['return'] = sprintf("javascript:returnDN('%s%s')",($request['rdn'] ? sprintf('%s,',$request['rdn']) : ''),rawurlencode($dn));
|
||||||
|
$href['expand'] = htmlspecialchars(sprintf('entry_chooser.php?server_id=%s&form=%s&element=%s&rdn=%s&container=%s',
|
||||||
|
$server->getIndex(),$request['form'],$request['element'],$request['rdn'],rawurlencode($dn)));
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td class="blank"> </td>';
|
||||||
|
printf('<td colspan="2" class="icon"><a href="%s"><img src="%s/plus.png" alt="Plus" /></a></td>',$href['expand'],IMGDIR);
|
||||||
|
printf('<td colspan="2"><a href="%s">%s</a></td>',$href['return'],$dn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<tr><td class="blank" colspan="4"> </td></tr>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</table>';
|
||||||
|
echo '</div>';
|
||||||
|
|
||||||
|
# Capture the output and put into the body of the page.
|
||||||
|
$www['body'] = new block();
|
||||||
|
$www['body']->SetBody(ob_get_contents());
|
||||||
|
$www['page']->block_add('body',$www['body']);
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
|
# Render the popup.
|
||||||
|
$www['page']->display(array('CONTROL'=>false,'FOOT'=>false,'HEAD'=>false,'TREE'=>false));
|
||||||
|
?>
|
27
htdocs/expand.php
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This script alters the session variable 'tree', expanding it
|
||||||
|
* at the dn specified in the query string.
|
||||||
|
*
|
||||||
|
* Note: this script is equal and opposite to collapse.php
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Tree
|
||||||
|
* @see collapse.php
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
|
||||||
|
$dn = get_request('dn','GET',true);
|
||||||
|
$tree = get_cached_item($app['server']->getIndex(),'tree');
|
||||||
|
$entry = $tree->getEntry($dn);
|
||||||
|
$entry->open();
|
||||||
|
set_cached_item($app['server']->getIndex(),'tree','null',$tree);
|
||||||
|
|
||||||
|
header(sprintf('Location:index.php?server_id=%s&junk=%s#%s%s',
|
||||||
|
$app['server']->getIndex(),random_junk(),htmlid($app['server']->getIndex(),$dn),app_session_param()));
|
||||||
|
die();
|
||||||
|
?>
|
40
htdocs/export.php
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Performs the export of data from the LDAP server
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
require LIBDIR.'export_functions.php';
|
||||||
|
|
||||||
|
# Prevent script from bailing early for long search
|
||||||
|
@set_time_limit(0);
|
||||||
|
|
||||||
|
$request = array();
|
||||||
|
$request['file'] = get_request('save_as_file') ? true : false;
|
||||||
|
$request['exporter'] = new Exporter($app['server']->getIndex(),get_request('exporter_id','REQUEST'));
|
||||||
|
$request['export'] = $request['exporter']->getTemplate();
|
||||||
|
$types = $request['export']->getType();
|
||||||
|
|
||||||
|
# send the header
|
||||||
|
if ($request['file']) {
|
||||||
|
$obStatus = ob_get_status();
|
||||||
|
if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status'])
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
|
header('Content-type: application/download');
|
||||||
|
header(sprintf('Content-Disposition: inline; filename="%s.%s"','export',$types['extension'].($request['export']->isCompressed() ? '.gz' : '')));
|
||||||
|
echo $request['export']->export();
|
||||||
|
die();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
print '<span style="font-size: 14px; font-family: courier;"><pre>';
|
||||||
|
echo htmlspecialchars($request['export']->export());
|
||||||
|
print '</pre></span>';
|
||||||
|
}
|
||||||
|
?>
|
213
htdocs/export_form.php
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Export entries from the LDAP server.
|
||||||
|
*
|
||||||
|
* @package phpLDAPadmin
|
||||||
|
* @subpackage Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
|
||||||
|
require './common.php';
|
||||||
|
require LIBDIR.'export_functions.php';
|
||||||
|
|
||||||
|
$request = array();
|
||||||
|
$request['dn'] = get_request('dn','GET');
|
||||||
|
$request['format'] = get_request('format','GET',false,get_line_end_format());
|
||||||
|
$request['scope'] = get_request('scope','GET',false,'base');
|
||||||
|
$request['exporter_id'] = get_request('exporter_id','GET',false,'LDIF');
|
||||||
|
$request['filter'] = get_request('filter','GET',false,'(objectClass=*)');
|
||||||
|
$request['attr'] = get_request('attributes','GET',false,'*');
|
||||||
|
$request['sys_attr'] = get_request('sys_attr','GET') ? true: false;
|
||||||
|
|
||||||
|
$available_formats = array(
|
||||||
|
'mac' => 'Macintosh',
|
||||||
|
'unix' => 'UNIX (Linux, BSD)',
|
||||||
|
'win' => 'Windows'
|
||||||
|
);
|
||||||
|
|
||||||
|
$available_scopes = array(
|
||||||
|
'base' => _('Base (base dn only)'),
|
||||||
|
'one' => _('One (one level beneath base)'),
|
||||||
|
'sub' => _('Sub (entire subtree)')
|
||||||
|
);
|
||||||
|
|
||||||
|
$request['page'] = new PageRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||||
|
$request['page']->drawTitle(sprintf('<b>%s</b>',_('Export')));
|
||||||
|
|
||||||
|
printf('<script type="text/javascript" src="%sdnChooserPopup.js"></script>',JSDIR);
|
||||||
|
printf('<script type="text/javascript" src="%sform_field_toggle_enable.js"></script>',JSDIR);
|
||||||
|
|
||||||
|
echo '<br />';
|
||||||
|
echo '<form id="export_form" action="cmd.php" method="post">';
|
||||||
|
echo '<div>';
|
||||||
|
echo '<input type="hidden" name="cmd" value="export" />';
|
||||||
|
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||||
|
|
||||||
|
echo '<table class="forminput" style="margin-left: auto; margin-right: auto;">';
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td>';
|
||||||
|
|
||||||
|
echo '<fieldset>';
|
||||||
|
printf('<legend>%s</legend>',_('Export'));
|
||||||
|
|
||||||
|
echo '<table>';
|
||||||
|
printf('<tr><td>%s</td><td>%s</td></tr>',_('Server'),$app['server']->getName());
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
printf('<td style="white-space:nowrap">%s</td>',_('Base DN'));
|
||||||
|
echo '<td><span style="white-space: nowrap;">';
|
||||||
|
printf('<input type="text" name="dn" id="dn" style="width:230px" value="%s" /> ',htmlspecialchars($request['dn']));
|
||||||
|
draw_chooser_link('export_form','dn');
|
||||||
|
echo '</span></td>';
|
||||||
|
echo '</tr>';
|
||||||
|
|
||||||
|
echo '<tr>';
|
||||||
|
printf('<td><span style="white-space: nowrap">%s</span></td>',_('Search Scope'));
|
||||||
|
|
||||||
|
echo '<td>';
|
||||||
|
|
||||||
|
foreach ($available_scopes as $id => $desc)
|
||||||
|
printf('<input type="radio" name="scope" value="%s" id="%s"%s /><label for="%s">%s</label><br />',
|
||||||
|
htmlspecialchars($id),$id,($id == $request['scope']) ? 'checked="checked"' : '',
|
||||||
|
htmlspecialchars($id),$desc);
|
||||||
|
|
||||||
|
echo '</td>';
|
||||||
|
|
||||||
|
echo '</tr>';
|
||||||
|
|
||||||
|
printf('<tr><td>%s</td><td><input type="text" name="filter" style="width:300px" value="%s" /></td></tr>',
|
||||||
|
_('Search Filter'),htmlspecialchars($request['filter']));
|
||||||
|
|
||||||
|
printf('<tr><td>%s</td><td><input type="text" name="attributes" style="width:300px" value="%s" /></td></tr>',
|
||||||
|
_('Show Attributtes'),htmlspecialchars($request['attr']));
|
||||||
|
|
||||||
|
printf('<tr><td> </td><td><input type="checkbox" name="sys_attr" id="sys_attr" %s/> <label for="sys_attr">%s</label></td></tr>',
|
||||||
|
$request['sys_attr'] ? 'checked="checked" ' : '',_('Include system attributes'));
|
||||||
|
|
||||||
|
printf('<tr><td> </td><td><input type="checkbox" id="save_as_file" name="save_as_file" onclick="export_field_toggle(this)" /> <label for="save_as_file">%s</label></td></tr>',
|
||||||
|
_('Save as file'));
|
||||||
|
|
||||||
|
printf('<tr><td> </td><td><input type="checkbox" id="compress" name="compress" disabled="disabled" /> <label for="compress">%s</label></td></tr>',
|
||||||
|
_('Compress'));
|
||||||
|
|
||||||
|
echo '</table>';
|
||||||
|
echo '</fieldset>';
|
||||||
|
echo '</td>';
|
||||||
|
echo '</tr>';
|
||||||
|
echo '<tr>';
|
||||||
|
echo '<td>';
|
||||||
|
|
||||||
|
echo '<table style="width: 100%">';
|
||||||
|
echo '<tr>';
|
||||||
|
|
||||||
|
echo '<td style="width: 50%">';
|
||||||
|
echo '<fieldset style="height: 100px">';
|
||||||
|
|
||||||
|
printf('<legend>%s</legend>',_('Export format'));
|
||||||
|
|
||||||
|
foreach (Exporter::types() as $index => $exporter) {
|
||||||
|
printf('<input type="radio" name="exporter_id" id="exporter_id_%s" value="%s"%s/>',
|
||||||
|
htmlspecialchars($exporter['type']),htmlspecialchars($exporter['type']),($exporter['type'] === $request['exporter_id']) ? ' checked="checked"' : '');
|
||||||
|
|
||||||
|
printf('<label for="exporter_id_%s">%s</label><br />',
|
||||||
|
htmlspecialchars($exporter['type']),$exporter['type']);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '</fieldset>';
|
||||||
|
echo '</td>';
|
||||||
|
|
||||||
|
echo '<td style="width: 50%">';
|
||||||
|
echo '<fieldset style="height: 100px">';
|
||||||
|
|
||||||
|
printf('<legend>%s</legend>',_('Line ends'));
|
||||||
|
foreach ($available_formats as $id => $desc)
|
||||||
|
printf('<input type="radio" name="format" value="%s" id="%s"%s /><label for="%s">%s</label><br />',
|
||||||
|
htmlspecialchars($id),htmlspecialchars($id),($request['format']==$id) ? ' checked="checked"' : '',
|
||||||
|
htmlspecialchars($id),$desc);
|
||||||
|
|
||||||
|
echo '</fieldset>';
|
||||||
|
echo '</td></tr>';
|
||||||
|
echo '</table>';
|
||||||
|
echo '</td>';
|
||||||
|
|
||||||
|
echo '</tr>';
|
||||||
|
|
||||||
|
printf('<tr><td colspan="2" style="text-align: center;"><input type="submit" name="target" value="%s" /></td></tr>',
|
||||||
|
htmlspecialchars(_('Proceed >>')));
|
||||||
|
|
||||||
|
echo '</table>';
|
||||||
|
|
||||||
|
echo '</div>';
|
||||||
|
echo '</form>';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helper function for fetching the line end format.
|
||||||
|
*
|
||||||
|
* @return String 'win', 'unix', or 'mac' based on the user's browser..
|
||||||
|
*/
|
||||||
|
function get_line_end_format() {
|
||||||
|
if (is_browser('win'))
|
||||||
|
return 'win';
|
||||||
|
elseif (is_browser('unix'))
|
||||||
|
return 'unix';
|
||||||
|
elseif (is_browser('mac'))
|
||||||
|
return 'mac';
|
||||||
|
else
|
||||||
|
return 'unix';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the USER_AGENT string from the $_SERVER array, all in lower case in
|
||||||
|
* an E_NOTICE safe manner.
|
||||||
|
*
|
||||||
|
* @return string|false The user agent string as reported by the browser.
|
||||||
|
*/
|
||||||
|
function get_user_agent_string() {
|
||||||
|
if (isset($_SERVER['HTTP_USER_AGENT']))
|
||||||
|
return strtolower($_SERVER['HTTP_USER_AGENT']);
|
||||||
|
else
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determine the OS for the browser
|
||||||
|
*/
|
||||||
|
function is_browser($type) {
|
||||||
|
$agents = array();
|
||||||
|
|
||||||
|
$agents['unix'] = array(
|
||||||
|
'sunos','sunos 4','sunos 5',
|
||||||
|
'i86',
|
||||||
|
'irix','irix 5','irix 6','irix6',
|
||||||
|
'hp-ux','09.','10.',
|
||||||
|
'aix','aix 1','aix 2','aix 3','aix 4',
|
||||||
|
'inux',
|
||||||
|
'sco',
|
||||||
|
'unix_sv','unix_system_v','ncr','reliant','dec','osf1',
|
||||||
|
'dec_alpha','alphaserver','ultrix','alphastation',
|
||||||
|
'sinix',
|
||||||
|
'freebsd','bsd',
|
||||||
|
'x11','vax','openvms'
|
||||||
|
);
|
||||||
|
|
||||||
|
$agents['win'] = array(
|
||||||
|
'win','win95','windows 95',
|
||||||
|
'win16','windows 3.1','windows 16-bit','windows','win31','win16','winme',
|
||||||
|
'win2k','winxp',
|
||||||
|
'win98','windows 98','win9x',
|
||||||
|
'winnt','windows nt','win32',
|
||||||
|
'32bit'
|
||||||
|
);
|
||||||
|
|
||||||
|
$agents['mac'] = array(
|
||||||
|
'mac','68000','ppc','powerpc'
|
||||||
|
);
|
||||||
|
|
||||||
|
if (isset($agents[$type]))
|
||||||
|
return in_array(get_user_agent_string(),$agents[$type]);
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
?>
|
6
htdocs/images/INFO
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
PLA's icons come from http://jimmac.musichall.cz/ikony.php3, or the projects that
|
||||||
|
he drew them for.
|
||||||
|
|
||||||
|
They are open source, either licensed under the GPL or a CC license.
|
||||||
|
|
||||||
|
They are great icons so be sure to let Jakub know :)
|
BIN
htdocs/images/ajax-progress.gif
Normal file
After Width: | Height: | Size: 7.5 KiB |
BIN
htdocs/images/ajax-spinner.gif
Normal file
After Width: | Height: | Size: 2.0 KiB |
BIN
htdocs/images/countries/af.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/al.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/am.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/an.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/ao.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/ar.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/at.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/au.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/aw.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/az.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/ba.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bb.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bd.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/be.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bf.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bg.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bh.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bi.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bj.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bm.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bn.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bo.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/br.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bs.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bt.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bw.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/by.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/bz.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/ca.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/cf.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/cg.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/ch.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/ci.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/ck.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/cl.png
Normal file
After Width: | Height: | Size: 253 B |
BIN
htdocs/images/countries/cm.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/cn.png
Normal file
After Width: | Height: | Size: 624 B |
BIN
htdocs/images/countries/co.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/cr.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/cu.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/cv.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/cy.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/cz.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/de.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/dk.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/dz.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/ec.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/ee.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/eg.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/er.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/es.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/et.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/fi.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
htdocs/images/countries/fj.png
Normal file
After Width: | Height: | Size: 1.0 KiB |