Compare commits
183 Commits
RELEASE-1.
...
1.2.4
Author | SHA1 | Date | |
---|---|---|---|
|
95411c05e1 | ||
|
7b1f6b5132 | ||
|
3c0ca27477 | ||
|
511ead3ec6 | ||
|
e37b498de1 | ||
|
29d7d4b2f7 | ||
|
c494078550 | ||
|
73b7795bc0 | ||
|
c1af05f403 | ||
|
49ef60f26b | ||
|
aa11e318ec | ||
|
f3aad72b57 | ||
|
6a55d808a2 | ||
|
aec5053f55 | ||
|
4484129a41 | ||
|
2e43cf95b9 | ||
|
7569423f11 | ||
|
5c0f787fbf | ||
|
6c85d61525 | ||
|
884cce1475 | ||
|
53e005c1f4 | ||
|
733a10a1c5 | ||
|
708bc5ed83 | ||
|
e46579b34e | ||
|
4fefe2aa8c | ||
|
ee9034f24c | ||
|
61af45e872 | ||
|
dd6e9583a2 | ||
|
665dbc2690 | ||
|
599d55700d | ||
|
726190e5b8 | ||
|
0b8375fd2a | ||
|
fa88250f0e | ||
|
0491916d90 | ||
|
c004a291d7 | ||
|
54191d7ffb | ||
|
9e283f369f | ||
|
19114385fc | ||
|
7701e98bcc | ||
|
d4c2fb52ab | ||
|
7cbdd0c8db | ||
|
afec12d163 | ||
|
a4a602b6ec | ||
|
e1952cddb6 | ||
|
ee415fe8c6 | ||
|
eca5c4ea9f | ||
|
a01752a68c | ||
|
ba90f86e7b | ||
|
6135f94a51 | ||
|
f7c4bd311a | ||
|
c736ecd8c2 | ||
|
d2a800878f | ||
|
5a7edc892f | ||
|
d258398b68 | ||
|
b082cf1742 | ||
|
e673df3ba8 | ||
|
cfbee19721 | ||
|
092db24f99 | ||
|
927e515df3 | ||
|
bbedf18b7e | ||
|
f1ed59a35e | ||
|
55fa21af26 | ||
|
f28d535948 | ||
|
2f70eb41b3 | ||
|
6b9834a054 | ||
|
caf24e3662 | ||
|
c4b6695beb | ||
|
74434e5ca3 | ||
|
88d41216f9 | ||
|
09c5e3a8da | ||
|
21959715c3 | ||
|
3690ad16f0 | ||
|
7dc8d57d69 | ||
|
dece0f496f | ||
|
d58f011fbb | ||
|
696c266eee | ||
|
2d018aad7b | ||
|
cddf783c27 | ||
|
1e1fcabb3d | ||
|
d8ab7fc2f0 | ||
|
56830f1fa4 | ||
|
6c8b623788 | ||
|
7fc4f0c7e4 | ||
|
059b83befb | ||
|
4089ffa9fe | ||
|
c57a927311 | ||
|
d5744b055a | ||
|
76e6dad13e | ||
|
5d4245f93a | ||
|
80d027d569 | ||
|
64668e882b | ||
|
caeba72171 | ||
|
07827304b7 | ||
|
446faf78fb | ||
|
afa4a95b37 | ||
|
5987194dec | ||
|
ddb5ed0346 | ||
|
7649b9b826 | ||
|
43ae011c0e | ||
|
92acf6f158 | ||
|
6c93c1fc72 | ||
|
66e24fb86c | ||
|
a2828b2cf0 | ||
|
3919825000 | ||
|
6eb6641454 | ||
|
41c2821395 | ||
|
caebef364a | ||
|
1121dd01df | ||
|
775e6f40d4 | ||
|
e083f5f8b5 | ||
|
c97d4afe17 | ||
|
62d645123c | ||
|
880a86f666 | ||
|
a35298e7f3 | ||
|
2ea1fc6314 | ||
|
c23db377c2 | ||
|
1f9308dc4d | ||
|
db241f1c98 | ||
|
b6500224d3 | ||
|
75640ccc3e | ||
|
bf8ac5306e | ||
|
d5c8d42adc | ||
|
9e9960bc3d | ||
|
4cf6b17ba3 | ||
|
04e41f7272 | ||
|
6e5ec75b55 | ||
|
97eff7383c | ||
|
fc5885b0d9 | ||
|
c28a609799 | ||
|
ea4ae7f831 | ||
|
be623ce3f5 | ||
|
aa8a353c38 | ||
|
ed7f899361 | ||
|
2cf20fcf44 | ||
|
cc860371d6 | ||
|
7aba733961 | ||
|
c5f045756e | ||
|
b3874bf958 | ||
|
7980d1c131 | ||
|
43f31912b6 | ||
|
ab0717e0e3 | ||
|
f9c56bc4ff | ||
|
6fdab2c308 | ||
|
c3a286cfee | ||
|
e77d39deb5 | ||
|
34e5bbb545 | ||
|
7d17676fd7 | ||
|
1c467a6115 | ||
|
2e8e9625d6 | ||
|
f713afc8d1 | ||
|
1b55c84f06 | ||
|
206c142b99 | ||
|
e4f5c22e18 | ||
|
0f782569e9 | ||
|
7b4d11f1f5 | ||
|
a1c714bdb8 | ||
|
ac1d121b0d | ||
|
9dbf53acf3 | ||
|
5080e204cf | ||
|
b46941f7fd | ||
|
03d1166103 | ||
|
676a675c7c | ||
|
4598d3ae39 | ||
|
2416230c61 | ||
|
d90fe5a6fa | ||
|
ec8902a223 | ||
|
2090e7c34a | ||
|
2393c5d5e3 | ||
|
efd1860a91 | ||
|
23a2da1f26 | ||
|
d4483f961f | ||
|
b1139658bf | ||
|
f8cacb7dd0 | ||
|
ee35f81ce5 | ||
|
088ebf4a2b | ||
|
a6dc80616b | ||
|
9196bb9e41 | ||
|
7121f560e9 | ||
|
e7466c948b | ||
|
f0a6d312ab | ||
|
d062308f32 | ||
|
352a87fee8 | ||
|
242d06673a |
13
README.md
Normal file
13
README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
phpLDAPadmin
|
||||
============
|
||||
|
||||
phpLDAPadmin - Web based LDAP administration tool
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
[INSTALL](INSTALL.md)
|
||||
|
||||
## License
|
||||
|
||||
[LICENSE](LICENSE)
|
@@ -6,6 +6,7 @@
|
||||
|
||||
/**
|
||||
* 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.
|
||||
@@ -35,9 +36,9 @@
|
||||
* version of phpLDAPadmin.
|
||||
*/
|
||||
|
||||
/*********************************************/
|
||||
/* Useful important configuration overrides */
|
||||
/*********************************************/
|
||||
/*********************************************
|
||||
* 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;
|
||||
@@ -48,11 +49,15 @@
|
||||
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. Otherwise, available lanaguages
|
||||
are: 'ct', 'de', 'en', 'es', 'fr', 'it', 'nl', and 'ru'
|
||||
Localization is not complete yet, but most strings have been translated.
|
||||
Please help by writing language files. See lang/en.php for an example. */
|
||||
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
|
||||
@@ -79,9 +84,9 @@
|
||||
// $config->custom->appearance['timezone'] = null;
|
||||
# $config->custom->appearance['timezone'] = 'Australia/Melbourne';
|
||||
|
||||
/*********************************************/
|
||||
/* Commands */
|
||||
/*********************************************/
|
||||
/*********************************************
|
||||
* 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.
|
||||
@@ -137,9 +142,9 @@ $config->custom->commands['script'] = array(
|
||||
);
|
||||
*/
|
||||
|
||||
/*********************************************/
|
||||
/* Appearance */
|
||||
/*********************************************/
|
||||
/*********************************************
|
||||
* Appearance *
|
||||
*********************************************/
|
||||
|
||||
/* If you want to choose the appearance of the tree, specify a class name which
|
||||
inherits from the Tree class. */
|
||||
@@ -155,6 +160,9 @@ $config->custom->commands['script'] = array(
|
||||
/* 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=*)';
|
||||
|
||||
@@ -165,9 +173,19 @@ $config->custom->commands['script'] = array(
|
||||
// $config->custom->appearance['tree_width'] = null;
|
||||
# $config->custom->appearance['tree_width'] = 250;
|
||||
|
||||
/*********************************************/
|
||||
/* User-friendly attribute translation */
|
||||
/*********************************************/
|
||||
/* 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". */
|
||||
@@ -181,9 +199,9 @@ $config->custom->appearance['friendly_attrs'] = array(
|
||||
'userPassword' => 'Password'
|
||||
);
|
||||
|
||||
/*********************************************/
|
||||
/* Hidden attributes */
|
||||
/*********************************************/
|
||||
/*********************************************
|
||||
* 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.
|
||||
@@ -192,13 +210,13 @@ $config->custom->appearance['friendly_attrs'] = array(
|
||||
// $config->custom->appearance['hide_attrs'] = array();
|
||||
# $config->custom->appearance['hide_attrs'] = array('objectClass');
|
||||
|
||||
/* Members of this list will be exempt from the hidden attributes.*/
|
||||
/* 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 */
|
||||
/*********************************************/
|
||||
/*********************************************
|
||||
* 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
|
||||
@@ -208,13 +226,13 @@ $config->custom->appearance['friendly_attrs'] = array(
|
||||
excluded. */
|
||||
// $config->custom->appearance['readonly_attrs'] = array();
|
||||
|
||||
/* Members of this list will be exempt from the readonly attributes.*/
|
||||
/* 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 */
|
||||
/*********************************************/
|
||||
/*********************************************
|
||||
* Group attributes *
|
||||
*********************************************/
|
||||
|
||||
/* Add "modify group members" link to the attribute. */
|
||||
// $config->custom->modify_member['groupattr'] = array('member','uniqueMember','memberUid');
|
||||
@@ -230,9 +248,9 @@ $config->custom->appearance['friendly_attrs'] = array(
|
||||
// $config->custom->modify_member['posixfilter'] = '(uid=*)';
|
||||
// $config->custom->modify_member['posixgroupattr'] = 'memberUid';
|
||||
|
||||
/*********************************************/
|
||||
/* Support for attrs display order */
|
||||
/*********************************************/
|
||||
/*********************************************
|
||||
* 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.
|
||||
@@ -253,9 +271,9 @@ $config->custom->appearance['friendly_attrs'] = array(
|
||||
# 'userPassword'
|
||||
# );
|
||||
|
||||
/*********************************************/
|
||||
/* Define your LDAP servers in this section */
|
||||
/*********************************************/
|
||||
/*********************************************
|
||||
* Define your LDAP servers in this section *
|
||||
*********************************************/
|
||||
|
||||
$servers = new Datastore();
|
||||
|
||||
@@ -281,7 +299,7 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
auto-detect it for you. */
|
||||
// $servers->setValue('server','base',array(''));
|
||||
|
||||
/* Four options for auth_type:
|
||||
/* 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
|
||||
@@ -290,6 +308,8 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
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
|
||||
@@ -298,10 +318,11 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
// $servers->setValue('login','auth_type','session');
|
||||
|
||||
/* The DN of the user for phpLDAPadmin to bind with. For anonymous binds or
|
||||
'cookie' or 'session' 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. */
|
||||
'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');
|
||||
|
||||
@@ -320,22 +341,22 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
/* 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('server','sasl_auth',false);
|
||||
// $servers->setValue('login','auth_type','sasl');
|
||||
|
||||
/* SASL auth mechanism */
|
||||
// $servers->setValue('server','sasl_mech','PLAIN');
|
||||
// $servers->setValue('sasl','mech','GSSAPI');
|
||||
|
||||
/* SASL authentication realm name */
|
||||
// $servers->setValue('server','sasl_realm','');
|
||||
# $servers->setValue('server','sasl_realm','example.com');
|
||||
// $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 sasl_authz_id_regex and sasl_authz_id_replacement. */
|
||||
// $servers->setValue('server','sasl_authz_id', null);
|
||||
using authz_id_regex and authz_id_replacement. */
|
||||
// $servers->setValue('sasl','authz_id', null);
|
||||
|
||||
/* SASL authorization id regex and replacement
|
||||
When sasl_authz_id property is not set (default), phpLDAPAdmin will try to
|
||||
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
|
||||
@@ -347,18 +368,18 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
For info about pcre regexes, see:
|
||||
- pcre(3), perlre(3)
|
||||
- http://www.php.net/preg_replace */
|
||||
// $servers->setValue('server','sasl_authz_id_regex',null);
|
||||
// $servers->setValue('server','sasl_authz_id_replacement',null);
|
||||
# $servers->setValue('server','sasl_authz_id_regex','/^uid=([^,]+)(.+)/i');
|
||||
# $servers->setValue('server','sasl_authz_id_replacement','$1');
|
||||
// $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('server','sasl_props',null);
|
||||
// $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');
|
||||
// $servers->setValue('appearance','pla_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
|
||||
@@ -366,7 +387,7 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
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.
|
||||
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
|
||||
@@ -396,6 +417,9 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
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);
|
||||
@@ -412,7 +436,7 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
# $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 */
|
||||
(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
|
||||
@@ -444,13 +468,18 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
/* 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 */
|
||||
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
|
||||
@@ -465,16 +494,16 @@ $servers->setValue('server','name','My LDAP Server');
|
||||
|
||||
/* 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 becuase your LDAP
|
||||
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('force_may','attrs',array(''));
|
||||
# $servers->setValue('force_may','attrs',array('uidNumber','gidNumber','sambaSID'));
|
||||
// $servers->setValue('server','force_may',array(''));
|
||||
# $servers->setValue('server','force_may',array('uidNumber','gidNumber','sambaSID'));
|
||||
|
||||
/*********************************************/
|
||||
/* Unique attributes */
|
||||
/*********************************************/
|
||||
/*********************************************
|
||||
* 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
|
||||
@@ -509,15 +538,15 @@ $servers->setValue('login','bind_pass','');
|
||||
$servers->setValue('server','tls',false);
|
||||
|
||||
# SASL auth
|
||||
$servers->setValue('server','sasl_auth',true);
|
||||
$servers->setValue('server','sasl_mech','PLAIN');
|
||||
$servers->setValue('server','sasl_realm','EXAMPLE.COM');
|
||||
$servers->setValue('server','sasl_authz_id',null);
|
||||
$servers->setValue('server','sasl_authz_id_regex','/^uid=([^,]+)(.+)/i');
|
||||
$servers->setValue('server','sasl_authz_id_replacement','$1');
|
||||
$servers->setValue('server','sasl_props',null);
|
||||
$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('appearance','pla_password_hash','md5');
|
||||
$servers->setValue('login','attr','dn');
|
||||
$servers->setValue('login','fallback_dn',false);
|
||||
$servers->setValue('login','class',null);
|
||||
@@ -542,6 +571,6 @@ $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('force_may','attrs',array('uidNumber','gidNumber','sambaSID'));
|
||||
$servers->setValue('server','force_may',array('uidNumber','gidNumber','sambaSID'));
|
||||
*/
|
||||
?>
|
||||
|
@@ -1,2 +1,2 @@
|
||||
Please see http://phpldapadmin.sourceforge.net/Translate now for information on
|
||||
Please see http://phpldapadmin.sourceforge.net/wiki/index.php/Translate now for information on
|
||||
translating PLA.
|
||||
|
@@ -1,12 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
for i in $(grep directory phpldapadmin-demo.conf|awk '{print $2}'); do
|
||||
rm -f $i/*.dbb $i/*.bdb $i/__db.??? $i/alock $i/log.*
|
||||
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
|
||||
|
992
doc/ldif-Flintstones
Normal file
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:: 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
|
||||
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:: 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
|
||||
iqfxArbpSvESlKURKUpRF//Z
|
||||
l: Bedrock
|
||||
loginshell: /bin/sh
|
||||
objectclass: inetOrgPerson
|
||||
objectclass: posixAccount
|
||||
objectclass: top
|
||||
sn: Rubble
|
||||
uid: hoppy
|
||||
uidnumber: 1009
|
@@ -1,461 +1,496 @@
|
||||
# extended LDIF
|
||||
#
|
||||
# LDAPv3
|
||||
# base <o=Simpsons> with scope subtree
|
||||
# filter: (objectclass=*)
|
||||
# requesting: ALL
|
||||
# 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
|
||||
|
||||
# Simpsons
|
||||
#version: 1
|
||||
|
||||
# Entry 1: o=Simpsons
|
||||
dn: o=Simpsons
|
||||
o: Simpsons
|
||||
objectClass: organization
|
||||
objectClass: top
|
||||
objectclass: organization
|
||||
objectclass: top
|
||||
|
||||
# People, Simpsons
|
||||
# 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
|
||||
objectClass: organizationalUnit
|
||||
objectClass: top
|
||||
|
||||
# Pets, Simpsons
|
||||
dn: ou=Pets,o=Simpsons
|
||||
ou: Pets
|
||||
objectClass: organizationalUnit
|
||||
objectClass: top
|
||||
|
||||
# Santas Little Helper, Pets, Simpsons
|
||||
dn: cn=Santas Little Helper,ou=Pets,o=Simpsons
|
||||
givenName: Santas Little Helper
|
||||
sn: Simpson
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: top
|
||||
jpegPhoto:: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFh
|
||||
EYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCI
|
||||
oOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCABn
|
||||
AEsDASIAAhEBAxEB/8QAGwABAAIDAQEAAAAAAAAAAAAAAAQGAgUHAwH/xAA8EAACAQMCAwYDAwkJA
|
||||
AAAAAABAgMABBEFIQYSMRMiQVFhcTKBkRRCogcVI5KhsbLB0TM0U2JygoPw8f/EABoBAAIDAQEAAA
|
||||
AAAAAAAAAAAAAEAwUGAgH/xAArEQACAgECAwcEAwAAAAAAAAABAgADEQQxEhMhBXGBkbHR8BQyQWF
|
||||
R4fH/2gAMAwEAAhEDEQA/AOwXNzDZ273FxIsUSDLOxwBXPdS46vYb+WeC4SOJMGK0lQASKTygsSOY
|
||||
EnyPd8tjm+6lp8Op2MlpcKGjfHUZwQcg+4IqkrwRpdlqsrzS3sskcSFRAOaR+duUkbE4XAzjpk52p
|
||||
bUV2uBy2xj55Rih6kJ5i5+es834l1uWTtRfiLO4ijhQoP1gWP1+le4451N4RIlnbARFhIDzEzcpwe
|
||||
XfuZx481e+ncP6d2WpT3ctxfrZzSRrHCzBsKoOCExzOc/uwBVbu9CWfigWFleXFurElO0O4Zo1bDA
|
||||
/eAYg59M771WrVrk3sGSfn4j5s0T7Iek6nY3cV9ZxXUBzHKgZfY171A0TT20vSLeyZ+YxKFzU+ruV
|
||||
EUpSiEUpSiE1Or8U6HoEscWq6nBaySjKI5JJHngdB6naqVrOpR67qf21Bm3ROS2yMEqdy3pzbfID1
|
||||
racafk6t+KdRTUFfspwgRjk4YDOMj5mtPJwfxTbgQQy2roMBX7PGB7Db9lV+vqvtQJUcfzHtFZRU/
|
||||
Hb4SOsn2NS8NzJZrjDNDMYgR4ZwRWKTrZTWuoIcrbSiViDzcynIY58diTn0r5ecMTaRe2sl7em5u3
|
||||
V2dG3CL0GB0G/l5GvUgEYIBB6g1nrjZpLVUtnhwf1L6rl6qpmC44un7nUopFliWRTlWGQRWdVXgnV
|
||||
O0s20mZ8zWgHZEnd4vun5fCfYedWqtdXYtiB12My1iNWxRtxFKUrucRSlKIRSlKITnnEsjScT3nMf
|
||||
7NYo19By8372Na2p3F7i04tkLryxTwREv4B8soz7gAe4x4itdHKJJZExjs2Cn6A/wA6xnaKn6lz8/
|
||||
E1ugYfToJ6RTT2l1FeWrBZ4DlcnAYeKn0I/kfCuj6VqkGrWCXcBIDbMjfEjDqp9RXMbR2ltInY5LK
|
||||
DmpGkaxfaffNd2PZGBu5JHITibG2Rj4cHIB3z5YxTXZ2t5BNdn2+n+xftDR84Cyv7vWdTpWp0XiC2
|
||||
1lWRVMNzGMvA5yQPMH7w9frittWnVldQynImcZSp4WGDFKUrqcxSlKISh8cRBtYUOoZJbPBBGQcM2
|
||||
f4qquiwNbWrK8rSk8jFmOTvGm30q3cfDlvbaTw+yzZ+RQ1VYTyWUzdMRKfpEtZzXr1t719Jf6FulX
|
||||
c3rPDTb9fsMEcsUsLiNVDOvdY48D/XFS9OAGmWuP8ABT+EVtLrTDHw3pl6Yw0RgEU4I2x90n03I+Y
|
||||
rVaevZW32bfNuxi38h8P4StJa/TiixlA6dD88Y5obzcisT12kpZJreaO5tnCXEJ5o2PTPkfQ9D6V0
|
||||
fR9Tj1fTIbyMcvaDvITujDYqfY5Fc2LqJAme8wJA9sf1FWLge8Md9e6eT3WCzoPfIb9q5+dOdj3kO
|
||||
ajseoiva1AKi0bjoZdaV8r7WkmeilKjahdiw0+e7MTyiFC5SMd5sDwohKd+URwssGQe7Z3BP4KrF6
|
||||
Oxsb1QPhiUAf8AClSOKOIU16ZFjWMSSRdhHHHL2hPM3eJwBgYFY8RwCM3lqw+IwxkH/MkY/nVFqBz
|
||||
eJl2LKJc6c8vCtuFYy32Wu6MNDi0+6ExXsuRw1uxHT2qm3Sw2Ooube4NxbYwZCjDC+GcjqucH0OfA
|
||||
1lr2haZoZt1Mk6vJEJDI8rIoz4DA3O2/ltWlF06L+g1KRgeoaJ3H4lJ/bUmrWy4ctsE9zevWcaVkq
|
||||
PGuQO9f6m4vG7ExXJ2WJsP6K2xPyOD7A1jBq35p4miuI5lSVIMcjnCSAse6x8Omx8PqDAtb63gtxF
|
||||
PcTTDBBQWpCY8gCCcfOrRwFoenahb3r3FpK6u2ENwMtyYH/nsBSWh0dnNycrjY4945rNXXy8DDZ3G
|
||||
faXnStVttXsxcW5II7skbfFG3kf8Au/UVOrnM9tdcD62kluzyWUgPIueqjdoz7DLL5YI6V0G3uI7m
|
||||
3jnicNHIoZSPEGtBVYWyrbj5mUViBcMux+YnrWLorqVYZB6isqVNIpp7fhXR7W9+2RWaCXOc+tVPj
|
||||
jTp4dVa9NvPPbS8j/oPiR1GN+mRsD710SvjIrjDKCPUVFbUtq8LSSqxq24llU4azxHpA/PNmZGhci
|
||||
NpkAYr4Zxtmt7HommRLypYwgf6RU5VVBhQAPICvtSAYGJwTk5kMaTp4P8Ac4f1RUmOKOJeWNFQeQG
|
||||
KzpXs8lc45WMaAJXKgxXEbKT5c3e/DzVr+F5p14asFy20WBt4Z2qJxleNrOswaHbEssbfpMdOY9fo
|
||||
Dj/c3lVzsbGKzsobdVGI1A6VCgzYz+Hln3xJXOEC+Pnj2kulKVNIopSlEIpSlEIpSlEJVOFtCktb2
|
||||
6vb0rJcGRsMDnOT1q10pXgAAwJ6SScmf//Z
|
||||
o: The Simpsons
|
||||
cn: Santas Little Helper
|
||||
|
||||
# Bart Simpson, People, Simpsons
|
||||
# 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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
|
||||
JJJJPJJoopOc5xu43SZGyMWYLDuXRRRRTU9f//Z
|
||||
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
|
||||
roomNumber: 45
|
||||
objectclass: inetOrgPerson
|
||||
objectclass: posixAccount
|
||||
objectclass: top
|
||||
objectclass: shadowAccount
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
st: 742 Evergreen Terrace
|
||||
telephonenumber: +1 939 555 3126
|
||||
uid: bart
|
||||
uidNumber: 1000
|
||||
userPassword:: ZWF0bXlzaG9ydHM=
|
||||
uidnumber: 1000
|
||||
userpassword: eatmyshorts
|
||||
|
||||
# Homer Simpson, People, Simpsons
|
||||
# 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:: 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
|
||||
k=
|
||||
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
|
||||
roomNumber: 45
|
||||
objectclass: inetOrgPerson
|
||||
objectclass: posixAccount
|
||||
objectclass: top
|
||||
objectclass: shadowAccount
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
st: 742 Evergreen Terrace
|
||||
telephonenumber: +1 939 555 3126
|
||||
uid: homer
|
||||
uidNumber: 1001
|
||||
userPassword:: ZWF0bXlzaG9ydHM=
|
||||
uidnumber: 1001
|
||||
userpassword: mmm.beer
|
||||
|
||||
# Lisa Simpson, People, Simpsons
|
||||
# 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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
|
||||
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
|
||||
roomNumber: 45
|
||||
objectclass: inetOrgPerson
|
||||
objectclass: posixAccount
|
||||
objectclass: top
|
||||
objectclass: shadowAccount
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
st: 742 Evergreen Terrace
|
||||
telephonenumber: +1 939 555 3126
|
||||
uid: lisa
|
||||
uidNumber: 1002
|
||||
userPassword:: YnJhaW5z
|
||||
uidnumber: 1002
|
||||
userpassword: brains
|
||||
|
||||
# Maggie Simpson, People, Simpsons
|
||||
# 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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
|
||||
CgYAGAKKKqexnO2O5oqorpGqxqf//Z
|
||||
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
|
||||
roomNumber: 45
|
||||
objectclass: inetOrgPerson
|
||||
objectclass: posixAccount
|
||||
objectclass: top
|
||||
objectclass: shadowAccount
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
st: 742 Evergreen Terrace
|
||||
telephonenumber: +1 939 555 3126
|
||||
uid: maggie
|
||||
uidNumber: 1003
|
||||
userPassword:: ZHVtbXk=
|
||||
uidnumber: 1003
|
||||
userpassword: dummy
|
||||
|
||||
# Marge Simpson, People, Simpsons
|
||||
# Entry 9: cn=Marge Simpson,ou=People,o=Simpsons
|
||||
dn: cn=Marge Simpson,ou=People,o=Simpsons
|
||||
gidNumber: 1000
|
||||
givenName: Marg
|
||||
homeDirectory: /home/users/simpsons/marg
|
||||
mail: marg.simpson@example.com
|
||||
o: The Simpsons
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: posixAccount
|
||||
objectClass: top
|
||||
objectClass: shadowAccount
|
||||
roomNumber: 45
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
uid: marg
|
||||
uidNumber: 1004
|
||||
userPassword:: Ymx1ZWhhaXI=
|
||||
cn: Marge Simpson
|
||||
jpegPhoto:: R0lGODlhhABwAIcAAAAAAAICBQIEAgUFAQUFBAICCwYICw4EBAsJAgkJCAgJDQ4NCA
|
||||
0NDQECEgEDGwsMEA4QDhMEAhILAhANARANBBYODhwCARoJARMQAhIQBBURARQRBBcVAhIQCBEQDRQ
|
||||
SDhgSABkUARwTARwVAB0YARISERsbGwIEIgIEKgEENAAEPAQINAQIOiMBASwCAiIbATUDAz0CAicg
|
||||
AiogASsjBCskAS0jAS0kAS4oBTEnATQqAjkuATswAz0xATwxBj80BCIiIikpKS8vLzQ0NDk5OT09P
|
||||
QIFQwEGTAQJRAMITQEFUQEGWwMIUwMIWgIIYwIIbAAGcQAGfwEIdAEIfEICAksBAVIBAV8AAEAzAU
|
||||
E1AUU2AUU3BEU4AUw8AVA+AWEBAWsCAnIBAXwBAU5ABFRDAlhGAVxHAltJAWFNAWBNBGJQBGVRAmp
|
||||
UAW1YAW1YBHFZAHFaBHFcAnRaAnVdAXVeBHleAHdgAntiAURERElJSU1NTVJSUllZWV1dXWFhYWVl
|
||||
ZWxsbHJycnV1dXt7ewAIg4QBAYwBAZIAAJsCAqICAqsCArQDA7sCAoFlAYRpAohqAIptAIxuAo1wA
|
||||
pN0AZZ5Bph3AJp7AaB/AYF/f8ECAssBAdMEBNwBAeICAuwBAfIBAf4AAJ6AAqGAAaODBKaCAKSCBK
|
||||
aEAKqGAayHAK2JAbKMAraRAruTAcKZAcOaBMadAMidAMqgAsugBM2hAc6iBM6kAtGlAdOoAdqsAdy
|
||||
uAd6wAOCuAOCxAOK0AOS1AOi3AOm5AO27AO+9AIKCgoWFhYuLi42NjZKSkpycnIyapI6cpZCdp5Gf
|
||||
qJajrJyosKOjo6qqqqWwt6WwuK23vrS0tLm5ub6+vrnCyLzEysPDw8DHzcjIyM3NzcTL0MXM0cjO0
|
||||
8nQ1NPT09DW2tfb39fc39jY2N3d3dzg497i5d/k5uHh4eDj5uDk5uXl5eHl6OTn6eXo6ufq7Onp6e
|
||||
rs7uzs7Ovt8O3u8O3w8fHx8fHz9PP19vX19ff4+Pn5+f39/QAAACH5BAAAAP8ALAAAAACEAHAAAAj
|
||||
/AAEIHEiwoMGDCBMqXMiwocOHDf1JnEixosWL/p41mEKoo8ePIEOKHEmyZEgUgzCqXIlRIMuXF/2g
|
||||
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
|
||||
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
|
||||
|
||||
# search result
|
||||
search: 2
|
||||
result: 0 Success
|
||||
# Entry 10: ou=Pets,o=Simpsons
|
||||
dn: ou=Pets,o=Simpsons
|
||||
objectclass: organizationalUnit
|
||||
objectclass: top
|
||||
ou: Pets
|
||||
|
||||
# numResponses: 10
|
||||
# numEntries: 9
|
||||
# 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
|
||||
|
@@ -1,588 +1,139 @@
|
||||
# extended LDIF
|
||||
#
|
||||
# LDAPv3
|
||||
# base <dc=example,dc=com> with scope subtree
|
||||
# filter: (objectclass=*)
|
||||
# requesting: ALL
|
||||
# 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
|
||||
|
||||
# example.com
|
||||
#version: 1
|
||||
|
||||
# Entry 1: dc=example,dc=com
|
||||
dn: dc=example,dc=com
|
||||
dc: example
|
||||
objectClass: dNSDomain
|
||||
objectclass: dNSDomain
|
||||
|
||||
# AU, example.com
|
||||
# Entry 2: c=AU,dc=example,dc=com
|
||||
dn: c=AU,dc=example,dc=com
|
||||
c: AU
|
||||
objectClass: country
|
||||
objectClass: top
|
||||
description: Australia
|
||||
objectclass: country
|
||||
objectclass: top
|
||||
|
||||
# DE, example.com
|
||||
# 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
|
||||
objectClass: country
|
||||
objectClass: top
|
||||
description: Germany
|
||||
objectclass: country
|
||||
objectclass: top
|
||||
|
||||
# GB, example.com
|
||||
dn: c=GB,dc=example,dc=com
|
||||
c: GB
|
||||
objectClass: country
|
||||
objectClass: top
|
||||
description: Great Britain
|
||||
# Entry 6: c=ES,dc=example,dc=com
|
||||
dn: c=ES,dc=example,dc=com
|
||||
c: ES
|
||||
objectclass: country
|
||||
objectclass: top
|
||||
|
||||
# FR, example.com
|
||||
# Entry 7: c=FR,dc=example,dc=com
|
||||
dn: c=FR,dc=example,dc=com
|
||||
c: FR
|
||||
objectClass: country
|
||||
objectClass: top
|
||||
description: France
|
||||
objectclass: country
|
||||
objectclass: top
|
||||
|
||||
# NO, example.com
|
||||
# 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
|
||||
objectclass: country
|
||||
objectclass: top
|
||||
|
||||
# SE, example.com
|
||||
# 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
|
||||
objectclass: country
|
||||
objectclass: top
|
||||
|
||||
# US, example.com
|
||||
# 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
|
||||
|
||||
# RU, example.com
|
||||
dn: c=RU,dc=example,dc=com
|
||||
c: RU
|
||||
objectClass: country
|
||||
objectClass: top
|
||||
|
||||
# \D0\A7\D0\B5\D0\BB\D0\BE\D0\B2\D0\B5\D0\BA\D0\B8, RU, example.com
|
||||
dn:: Y2490KfQtdC70L7QstC10LrQuCxjPVJVLGRjPWV4YW1wbGUsZGM9Y29t
|
||||
cn:: 0KfQtdC70L7QstC10LrQuA==
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: top
|
||||
sn:: 0KfQtdC70L7QstC10LrQuA==
|
||||
|
||||
# \D0\94\D0\B5\D0\B4 \D0\9B\D0\BE\D0\B3\D0\BE\D0\BF\D0\B5\D0\B4, \D0\A7\D0\B5
|
||||
\D0\BB\D0\BE\D0\B2\D0\B5\D0\BA\D0\B8, RU, example.com
|
||||
dn:: Y2490JTQtdC0INCb0L7Qs9C+0L/QtdC0LGNuPdCn0LXQu9C+0LLQtdC60LgsYz1SVSxkYz1le
|
||||
GFtcGxlLGRjPWNvbQ==
|
||||
cn:: 0JTQtdC0INCb0L7Qs9C+0L/QtdC0
|
||||
givenName:: 0JTQtdC0
|
||||
jpegPhoto:: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBw
|
||||
YIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQs
|
||||
NFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAw
|
||||
AEADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEA
|
||||
wUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKS
|
||||
o0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqK
|
||||
jpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QA
|
||||
HwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEB
|
||||
SExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSE
|
||||
lKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba
|
||||
3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9A/gj
|
||||
8Nx8IvhN4V8KPKsr6PpkNnJIv3WZV+Y/QnNc/wCINDutR1Q/Mux2yxHTFeTaP+17d+IfDN94w02OD
|
||||
W/ANsF+0apZKZHtHOMxyKPmDDK8Ed69G8IfEHR/ij4aTxD4cv4760VMkxEjacdGBAKn2IoA5Txn4K
|
||||
uIzO0v+rToyDjmvlL486HBb2jhdzEdNvrzXtvxB+NsNjeXdpFM7JFlQpbv6GvlD4qfE6/1Ca4nktW
|
||||
kgI24Tkd+goA+b/ESSRXkoJIwejCuWuZFfOQAfUV1HiC9vNVuGmj064RJOjvC4HHpxXGXwntZT50T
|
||||
p6FlIoAy9UQLE5A7VzDJ5h/Guj1aUi1ZvXisTyTGuDwR1oA/cX/gnT8CPFfwl/Z21nR/Gugpo9/rO
|
||||
pSXS6df7XdrdoUQCZATtJKt8p5xjPWvefh98HdE8D3d3qcNnb2lzPGYXisVaO2EI6IIySOPWvRulY
|
||||
XjjWYvD/hLVdQmfy4oLd3ZvQAUAfjx+0H42kHxR8TLajybdb2VY4lPAAY4FefeGbx9Q1yzlu7f+0r
|
||||
bdmSEt8x9QAeK1PiQi614n1LUlbi4neXn3Ymud0m9l0G6jlVC6E5OOoPqKAIPFPhq88O+Mr7V9J1i
|
||||
/trC4kMyWaiRHyf4Sn3BjpnJGKpT6yNe0lk1W0jN2DgTBAN49T716NqOrXXiC1807dm3rIcV5j4mb
|
||||
7KrZYbsHkUAeW+JIEt7hIYwCqtvwPb/ACKwXBySec1v39nPc3DTshCNwmR1HrVGfT2jIJHFAH9Gkf
|
||||
xQspdds7KKOWaGZtr3CITHEMcMzdAM4/OuR/aP1qLXPhtqOiaVdQzXV4hQ/PhQMcknFeXeAdRnSzR
|
||||
xG88UxGx9mVJPTnHGcGuk1+4h1LSnijRHkYlVjk4kVvQHHrQB+f8A4m/Zy8Y380kOnapokEZGS91c
|
||||
vk+wAQ1zq/svfEC5/cp4i0O2KHaR5UzsT/3yM19ea9aW8R3y3ElndKSWhdBtkB6HBxj6g1w+tarcx
|
||||
RRXLxS3mmxuE3ohCA9SNwwwP1oA8Ksv2WvHGAl143s40xjba6cznn/eYVFrX7LRuYUjbxa817nkTW
|
||||
B2MPqrEj9a9jXxZqt4DEkqoVb93DKN3b+8MEHjjI9Kq6j421mwSNL64ESSqytuYOj+gYdvqKAPAvF
|
||||
/wOv9EtR5z2tyEG3fDuX9GUYryPXfB15axs62ryxhtu+Ebxn6rmvpXW9cilF00+piYDO17cOVK9Mc
|
||||
9vqO1eQ+LNVSOd3g3NAvJMmUJ+vP9aAP/9k=
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: top
|
||||
sn:: 0JvQvtCz0L7Qv9C10LQ=
|
||||
|
||||
# IT, example.com
|
||||
dn: c=IT,dc=example,dc=com
|
||||
c: IT
|
||||
objectClass: country
|
||||
objectClass: top
|
||||
|
||||
# ES, example.com
|
||||
dn: c=ES,dc=example,dc=com
|
||||
c: ES
|
||||
objectClass: country
|
||||
objectClass: top
|
||||
|
||||
# Simpsons, US, example.com
|
||||
dn: o=Simpsons,c=US,dc=example,dc=com
|
||||
o: Simpsons
|
||||
objectClass: organization
|
||||
objectClass: top
|
||||
|
||||
# People, Simpsons, US, example.com
|
||||
dn: ou=People,o=Simpsons,c=US,dc=example,dc=com
|
||||
objectClass: organizationalUnit
|
||||
objectClass: top
|
||||
ou: People
|
||||
|
||||
# Bart Simpson, People, Simpsons, US, example.com
|
||||
dn: cn=Bart Simpson,ou=People,o=Simpsons,c=US,dc=example,dc=com
|
||||
cn: Bart Simpson
|
||||
gidNumber: 1000
|
||||
givenName: Bart
|
||||
homeDirectory: /home/users/simpsons/bart
|
||||
jpegPhoto:: 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
|
||||
JJJJPJJoopOc5xu43SZGyMWYLDuXRRRRTU9f//Z
|
||||
mail: bart.simpson@example.com
|
||||
o: The Simpsons
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: posixAccount
|
||||
objectClass: top
|
||||
objectClass: shadowAccount
|
||||
roomNumber: 45
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
uid: bart
|
||||
uidNumber: 1000
|
||||
userPassword:: ZWF0bXlzaG9ydHM=
|
||||
|
||||
# Homer Simpson, People, Simpsons, US, example.com
|
||||
dn: cn=Homer Simpson,ou=People,o=Simpsons,c=US,dc=example,dc=com
|
||||
cn: Homer Simpson
|
||||
gidNumber: 1000
|
||||
givenName: Homer
|
||||
homeDirectory: /home/users/simpsons/homer
|
||||
jpegPhoto:: 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
|
||||
k=
|
||||
mail: homer.simpson@example.com
|
||||
o: The Simpsons
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: posixAccount
|
||||
objectClass: top
|
||||
objectClass: shadowAccount
|
||||
roomNumber: 45
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
uid: homer
|
||||
uidNumber: 1001
|
||||
userPassword:: ZWF0bXlzaG9ydHM=
|
||||
|
||||
# Lisa Simpson, People, Simpsons, US, example.com
|
||||
dn: cn=Lisa Simpson,ou=People,o=Simpsons,c=US,dc=example,dc=com
|
||||
cn: Lisa Simpson
|
||||
gidNumber: 1000
|
||||
givenName: Lisa
|
||||
homeDirectory: /home/users/simpsons/lisa
|
||||
jpegPhoto:: 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
|
||||
mail: lisa.simpson@example.com
|
||||
o: The Simpsons
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: posixAccount
|
||||
objectClass: top
|
||||
objectClass: shadowAccount
|
||||
roomNumber: 45
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
uid: lisa
|
||||
uidNumber: 1002
|
||||
userPassword:: YnJhaW5z
|
||||
|
||||
# Maggie Simpson, People, Simpsons, US, example.com
|
||||
dn: cn=Maggie Simpson,ou=People,o=Simpsons,c=US,dc=example,dc=com
|
||||
cn: Maggie Simpson
|
||||
gidNumber: 1000
|
||||
givenName: Maggie
|
||||
homeDirectory: /home/users/simpsons/maggie
|
||||
jpegPhoto:: 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
|
||||
CgYAGAKKKqexnO2O5oqorpGqxqf//Z
|
||||
mail: maggie.simpson@example.com
|
||||
o: The Simpsons
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: posixAccount
|
||||
objectClass: top
|
||||
objectClass: shadowAccount
|
||||
roomNumber: 45
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
uid: maggie
|
||||
uidNumber: 1003
|
||||
userPassword:: ZHVtbXk=
|
||||
|
||||
# Marge Simpson, People, Simpsons, US, example.com
|
||||
dn: cn=Marge Simpson,ou=People,o=Simpsons,c=US,dc=example,dc=com
|
||||
cn: Marge Simpson
|
||||
gidNumber: 1000
|
||||
givenName: Marg
|
||||
homeDirectory: /home/users/simpsons/marg
|
||||
jpegPhoto:: R0lGODlhhABwAIcAAAAAAAICBQIEAgUFAQUFBAICCwYICw4EBAsJAgkJCAgJDQ4NCA
|
||||
0NDQECEgEDGwsMEA4QDhMEAhILAhANARANBBYODhwCARoJARMQAhIQBBURARQRBBcVAhIQCBEQDRQ
|
||||
SDhgSABkUARwTARwVAB0YARISERsbGwIEIgIEKgEENAAEPAQINAQIOiMBASwCAiIbATUDAz0CAicg
|
||||
AiogASsjBCskAS0jAS0kAS4oBTEnATQqAjkuATswAz0xATwxBj80BCIiIikpKS8vLzQ0NDk5OT09P
|
||||
QIFQwEGTAQJRAMITQEFUQEGWwMIUwMIWgIIYwIIbAAGcQAGfwEIdAEIfEICAksBAVIBAV8AAEAzAU
|
||||
E1AUU2AUU3BEU4AUw8AVA+AWEBAWsCAnIBAXwBAU5ABFRDAlhGAVxHAltJAWFNAWBNBGJQBGVRAmp
|
||||
UAW1YAW1YBHFZAHFaBHFcAnRaAnVdAXVeBHleAHdgAntiAURERElJSU1NTVJSUllZWV1dXWFhYWVl
|
||||
ZWxsbHJycnV1dXt7ewAIg4QBAYwBAZIAAJsCAqICAqsCArQDA7sCAoFlAYRpAohqAIptAIxuAo1wA
|
||||
pN0AZZ5Bph3AJp7AaB/AYF/f8ECAssBAdMEBNwBAeICAuwBAfIBAf4AAJ6AAqGAAaODBKaCAKSCBK
|
||||
aEAKqGAayHAK2JAbKMAraRAruTAcKZAcOaBMadAMidAMqgAsugBM2hAc6iBM6kAtGlAdOoAdqsAdy
|
||||
uAd6wAOCuAOCxAOK0AOS1AOi3AOm5AO27AO+9AIKCgoWFhYuLi42NjZKSkpycnIyapI6cpZCdp5Gf
|
||||
qJajrJyosKOjo6qqqqWwt6WwuK23vrS0tLm5ub6+vrnCyLzEysPDw8DHzcjIyM3NzcTL0MXM0cjO0
|
||||
8nQ1NPT09DW2tfb39fc39jY2N3d3dzg497i5d/k5uHh4eDj5uDk5uXl5eHl6OTn6eXo6ufq7Onp6e
|
||||
rs7uzs7Ovt8O3u8O3w8fHx8fHz9PP19vX19ff4+Pn5+f39/QAAACH5BAAAAP8ALAAAAACEAHAAAAj
|
||||
/AAEIHEiwoMGDCBMqXMiwocOHDf1JnEixosWL/p41mEKoo8ePIEOKHEmyZEgUgzCqXIlRIMuXF/2g
|
||||
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
|
||||
mail: marg.simpson@example.com
|
||||
o: The Simpsons
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: posixAccount
|
||||
objectClass: top
|
||||
objectClass: shadowAccount
|
||||
roomNumber: 45
|
||||
sn: Simpson
|
||||
telephoneNumber: +15551234567
|
||||
uid: marg
|
||||
uidNumber: 1004
|
||||
userPassword:: Ymx1ZWhhaXI=
|
||||
|
||||
# Pets, Simpsons, US, example.com
|
||||
dn: ou=Pets,o=Simpsons,c=US,dc=example,dc=com
|
||||
objectClass: organizationalUnit
|
||||
objectClass: top
|
||||
ou: Pets
|
||||
|
||||
# Santas Little Helper, Pets, Simpsons, US, example.com
|
||||
dn: cn=Santas Little Helper,ou=Pets,o=Simpsons,c=US,dc=example,dc=com
|
||||
cn: Santas Little Helper
|
||||
givenName: Santas Little Helper
|
||||
jpegPhoto:: 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
|
||||
6vb0rJcGRsMDnOT1q10pXgAAwJ6SScmf//Z
|
||||
o: The Simpsons
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: top
|
||||
sn: Simpson
|
||||
|
||||
# simpsons, Simpsons, US, example.com
|
||||
dn: cn=simpsons,o=Simpsons,c=US,dc=example,dc=com
|
||||
cn: simpsons
|
||||
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
|
||||
|
||||
# search result
|
||||
search: 2
|
||||
result: 0 Success
|
||||
|
||||
# numResponses: 24
|
||||
# numEntries: 23
|
||||
objectclass: country
|
||||
objectclass: top
|
||||
|
@@ -1,215 +1,165 @@
|
||||
# extended LDIF
|
||||
#
|
||||
# LDAPv3
|
||||
# base <dc=example.com> with scope subtree
|
||||
# filter: (objectclass=*)
|
||||
# requesting: ALL
|
||||
# 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
|
||||
|
||||
# example.com
|
||||
#version: 1
|
||||
|
||||
# Entry 1: dc=example.com
|
||||
dn: dc=example.com
|
||||
dc: example.com
|
||||
objectClass: dNSDomain
|
||||
objectclass: dNSDomain
|
||||
|
||||
# Bad DNs, example.com
|
||||
# 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
|
||||
objectClass: organizationalUnit
|
||||
|
||||
# double plus \2B\2B, Bad DNs, example.com
|
||||
# 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
|
||||
objectclass: country
|
||||
|
||||
# end dollar$, Bad DNs, example.com
|
||||
# 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
|
||||
objectclass: country
|
||||
|
||||
# multi + value, Bad DNs, example.com
|
||||
# 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
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# quote\22double, Bad DNs, example.com
|
||||
# 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
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# quote'single, Bad DNs, example.com
|
||||
# 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
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# angle\3Cleft, Bad DNs, example.com
|
||||
dn: uid=angle\3Cleft,ou=Bad DNs,dc=example.com
|
||||
cn: Test
|
||||
sn: Test
|
||||
uid: angle<left
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# angle\3Eright, Bad DNs, example.com
|
||||
dn: uid=angle\3Eright,ou=Bad DNs,dc=example.com
|
||||
cn: Test
|
||||
sn: Test
|
||||
uid: angle>right
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# sign@at, Bad DNs, example.com
|
||||
dn: uid=sign@at,ou=Bad DNs,dc=example.com
|
||||
cn: Test
|
||||
sn: Test
|
||||
uid: sign@at
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# sign\3Bsemicolon@at, Bad DNs, example.com
|
||||
dn: uid=sign\3Bsemicolon@at,ou=Bad DNs,dc=example.com
|
||||
cn: Test
|
||||
sn: Test
|
||||
uid: sign;semicolon@at
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# sign?question, Bad DNs, example.com
|
||||
dn: uid=sign?question,ou=Bad DNs,dc=example.com
|
||||
cn: Test
|
||||
sn: Test
|
||||
uid: sign?question
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# sign\2Ccomma, Bad DNs, example.com
|
||||
dn: uid=sign\2Ccomma,ou=Bad DNs,dc=example.com
|
||||
cn: Test
|
||||
sn: Test
|
||||
uid: sign,comma
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# brace(left, Bad DNs, example.com
|
||||
dn: uid=brace(left,ou=Bad DNs,dc=example.com
|
||||
cn: Test
|
||||
sn: Test
|
||||
uid: brace(left
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# brace)right, Bad DNs, example.com
|
||||
dn: uid=brace)right,ou=Bad DNs,dc=example.com
|
||||
cn: Test
|
||||
sn: Test
|
||||
uid: brace)right
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# sign%percent, Bad DNs, example.com
|
||||
# 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
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# sign\3Dequal, Bad DNs, example.com
|
||||
dn: uid=sign\3Dequal,ou=Bad DNs,dc=example.com
|
||||
uid: sign=equal
|
||||
cn: Test
|
||||
sn: Test
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# sign\2Bplus, Bad DNs, example.com
|
||||
# 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
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# colon\3Bsemi, Bad DNs, example.com
|
||||
dn: uid=colon\3Bsemi,ou=Bad DNs,dc=example.com
|
||||
# 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: colon;semi
|
||||
objectClass: inetOrgPerson
|
||||
uid: sign,comma
|
||||
|
||||
# colon:full, Bad DNs, example.com
|
||||
dn: uid=colon:full,ou=Bad DNs,dc=example.com
|
||||
# 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: colon:full
|
||||
objectClass: inetOrgPerson
|
||||
uid: sign;semicolon@at
|
||||
|
||||
# multi + sign@at, Bad DNs, example.com
|
||||
dn: uid=multi+uid=sign@at,ou=Bad DNs,dc=example.com
|
||||
# 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: multi
|
||||
uid: sign@at
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# sign@at + multi-mixed, Bad DNs, example.com
|
||||
dn: sn=sign@at+uid=multi-mixed,ou=Bad DNs,dc=example.com
|
||||
cn: Test
|
||||
uid: multi-mixed
|
||||
sn: sign@at
|
||||
objectClass: inetOrgPerson
|
||||
|
||||
# Non English Chars, example.com
|
||||
dn: ou=Non English Chars,dc=example.com
|
||||
ou: Non English Chars
|
||||
objectClass: organizationalUnit
|
||||
objectClass: top
|
||||
|
||||
# \D0\A7\D0\B5\D0\BB\D0\BE\D0\B2\D0\B5\D0\BA\D0\B8, Non English Chars, exampl
|
||||
e.com
|
||||
dn:: Y2490KfQtdC70L7QstC10LrQuCxvdT1Ob24gRW5nbGlzaCBDaGFycyxkYz1leGFtcGxlLmNvb
|
||||
Q==
|
||||
cn:: 0KfQtdC70L7QstC10LrQuA==
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: top
|
||||
sn:: 0KfQtdC70L7QstC10LrQuA==
|
||||
|
||||
# \D0\94\D0\B5\D0\B4 \D0\9B\D0\BE\D0\B3\D0\BE\D0\BF\D0\B5\D0\B4, \D0\A7\D0\B5
|
||||
\D0\BB\D0\BE\D0\B2\D0\B5\D0\BA\D0\B8, Non English Chars, example.com
|
||||
dn:: Y2490JTQtdC0INCb0L7Qs9C+0L/QtdC0LGNuPdCn0LXQu9C+0LLQtdC60Lgsb3U9Tm9uIEVuZ
|
||||
2xpc2ggQ2hhcnMsZGM9ZXhhbXBsZS5jb20=
|
||||
cn:: 0JTQtdC0INCb0L7Qs9C+0L/QtdC0
|
||||
givenName:: 0JTQtdC0
|
||||
jpegPhoto:: /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBw
|
||||
YIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQs
|
||||
NFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAw
|
||||
AEADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEA
|
||||
wUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKS
|
||||
o0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqK
|
||||
jpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QA
|
||||
HwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEB
|
||||
SExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSE
|
||||
lKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba
|
||||
3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9A/gj
|
||||
8Nx8IvhN4V8KPKsr6PpkNnJIv3WZV+Y/QnNc/wCINDutR1Q/Mux2yxHTFeTaP+17d+IfDN94w02OD
|
||||
W/ANsF+0apZKZHtHOMxyKPmDDK8Ed69G8IfEHR/ij4aTxD4cv4760VMkxEjacdGBAKn2IoA5Txn4K
|
||||
uIzO0v+rToyDjmvlL486HBb2jhdzEdNvrzXtvxB+NsNjeXdpFM7JFlQpbv6GvlD4qfE6/1Ca4nktW
|
||||
kgI24Tkd+goA+b/ESSRXkoJIwejCuWuZFfOQAfUV1HiC9vNVuGmj064RJOjvC4HHpxXGXwntZT50T
|
||||
p6FlIoAy9UQLE5A7VzDJ5h/Guj1aUi1ZvXisTyTGuDwR1oA/cX/gnT8CPFfwl/Z21nR/Gugpo9/rO
|
||||
pSXS6df7XdrdoUQCZATtJKt8p5xjPWvefh98HdE8D3d3qcNnb2lzPGYXisVaO2EI6IIySOPWvRulY
|
||||
XjjWYvD/hLVdQmfy4oLd3ZvQAUAfjx+0H42kHxR8TLajybdb2VY4lPAAY4FefeGbx9Q1yzlu7f+0r
|
||||
bdmSEt8x9QAeK1PiQi614n1LUlbi4neXn3Ymud0m9l0G6jlVC6E5OOoPqKAIPFPhq88O+Mr7V9J1i
|
||||
/trC4kMyWaiRHyf4Sn3BjpnJGKpT6yNe0lk1W0jN2DgTBAN49T716NqOrXXiC1807dm3rIcV5j4mb
|
||||
7KrZYbsHkUAeW+JIEt7hIYwCqtvwPb/ACKwXBySec1v39nPc3DTshCNwmR1HrVGfT2jIJHFAH9Gkf
|
||||
xQspdds7KKOWaGZtr3CITHEMcMzdAM4/OuR/aP1qLXPhtqOiaVdQzXV4hQ/PhQMcknFeXeAdRnSzR
|
||||
xG88UxGx9mVJPTnHGcGuk1+4h1LSnijRHkYlVjk4kVvQHHrQB+f8A4m/Zy8Y380kOnapokEZGS91c
|
||||
vk+wAQ1zq/svfEC5/cp4i0O2KHaR5UzsT/3yM19ea9aW8R3y3ElndKSWhdBtkB6HBxj6g1w+tarcx
|
||||
RRXLxS3mmxuE3ohCA9SNwwwP1oA8Ksv2WvHGAl143s40xjba6cznn/eYVFrX7LRuYUjbxa817nkTW
|
||||
B2MPqrEj9a9jXxZqt4DEkqoVb93DKN3b+8MEHjjI9Kq6j421mwSNL64ESSqytuYOj+gYdvqKAPAvF
|
||||
/wOv9EtR5z2tyEG3fDuX9GUYryPXfB15axs62ryxhtu+Ebxn6rmvpXW9cilF00+piYDO17cOVK9Mc
|
||||
9vqO1eQ+LNVSOd3g3NAvJMmUJ+vP9aAP/9k=
|
||||
objectClass: inetOrgPerson
|
||||
objectClass: top
|
||||
sn:: 0JvQvtCz0L7Qv9C10LQ=
|
||||
|
||||
# search result
|
||||
search: 2
|
||||
result: 0 Success
|
||||
|
||||
# numResponses: 26
|
||||
# numEntries: 25
|
||||
|
@@ -1,4 +1,6 @@
|
||||
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
|
||||
@@ -11,23 +13,33 @@ access to dn.regex="o=Simpsons$" attrs=userpassword
|
||||
|
||||
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=Simpsons$"
|
||||
access to dn.regex="o=Flintstones$"
|
||||
by dn.regex="o=Simpsons$" none
|
||||
by self write
|
||||
by dn.regex="cn=.*,ou=Pets,o=Simpsons" 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 bdb
|
||||
database ldbm
|
||||
suffix "dc=example.com"
|
||||
rootdn "cn=Manager,dc=example.com"
|
||||
rootpw NotAllowed
|
||||
directory /var/lib/ldap/pla-1
|
||||
directory /var/lib/ldap/base-example.com
|
||||
dirtyread
|
||||
cachesize 2000
|
||||
checkpoint 32 1
|
||||
@@ -38,11 +50,11 @@ index uidNumber,gidNumber,loginShell eq,pres
|
||||
index uid,memberUid eq,pres,sub
|
||||
index nisMapName,nisMapEntry eq,pres,sub
|
||||
|
||||
database bdb
|
||||
database ldbm
|
||||
suffix "dc=example,dc=com"
|
||||
rootdn "cn=Manager,dc=example,dc=com"
|
||||
rootpw NotAllowed
|
||||
directory /var/lib/ldap/pla-2
|
||||
directory /var/lib/ldap/base-example-com
|
||||
dirtyread
|
||||
cachesize 2000
|
||||
checkpoint 32 1
|
||||
@@ -53,11 +65,29 @@ index uidNumber,gidNumber,loginShell eq,pres
|
||||
index uid,memberUid eq,pres,sub
|
||||
index nisMapName,nisMapEntry eq,pres,sub
|
||||
|
||||
database bdb
|
||||
database ldbm
|
||||
suffix "o=Simpsons"
|
||||
rootdn "cn=Manager,o=Simpsons"
|
||||
rootpw NotAllowed
|
||||
directory /var/lib/ldap/pla-3
|
||||
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
|
||||
|
@@ -19,7 +19,7 @@ $request['dn'] = get_request('dn','GET');
|
||||
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,'none'));
|
||||
$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();
|
||||
@@ -29,7 +29,7 @@ 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 '<center>';
|
||||
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')) {
|
||||
@@ -50,6 +50,7 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
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" />';
|
||||
@@ -75,6 +76,7 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
|
||||
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 {
|
||||
@@ -90,6 +92,7 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
|
||||
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" />';
|
||||
@@ -124,6 +127,7 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
else
|
||||
printf('<br /><small><b>%s: %s</b></small><br />',_('Maximum file size'),ini_get('upload_max_filesize'));
|
||||
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
|
||||
} else {
|
||||
@@ -138,7 +142,7 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
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>';
|
||||
echo '<table class="entry" cellspacing="0" align="center" border="0">';
|
||||
|
||||
foreach ($request['template']->getAvailAttrs() as $attribute)
|
||||
$request['page']->draw('Template',$attribute);
|
||||
@@ -153,7 +157,7 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
printf('<small>(%s)</small>',_('no new attributes available for this entry'));
|
||||
}
|
||||
|
||||
echo '</center>';
|
||||
echo '</div>';
|
||||
|
||||
# The ajax addition (it is going into an existing TemplateRendered page
|
||||
} else {
|
||||
@@ -161,11 +165,11 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
echo '<fieldset>';
|
||||
printf('<legend>%s</legend>',_('Add Attribute'));
|
||||
echo '<div id="ajADDATTR">';
|
||||
echo '<table class="entry" cellspacing="0" align="center" border=0>';
|
||||
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&meth=ajax&attr=\'+this.value,\'%s\',\'append\');">',
|
||||
'ADDATTR',$app['server']->getIndex(),rawurlencode(get_request('dn','REQUEST')),_('Please Wait'));
|
||||
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)
|
||||
|
@@ -23,7 +23,7 @@ $request['dn'] = get_request('dn','REQUEST',true);
|
||||
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,'none'));
|
||||
$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();
|
||||
@@ -60,7 +60,7 @@ 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 '<center>';
|
||||
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'),
|
||||
@@ -69,7 +69,8 @@ if (count($ldap['attrs']['need']) > 0) {
|
||||
|
||||
echo '<br /><br />';
|
||||
|
||||
echo '<form action="cmd.php" method="post" name="entry_form">';
|
||||
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" />';
|
||||
@@ -78,27 +79,25 @@ if (count($ldap['attrs']['need']) > 0) {
|
||||
|
||||
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">';
|
||||
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;
|
||||
foreach ($request['template']->getAttribute('objectclass')->getValues() as $value) {
|
||||
echo '<tr><td colspan=2>';
|
||||
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>';
|
||||
}
|
||||
echo '</td></tr>';
|
||||
|
||||
foreach ($ldap['attrs']['need'] as $count => $attr)
|
||||
$request['page']->draw('Template',$attr);
|
||||
|
||||
echo '</table>';
|
||||
|
||||
echo '<br />';
|
||||
|
||||
printf('<center><input type="submit" value="%s" /></center>',_('Add ObjectClass and Attributes'));
|
||||
printf('<div style="text-align: center;"><br /><input type="submit" value="%s" /></div>',_('Add ObjectClass and Attributes'));
|
||||
echo '</form>';
|
||||
echo '</center>';
|
||||
echo '</div>';
|
||||
|
||||
# There are no other required attributes, so we just need to add the objectclass to the DN.
|
||||
} else {
|
||||
@@ -108,6 +107,9 @@ if (count($ldap['attrs']['need']) > 0) {
|
||||
$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();
|
||||
}
|
||||
|
@@ -21,7 +21,7 @@ $request['attr'] = get_request('attr','GET',true);
|
||||
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,'none'));
|
||||
$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();
|
||||
@@ -32,17 +32,19 @@ if ($request['attribute']->isReadOnly())
|
||||
*/
|
||||
|
||||
# Render the form
|
||||
if (get_request('meth','REQUEST') != 'ajax') {
|
||||
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'),$request['attr'],_('value to'),get_rdn($request['dn'])));
|
||||
$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" name="entry_form">';
|
||||
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" name="entry_form" enctype="multipart/form-data" onSubmit="return submitForm(this)">';
|
||||
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
|
||||
@@ -51,9 +53,9 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
|
||||
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 '<center>';
|
||||
echo '<table class="forminput" border=0>';
|
||||
echo '<table class="forminput" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||
echo '<tr>';
|
||||
|
||||
$request['attribute'] = $request['template']->getAttribute($request['attr']);
|
||||
@@ -66,7 +68,7 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
echo '<td>';
|
||||
|
||||
# Display current attribute values
|
||||
echo '<table border=0><tr><td>';
|
||||
echo '<table border="0"><tr><td>';
|
||||
for ($i=0;$i<$request['count'];$i++) {
|
||||
if ($i > 0)
|
||||
echo '<br/>';
|
||||
@@ -97,9 +99,9 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
unset($socs[strtolower($oclass)]);
|
||||
|
||||
# Draw objectClass selection
|
||||
echo '<table border=0>';
|
||||
echo '<table border="0">';
|
||||
echo '<tr><td>';
|
||||
echo '<select name="new_values[objectclass][]" multiple="true" size="15">';
|
||||
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()))
|
||||
@@ -111,22 +113,23 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
echo '</td></tr><tr><td>';
|
||||
|
||||
echo '<br />';
|
||||
printf('<input id="save_button" type="submit" value="%s" />',_('Add new ObjectClass'));
|
||||
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>',
|
||||
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 '</center>';
|
||||
echo '</form>';
|
||||
|
||||
} else {
|
||||
# Draw a blank field
|
||||
echo '<table border=0><tr><td>';
|
||||
echo '<table border="0"><tr><td>';
|
||||
$request['page']->draw('FormValue',$request['attribute'],$request['count']);
|
||||
echo '</td></tr><tr><td>';
|
||||
|
||||
@@ -148,7 +151,6 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
|
||||
echo '</td></tr>';
|
||||
echo '</table>';
|
||||
echo '</center>';
|
||||
echo '</form>';
|
||||
}
|
||||
|
||||
@@ -158,8 +160,9 @@ if (get_request('meth','REQUEST') != 'ajax') {
|
||||
$attribute = $request['template']->getAttribute($request['attr']);
|
||||
$attribute->show();
|
||||
|
||||
echo '<table class="entry" cellspacing="0" align="center" border=0>';
|
||||
echo '<table class="entry" cellspacing="0" align="center" border="0">';
|
||||
$request['page']->draw('Template',$attribute);
|
||||
$request['page']->draw('Javascript',$attribute);
|
||||
echo '</table>';
|
||||
|
||||
} else {
|
||||
|
@@ -19,10 +19,6 @@ $www['meth'] = get_request('meth','REQUEST');
|
||||
ob_start();
|
||||
|
||||
switch ($www['cmd']) {
|
||||
case '_debug':
|
||||
debug_dump($_REQUEST,1);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (defined('HOOKSDIR') && file_exists(HOOKSDIR.$www['cmd'].'.php'))
|
||||
$app['script_cmd'] = HOOKSDIR.$www['cmd'].'.php';
|
||||
@@ -51,9 +47,12 @@ if (trim($www['cmd'])) {
|
||||
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']))
|
||||
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'),$www['cmd']),'type'=>'error'),'index.php');
|
||||
_('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'])
|
||||
@@ -62,7 +61,7 @@ if ($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&meth=ajax&noheader=%s','%s');",
|
||||
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>';
|
||||
}
|
||||
|
@@ -43,32 +43,34 @@ $request['pageSRC']->drawTitle(_('Comparing the following DNs'));
|
||||
|
||||
echo '<br/>';
|
||||
|
||||
echo '<table class="entry" width=100% border=0>';
|
||||
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 width=40%%>%s: <b>%s</b><br />%s: <b><a href="%s">%s</a></b></td>',
|
||||
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 width=40%%>%s: <b>%s</b><br />%s: <b><a href="%s">%s</a></b></td>',
|
||||
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 align=right>';
|
||||
echo '<form action="cmd.php?cmd=compare" method="post" name="compare_form">';
|
||||
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>';
|
||||
@@ -110,13 +112,13 @@ foreach ($attrs_all as $attr) {
|
||||
echo '<td class="title"> </td>';
|
||||
|
||||
else {
|
||||
echo '<td class="note" align="right">';
|
||||
echo '<td class="note" style="text-align: right;">';
|
||||
$request['pageSRC']->draw('Notes',$attributeSRC);
|
||||
echo '</td>';
|
||||
}
|
||||
|
||||
} else {
|
||||
echo '<td colspan=2> </td>';
|
||||
echo '<td colspan="2"> </td>';
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -132,12 +134,12 @@ foreach ($attrs_all as $attr) {
|
||||
echo '</td>';
|
||||
}
|
||||
|
||||
echo '<td class="note" align="right">';
|
||||
echo '<td class="note" style="text-align: right;">';
|
||||
$request['pageDST']->draw('Notes',$attributeDST);
|
||||
echo '</td>';
|
||||
|
||||
} else {
|
||||
echo '<td colspan=2> </td>';
|
||||
echo '<td colspan="2"> </td>';
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -154,31 +156,30 @@ foreach ($attrs_all as $attr) {
|
||||
echo '<tr>';
|
||||
|
||||
foreach (array('src','dst') as $side) {
|
||||
echo '<td class="value" colspan="2"><table border="0">';
|
||||
echo '<tr><td>';
|
||||
|
||||
switch ($side) {
|
||||
case 'src':
|
||||
echo '<td class="value" colspan=2><table border=0>';
|
||||
|
||||
if ($attributeSRC && count($attributeSRC->getValues()))
|
||||
$request['pageSRC']->draw('CurrentValues',$attributeSRC);
|
||||
else
|
||||
echo '<tr><td> </td></tr>';
|
||||
|
||||
echo '</table></td>';
|
||||
echo ' ';
|
||||
|
||||
break;
|
||||
|
||||
case 'dst':
|
||||
echo '<td class="value" colspan=2><table>';
|
||||
|
||||
if ($attributeDST && count($attributeDST->getValues()))
|
||||
$request['pageDST']->draw('CurrentValues',$attributeDST);
|
||||
else
|
||||
echo '<tr><td> </td></tr>';
|
||||
|
||||
echo '</table></td>';
|
||||
echo ' ';
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
echo '</td></tr>';
|
||||
echo '</table></td>';
|
||||
}
|
||||
|
||||
echo '</tr>';
|
||||
|
@@ -28,25 +28,28 @@ $request['page']->accept();
|
||||
$request['page']->drawTitle(sprintf('%s <b>%s</b>',_('Compare another DN with'),get_rdn($request['dn'])));
|
||||
$request['page']->drawSubTitle();
|
||||
|
||||
printf('<script type="text/javascript" language="javascript" src="%sdnChooserPopup.js"></script>',JSDIR);
|
||||
echo '<center>';
|
||||
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" name="compare_form">';
|
||||
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 style="border-spacing: 10px">';
|
||||
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','');
|
||||
draw_chooser_link('compare_form','dn_dst','true','');
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
echo "\n";
|
||||
@@ -54,10 +57,9 @@ 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" align="right"><input type="submit" value="%s" /></td></tr>',_('Compare'));
|
||||
printf('<tr><td colspan="2" style="text-align: center;"><input type="submit" value="%s" /></td></tr>',_('Compare'));
|
||||
echo "\n";
|
||||
|
||||
echo '</table>';
|
||||
echo '</form>';
|
||||
echo '</center>';
|
||||
?>
|
||||
|
@@ -63,16 +63,43 @@ if ($request['recursive']) {
|
||||
print '</small>';
|
||||
|
||||
} else {
|
||||
$copy_result = copy_dn($ldap['SRC'],$ldap['DST'],$request['dnSRC'],$request['dnDST'],$request['remove']);
|
||||
if ($_SESSION[APPCONFIG]->getValue('confirm','copy') && !$request['remove']) {
|
||||
$request['pageSRC'] = new TemplateRender($ldap['SRC']->getIndex(),get_request('template','REQUEST',false,null));
|
||||
$request['pageSRC']->setDN($request['dnSRC']);
|
||||
$request['pageSRC']->accept(true);
|
||||
|
||||
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.'));
|
||||
$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) {
|
||||
|
@@ -27,25 +27,28 @@ $request['page']->accept();
|
||||
$request['page']->drawTitle(sprintf('%s <b>%s</b>',_('Copy'),get_rdn($request['dn'])));
|
||||
$request['page']->drawSubTitle();
|
||||
|
||||
printf('<script type="text/javascript" language="javascript" src="%sdnChooserPopup.js"></script>',JSDIR);
|
||||
echo '<center>';
|
||||
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" name="copy_form">';
|
||||
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 style="border-spacing: 10px">';
|
||||
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']));
|
||||
draw_chooser_link('copy_form','dn_dst','true',get_rdn($request['dn']));
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
echo "\n";
|
||||
@@ -59,7 +62,7 @@ $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)" />';
|
||||
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";
|
||||
@@ -83,19 +86,18 @@ if (count($request['children']) > 0) {
|
||||
}
|
||||
echo "\n";
|
||||
|
||||
printf('<tr><td colspan="2" align="right"><input type="submit" value="%s" /></td></tr>',_('Copy '));
|
||||
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('<small><img src="%s/light.png" alt="Light" /><span class="hint">%s</span></small>',
|
||||
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'));
|
||||
|
||||
echo '</center>';
|
||||
|
||||
# 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" language="javascript" src="%sform_field_toggle_enable.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sform_field_toggle_enable.js"></script>',JSDIR);
|
||||
?>
|
||||
|
@@ -25,19 +25,17 @@ $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()))
|
||||
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'])
|
||||
if (! $request['container'] && ! get_request('create_base')) {
|
||||
$tree->addEntry($request['template']->getContainer());
|
||||
|
||||
$request['container'] = $tree->getEntry($request['template']->getContainer());
|
||||
|
||||
if ($request['container']->isLeaf())
|
||||
error(sprintf(_('The container (%s) is a leaf.'),$request['template']->getContainer()),'error','index.php');
|
||||
$request['container'] = $tree->getEntry($request['template']->getContainer());
|
||||
}
|
||||
|
||||
# Check our RDN
|
||||
if (! count($request['template']->getRDNAttrs()))
|
||||
@@ -66,11 +64,11 @@ if ($add_result) {
|
||||
|
||||
else if ($action_number == 2)
|
||||
$redirect_url = sprintf('cmd.php?%s&template=%s&container=%s',
|
||||
$href,$request['template']->getID(),rawurlencode($request['template']->getContainer()));
|
||||
$href,'default',$request['template']->getContainerEncode());
|
||||
|
||||
else
|
||||
$redirect_url = sprintf('cmd.php?%s&template=%s&dn=%s',
|
||||
$href,$request['template']->getID(),rawurlencode($request['template']->getDN()));
|
||||
$href,'default',$request['template']->getDNEncode());
|
||||
|
||||
if ($action_number == 1 || $action_number == 2)
|
||||
printf('<meta http-equiv="refresh" content="0; url=%s" />',$redirect_url);
|
||||
|
@@ -24,14 +24,12 @@ if (! $request['template']->getContainer() || ! $app['server']->dnExists($reques
|
||||
|
||||
# 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'])
|
||||
if (! $request['container']) {
|
||||
$tree->addEntry($request['template']->getContainer());
|
||||
|
||||
$request['container'] = $tree->getEntry($request['template']->getContainer());
|
||||
|
||||
if ($request['container']->isLeaf())
|
||||
error(sprintf(_('The container (%s) is a leaf.'),$request['template']->getContainer()),'error','index.php');
|
||||
$request['container'] = $tree->getEntry($request['template']->getContainer());
|
||||
}
|
||||
|
||||
# Check our RDN
|
||||
if (! count($request['template']->getRDNAttrs()))
|
||||
@@ -57,23 +55,26 @@ $request['page']->drawSubTitle(sprintf('%s: <b>%s</b> %s: <b>%s
|
||||
|
||||
# Confirm the creation
|
||||
if (count($request['template']->getLDAPadd(true))) {
|
||||
echo '<center>';
|
||||
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">';
|
||||
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" />',htmlspecialchars($request['template']->getContainer()));
|
||||
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">';
|
||||
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>',
|
||||
@@ -81,7 +82,7 @@ if (count($request['template']->getLDAPadd(true))) {
|
||||
echo "\n\n";
|
||||
|
||||
$counter = 0;
|
||||
printf('<tr class="%s"><td colspan=3><center><b>%s</b></center></td><tr>',$counter%2 ? 'even' : 'odd',$request['template']->getDN());
|
||||
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++;
|
||||
@@ -109,21 +110,34 @@ if (count($request['template']->getLDAPadd(true))) {
|
||||
|
||||
echo '</table>';
|
||||
|
||||
echo '<div style="text-align: center;">';
|
||||
echo '<br />';
|
||||
printf('<input type="submit" value="%s" />',_('Commit'));
|
||||
printf('<input type="submit" name="cancel" value="%s" />',_('Cancel'));
|
||||
|
||||
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 />';
|
||||
|
||||
echo '</center>';
|
||||
|
||||
} else {
|
||||
echo '<center>';
|
||||
echo _('You made no changes');
|
||||
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',
|
||||
$app['server']->getIndex(),rawurlencode($request['dn']));
|
||||
$href = sprintf('cmd=template_engine&server_id=%s&dn=%s',
|
||||
$app['server']->getIndex(),$request['template']->getDNEncode());
|
||||
|
||||
printf(' <a href="%s">%s</a>.',htmlspecialchars($href),_('Go back'));
|
||||
echo '</center>';
|
||||
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>';
|
||||
}
|
||||
?>
|
||||
|
@@ -21,13 +21,18 @@ if (! $app['server']->dnExists($request['dn']))
|
||||
# Delete the entry.
|
||||
$result = $app['server']->delete($request['dn']);
|
||||
|
||||
if ($result)
|
||||
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',$app['server']->getIndex()));
|
||||
else
|
||||
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)),
|
||||
|
@@ -15,6 +15,11 @@ require './common.php';
|
||||
$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(
|
||||
@@ -25,7 +30,7 @@ if (! $request['dn'] || ! $app['server']->dnExists($request['dn']))
|
||||
# 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'),get_rdn($request['dn']));
|
||||
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";
|
||||
@@ -46,43 +51,48 @@ if (count($request['children'])) {
|
||||
$query['deref'] = LDAP_DEREF_NEVER;
|
||||
$request['search'] = $app['server']->query($query,null);
|
||||
|
||||
echo '<table class="forminput" border=0>';
|
||||
echo '<table class="forminput" border="0">';
|
||||
echo '<tr>';
|
||||
echo '<td colspan=2>';
|
||||
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>';
|
||||
echo '<tr><td colspan="2"> </td></tr>';
|
||||
|
||||
printf('<tr><td colspan=2>%s</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>';
|
||||
echo '<tr><td colspan="2"> </td></tr>';
|
||||
|
||||
printf('<tr><td colspan=2><small>%s</small></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 width=50%><center>';
|
||||
echo '<form action="cmd.php" method="post">';
|
||||
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" />',htmlspecialchars($request['dn']));
|
||||
printf('<input type="submit" value="%s" />',sprintf(_('Delete all %s objects'),count($request['search'])));
|
||||
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 '</center></td>';
|
||||
echo '</td>';
|
||||
|
||||
echo '<td width=50%><center>';
|
||||
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" />',htmlspecialchars($request['dn']));
|
||||
printf('<input type="submit" name="submit" value="%s" />',_('Cancel'));
|
||||
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 '</center></td>';
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
echo "\n";
|
||||
|
||||
@@ -101,37 +111,42 @@ if (count($request['children'])) {
|
||||
echo "\n";
|
||||
|
||||
} else {
|
||||
echo '<table class="forminput" border=0>';
|
||||
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 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 width=10%%>%s:</td><td colspan=3 width=75%%><b>%s</b></td></tr>',_('Server'),$app['server']->getName());
|
||||
printf('<tr><td width=10%%><acronym title="%s">%s</acronym></td><td colspan=3 width=75%%><b>%s</b></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 '<tr><td colspan="4"> </td></tr>';
|
||||
echo "\n";
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td colspan=2 width=50%><center>';
|
||||
echo '<form action="cmd.php" method="post">';
|
||||
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" />',htmlspecialchars($request['dn']));
|
||||
printf('<input type="submit" name="submit" value="%s" />',_('Delete'));
|
||||
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 '</center></td>';
|
||||
echo '<td colspan=2 width=50%><center>';
|
||||
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" />',htmlspecialchars($request['dn']));
|
||||
printf('<input type="submit" name="submit" value="%s" />',_('Cancel'));
|
||||
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 '</center></td>';
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
echo '</table>';
|
||||
echo "\n";
|
||||
|
@@ -15,28 +15,31 @@ $www['page'] = new page();
|
||||
|
||||
$request = array();
|
||||
$request['container'] = get_request('container','GET');
|
||||
$request['element'] = get_request('form_element','GET');
|
||||
$request['rdn'] = get_request('rdn','GET');
|
||||
$request['form'] = htmlspecialchars(addslashes(get_request('form','GET')));
|
||||
$request['element'] = htmlspecialchars(addslashes(get_request('element','GET')));
|
||||
$request['rdn'] = htmlspecialchars(addslashes(get_request('rdn','GET')));
|
||||
|
||||
echo '<div class="popup">';
|
||||
printf('<h3 class="subtitle">%s</h3>',_('Entry Chooser'));
|
||||
|
||||
echo '<script type="text/javascript" language="javascript">';
|
||||
echo '<script type="text/javascript">';
|
||||
echo ' function returnDN(dn) {';
|
||||
printf(' opener.document.%s.value = dn;',$request['element']);
|
||||
echo ' close();';
|
||||
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>';
|
||||
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>';
|
||||
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'),htmlspecialchars($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']);
|
||||
@@ -47,36 +50,47 @@ if (isset($app['server']) && ! is_null($request['container'])) {
|
||||
|
||||
if (! pla_compare_dns($request['container'],$base)) {
|
||||
$parent_container = false;
|
||||
$href['up'] = sprintf('entry_chooser.php?form_element=%s&rdn=%s',$request['element'],rawurlencode($request['rdn']));
|
||||
$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_element=%s&rdn=%s&server_id=%s&container=%s',
|
||||
$request['element'],$request['rdn'],$app['server']->getIndex(),rawurlencode($parent_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'));
|
||||
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'));
|
||||
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']) : ''),rawurlencode($dn));
|
||||
$href['expand'] = sprintf('entry_chooser.php?server_id=%s&form_element=%s&rdn=%s&container=%s',
|
||||
$app['server']->getIndex(),$request['element'],$request['rdn'],rawurlencode($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);
|
||||
|
||||
printf('<td colspan=2><a href="%s">%s</a></td>',$href['return'],$dn);
|
||||
$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";
|
||||
}
|
||||
@@ -85,24 +99,24 @@ if (isset($app['server']) && ! is_null($request['container'])) {
|
||||
} 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());
|
||||
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'));
|
||||
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_element=%s&rdn=%s&container=%s',
|
||||
$server->getIndex(),$request['element'],$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);
|
||||
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 '<tr><td class="blank" colspan="4"> </td></tr>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -29,12 +29,12 @@ if ($request['file']) {
|
||||
|
||||
header('Content-type: application/download');
|
||||
header(sprintf('Content-Disposition: inline; filename="%s.%s"','export',$types['extension'].($request['export']->isCompressed() ? '.gz' : '')));
|
||||
$request['export']->export();
|
||||
echo $request['export']->export();
|
||||
die();
|
||||
|
||||
} else {
|
||||
print '<span style="font-size: 14px; font-family: courier;"><pre>';
|
||||
$request['export']->export();
|
||||
echo htmlspecialchars($request['export']->export());
|
||||
print '</pre></span>';
|
||||
}
|
||||
?>
|
||||
|
@@ -36,16 +36,16 @@ $available_scopes = array(
|
||||
$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" language="javascript" src="%sdnChooserPopup.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" language="javascript" src="%sform_field_toggle_enable.js"></script>',JSDIR);
|
||||
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 '<center>';
|
||||
echo '<form name="export_form" action="cmd.php" method="post">';
|
||||
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">';
|
||||
echo '<table class="forminput" style="margin-left: auto; margin-right: auto;">';
|
||||
echo '<tr>';
|
||||
echo '<td>';
|
||||
|
||||
@@ -59,7 +59,7 @@ 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');
|
||||
draw_chooser_link('export_form','dn');
|
||||
echo '</span></td>';
|
||||
echo '</tr>';
|
||||
|
||||
@@ -70,7 +70,7 @@ 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="true"' : '',
|
||||
htmlspecialchars($id),$id,($id == $request['scope']) ? 'checked="checked"' : '',
|
||||
htmlspecialchars($id),$desc);
|
||||
|
||||
echo '</td>';
|
||||
@@ -81,15 +81,15 @@ printf('<tr><td>%s</td><td><input type="text" name="filter" style="width:300px"
|
||||
_('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']));
|
||||
_('Show Attributes'),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="true" ' : '',_('Include system attributes'));
|
||||
$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 /> <label for="compress">%s</label></td></tr>',
|
||||
printf('<tr><td> </td><td><input type="checkbox" id="compress" name="compress" disabled="disabled" /> <label for="compress">%s</label></td></tr>',
|
||||
_('Compress'));
|
||||
|
||||
echo '</table>';
|
||||
@@ -109,9 +109,9 @@ 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="true"' : '');
|
||||
htmlspecialchars($exporter['type']),htmlspecialchars($exporter['type']),($exporter['type'] === $request['exporter_id']) ? ' checked="checked"' : '');
|
||||
|
||||
printf('<label for="%s">%s</label><br />',
|
||||
printf('<label for="exporter_id_%s">%s</label><br />',
|
||||
htmlspecialchars($exporter['type']),$exporter['type']);
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ 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="true"' : '',
|
||||
htmlspecialchars($id),htmlspecialchars($id),($request['format']==$id) ? ' checked="checked"' : '',
|
||||
htmlspecialchars($id),$desc);
|
||||
|
||||
echo '</fieldset>';
|
||||
@@ -134,13 +134,13 @@ echo '</td>';
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
printf('<tr><td colspan="2"><center><input type="submit" name="target" value="%s" /></center></td></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>';
|
||||
echo '</center>';
|
||||
|
||||
/**
|
||||
* Helper function for fetching the line end format.
|
||||
|
@@ -19,14 +19,15 @@ $request['page'] = new PageRender($app['server']->getIndex(),get_request('templa
|
||||
$request['page']->drawTitle(sprintf('<b>%s</b>',_('Import')));
|
||||
$request['page']->drawSubTitle(sprintf('%s: <b>%s</b>',_('Server'),$app['server']->getName()));
|
||||
|
||||
echo '<center>';
|
||||
echo '<form action="cmd.php" method="post" class="new_value" enctype="multipart/form-data">';
|
||||
echo '<div>';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||
echo '<input type="hidden" name="cmd" value="import" />';
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="forminput" border=0>';
|
||||
echo '<table class="forminput" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||
|
||||
echo '<tr><td colspan=2> </td></tr>';
|
||||
echo '<tr><td colspan="2"> </td></tr>';
|
||||
echo '<tr>';
|
||||
printf('<td>%s</td>',_('Select an LDIF file'));
|
||||
echo '<td>';
|
||||
@@ -35,14 +36,13 @@ echo '</td></tr>';
|
||||
|
||||
printf('<tr><td> </td><td class="small"><b>%s %s</b></td></tr>',_('Maximum file size'),ini_get('upload_max_filesize'));
|
||||
|
||||
echo '<tr><td colspan=2> </td></tr>';
|
||||
echo '<tr><td colspan="2"> </td></tr>';
|
||||
printf('<tr><td>%s</td></tr>',_('Or paste your LDIF here'));
|
||||
echo '<tr><td colspan=2><textarea name="ldif" rows="20" cols="100"></textarea></td></tr>';
|
||||
echo '<tr><td colspan=2> </td></tr>';
|
||||
echo '<tr><td colspan="2"><textarea name="ldif" rows="20" cols="100"></textarea></td></tr>';
|
||||
echo '<tr><td colspan="2"> </td></tr>';
|
||||
printf('<tr><td> </td><td class="small"><input type="checkbox" name="continuous_mode" value="1" />%s</td></tr>',
|
||||
_("Don't stop on errors"));
|
||||
printf('<tr><td> </td><td><input type="submit" value="%s" /></td></tr>',_('Proceed >>'));
|
||||
echo '</table>';
|
||||
echo '</form>';
|
||||
echo '</center>';
|
||||
?>
|
||||
|
@@ -57,6 +57,11 @@ if (defined('CONFDIR'))
|
||||
else
|
||||
$app['config_file'] = 'config.php';
|
||||
|
||||
if (! is_readable($app['config_file'])) {
|
||||
if (ob_get_level()) ob_end_clean();
|
||||
die(sprintf("Missing configuration file <b>%s</b> - have you created it?",$app['config_file']));
|
||||
}
|
||||
|
||||
# Make sure this PHP install has session support
|
||||
if (! extension_loaded('session'))
|
||||
error('<p>Your install of PHP appears to be missing php-session support.</p><p>Please install php-session support before using phpLDAPadmin.<br /><small>(Dont forget to restart your web server afterwards)</small></p>','error',null,true);
|
||||
@@ -120,8 +125,10 @@ if (! $config = check_config($app['config_file'])) {
|
||||
$_SESSION[APPCONFIG] = $config;
|
||||
}
|
||||
|
||||
if ($uri = get_request('URI','GET'))
|
||||
if ($uri = get_request('URI','GET')) {
|
||||
header(sprintf('Location: cmd.php?%s',base64_decode($uri)));
|
||||
exit;
|
||||
}
|
||||
|
||||
if (! preg_match('/^([0-9]+\.?)+/',app_version())) {
|
||||
system_message(array(
|
||||
|
@@ -10,16 +10,34 @@ var http_request = null;
|
||||
var http_request_success_callback = '';
|
||||
var http_request_error_callback = '';
|
||||
|
||||
function ajDISPLAY(div,urlParameters,display) {
|
||||
function ajSUBMIT(div,obj,display) {
|
||||
var pageDiv = getDiv(div);
|
||||
|
||||
window.scrollTo(0,95);
|
||||
|
||||
makeHttpRequest('cmd.php',getParameters(obj.parentNode)+'meth=ajax','POST','alertAJ','cancelAJ',div);
|
||||
|
||||
if (pageDiv)
|
||||
includeHTML(pageDiv,'<img src="images/ajax-progress.gif"><br><small>'+display+'...</small>');
|
||||
else
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function ajDISPLAY(div,urlParameters,display,ns) {
|
||||
var pageDiv = getDiv(div);
|
||||
|
||||
if (! ns)
|
||||
window.scrollTo(0,95);
|
||||
|
||||
makeHttpRequest('cmd.php',urlParameters+'&meth=ajax','GET','alertAJ','cancelAJ',div);
|
||||
|
||||
if (pageDiv)
|
||||
includeHTML(pageDiv,'<img src="images/ajax-progress.gif"><br><small>'+display+'...</small>');
|
||||
else
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -184,9 +202,50 @@ function makeHttpRequest(url,parameters,meth,successCallbackFunctionName,errorCa
|
||||
http_request.open(meth,url,true);
|
||||
|
||||
http_request.setRequestHeader('Content-type','application/x-www-form-urlencoded');
|
||||
http_request.setRequestHeader('Content-length',parameters.length);
|
||||
http_request.setRequestHeader('Connection','close');
|
||||
|
||||
if (meth == 'GET') parameters = null;
|
||||
http_request.send(parameters);
|
||||
}
|
||||
|
||||
function getParameters(obj) {
|
||||
var elements = ['input','select','textarea'];
|
||||
var getstr = '';
|
||||
|
||||
for (var j in elements) {
|
||||
for (i=0; i<obj.getElementsByTagName(elements[j]).length; i++) {
|
||||
// Ignore submit variables
|
||||
if (obj.getElementsByTagName(elements[j])[i].type == 'submit') {
|
||||
|
||||
} else if (obj.getElementsByTagName(elements[j])[i].type == 'text') {
|
||||
getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&';
|
||||
|
||||
} else if (obj.getElementsByTagName(elements[j])[i].type == 'checkbox') {
|
||||
if (obj.getElementsByTagName(elements[j])[i].checked) {
|
||||
getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&';
|
||||
} else {
|
||||
getstr += obj.getElementsByTagName(elements[j])[i].name + '=&';
|
||||
}
|
||||
|
||||
} else if (obj.getElementsByTagName(elements[j])[i].type == 'radio') {
|
||||
if (obj.getElementsByTagName(elements[j])[i].checked) {
|
||||
getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&';
|
||||
}
|
||||
|
||||
} else if (obj.getElementsByTagName(elements[j])[i].tagName == 'SELECT') {
|
||||
var sel = obj.getElementsByTagName(elements[j])[i];
|
||||
getstr += sel.name + '=' + encodeURIComponent(sel.options[sel.selectedIndex].value) + '&';
|
||||
|
||||
} else if (obj.getElementsByTagName(elements[j])[i].tagName == 'INPUT') {
|
||||
getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&';
|
||||
|
||||
} else if (obj.getElementsByTagName(elements[j])[i].tagName == 'TEXTAREA') {
|
||||
getstr += obj.getElementsByTagName(elements[j])[i].name + '=' + encodeURIComponent(obj.getElementsByTagName(elements[j])[i].value) + '&';
|
||||
|
||||
} else {
|
||||
alert('UNTRAPPED FORM tag:'+elements[j]+', n: '+obj.getElementsByTagName(elements[j])[i].tagName+', t:'+obj.getElementsByTagName(elements[j])[i].type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return getstr;
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
function dateSelector(id) {
|
||||
var el = document.getElementById('f_date_'+id);
|
||||
var el = document.getElementById('new_values_'+id);
|
||||
var format = gettype(el.id);
|
||||
var epoch;
|
||||
var parse = false;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
function dnChooserPopup(form_element,rdn)
|
||||
function dnChooserPopup(form,element,rdn)
|
||||
{
|
||||
mywindow=open('entry_chooser.php','myname','resizable=no,width=600,height=370,scrollbars=1');
|
||||
mywindow.location.href = 'entry_chooser.php?form_element=' + form_element + '&rdn=' + rdn;
|
||||
mywindow.location.href = 'entry_chooser.php?form=' + form + '&element=' + element + '&rdn=' + rdn;
|
||||
if (mywindow.opener == null) mywindow.opener = self;
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
var m1 = document.member.notmembers;
|
||||
var m2 = document.member.members;
|
||||
var m1 = document.getElementById('member').notmembers;
|
||||
var m2 = document.getElementById('member').members;
|
||||
|
||||
/* This function generates hidden input array from new group members
|
||||
* when submit button is pressed.
|
||||
|
@@ -16,17 +16,28 @@ printf('<h3 class="title">%s %s</h3>',_('Authenticate to server'),$app['server']
|
||||
echo '<br />';
|
||||
|
||||
# Check for a secure connection
|
||||
if (! isset($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) != 'on') {
|
||||
echo '<center>';
|
||||
echo '<span style="color:red">';
|
||||
$isHTTPS = false;
|
||||
|
||||
# Check if the current connection is encrypted
|
||||
if (isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on') {
|
||||
$isHTTPS = true;
|
||||
}
|
||||
# Check if a proxy server downstream does encryption for us
|
||||
elseif (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && strtolower($_SERVER['HTTP_X_FORWARDED_PROTO']) == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && strtolower($_SERVER['HTTP_X_FORWARDED_SSL'])
|
||||
== 'on') {
|
||||
$isHTTPS = true;
|
||||
}
|
||||
|
||||
if (!$isHTTPS) {
|
||||
echo '<div style="text-align: center; color:red">';
|
||||
printf('<acronym title="%s"><b>%s: %s.</b></acronym>',
|
||||
_('You are not using \'https\'. Web browser will transmit login information in clear text.'),
|
||||
_('Warning'),_('This web connection is unencrypted'));
|
||||
echo '</span>';
|
||||
echo '</center>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<br />';
|
||||
}
|
||||
unset($isSecure);
|
||||
|
||||
# HTTP Basic Auth Form.
|
||||
if ($app['server']->getAuthType() == 'http') {
|
||||
@@ -43,7 +54,7 @@ if ($app['server']->getAuthType() == 'http') {
|
||||
die();
|
||||
}
|
||||
|
||||
header(sprintf('WWW-Authenticate: Basic realm="%s %s"',app_name(),_('login')));
|
||||
header(sprintf('WWW-Authenticate: Basic realm="%s"',$_SESSION[APPCONFIG]->getValue('session','http_realm')));
|
||||
|
||||
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.0')
|
||||
header('HTTP/1.0 401 Unauthorized'); // http 1.0 method
|
||||
@@ -54,15 +65,18 @@ if ($app['server']->getAuthType() == 'http') {
|
||||
|
||||
# HTML Login Form
|
||||
} else {
|
||||
echo '<form action="cmd.php" method="post" name="login_form">';
|
||||
echo '<form action="cmd.php" method="post">';
|
||||
echo '<div>';
|
||||
echo '<input type="hidden" name="cmd" value="login" />';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||
echo '<input type="hidden" name="nodecode[login_pass]" value="1" />';
|
||||
|
||||
if (get_request('redirect','GET',false,false))
|
||||
printf('<input type="hidden" name="redirect" value="%s" />',rawurlencode(get_request('redirect','GET')));
|
||||
|
||||
echo '<center>';
|
||||
echo '<table class="forminput">';
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="forminput" style="margin-left: auto; margin-right: auto;">';
|
||||
|
||||
printf('<tr><td><b>%s:</b></td></tr>',
|
||||
$app['server']->getValue('login','auth_text') ? $app['server']->getValue('login','auth_text') :
|
||||
@@ -71,28 +85,27 @@ if ($app['server']->getAuthType() == 'http') {
|
||||
printf('<tr><td><input type="text" id="login" name="login" size="40" value="%s" /></td></tr>',
|
||||
$app['server']->getValue('login','attr',false) == 'dn' ? $app['server']->getValue('login','bind_id') : '');
|
||||
|
||||
echo '<tr><td colspan=2> </td></tr>';
|
||||
echo '<tr><td colspan="2"> </td></tr>';
|
||||
printf('<tr><td><b>%s:</b></td></tr>',_('Password'));
|
||||
echo '<tr><td><input type="password" id="password" size="40" value="" name="login_pass" /></td></tr>';
|
||||
echo '<tr><td colspan=2> </td></tr>';
|
||||
echo '<tr><td colspan="2"> </td></tr>';
|
||||
|
||||
# If Anon bind allowed, then disable the form if the user choose to bind anonymously.
|
||||
if ($app['server']->isAnonBindAllowed())
|
||||
printf('<tr><td colspan="2"><small><b>%s</b></small> <input type="checkbox" name="anonymous_bind" onclick="form_field_toggle_enable(this,[\'login\',\'password\'],\'login\')" id="anonymous_bind_checkbox" /></td></tr>',
|
||||
_('Anonymous'));
|
||||
|
||||
printf('<tr><td colspan="2"><center><input type="submit" name="submit" value="%s" /></center></td></tr>',
|
||||
printf('<tr><td colspan="2" style="text-align: center;"><input type="submit" name="submit" value="%s" /></td></tr>',
|
||||
_('Authenticate'));
|
||||
|
||||
echo '</table>';
|
||||
echo '</center>';
|
||||
echo '</form>';
|
||||
|
||||
echo '<br/>';
|
||||
|
||||
echo '<script type="text/javascript" language="javascript">document.getElementById("login").focus()</script>';
|
||||
echo '<script type="text/javascript">document.getElementById("login").focus()</script>';
|
||||
|
||||
if ($app['server']->isAnonBindAllowed())
|
||||
printf('<script type="text/javascript" language="javascript" src="%sform_field_toggle_enable.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sform_field_toggle_enable.js"></script>',JSDIR);
|
||||
}
|
||||
?>
|
||||
|
@@ -11,13 +11,16 @@
|
||||
|
||||
require './common.php';
|
||||
|
||||
if ($app['server']->logout())
|
||||
if ($app['server']->logout()) {
|
||||
unset($_SESSION['ACTIVITY'][$app['server']->getIndex()]);
|
||||
|
||||
system_message(array(
|
||||
'title'=>_('Authenticate to server'),
|
||||
'title'=>_('Logout from Server'),
|
||||
'body'=>_('Successfully logged out of server.'),
|
||||
'type'=>'info'),
|
||||
sprintf('index.php?server_id=%s',$app['server']->getIndex()));
|
||||
else
|
||||
|
||||
} else
|
||||
system_message(array(
|
||||
'title'=>_('Failed to Logout of server'),
|
||||
'body'=>_('Please report this error to the admins.'),
|
||||
|
@@ -46,27 +46,27 @@ printf('<h3 class="subtitle">%s: <b>%s</b></h3>',_('Server'),$app['server']->get
|
||||
echo "\n";
|
||||
|
||||
echo '<center>';
|
||||
echo '<table class="forminput" border=0>';
|
||||
echo '<table class="forminput" border="0">';
|
||||
|
||||
if (count($request['parent']) == 1)
|
||||
printf('<tr><td colspan=4><b>%s</b></td></tr>',_('Are you sure you want to permanently delete this object?'));
|
||||
printf('<tr><td colspan="4"><b>%s</b></td></tr>',_('Are you sure you want to permanently delete this object?'));
|
||||
else
|
||||
printf('<tr><td colspan=4><b>%s</b></td></tr>',_('Are you sure you want to permanently delete these objects?'));
|
||||
printf('<tr><td colspan="4"><b>%s</b></td></tr>',_('Are you sure you want to permanently delete these objects?'));
|
||||
|
||||
echo '<tr><td colspan=4> </td></tr>';
|
||||
printf('<tr><td width=10%%>%s:</td><td colspan=3 width=75%%><b>%s</b></td></tr>',_('Server'),$app['server']->getName());
|
||||
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());
|
||||
|
||||
foreach ($request['parent'] as $dn)
|
||||
printf('<tr><td width=10%%><acronym title="%s">%s</acronym></td><td colspan=3 width=75%%><b>%s</b></td></tr>',
|
||||
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'),$dn);
|
||||
|
||||
echo '<tr><td colspan=4> </td></tr>';
|
||||
echo '<tr><td colspan="4"> </td></tr>';
|
||||
|
||||
$request['delete'] = $request['parent'];
|
||||
|
||||
if (count($request['children'])) {
|
||||
printf('<tr><td colspan=4><b>%s</b></td></tr>',_('Permanently delete all children also?'));
|
||||
echo '<tr><td colspan=4> </td></tr>';
|
||||
printf('<tr><td colspan="4"><b>%s</b></td></tr>',_('Permanently delete all children also?'));
|
||||
echo '<tr><td colspan="4"> </td></tr>';
|
||||
|
||||
# We need to see if the children have children
|
||||
$query = array();
|
||||
@@ -85,28 +85,28 @@ if (count($request['children'])) {
|
||||
array_push($request['delete'],$value['dn']);
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td colspan=4>';
|
||||
echo '<td colspan="4">';
|
||||
printf(_('This request also includes %s children entries.'),count($request['children']));
|
||||
echo '</td></tr>';
|
||||
|
||||
printf('<tr><td colspan=4>%s</td></tr>',
|
||||
printf('<tr><td colspan="4">%s</td></tr>',
|
||||
sprintf(_('phpLDAPadmin can also recursively delete all %s of the child entries. See below for a list of all the entries that this action will delete. Do you want to do this?'),count($request['children'])));
|
||||
|
||||
echo '<tr><td colspan=4> </td></tr>';
|
||||
echo '<tr><td colspan="4"> </td></tr>';
|
||||
|
||||
printf('<tr><td colspan=4><small>%s</small></td></tr>',
|
||||
printf('<tr><td colspan="4"><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><td colspan=4> </td></tr>';
|
||||
echo '<tr><td colspan="4"> </td></tr>';
|
||||
|
||||
echo "\n";
|
||||
|
||||
printf('<tr><td colspan=4><center><b>%s</b></center></td></tr>',_('List of entries to be deleted:'));
|
||||
echo '<tr><td colspan=4> </td></tr>';
|
||||
printf('<tr><td colspan="4"><center><b>%s</b></center></td></tr>',_('List of entries to be deleted:'));
|
||||
echo '<tr><td colspan="4"> </td></tr>';
|
||||
|
||||
$i = 0;
|
||||
echo '<tr><td colspan=4><center>';
|
||||
echo '<tr><td colspan="4"><center>';
|
||||
printf('<select size="%s" multiple disabled style="background:white; color:black;width:500px" >',min(10,count($request['delete'])));
|
||||
foreach ($request['delete'] as $key => $value)
|
||||
printf('<option>%s. %s</option>',++$i,htmlspecialchars(dn_unescape($value)));
|
||||
@@ -114,11 +114,11 @@ if (count($request['children'])) {
|
||||
echo '</center></td></tr>';
|
||||
echo "\n";
|
||||
|
||||
echo '<tr><td colspan=4> </td></tr>';
|
||||
echo '<tr><td colspan="4"> </td></tr>';
|
||||
}
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td width=50% colspan=2><center>';
|
||||
echo '<td colspan="2" style="width: 50%; text-align: center;">';
|
||||
echo '<form action="cmd.php" method="post">';
|
||||
echo '<input type="hidden" name="cmd" value="rdelete" />';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||
@@ -128,7 +128,7 @@ printf('<input type="submit" value="%s" />',sprintf(_('Delete all %s objects'),c
|
||||
echo '</form>';
|
||||
echo '</center></td>';
|
||||
|
||||
echo '<td colspan=2 width=50%><center>';
|
||||
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" />';
|
||||
|
@@ -64,13 +64,16 @@ $request['page'][0]->drawTitle(_('Bulk edit the following DNs'));
|
||||
$request['page'][0]->drawSubTitle(sprintf('%s: <b>%s</b>',_('Server'),$app['server']->getName()));
|
||||
|
||||
echo '<form action="cmd.php" method="post">';
|
||||
echo '<div>';
|
||||
echo '<input type="hidden" name="cmd" value="mass_update" />';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||
|
||||
foreach ($request['page'] as $j => $page)
|
||||
printf('<input type="hidden" name="dn[%s]" value="%s" />',$j,$page->getTemplate()->getDN());
|
||||
|
||||
echo '<table class="result_table" border=0>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="result_table" border="0">';
|
||||
echo '<tr class="heading">';
|
||||
echo '<td>DN</td>';
|
||||
|
||||
@@ -122,7 +125,9 @@ foreach ($request['page'] as $j => $page) {
|
||||
}
|
||||
|
||||
echo '</table>';
|
||||
echo '<div>';
|
||||
echo '<br/>';
|
||||
printf('<input type="submit" id="save_button" name="submit" value="%s" />',_('Update Values'));
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
?>
|
||||
|
@@ -71,12 +71,12 @@ if (count($request['update'])) {
|
||||
foreach ($request['update'] as $j => $page)
|
||||
printf('<input type="hidden" name="dn[%s]" value="%s" />',$j,$page->getTemplate()->getDN());
|
||||
|
||||
echo '<table class="result_box" width=100% border=1>';
|
||||
echo '<table class="result_box" width="100%" border="1">';
|
||||
echo '<tr><td>';
|
||||
|
||||
echo '<br/>';
|
||||
|
||||
echo '<table class="result" border=0>';
|
||||
echo '<table class="result" border="0">';
|
||||
echo '<tr><td>';
|
||||
printf(_('There will be %s updates done with this mass update'),sprintf('<b>%s</b>',count($request['update'])));
|
||||
echo '</td></tr>';
|
||||
@@ -87,15 +87,15 @@ if (count($request['update'])) {
|
||||
foreach ($request['update'] as $index => $page) {
|
||||
$template = $page->getTemplate();
|
||||
|
||||
echo '<table class="result" border=0>';
|
||||
echo '<table class="result" border="0">';
|
||||
echo '<tr class="list_title">';
|
||||
printf('<td class="icon"><img src="%s/%s" alt="icon" /></td>',IMGDIR,get_icon($app['server']->getIndex(),$template->getDN()));
|
||||
|
||||
printf('<td colspan=3><a href="cmd.php?cmd=template_engine&server_id=%s&dn=%s">%s</a></td>',
|
||||
printf('<td colspan="3"><a href="cmd.php?cmd=template_engine&server_id=%s&dn=%s">%s</a></td>',
|
||||
$app['server']->getIndex(),rawurlencode(dn_unescape($template->getDN())),htmlspecialchars(get_rdn($template->getDN())));
|
||||
echo '</tr>';
|
||||
|
||||
printf('<tr class="list_item"><td class="blank"> </td><td class="heading">dn</td><td class="value" width="45%%">%s</td><td class="value" width="45%%"><b>%s</b></td></tr>',
|
||||
printf('<tr class="list_item"><td class="blank"> </td><td class="heading">dn</td><td class="value" style="width: 45%%;">%s</td><td class="value" style="width: 45%%;"><b>%s</b></td></tr>',
|
||||
htmlspecialchars(dn_unescape($template->getDN())),_('Old Value'));
|
||||
|
||||
foreach ($template->getLDAPmodify(true,$index) as $attribute) {
|
||||
|
@@ -16,7 +16,7 @@ $request = array();
|
||||
$request['dn'] = get_request('dn','GET');
|
||||
$request['attr'] = get_request('attr','GET');
|
||||
|
||||
$request['page'] = new TemplateRender($app['server']->getIndex(),get_request('template','REQUEST',false,'none'));
|
||||
$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();
|
||||
@@ -79,12 +79,13 @@ usort($possible_members,'pla_compare_dns');
|
||||
echo '<br />';
|
||||
echo '<br />';
|
||||
|
||||
printf('<script type="text/javascript" language="javascript" src="%smodify_member.js"></script>',JSDIR);
|
||||
echo '<form action="cmd.php" method="post" class="add_value" name="member">';
|
||||
echo '<form action="cmd.php" method="post" class="add_value" id="member">';
|
||||
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" />';
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="modify_members">';
|
||||
|
||||
@@ -96,20 +97,39 @@ echo '</tr>';
|
||||
# Generate select box from all possible members
|
||||
echo '<tr>';
|
||||
echo '<td>';
|
||||
echo '<select name="notmembers" size="10" multiple>';
|
||||
echo '<select name="notmembers" size="10" multiple="multiple">';
|
||||
|
||||
foreach ($possible_members as $possible)
|
||||
printf('<option>%s</option>',$possible);
|
||||
switch ($request['attr']) {
|
||||
case 'nisnetgrouptriple':
|
||||
foreach ($possible_members as $possible) {
|
||||
// Added for output formating
|
||||
$matches = preg_split('/[=,]/',$possible);
|
||||
$possible = sprintf('(,%s,)',$matches[1]);
|
||||
|
||||
if (! in_array($possible,$current_members))
|
||||
printf('<option>%s</option>',$possible);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ('memberuid' || 'member' || 'uniquemember'):
|
||||
foreach ($possible_members as $possible) {
|
||||
if (! in_array($possible,$current_members))
|
||||
printf('<option>%s</option>',$possible);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
echo '</select>';
|
||||
echo '</td>';
|
||||
|
||||
# Generate select box from all current members
|
||||
echo '<td>';
|
||||
echo '<select name="members" size="10" multiple>';
|
||||
echo '<select name="members" size="10" multiple="multiple">';
|
||||
|
||||
foreach ($current_members as $current)
|
||||
printf('<option>%s</option>',$current);
|
||||
printf('<option>%s</option>',htmlspecialchars($current));
|
||||
|
||||
echo '</select>';
|
||||
echo '</td>';
|
||||
@@ -119,11 +139,11 @@ echo '</tr>';
|
||||
# Show buttons which move users from left to right and vice versa
|
||||
echo '<tr>';
|
||||
echo '<td>';
|
||||
printf('<input type="button" onClick="one2two()" value="%s >>" /> <input type="button" onClick="all2two()" value="%s >>" />',
|
||||
printf('<input type="button" onclick="one2two()" value="%s >>" /> <input type="button" onclick="all2two()" value="%s >>" />',
|
||||
_('Add selected'),_('Add all'));
|
||||
echo '</td>';
|
||||
echo '<td>';
|
||||
printf('<input type="button" onClick="two2one()" value="<< %s" /> <input type="button" onClick="all2one()" value="<< %s" />',
|
||||
printf('<input type="button" onclick="two2one()" value="<< %s" /> <input type="button" onclick="all2one()" value="<< %s" />',
|
||||
_('Remove selected'),('Remove all'));
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
@@ -149,10 +169,10 @@ printf('<input type="hidden" name="new_values[%s][]" value="" />',htmlspecialcha
|
||||
echo '</div>';
|
||||
|
||||
# Submit values to update_confirm.php and when clicked, run addSelected
|
||||
printf('<input type="submit" name="save" value="%s" onClick="update_new_values(\'%s\')" />',_('Save changes'),$request['attr']);
|
||||
printf('<input type="submit" name="save" value="%s" onclick="update_new_values(\'%s\')" />',_('Save changes'),$request['attr']);
|
||||
echo '</td></tr>';
|
||||
|
||||
echo '</table>';
|
||||
echo '</form>';
|
||||
echo '</body></html>';
|
||||
printf('<script type="text/javascript" src="%smodify_member.js"></script>',JSDIR);
|
||||
?>
|
||||
|
@@ -28,13 +28,13 @@ if (! isset($attrs['monitorcontext']) || ! count($results))
|
||||
printf('<h3 class="title">%s%s</h3>',_('Monitor info for: '),$app['server']->getName());
|
||||
printf('<h3 class="subtitle">%s</h3>',_('Server reports the following information about itself'));
|
||||
|
||||
echo '<table class="result" border=0>';
|
||||
echo '<table class="result" border="0">';
|
||||
|
||||
# cn=Monitor
|
||||
printf('<tr class="list_item"><td class="heading" rowspan=2>%s</td></tr>',_('LDAP Server'));
|
||||
printf('<tr class="list_item"><td class="heading" rowspan="2">%s</td></tr>',_('LDAP Server'));
|
||||
printf('<tr class="list_item"><td class="value">');
|
||||
|
||||
echo '<table class="result" border=0>';
|
||||
echo '<table class="result" border="0">';
|
||||
printf('<tr><td>%s</td></tr>',$results[$attrs['monitorcontext'][0]]['monitoredinfo'][0]);
|
||||
echo '</table>';
|
||||
|
||||
@@ -45,13 +45,18 @@ foreach (array(
|
||||
'cn=Overlays,cn=Monitor' => 'cn=Overlay %s,%s'
|
||||
) as $dn => $child) {
|
||||
|
||||
$description = implode(' ',$results[$dn]['description']);
|
||||
if (isset($results[$dn]['description'])) {
|
||||
$description = implode(' ',$results[$dn]['description']);
|
||||
|
||||
$description = preg_replace('/"/','\'',$description);
|
||||
printf('<tr class="list_item"><td class="heading" rowspan=2><acronym title="%s">%s</acronym></td></tr>',$description,$dn);
|
||||
$description = preg_replace('/"/','\'',$description);
|
||||
} else {
|
||||
$description = '';
|
||||
}
|
||||
|
||||
printf('<tr class="list_item"><td class="heading" rowspan="2"><acronym title="%s">%s</acronym></td></tr>',$description,$dn);
|
||||
echo '<tr class="list_item"><td class="value">';
|
||||
echo '<table class="result"><tr><td>';
|
||||
echo '<table class="result_table" border=0 width="100%">';
|
||||
echo '<table class="result_table" border="0" width="100%">';
|
||||
|
||||
$attrs = array(
|
||||
'monitorruntimeconfig',
|
||||
@@ -59,10 +64,10 @@ foreach (array(
|
||||
);
|
||||
|
||||
echo '<tr class="highlight">';
|
||||
printf('<td width="10%%">%s</td><td width="20%%">%s</td>',_('Type'),'namingContext');
|
||||
printf('<td style="width: 10%%;">%s</td><td style="width: 20%%;">%s</td>',_('Type'),'namingContext');
|
||||
|
||||
foreach ($attrs as $attr)
|
||||
printf('<td width="20%%">%s</td>',$attr);
|
||||
printf('<td style="width: 20%%;">%s</td>',$attr);
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
@@ -124,15 +129,15 @@ foreach (array(
|
||||
}
|
||||
|
||||
# cn=Connections,cn=Monitor
|
||||
printf('<tr class="list_item"><td class="heading" rowspan=2><acronym title="%s">%s</acronym></td></tr>',$results['cn=Connections,cn=Monitor']['description'],_('LDAP Connections'));
|
||||
printf('<tr class="list_item"><td class="heading" rowspan="2"><acronym title="%s">%s</acronym></td></tr>',$results['cn=Connections,cn=Monitor']['description'][0],_('LDAP Connections'));
|
||||
printf('<tr class="list_item"><td class="value">');
|
||||
echo '<table class="result"><tr><td>';
|
||||
echo '<table class="result_table" border=0 width="100%">';
|
||||
echo '<table class="result_table" border="0" width="100%">';
|
||||
|
||||
printf('<tr class="highlight"><td class="20%%">%s</td><td class="value" width="80%%">%s</td></tr>',
|
||||
_('Total Connections'),$results['cn=Total,cn=Connections,cn=Monitor']['monitorcounter']);
|
||||
printf('<tr class="highlight"><td class="20%%">%s</td><td class="value" width="80%%">%s</td></tr>',
|
||||
_('Current Connections'),$results['cn=Current,cn=Connections,cn=Monitor']['monitorcounter']);
|
||||
printf('<tr class="highlight"><td class="20%%">%s</td><td class="value" style="width: 80%%;">%s</td></tr>',
|
||||
_('Total Connections'),$results['cn=Total,cn=Connections,cn=Monitor']['monitorcounter'][0]);
|
||||
printf('<tr class="highlight"><td class="20%%">%s</td><td class="value" style="width: 80%%;">%s</td></tr>',
|
||||
_('Current Connections'),$results['cn=Current,cn=Connections,cn=Monitor']['monitorcounter'][0]);
|
||||
|
||||
# Look for some connections
|
||||
foreach ($results as $key => $value) {
|
||||
@@ -141,7 +146,7 @@ foreach ($results as $key => $value) {
|
||||
printf('<td>%s</td>',$results[$key]['cn'][0]);
|
||||
|
||||
echo '<td class="value">';
|
||||
echo '<table class="result_table" border=0 width="100%">';
|
||||
echo '<table class="result_table" border="0" width="100%">';
|
||||
|
||||
$counter = 0;
|
||||
foreach (array(
|
||||
@@ -166,7 +171,7 @@ foreach ($results as $key => $value) {
|
||||
|
||||
printf('<tr class="%s">',$counter++%2==0?'even':'odd');
|
||||
|
||||
printf('<td class="title" width="35%%">%s</td><td width="65%%">%s</td>',
|
||||
printf('<td class="title" style="width: 35%%;">%s</td><td style="width: 65%%;">%s</td>',
|
||||
$metric,isset($results[$key][$metric]) ? $results[$key][$metric][0] : ' ');
|
||||
echo '</tr>';
|
||||
}
|
||||
@@ -196,29 +201,29 @@ foreach (array(
|
||||
$description = implode(' ',$results[$dn]['description']);
|
||||
$description = preg_replace('/"/','\'',$description);
|
||||
|
||||
printf('<tr class="list_item"><td class="heading" rowspan=2><acronym title="%s">%s</acronym></td></tr>',$description,$dn);
|
||||
printf('<tr class="list_item"><td class="heading" rowspan="2"><acronym title="%s">%s</acronym></td></tr>',$description,$dn);
|
||||
echo '<tr class="list_item"><td class="value">';
|
||||
echo '<table class="result"><tr><td>';
|
||||
echo '<table class="result_table" border=0 width="100%">';
|
||||
echo '<table class="result_table" border="0" width="100%">';
|
||||
|
||||
if (isset($results[$dn]['monitoropinitiated']))
|
||||
printf('<tr class="highlight"><td width="20%%">%s</td><td class="value" width="80%%">%s</td></tr>',
|
||||
printf('<tr class="highlight"><td style="width: 20%%;">%s</td><td class="value" style="width: 80%%;">%s</td></tr>',
|
||||
'monitorOpInitiated',$results[$dn]['monitoropinitiated'][0]);
|
||||
if (isset($results[$dn]['monitoropcompleted']))
|
||||
printf('<tr class="highlight"><td width="20%%">%s</td><td class="value" width="80%%">%s</td></tr>',
|
||||
printf('<tr class="highlight"><td style="width: 20%%;">%s</td><td class="value" style="width: 80%%;">%s</td></tr>',
|
||||
'monitorOpCompleted',$results[$dn]['monitoropcompleted'][0]);
|
||||
if (isset($results[$dn]['monitoredinfo']))
|
||||
printf('<tr class="highlight"><td width="20%%">%s</td><td class="value" width="80%%">%s</td></tr>',
|
||||
printf('<tr class="highlight"><td style="width: 20%%;">%s</td><td class="value" style="width: 80%%;">%s</td></tr>',
|
||||
'monitoredInfo',$results[$dn]['monitoredinfo'][0]);
|
||||
|
||||
# Look for some connecitons
|
||||
foreach ($results as $key => $value) {
|
||||
if (preg_match('/^.*,'.$dn.'$/',$key)) {
|
||||
echo '<tr class="highlight">';
|
||||
printf('<td width="20%%">%s</td>',$results[$key]['cn'][0]);
|
||||
printf('<td style="width: 20%%;">%s</td>',$results[$key]['cn'][0]);
|
||||
|
||||
echo '<td class="value" width="80%">';
|
||||
echo '<table class="result_table" border=0 width="100%">';
|
||||
echo '<td class="value" style="width: 80%;">';
|
||||
echo '<table class="result_table" border="0" width="100%">';
|
||||
|
||||
foreach (array(
|
||||
'labeleduri',
|
||||
@@ -233,7 +238,7 @@ foreach (array(
|
||||
if (isset($results[$key][$metric])) {
|
||||
printf('<tr class="%s">',$counter++%2==0?'even':'odd');
|
||||
|
||||
printf('<td class="title" width="35%%">%s</td><td width="65%%">%s</td>',
|
||||
printf('<td class="title" style="width: 35%%;">%s</td><td style="width: 65%%;">%s</td>',
|
||||
$metric,$results[$key][$metric][0]);
|
||||
|
||||
echo '</tr>';
|
||||
|
@@ -18,6 +18,7 @@ $request['componentid'] = get_request('componentid','REQUEST');
|
||||
$request['hash'] = get_request('hash','REQUEST');
|
||||
$request['password'] = get_request('check_password','REQUEST');
|
||||
$request['action'] = get_request('action','REQUEST');
|
||||
$request['attribute'] = get_request('attr','REQUEST');
|
||||
|
||||
if (get_request('base64','REQUEST')) {
|
||||
$request['hash'] = base64_decode($request['hash']);
|
||||
@@ -30,8 +31,9 @@ printf('<h3 class="subtitle">%s</h3>',_('Password Checker Tool'));
|
||||
|
||||
echo '<form action="password_checker.php" method="post">';
|
||||
echo '<input type="hidden" name="action" value="compare" />';
|
||||
printf('<input type="hidden" name="attr" value="%s" />',$request['attribute']);
|
||||
|
||||
echo '<table class="forminput" width=100% border=0>';
|
||||
echo '<table class="forminput" width="100%" border="0">';
|
||||
|
||||
echo '<tr>';
|
||||
printf('<td class="heading">%s</td>',_('Compare'));
|
||||
@@ -53,7 +55,7 @@ echo '<td><input type="submit" value="Compare" />';
|
||||
if ($request['action'] == 'compare') {
|
||||
echo ' <b>';
|
||||
|
||||
if (password_check($request['hash'],$request['password']))
|
||||
if (password_check($request['hash'],$request['password'],$request['attribute']))
|
||||
printf('<span class="good">%s</span>',_('Passwords match!'));
|
||||
else
|
||||
printf('<span class="bad">%s</span>',_('Passwords do not match!'));
|
||||
|
@@ -63,7 +63,7 @@ function pla_rdelete($server,$dn) {
|
||||
|
||||
} else {
|
||||
system_message(array(
|
||||
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($request['dn'])),
|
||||
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($dn)),
|
||||
'body'=>ldap_error_msg($server->getErrorMessage(null),$server->getErrorNum(null)),
|
||||
'type'=>'error'));
|
||||
}
|
||||
@@ -80,7 +80,7 @@ function pla_rdelete($server,$dn) {
|
||||
|
||||
} else {
|
||||
system_message(array(
|
||||
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($request['dn'])),
|
||||
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($dn)),
|
||||
'body'=>ldap_error_msg($server->getErrorMessage(null),$server->getErrorNum(null)),
|
||||
'type'=>'error'));
|
||||
}
|
||||
|
@@ -28,7 +28,7 @@ if (! is_null($entry['value'])) {
|
||||
$entry['value'] = strtolower($entry['value']);
|
||||
}
|
||||
|
||||
$schema_error_str = sprintf('%s <b>%s</b>.<br /><br /></center>%s<ul><li>%s</li><li>%s</li><li>%s</li><li>%s</li></ul>',
|
||||
$schema_error_str = sprintf('%s <b>%s</b>.<br /><br /></div>%s<ul><li>%s</li><li>%s</li><li>%s</li><li>%s</li></ul>',
|
||||
_('Could not retrieve schema from'),$app['server']->getName(),
|
||||
_('This could happen for several reasons, the most probable of which are:'),_('The server does not fully support the LDAP protocol.'),
|
||||
_('Your version of PHP does not correctly perform the query.'),_('phpLDAPadmin doesn\'t know how to fetch the schema for your server.'),
|
||||
@@ -43,7 +43,7 @@ $entry['schema_types'] = array(
|
||||
'matching_rules'=>_('Matching Rules'));
|
||||
|
||||
echo '<br />';
|
||||
echo '<center>';
|
||||
echo '<div style="text-align: center;">';
|
||||
|
||||
$counter = 0;
|
||||
foreach ($entry['schema_types'] as $item => $value) {
|
||||
@@ -57,22 +57,21 @@ foreach ($entry['schema_types'] as $item => $value) {
|
||||
|
||||
} else {
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajDISPLAY(\'BODY\',\'%s\',\'Loading %s\');" title="Loading %s">%s</a>',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'Loading %s\');" title="Loading %s">%s</a>',
|
||||
htmlspecialchars($entry['href'][$item]),htmlspecialchars($entry['href'][$item]),$value,$value,$value);
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',htmlspecialchars($entry['href'][$item]),_($value));
|
||||
}
|
||||
}
|
||||
|
||||
echo '</center>';
|
||||
echo '</div>';
|
||||
echo '<br />';
|
||||
|
||||
switch($entry['view']) {
|
||||
case 'syntaxes':
|
||||
$highlight_oid = get_request('highlight_oid','GET',false,false);
|
||||
|
||||
echo '<center>';
|
||||
echo '<table class="result_table" border=0>';
|
||||
echo '<table class="result_table" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||
printf('<tr class="heading"><td>%s</td><td>%s</td></tr>',_('Syntax OID'),_('Description'));
|
||||
|
||||
$counter = 1;
|
||||
@@ -96,7 +95,6 @@ switch($entry['view']) {
|
||||
}
|
||||
|
||||
echo '</table>';
|
||||
echo '</center>';
|
||||
break;
|
||||
|
||||
case 'attributes':
|
||||
@@ -125,32 +123,34 @@ switch($entry['view']) {
|
||||
|
||||
printf('<small>%s:</small>',_('Jump to an attribute type'));
|
||||
echo '<form action="cmd.php" method="get">';
|
||||
echo '<div>';
|
||||
echo '<input type="hidden" name="cmd" value="schema" />';
|
||||
printf('<input type="hidden" name="view" value="%s" />',$entry['view']);
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||
|
||||
if (isAjaxEnabled()) {
|
||||
drawJSItems($sattrs);
|
||||
echo '<select name="viewvalue" onChange="ajSHOWSCHEMA(\'attributes\',\'at\')" id="attributes">';
|
||||
echo '<select name="viewvalue" onchange="ajSHOWSCHEMA(\'attributes\',\'at\')" id="attributes">';
|
||||
} else
|
||||
echo '<select name="viewvalue" onChange="submit()">';
|
||||
echo '<select name="viewvalue" onchange="submit()">';
|
||||
|
||||
echo '<option value=""> - all -</option>';
|
||||
foreach ($sattrs as $name => $attr)
|
||||
printf('<option value="%s" %s>%s</option>',
|
||||
$name,$name == $entry['value'] ? 'selected ': '',$attr->getName(false));
|
||||
$name,$name == $entry['value'] ? 'selected="selected" ': '',$attr->getName(false));
|
||||
echo '</select>';
|
||||
|
||||
if (isAjaxEnabled())
|
||||
printf('<input type="button" value="%s" onClick="ajSHOWSCHEMA(\'attributes\',\'at\')"/>',_('Go'));
|
||||
printf('<input type="button" value="%s" onclick="ajSHOWSCHEMA(\'attributes\',\'at\')"/>',_('Go'));
|
||||
else
|
||||
printf('<input type="submit" value="%s" />',_('Go'));
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
echo '<br />';
|
||||
|
||||
foreach ($sattrs as $attr) {
|
||||
if (isAjaxEnabled() || (is_null($entry['value']) || ! strcasecmp($entry['value'],$attr->getName()))) {
|
||||
if (! is_null($entry['value']) && strcasecmp($entry['value'],$attr->getName()))
|
||||
if (isAjaxEnabled() || (is_null($entry['value']) || ! trim($entry['value']) || $entry['value']==$attr->getName())) {
|
||||
if ((! is_null($entry['value']) && $entry['value']==$attr->getName()) || ! trim($entry['value']))
|
||||
$entry['viewed'] = true;
|
||||
|
||||
if (isAjaxEnabled() && $entry['value'])
|
||||
@@ -158,8 +158,8 @@ switch($entry['view']) {
|
||||
else
|
||||
printf('<div id="at%s">',$attr->getName());
|
||||
|
||||
echo '<table class="result_table" width=100% border=0>';
|
||||
printf('<tr class="heading"><td colspan=2><a name="%s">%s</a></td></tr>',
|
||||
echo '<table class="result_table" width="100%" border="0">';
|
||||
printf('<tr class="heading"><td colspan="2"><a name="%s">%s</a></td></tr>',
|
||||
$attr->getName(),$attr->getName(false));
|
||||
|
||||
$counter = 0;
|
||||
@@ -167,7 +167,7 @@ switch($entry['view']) {
|
||||
foreach ($entry['attr_types'] as $item => $value) {
|
||||
|
||||
printf('<tr class="%s">',++$counter%2 ? 'odd' : 'even');
|
||||
printf('<td class="title" width=30%%>%s</td>',$value);
|
||||
printf('<td class="title" style="width: 30%%;">%s</td>',$value);
|
||||
|
||||
switch ($item) {
|
||||
case 'desc':
|
||||
@@ -195,7 +195,7 @@ switch($entry['view']) {
|
||||
else {
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['attributes'],strtolower($attr->getSupAttribute())));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajSHOWSCHEMA(\'attributes\',\'at\',\'%s\');">%s</a>',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajSHOWSCHEMA(\'attributes\',\'at\',\'%s\');">%s</a>',
|
||||
$href,strtolower($attr->getSupAttribute()),$attr->getSupAttribute());
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$attr->getSupAttribute());
|
||||
@@ -213,7 +213,7 @@ switch($entry['view']) {
|
||||
else {
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['matching_rules'],$attr->getEquality()));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s</a>',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s</a>',
|
||||
$href,$href,_('Matching Rules'),$attr->getEquality(),$attr->getEquality());
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$attr->getEquality());
|
||||
@@ -241,7 +241,7 @@ switch($entry['view']) {
|
||||
} else {
|
||||
$href = htmlspecialchars(sprintf('%s&highlight_oid=%s',$entry['href']['syntaxes'],$attr->getSyntaxOID()));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s (%s)</a>',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s (%s)</a>',
|
||||
$href,$href,_('Syntaxes'),'',$attr->getType(),$attr->getSyntaxOID());
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s (%s)</a>',$href,$attr->getType(),$attr->getSyntaxOID());
|
||||
@@ -289,7 +289,7 @@ switch($entry['view']) {
|
||||
foreach ($attr->getAliases() as $alias) {
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['attributes'],strtolower($alias)));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajSHOWSCHEMA(\'attributes\',\'at\',\'%s\');">%s</a>',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajSHOWSCHEMA(\'attributes\',\'at\',\'%s\');">%s</a>',
|
||||
$href,strtolower($alias),$alias);
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$alias);
|
||||
@@ -308,7 +308,7 @@ switch($entry['view']) {
|
||||
foreach ($attr->getUsedInObjectClasses() as $objectclass) {
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($objectclass)));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s</a> ',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s</a> ',
|
||||
$href,$href,_('ObjectClasses'),strtolower($objectclass),$objectclass);
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a> ',$href,$objectclass);
|
||||
@@ -340,33 +340,35 @@ switch($entry['view']) {
|
||||
printf('<small>%s</small><br />',_('Jump to a matching rule'));
|
||||
|
||||
echo '<form action="cmd.php" method="get">';
|
||||
echo '<div>';
|
||||
echo '<input type="hidden" name="cmd" value="schema" />';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||
echo '<input type="hidden" name="view" value="matching_rules" />';
|
||||
|
||||
if (isAjaxEnabled()) {
|
||||
drawJSItems($schema_matching_rules);
|
||||
echo '<select name="viewvalue" onChange="ajSHOWSCHEMA(\'matchingrules\',\'mr\')" id="matchingrules">';
|
||||
echo '<select name="viewvalue" onchange="ajSHOWSCHEMA(\'matchingrules\',\'mr\')" id="matchingrules">';
|
||||
} else
|
||||
echo '<select name="viewvalue" onChange="submit()">';
|
||||
echo '<select name="viewvalue" onchange="submit()">';
|
||||
|
||||
echo '<option value=""> - all -</option>';
|
||||
foreach ($schema_matching_rules as $rule)
|
||||
printf('<option value="%s" %s>%s</option>',
|
||||
$rule->getName(),
|
||||
($rule->getName() == $entry['value'] ? 'selected': ''),
|
||||
($rule->getName() == $entry['value'] ? 'selected="selected"': ''),
|
||||
$rule->getName(false));
|
||||
|
||||
echo '</select>';
|
||||
|
||||
if (isAjaxEnabled())
|
||||
printf('<input type="button" value="%s" onClick="ajSHOWSCHEMA(\'matchingrules\',\'mr\')"/>',_('Go'));
|
||||
printf('<input type="button" value="%s" onclick="ajSHOWSCHEMA(\'matchingrules\',\'mr\')"/>',_('Go'));
|
||||
else
|
||||
printf('<input type="submit" value="%s" />',_('Go'));
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
echo '<br />';
|
||||
|
||||
echo '<table class="result_table" width=100% border=0>';
|
||||
echo '<table class="result_table" width="100%" border="0">';
|
||||
printf('<tr class="heading"><td>%s</td><td>%s</td><td>%s</td></tr>',
|
||||
_('Matching Rule OID'),_('Name'),_('Used by Attributes'));
|
||||
|
||||
@@ -377,8 +379,8 @@ switch($entry['view']) {
|
||||
$oid = $rule->getOID();
|
||||
$desc = $rule->getName(false);
|
||||
|
||||
if (isAjaxEnabled() || (is_null($entry['value']) || ! strcasecmp($entry['value'],$rule->getName()))) {
|
||||
if (! is_null($entry['value']) && strcasecmp($entry['value'],$rule->getName()))
|
||||
if (isAjaxEnabled() || (is_null($entry['value']) || ! trim($entry['value']) || $entry['value']==$rule->getName())) {
|
||||
if ((! is_null($entry['value']) && $entry['value']==$rule->getName()) || ! trim($entry['value']))
|
||||
$entry['viewed'] = true;
|
||||
|
||||
if (null != $rule->getDescription())
|
||||
@@ -398,11 +400,12 @@ switch($entry['view']) {
|
||||
echo '<td>';
|
||||
|
||||
if (count($rule->getUsedByAttrs()) == 0) {
|
||||
printf('<center>(%s)</center><br /><br />',_('none'));
|
||||
printf('<div style="text-align: center;">(%s)</div><br /><br />',_('none'));
|
||||
|
||||
} else {
|
||||
echo '<table width=100% border=0><tr><td>';
|
||||
echo '<table width="100%" border="0"><tr><td>';
|
||||
echo '<form action="cmd.php" method="get">';
|
||||
echo '<div>';
|
||||
echo '<input type="hidden" name="cmd" value="schema" />';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||
echo '<input type="hidden" name="view" value="attributes" />';
|
||||
@@ -413,10 +416,11 @@ switch($entry['view']) {
|
||||
echo '</select><br />';
|
||||
|
||||
if (isAjaxEnabled())
|
||||
printf('<input type="button" value="%s" onClick="return ajJUMP(\'cmd=schema&view=attributes&server_id=%s\',\'%s\',\'%s\',\'vv\');"/>',
|
||||
printf('<input type="button" value="%s" onclick="return ajJUMP(\'cmd=schema&view=attributes&server_id=%s\',\'%s\',\'%s\',\'vv\');"/>',
|
||||
_('Go'),$app['server']->getIndex(),_('Attributes'),$rule->getName());
|
||||
else
|
||||
printf('<input type="submit" value="%s" />',_('Go'));
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
echo '</td></tr></table>';
|
||||
}
|
||||
@@ -436,33 +440,35 @@ switch($entry['view']) {
|
||||
printf('<small>%s:</small>',_('Jump to an objectClass'));
|
||||
|
||||
echo '<form action="cmd.php" method="get">';
|
||||
echo '<div>';
|
||||
echo '<input type="hidden" name="cmd" value="schema" />';
|
||||
printf('<input type="hidden" name="view" value="%s" />',$entry['view']);
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
|
||||
|
||||
if (isAjaxEnabled()) {
|
||||
drawJSItems($socs);
|
||||
echo '<select name="viewvalue" onChange="ajSHOWSCHEMA(\'objectclasses\',\'oc\')" id="objectclasses">';
|
||||
echo '<select name="viewvalue" onchange="ajSHOWSCHEMA(\'objectclasses\',\'oc\')" id="objectclasses">';
|
||||
} else
|
||||
echo '<select name="viewvalue" onChange="submit()">';
|
||||
echo '<select name="viewvalue" onchange="submit()">';
|
||||
|
||||
echo '<option value=""> - all - </option>';
|
||||
foreach ($socs as $name => $oclass)
|
||||
printf('<option value="%s" %s>%s</option>',
|
||||
$name,$name == $entry['value'] ? 'selected ': '',$oclass->getName(false));
|
||||
$name,$name == $entry['value'] ? 'selected="selected" ': '',$oclass->getName(false));
|
||||
|
||||
echo '</select>';
|
||||
|
||||
if (isAjaxEnabled())
|
||||
printf('<input type="button" value="%s" onClick="ajSHOWSCHEMA(\'objectclasses\',\'oc\')"/>',_('Go'));
|
||||
printf('<input type="button" value="%s" onclick="ajSHOWSCHEMA(\'objectclasses\',\'oc\')"/>',_('Go'));
|
||||
else
|
||||
printf('<input type="submit" value="%s" />',_('Go'));
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
echo '<br />';
|
||||
|
||||
foreach ($socs as $name => $oclass) {
|
||||
if (isAjaxEnabled() || (is_null($entry['value']) || ! strcasecmp($entry['value'],$oclass->getName()))) {
|
||||
if (! is_null($entry['value']) && strcasecmp($entry['value'],$oclass->getName()))
|
||||
if (isAjaxEnabled() || (is_null($entry['value']) || ! trim($entry['value']) || $entry['value']==$oclass->getName())) {
|
||||
if ((! is_null($entry['value']) && $entry['value']==$oclass->getName()) || ! trim($entry['value']))
|
||||
$entry['viewed'] = true;
|
||||
|
||||
if (isAjaxEnabled() && $entry['value'])
|
||||
@@ -470,19 +476,19 @@ switch($entry['view']) {
|
||||
else
|
||||
printf('<div id="oc%s">',$oclass->getName());
|
||||
|
||||
echo '<table class="result_table" width=100% border=0>';
|
||||
printf('<tr class="heading"><td colspan=4><a name="%s">%s</a></td></tr>',$name,$oclass->getName(false));
|
||||
printf('<tr class="odd"><td colspan=4>%s: <b>%s</b></td></tr>',_('OID'),$oclass->getOID());
|
||||
echo '<table class="result_table" width="100%" border="0">';
|
||||
printf('<tr class="heading"><td colspan="4"><a name="%s">%s</a></td></tr>',$name,$oclass->getName(false));
|
||||
printf('<tr class="odd"><td colspan="4">%s: <b>%s</b></td></tr>',_('OID'),$oclass->getOID());
|
||||
|
||||
if ($oclass->getDescription())
|
||||
printf('<tr class="odd"><td colspan=4>%s: <b>%s</b></td></tr>',_('Description'),$oclass->getDescription());
|
||||
printf('<tr class="odd"><td colspan="4">%s: <b>%s</b></td></tr>',_('Description'),$oclass->getDescription());
|
||||
|
||||
printf('<tr class="odd"><td colspan=4>%s: <b>%s</b></td></tr>',_('Type'),$oclass->getType());
|
||||
printf('<tr class="odd"><td colspan="4">%s: <b>%s</b></td></tr>',_('Type'),$oclass->getType());
|
||||
|
||||
if ($oclass->getIsObsolete())
|
||||
printf('<tr class="odd"><td colspan=4>%s</td></tr>',_('This objectClass is obsolete.'));
|
||||
printf('<tr class="odd"><td colspan="4">%s</td></tr>',_('This objectClass is obsolete.'));
|
||||
|
||||
printf('<tr class="odd"><td colspan=4>%s: <b>',_('Inherits from'));
|
||||
printf('<tr class="odd"><td colspan="4">%s: <b>',_('Inherits from'));
|
||||
if (count($oclass->getSupClasses()) == 0)
|
||||
printf('(%s)',_('none'));
|
||||
|
||||
@@ -490,7 +496,7 @@ switch($entry['view']) {
|
||||
foreach ($oclass->getSupClasses() as $i => $object_class) {
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($object_class)));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
$href,strtolower($object_class),$object_class);
|
||||
else
|
||||
printf('<a href="cmd.php?%s&viewvalue=%s" title="%s">%s</a>',
|
||||
@@ -501,11 +507,11 @@ switch($entry['view']) {
|
||||
}
|
||||
echo '</b></td></tr>';
|
||||
|
||||
printf('<tr class="odd"><td colspan=4>%s: <b>',_('Parent to'));
|
||||
printf('<tr class="odd"><td colspan="4">%s: <b>',_('Parent to'));
|
||||
if (strcasecmp($oclass->getName(),'top') == 0) {
|
||||
$href = htmlspecialchars($entry['href']['objectclasses']);
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'\');">all</a>',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'\');">all</a>',
|
||||
$href);
|
||||
else
|
||||
printf('(<a href="cmd.php?%s">all</a>)',$href);
|
||||
@@ -517,7 +523,7 @@ switch($entry['view']) {
|
||||
foreach ($oclass->getChildObjectClasses() as $i => $object_class) {
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($object_class)));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" title="%s" onClick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
printf('<a href="cmd.php?%s" title="%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
$href,_('Jump to this objectClass definition'),strtolower($object_class),$object_class);
|
||||
else
|
||||
printf('<a href="cmd.php?%s" title="%s">%s</a>',$href,_('Jump to this objectClass definition'),$object_class);
|
||||
@@ -527,7 +533,7 @@ switch($entry['view']) {
|
||||
}
|
||||
echo '</b></td></tr>';
|
||||
|
||||
printf('<tr class="even"><td class="blank" rowspan=2 width=5%%> </td><td width=45%%><b>%s</b></td><td width=45%%><b>%s</b></td><td class="blank" rowspan=2 width=5%%> </td></tr>',
|
||||
printf('<tr class="even"><td class="blank" rowspan="2" style="width: 5%%;"> </td><td style="width: 45%%;"><b>%s</b></td><td style="width: 45%%;"><b>%s</b></td><td class="blank" rowspan="2" style="width: 5%%;"> </td></tr>',
|
||||
_('Required Attributes'),_('Optional Attributes'));
|
||||
|
||||
echo '<tr class="odd">';
|
||||
@@ -540,7 +546,7 @@ switch($entry['view']) {
|
||||
echo '<li>';
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['attributes'],$attr->getName()));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s</a>',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s</a>',
|
||||
$href,$href,_('Attributes'),$attr->getName(),$attr->getName(false));
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$attr->getName(false));
|
||||
@@ -550,7 +556,7 @@ switch($entry['view']) {
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($attr->getSource())));
|
||||
printf('<small>(%s ',_('Inherited from'));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" title="%s" onClick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
printf('<a href="cmd.php?%s" title="%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
$href,_('Jump to this objectClass definition'),strtolower($attr->getSource()),$attr->getSource());
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$attr->getSource());
|
||||
@@ -573,7 +579,7 @@ switch($entry['view']) {
|
||||
echo '<li>';
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['attributes'],$attr->getName()));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" onClick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s</a>',
|
||||
printf('<a href="cmd.php?%s" onclick="return ajJUMP(\'%s\',\'%s\',\'%s\');">%s</a>',
|
||||
$href,$href,_('Attributes'),$attr->getName(),$attr->getName(false));
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$attr->getName(false));
|
||||
@@ -583,7 +589,7 @@ switch($entry['view']) {
|
||||
$href = htmlspecialchars(sprintf('%s&viewvalue=%s',$entry['href']['objectclasses'],strtolower($attr->getSource())));
|
||||
printf('<small>(%s ',_('Inherited from'));
|
||||
if (isAjaxEnabled())
|
||||
printf('<a href="cmd.php?%s" title="%s" onClick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
printf('<a href="cmd.php?%s" title="%s" onclick="return ajSHOWSCHEMA(\'objectclasses\',\'oc\',\'%s\');">%s</a>',
|
||||
$href,_('Jump to this objectClass definition'),strtolower($attr->getSource()),$attr->getSource());
|
||||
else
|
||||
printf('<a href="cmd.php?%s">%s</a>',$href,$attr->getSource());
|
||||
@@ -615,7 +621,7 @@ if (! is_null($entry['value']) && ! $entry['viewed'])
|
||||
error(sprintf(_('No such schema item: "%s"'),$entry['value']),'error','index.php');
|
||||
|
||||
function drawJSItems($object) {
|
||||
echo '<script type="text/javascript" language="javascript">'."\n";
|
||||
echo '<script type="text/javascript">'."\n";
|
||||
|
||||
echo "
|
||||
function items() {
|
||||
|
@@ -18,20 +18,20 @@ printf('<h3 class="subtitle">%s</h3>',_('Server reports the following informatio
|
||||
|
||||
if (! count($attrs)) {
|
||||
echo '<br /><br />';
|
||||
printf('<center>%s</center>',_('This server has nothing to report.'));
|
||||
printf('<div style="text-align: center;">%s</div>',_('This server has nothing to report.'));
|
||||
return;
|
||||
}
|
||||
|
||||
echo '<table class="result" border=0>';
|
||||
echo '<table class="result" border="0">';
|
||||
foreach ($attrs as $key => $values) {
|
||||
if ($key == 'dn')
|
||||
continue;
|
||||
|
||||
echo '<tr class="list_item"><td class="heading" rowspan=2>';
|
||||
echo '<tr class="list_item"><td class="heading" rowspan="2">';
|
||||
|
||||
$sattr = $app['server']->getSchemaAttribute($key);
|
||||
|
||||
if ($sattr) {
|
||||
if ($sattr && $_SESSION[APPCONFIG]->isCommandAvailable('script','schema') && $_SESSION[APPCONFIG]->getValue('appearance','show_schema_link')) {
|
||||
$href = sprintf('cmd.php?cmd=schema&server_id=%s&view=attributes&viewvalue=%s',$app['server']->getIndex(),$sattr->getName());
|
||||
printf('<a href="%s" title="%s: %s" >%s</a>',
|
||||
$href,_('Click to view the schema definition for attribute type'),$sattr->getName(false),$sattr->getName(false));
|
||||
@@ -42,7 +42,7 @@ foreach ($attrs as $key => $values) {
|
||||
echo '</td></tr>';
|
||||
|
||||
echo '<tr class="list_item"><td class="blank"> </td><td class="value">';
|
||||
echo '<table class="result" border=0>';
|
||||
echo '<table class="result" border="0">';
|
||||
|
||||
if (is_array($values))
|
||||
foreach ($values as $value) {
|
||||
@@ -50,7 +50,7 @@ foreach ($attrs as $key => $values) {
|
||||
print '<tr>';
|
||||
|
||||
if (preg_match('/^[0-9]+\.[0-9]+/',$value)) {
|
||||
printf('<td width=5%% rowspan=2 style="vertical-align: top"><img src="%s/rfc.png" title="%s" alt="%s"/></td>',
|
||||
printf('<td rowspan="2" style="width: 5%%; vertical-align: top"><img src="%s/rfc.png" title="%s" alt="%s"/></td>',
|
||||
IMGDIR,$value,htmlspecialchars($value));
|
||||
|
||||
if ($oidtext = support_oid_to_text($value))
|
||||
@@ -64,7 +64,7 @@ foreach ($attrs as $key => $values) {
|
||||
printf('<td><small>%s</small></td>',$value);
|
||||
|
||||
} else {
|
||||
printf('<td rowspan=2 colspan=2>%s</td>',$value);
|
||||
printf('<td rowspan="2" colspan="2">%s</td>',$value);
|
||||
}
|
||||
|
||||
print '</tr>';
|
||||
@@ -75,11 +75,11 @@ foreach ($attrs as $key => $values) {
|
||||
echo '<tr><td> </td></tr>';
|
||||
|
||||
if ($oidtext)
|
||||
echo '<tr><td colspan=2> </td></tr>';
|
||||
echo '<tr><td colspan="2"> </td></tr>';
|
||||
}
|
||||
|
||||
else
|
||||
printf('<tr><td colspan=2>%s </td></tr>',$values);
|
||||
printf('<tr><td colspan="2">%s </td></tr>',$values);
|
||||
|
||||
|
||||
echo '</table>';
|
||||
|
@@ -52,29 +52,26 @@ if ($result) {
|
||||
# If the user password was changed, not tell the to relogin.
|
||||
if ($mustRelogin) {
|
||||
$app['server']->logout('user');
|
||||
unset_lastactivity($app['server']);
|
||||
echo '<body>';
|
||||
unset($_SESSION['ACTIVITY'][$app['server']->getIndex()]);
|
||||
|
||||
echo '<br />';
|
||||
echo '<center>';
|
||||
printf('<b>%s</b>',_('Modification successful!'));
|
||||
echo '<br /><br />';
|
||||
echo _('Since you changed your password, you must now login again with your new password.');
|
||||
echo '<br />';
|
||||
printf('<a href="cmd.php?cmd=login_form&server_id=%s">%s...</a>',$app['server']->getIndex(), _('Login'));
|
||||
echo '</center>';
|
||||
echo '</body>';
|
||||
echo '</html>';
|
||||
system_message(array(
|
||||
'title'=>_('Modification successful!'),
|
||||
'body'=>_('Since you changed your password, you must now login again with your new password.'),
|
||||
'type'=>'info'),
|
||||
sprintf('cmd.php?cmd=login_form&server_id=%s',$app['server']->getIndex()));
|
||||
|
||||
exit;
|
||||
exit;
|
||||
}
|
||||
|
||||
$redirect_url = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',
|
||||
$app['server']->getIndex(),rawurlencode($request['dn']));
|
||||
$app['server']->getIndex(),$request['template']->getDNEncode());
|
||||
|
||||
foreach ($request['template']->getLDAPmodify() as $attr => $junk)
|
||||
$redirect_url .= sprintf('&modified_attrs[]=%s',$attr);
|
||||
|
||||
if (get_request('meth','REQUEST') == 'ajax')
|
||||
$redirect_url .= '&meth=ajax';
|
||||
|
||||
header("Location: $redirect_url");
|
||||
die();
|
||||
}
|
||||
|
@@ -32,20 +32,23 @@ $request['page']->drawSubTitle();
|
||||
|
||||
# Confirm the updates
|
||||
if (count($request['template']->getLDAPmodify(true))) {
|
||||
echo '<center>';
|
||||
echo '<div style="text-align: center;">';
|
||||
echo _('Do you want to make these changes?');
|
||||
echo '<br /><br />';
|
||||
echo '</div>';
|
||||
|
||||
echo "\n\n";
|
||||
echo '<form action="cmd.php" method="post">';
|
||||
echo '<form action="cmd.php" method="post" id="update_form">';
|
||||
echo '<div>';
|
||||
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']));
|
||||
printf('<input type="hidden" name="dn" value="%s" />',$request['template']->getDNEncode(false));
|
||||
echo "\n";
|
||||
|
||||
$request['page']->drawHiddenAttributes();
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="result_table">';
|
||||
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><td>%s</td></tr>',
|
||||
@@ -68,15 +71,16 @@ if (count($request['template']->getLDAPmodify(true))) {
|
||||
if (! $attribute->getOldValues())
|
||||
printf('<span style="color: green">[%s]</span>',_('attribute doesnt exist'));
|
||||
|
||||
$dv = $attribute->getRemovedValues();
|
||||
foreach ($attribute->getOldValues() as $key => $value) {
|
||||
# For multiple values, we'll highlight the changed ones
|
||||
if ((count($attribute->getOldValues()) > 5) && in_array($value,$attribute->getRemovedValues()) && count($attribute->getValues()))
|
||||
if ($x = ((count($attribute->getOldValues()) > 5) && count($attribute->getValues()) && in_array($value,$dv)))
|
||||
echo '<span style="color:#880000; background:#FFFFA0">';
|
||||
|
||||
$request['page']->draw('OldValue',$attribute,$key);
|
||||
|
||||
# For multiple values, close the highlighting
|
||||
if ((count($attribute->getOldValues()) > 5) && in_array($value,$attribute->getRemovedValues()) && count($attribute->getValues()))
|
||||
if ($x)
|
||||
echo '</span>';
|
||||
|
||||
echo '<br />';
|
||||
@@ -90,15 +94,16 @@ if (count($request['template']->getLDAPmodify(true))) {
|
||||
if (! $attribute->getValueCount() || $attribute->isForceDelete())
|
||||
printf('<span style="color: red">[%s]</span>',_('attribute deleted'));
|
||||
|
||||
$dv = $attribute->getAddedValues();
|
||||
foreach ($attribute->getValues() as $key => $value) {
|
||||
# For multiple values, we'll highlight the changed ones
|
||||
if ((count($attribute->getValues()) > 5) && in_array($value,$attribute->getAddedValues()))
|
||||
if ($x = ((count($attribute->getValues()) > 5) && count($attribute->getOldValues()) && in_array($value,$dv)))
|
||||
echo '<span style="color:#004400; background:#FFFFA0">';
|
||||
|
||||
$request['page']->draw('CurrentValue',$attribute,$key);
|
||||
|
||||
# For multiple values, close the highlighting
|
||||
if ((count($attribute->getValues()) > 5) && in_array($value,$attribute->getAddedValues()))
|
||||
if ($x)
|
||||
echo '</span>';
|
||||
|
||||
echo '<br />';
|
||||
@@ -182,14 +187,22 @@ if (count($request['template']->getLDAPmodify(true))) {
|
||||
|
||||
echo '</table>';
|
||||
|
||||
echo '<div style="text-align: center;">';
|
||||
echo '<br />';
|
||||
printf('<input type="submit" value="%s" />',_('Commit'));
|
||||
printf('<input type="submit" name="cancel" value="%s" />',_('Cancel'));
|
||||
// @todo cant use AJAX here, it affects file uploads.
|
||||
printf('<input type="submit" value="%s" />',
|
||||
_('Update Object'));
|
||||
|
||||
printf('<input type="submit" name="cancel" value="%s" %s/>',
|
||||
_('Cancel'),
|
||||
(isAjaxEnabled() ? sprintf('onclick="return ajDISPLAY(\'BODY\',\'cmd=template_engine&dn=%s\',\'%s\');"',htmlspecialchars($request['dn']),_('Retrieving DN')) : ''));
|
||||
|
||||
echo '</div>';
|
||||
echo '</form>';
|
||||
echo '<br />';
|
||||
|
||||
if (count($request['template']->getForceDeleteAttrs()) > 0) {
|
||||
echo '<table class="result_table"><tr>';
|
||||
echo '<table class="result_table" style="margin-left: auto; margin-right: auto;"><tr>';
|
||||
printf('<td class="heading">%s:</td>',_('The deletion of objectClass(es)'));
|
||||
printf('<td class="value"><b>%s</b></td>',implode('</b>, <b>',$request['template']->getAttribute('objectclass')->getRemovedValues()));
|
||||
echo '</tr><tr>';
|
||||
@@ -206,16 +219,20 @@ if (count($request['template']->getLDAPmodify(true))) {
|
||||
echo '</b></td></tr></table>';
|
||||
}
|
||||
|
||||
echo '</center>';
|
||||
|
||||
} else {
|
||||
echo '<center>';
|
||||
echo _('You made no changes');
|
||||
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',
|
||||
$app['server']->getIndex(),rawurlencode($request['dn']));
|
||||
$href = sprintf('cmd=template_engine&server_id=%s&dn=%s',
|
||||
$app['server']->getIndex(),$request['template']->getDNEncode());
|
||||
|
||||
printf(' <a href="%s">%s</a>.',htmlspecialchars($href),_('Go back'));
|
||||
echo '</center>';
|
||||
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>';
|
||||
}
|
||||
|
||||
function getMustAttrs($oclasses) {
|
||||
|
@@ -11,7 +11,7 @@
|
||||
|
||||
require './common.php';
|
||||
|
||||
echo '<center>';
|
||||
echo '<div style="text-align: center;">';
|
||||
echo '<br /><br />';
|
||||
printf('<img src="%s/logo.png" title="%s" alt="%s" />',IMGDIR,_('phpLDAPadmin logo'),_('phpLDAPadmin logo'));
|
||||
echo '<br /><br />';
|
||||
@@ -19,11 +19,11 @@ echo _('Use the menu to the left to navigate');
|
||||
echo '<br /><br />';
|
||||
|
||||
if ($_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks')) {
|
||||
printf('<a href="%s" target="_blank">%s</a>',get_href('credits'),_('Credits'));
|
||||
printf(' | <a href="%s" target="_blank">%s</a>',get_href('documentation'),_('Documentation'));
|
||||
printf(' | <a href="%s" target="_blank">%s</a>',get_href('donate'),_('Donate'));
|
||||
printf('<a href="%s" onclick="target=\'_blank\';">%s</a>',get_href('credits'),_('Credits'));
|
||||
printf(' | <a href="%s" onclick="target=\'_blank\';">%s</a>',get_href('documentation'),_('Documentation'));
|
||||
printf(' | <a href="%s" onclick="target=\'_blank\';">%s</a>',get_href('donate'),_('Donate'));
|
||||
echo '<br /><br />';
|
||||
}
|
||||
|
||||
echo '</center>';
|
||||
echo '</div>';
|
||||
?>
|
||||
|
@@ -57,7 +57,7 @@ class AJAXTree extends HTMLTree {
|
||||
return '';
|
||||
|
||||
# Get our children.
|
||||
$child_count = $this->readChildrenNumber($item);
|
||||
$child_count = $this->readChildrenNumber($entry->getDN());
|
||||
|
||||
$nb = 0;
|
||||
if ($first_child)
|
||||
@@ -81,12 +81,12 @@ class AJAXTree extends HTMLTree {
|
||||
$new_code = array('1','1','0','0');
|
||||
|
||||
# Links
|
||||
$parms['openclose'] = htmlspecialchars(sprintf('server_id=%s&dn=%s&code=%s%s',$this->getServerID(),rawurlencode($item),$code,$new_code[$nb]));
|
||||
$parms['edit'] = htmlspecialchars(sprintf('cmd=template_engine&server_id=%s&dn=%s',$this->getServerID(),rawurlencode($item)));
|
||||
$parms['openclose'] = htmlspecialchars(sprintf('server_id=%s&dn=%s&code=%s%s',$this->getServerID(),$entry->getDNEncode(),$code,$new_code[$nb]));
|
||||
$parms['edit'] = htmlspecialchars(sprintf('cmd=template_engine&server_id=%s&dn=%s',$this->getServerID(),$entry->getDNEncode()));
|
||||
$href = sprintf('cmd.php?%s',$parms['edit']);
|
||||
|
||||
# Each node has a unique id based on dn
|
||||
$node_id = sprintf('node%s',base64_encode(sprintf('%s-%s',$server->getIndex(),$item)));
|
||||
$node_id = sprintf('node%s',base64_encode(sprintf('%s-%s',$server->getIndex(),$entry->getDN())));
|
||||
$node_id = str_replace('=','_',$node_id);
|
||||
|
||||
if ($level == 0)
|
||||
@@ -97,25 +97,25 @@ class AJAXTree extends HTMLTree {
|
||||
echo $this->get_indentation($code);
|
||||
|
||||
if (! $child_count)
|
||||
printf('<img align="top" border="0" class="imgs" id="jt%snode" src="%s/%s" alt="--" />',$node_id,IMGDIR,$imgs['tree'][$nb]);
|
||||
printf('<img id="jt%snode" src="%s/%s" alt="--" class="imgs" style="border: 0px; vertical-align:text-top;" />',$node_id,IMGDIR,$imgs['tree'][$nb]);
|
||||
|
||||
else {
|
||||
printf('<a href="#" onclick="return opencloseTreeNode(\'%s\',\'%s\',\'%s\');">',$node_id,$parms['openclose'],IMGDIR);
|
||||
|
||||
if ($entry->isOpened())
|
||||
printf('<img align="top" border="0" class="imgs" id="jt%snode" src="%s/%s" alt="+-" />',$node_id,IMGDIR,$imgs['collapse'][$nb]);
|
||||
printf('<img id="jt%snode" src="%s/%s" alt="+-" class="imgs" style="border: 0px; vertical-align:text-top;" />',$node_id,IMGDIR,$imgs['collapse'][$nb]);
|
||||
else
|
||||
printf('<img align="top" border="0" class="imgs" id="jt%snode" src="%s/%s" alt="+-" />',$node_id,IMGDIR,$imgs['expand'][$nb]);
|
||||
printf('<img id="jt%snode" src="%s/%s" alt="+-" class="imgs" style="border: 0px; vertical-align:text-top;" />',$node_id,IMGDIR,$imgs['expand'][$nb]);
|
||||
|
||||
echo '</a>';
|
||||
}
|
||||
|
||||
printf('<a href="%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');" title="%s" >',$href,$parms['edit'],_('Retrieving DN'),htmlspecialchars($item));
|
||||
printf('<span class="dnicon"><img align="top" border="0" class="imgs" id="jt%sfolder" src="%s/%s" alt="->" /></span>',$node_id,IMGDIR,$entry->getIcon($server));
|
||||
printf('<a href="%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');" title="%s" >',$href,$parms['edit'],_('Retrieving DN'),htmlspecialchars($entry->getDN()));
|
||||
printf('<span class="dnicon"><img id="jt%sfolder" src="%s/%s" alt="->" class="imgs" style="border: 0px; vertical-align:text-top;" /></span>',$node_id,IMGDIR,$entry->getIcon($server));
|
||||
echo '</a>';
|
||||
|
||||
echo ' ';
|
||||
printf('<a href="%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');" title="%s" class="phplm">',$href,$parms['edit'],_('Retrieving DN'),htmlspecialchars($item));
|
||||
printf('<a href="%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');" title="%s" class="phplm">',$href,$parms['edit'],_('Retrieving DN'),htmlspecialchars($entry->getDN()));
|
||||
echo $this->get_formatted_dn($entry,$level-1);
|
||||
echo ($child_count ? (sprintf(' (%s%s)',$child_count,($entry->isSizeLimited() ? '+' : ''))) : '');
|
||||
echo '</a>';
|
||||
@@ -192,11 +192,11 @@ class AJAXTree extends HTMLTree {
|
||||
for ($i=0; $i<strlen($code); $i++) {
|
||||
switch ($code[$i]) {
|
||||
case '0':
|
||||
$indent .= sprintf('<img align="top" border="0" class="imgs" src="%s/tree_space.png" alt=" " />',IMGDIR);
|
||||
$indent .= sprintf('<img src="%s/tree_space.png" alt=" " class="imgs" style="border: 0px; vertical-align:text-top;" />',IMGDIR);
|
||||
break;
|
||||
|
||||
case '1':
|
||||
$indent .= sprintf('<img align="top" border="0" class="imgs" src="%s/tree_vertline.png" alt="| " />',IMGDIR);
|
||||
$indent .= sprintf('<img src="%s/tree_vertline.png" alt="| " class="imgs" style="border: 0px; vertical-align:text-top;" />',IMGDIR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -211,8 +211,9 @@ class AJAXTree extends HTMLTree {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
printf('<script type="text/javascript" language="javascript" src="%slayersmenu-browser_detection.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" language="javascript" src="%sajax_tree.js"></script>',JSDIR);
|
||||
parent::draw_javascript();
|
||||
printf('<script type="text/javascript" src="%slayersmenu-browser_detection.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sajax_tree.js"></script>',JSDIR);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -263,12 +264,12 @@ class AJAXTree extends HTMLTree {
|
||||
|
||||
$output = '';
|
||||
|
||||
$href = sprintf('cmd=template_engine&server_id=%s&container=%s',$this->getServerID(),rawurlencode($entry->getDN()));
|
||||
$href = sprintf('cmd=template_engine&server_id=%s&container=%s',$this->getServerID(),$entry->getDNEncode());
|
||||
|
||||
$output .= $this->get_indentation($level);
|
||||
$output .= sprintf('<img align="top" border="0" class="imgs" src="%s" alt="--" />',$img);
|
||||
$output .= sprintf('<img src="%s" alt="--" class="imgs" style="border: 0px; vertical-align:text-top;" />',$img);
|
||||
$output .= sprintf('<a href="%s" title="%s">',htmlspecialchars($href),$entry->getDN());
|
||||
$output .= sprintf('<img align="top" border="0" class="imgs" src="%s/create.png" alt="->" />',IMGDIR);
|
||||
$output .= sprintf('<img src="%s/create.png" alt="->" class="imgs" style="border: 0px; vertical-align:text-top;" />',IMGDIR);
|
||||
$output .= '</a>';
|
||||
$output .= ' ';
|
||||
|
||||
|
@@ -477,6 +477,10 @@ class Attribute {
|
||||
$this->readonly = true;
|
||||
}
|
||||
|
||||
public function isMultiple() {
|
||||
return false;
|
||||
}
|
||||
|
||||
public function isVisible() {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
@@ -774,7 +778,20 @@ class Attribute {
|
||||
|
||||
case 'value':
|
||||
if (is_array($value))
|
||||
$this->values = $value;
|
||||
foreach ($value as $x => $y) {
|
||||
if (! $this->haveMoreValues()) {
|
||||
system_message(array(
|
||||
'title'=>_('Automatically removed attribute values from template'),
|
||||
'body'=>sprintf('%s <small>[%s]</small>',_('Template defines more values than can be accepted by attribute.'),$this->getName(true)),
|
||||
'type'=>'warn'));
|
||||
|
||||
$this->clearValue();
|
||||
|
||||
break;
|
||||
|
||||
} else
|
||||
$this->addValue($x,$y);
|
||||
}
|
||||
|
||||
else
|
||||
# Check to see if the value is auto generated.
|
||||
@@ -787,7 +804,7 @@ class Attribute {
|
||||
$this->hint = _('Automatically determined');
|
||||
|
||||
} else
|
||||
$this->values = array($value);
|
||||
$this->addValue($value);
|
||||
|
||||
break;
|
||||
|
||||
@@ -811,6 +828,10 @@ class Attribute {
|
||||
case 'verify': $this->$index = $value;
|
||||
break;
|
||||
|
||||
case 'max':
|
||||
if ($this->getMaxValueCount() == -1)
|
||||
$this->setMaxValueCount($value);
|
||||
|
||||
default:
|
||||
if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning'))
|
||||
system_message(array(
|
||||
@@ -830,13 +851,7 @@ class Attribute {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
$return = array();
|
||||
|
||||
foreach ($this->getOldValues() as $value)
|
||||
if (! in_array($value,$this->getValues()))
|
||||
array_push($return,$value);
|
||||
|
||||
return $return;
|
||||
return array_diff($this->getOldValues(),$this->getValues());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -846,13 +861,7 @@ class Attribute {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
$return = array();
|
||||
|
||||
foreach ($this->getValues() as $value)
|
||||
if (! in_array($value,$this->getOldValues()))
|
||||
array_push($return,$value);
|
||||
|
||||
return $return;
|
||||
return array_diff($this->getValues(),$this->getOldValues());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -83,8 +83,12 @@ class AttributeFactory {
|
||||
if (isset($values['type']))
|
||||
switch ($values['type']) {
|
||||
case 'password':
|
||||
return $this->newPasswordAttribute($name,$values,$server_id,$source);
|
||||
if (! strcasecmp($name,'sambaLMPassword') || ! strcasecmp($name,'sambaNTPassword'))
|
||||
return $this->newSambaPasswordAttribute($name,$values,$server_id,$source);
|
||||
else
|
||||
return $this->newPasswordAttribute($name,$values,$server_id,$source);
|
||||
|
||||
case 'multiselect':
|
||||
case 'select':
|
||||
return $this->newSelectionAttribute($name,$values,$server_id,$source);
|
||||
|
||||
@@ -95,7 +99,7 @@ class AttributeFactory {
|
||||
if (! strcasecmp($name,'objectClass')) {
|
||||
return $this->newObjectClassAttribute($name,$values,$server_id,$source);
|
||||
|
||||
} elseif ($app['server']->isJpegPhoto($name)) {
|
||||
} elseif ($app['server']->isJpegPhoto($name) || in_array($name,$app['server']->getValue('server','jpeg_attributes'))) {
|
||||
return $this->newJpegAttribute($name,$values,$server_id,$source);
|
||||
|
||||
} elseif ($app['server']->isAttrBinary($name)) {
|
||||
|
@@ -28,9 +28,10 @@ class HTMLTree extends Tree {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',33,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
static $js_drawn = false;
|
||||
$server = $this->getServer();
|
||||
|
||||
echo '<table class="tree" border=0>';
|
||||
echo '<table class="tree" border="0">';
|
||||
if (! $onlytree)
|
||||
$this->draw_server_name();
|
||||
|
||||
@@ -60,7 +61,7 @@ class HTMLTree extends Tree {
|
||||
$server->getIndex());
|
||||
}
|
||||
|
||||
echo '<table class="tree" border=0>';
|
||||
echo '<table class="tree" border="0">';
|
||||
|
||||
if (! count($this->getBaseEntries())) {
|
||||
# We didnt get any baseDN entries in our tree?
|
||||
@@ -85,27 +86,32 @@ class HTMLTree extends Tree {
|
||||
*/
|
||||
foreach ($this->getBaseEntries() as $base) {
|
||||
if (! $base->isInLDAP()) {
|
||||
$js_drawn = false;
|
||||
$javascript_id++;
|
||||
|
||||
printf('<tr><td class="spacer"></td><td class="spacer"></td><td><img src="%s/unknown.png" /></td><td colspan="%s">%s</td></tr>',
|
||||
$rdn = explode('=',get_rdn($base->getDN()));
|
||||
printf('<tr><td class="spacer"></td><td class="spacer"></td><td><img src="%s/unknown.png" alt="" /></td><td colspan="%s">%s</td></tr>',
|
||||
IMGDIR,$this->getDepth()+3-3,pretty_print_dn($base->getDN()));
|
||||
|
||||
$this->javascript .= sprintf('<form name="create_base_form_%s" method="post" action="cmd.php?cmd=template_engine">',$javascript_id);
|
||||
$this->javascript .= sprintf('<form id="create_base_form_%s_%s" method="post" action="cmd.php">',$server->getIndex(),$javascript_id);
|
||||
$this->javascript .= '<div>';
|
||||
$this->javascript .= '<input type="hidden" name="cmd" value="template_engine" />';
|
||||
$this->javascript .= sprintf('<input type="hidden" name="server_id" value="%s" />',$server->getIndex());
|
||||
$this->javascript .= sprintf('<input type="hidden" name="container" value="%s" />',htmlspecialchars($server->getContainer($base->getDN())));
|
||||
$this->javascript .= sprintf('<input type="hidden" name="rdn" value="%s" />',get_rdn($base->getDN()));
|
||||
$this->javascript .= sprintf('<input type="hidden" name="rdn_attribute[]" value="%s" />',$rdn[0]);
|
||||
$this->javascript .= sprintf('<input type="hidden" name="new_values[%s][]" value="%s" />',$rdn[0],$rdn[1]);
|
||||
$this->javascript .= '<input type="hidden" name="template" value="none" />';
|
||||
$this->javascript .= '<input type="hidden" name="create_base" value="true" />';
|
||||
$this->javascript .= '</div>';
|
||||
$this->javascript .= sprintf('</form>');
|
||||
|
||||
printf('<tr><td class="spacer"></td><td class="spacer"></td><td class="spacer"></td><td colspan="%s"><small>%s<a href="javascript:document.create_base_form_%s.submit()">%s</a></small></td></tr>',
|
||||
$this->getDepth()+3-3,_('This base entry does not exist.'),$javascript_id,_('Create it?'));
|
||||
|
||||
echo '</table>';
|
||||
|
||||
if (! $onlytree)
|
||||
echo '</div></td></tr>';
|
||||
|
||||
echo '</table>';
|
||||
return;
|
||||
if (preg_match('/,/',$base->getDN()))
|
||||
printf('<tr><td class="spacer"></td><td class="spacer"></td><td class="spacer"></td><td colspan="%s"><small>%s</small></td></tr>',
|
||||
$this->getDepth()+3-3,_('This base cannot be created with PLA.'));
|
||||
else
|
||||
printf('<tr><td class="spacer"></td><td class="spacer"></td><td class="spacer"></td><td colspan="%s"><small>%s <a href="javascript:document.getElementById(\'create_base_form_%s_%s\').submit()">%s</a></small></td></tr>',
|
||||
$this->getDepth()+3-3,_('This base entry does not exist.'),$server->getIndex(),$javascript_id,_('Create it?'));
|
||||
|
||||
} else {
|
||||
$this->draw_item($base->getDN(),-1);
|
||||
@@ -120,6 +126,7 @@ class HTMLTree extends Tree {
|
||||
# We are not logged in, draw a login... link.
|
||||
} else {
|
||||
switch ($server->getAuthType()) {
|
||||
case 'cookie':
|
||||
case 'http':
|
||||
case 'session':
|
||||
$this->draw_login_link();
|
||||
@@ -127,6 +134,7 @@ class HTMLTree extends Tree {
|
||||
|
||||
case 'config':
|
||||
case 'proxy':
|
||||
case 'sasl':
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -138,8 +146,6 @@ class HTMLTree extends Tree {
|
||||
echo '</table>';
|
||||
echo "\n\n";
|
||||
|
||||
static $js_drawn = false;
|
||||
|
||||
if (! $js_drawn) {
|
||||
$this->draw_javascript();
|
||||
$js_drawn = true;
|
||||
@@ -163,7 +169,7 @@ class HTMLTree extends Tree {
|
||||
if (! is_null($server->inactivityTime())) {
|
||||
$m = sprintf(_('Inactivity will log you off at %s'),
|
||||
strftime('%H:%M',$server->inactivityTime()));
|
||||
printf(' <img width=14 height=14 src="%s/timeout.png" title="%s" alt="%s"/>',IMGDIR,$m,'Timeout');
|
||||
printf(' <img width="14" height="14" src="%s/timeout.png" title="%s" alt="%s"/>',IMGDIR,$m,'Timeout');
|
||||
}
|
||||
echo '</td></tr>';
|
||||
}
|
||||
@@ -322,7 +328,7 @@ class HTMLTree extends Tree {
|
||||
$server = $this->getServer();
|
||||
$href = sprintf('cmd.php?cmd=logout&server_id=%s',$server->getIndex());
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','logout') || in_array($server->getAuthType(),array('config','http','proxy')))
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('script','logout') || in_array($server->getAuthType(),array('config','http','proxy','sasl')))
|
||||
return '';
|
||||
else
|
||||
return sprintf('<a href="%s" title="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||
@@ -420,7 +426,7 @@ class HTMLTree extends Tree {
|
||||
$href['edit'] = htmlspecialchars(sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',$server->getIndex(),$dnENCODE));
|
||||
|
||||
echo '<tr class="option">';
|
||||
printf('<td class="spacer" colspan=%s></td>',$level+2);
|
||||
printf('<td class="spacer" colspan="%s"></td>',$level+2);
|
||||
|
||||
# Is this node expanded? (deciding whether to draw "+" or "-")
|
||||
if ($entry->isOpened())
|
||||
@@ -437,7 +443,7 @@ class HTMLTree extends Tree {
|
||||
printf('<td class="icon"><a href="%s" id="node_%s_%s"><img src="%s/%s" alt="img" /></a></td>',
|
||||
$href['edit'],$server->getIndex(),preg_replace('/=/','_',base64_encode($item)),IMGDIR,$entry->getIcon());
|
||||
|
||||
printf('<td class="phplm" width=100%% colspan="%s"><span style="white-space: nowrap;">',$this->getDepth()+3-$level);
|
||||
printf('<td class="phplm" colspan="%s" style="width: 100%%;"><span style="white-space: nowrap;">',$this->getDepth()+3-$level);
|
||||
printf('<a href="%s">%s</a>',$href['edit'],$this->get_formatted_dn($entry,$level));
|
||||
|
||||
if ($child_count)
|
||||
@@ -493,7 +499,7 @@ class HTMLTree extends Tree {
|
||||
$href = htmlspecialchars(sprintf('cmd.php?cmd=template_engine&server_id=%s&container=%s',$this->getServerID(),$encoded_dn));
|
||||
|
||||
echo '<tr>';
|
||||
printf('<td class="spacer" colspan=%s></td>',$level+3);
|
||||
printf('<td class="spacer" colspan="%s"></td>',$level+3);
|
||||
printf('<td class="icon"><a href="%s"><img src="%s/create.png" alt="%s" /></a></td>',$href,IMGDIR,_('new'));
|
||||
printf('<td class="link" colspan="%s"><a href="%s" title="%s %s">%s</a></td>',
|
||||
$this->getDepth()+3-$level,$href,_('Create a new entry in'),$rdn,_('Create new entry here'));
|
||||
@@ -525,8 +531,8 @@ class HTMLTree extends Tree {
|
||||
|
||||
echo '</tr>';
|
||||
|
||||
printf('<tr><td class="blank" colspan="%s"> </td>',$this->getDepth()+3);
|
||||
printf('<tr><td class="blank" colspan="%s"> </td>',$this->getDepth()+3);
|
||||
printf('<tr><td class="blank" colspan="%s"> </td></tr>',$this->getDepth()+3);
|
||||
printf('<tr><td class="blank" colspan="%s"> </td></tr>',$this->getDepth()+3);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -540,6 +546,7 @@ class HTMLTree extends Tree {
|
||||
echo "<!-- Forms for javascript submit to call to create base_dns -->\n";
|
||||
echo $this->javascript;
|
||||
echo "<!-- The end of the forms for javascript submit to call to create base_dns -->\n";
|
||||
$this->javascript = '';
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -25,8 +25,8 @@ class MassRender extends TemplateRender {
|
||||
$j,htmlspecialchars($attribute->getName()),$i,
|
||||
$j,htmlspecialchars($attribute->getName()),$i,
|
||||
htmlspecialchars($val),
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '',
|
||||
($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : '');
|
||||
|
||||
|
@@ -97,6 +97,10 @@ class PageRender extends Visitor {
|
||||
|
||||
$this->visit('',$attribute);
|
||||
}
|
||||
|
||||
// Sort our attribute values for display, if we are the custom template.
|
||||
if ($this->template->getID() == 'none')
|
||||
$this->template->sort();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,7 +193,10 @@ class PageRender extends Visitor {
|
||||
$blank++;
|
||||
}
|
||||
|
||||
} elseif (count($attribute2->getValues()) !=1) {
|
||||
} elseif (count($attribute2->getValues()) == 0) {
|
||||
return;
|
||||
|
||||
} elseif (count($attribute2->getValues()) != 1) {
|
||||
array_push($values,'');
|
||||
$blank++;
|
||||
|
||||
@@ -231,6 +238,9 @@ class PageRender extends Visitor {
|
||||
return;
|
||||
}
|
||||
|
||||
if (! $attribute->hasBeenModified())
|
||||
return;
|
||||
|
||||
# Get the attribute.
|
||||
if (preg_match_all('/%(\w+)(\|.+)?(\/[lU])?%/U',strtolower($args[1]),$matchall)) {
|
||||
if (count($matchall[1]) != 1)
|
||||
@@ -272,12 +282,12 @@ class PageRender extends Visitor {
|
||||
|
||||
case 'nt':
|
||||
$sambapassword = new smbHash;
|
||||
$vals[$i] = $sambapassword->nthash($passwordvalue); break;
|
||||
$vals[$i] = $sambapassword->nthash($passwordvalue);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
$vals[$i] = password_hash($passwordvalue,$enc);
|
||||
$vals[$i] = pla_password_hash($passwordvalue,$enc);
|
||||
}
|
||||
|
||||
$vals = array_unique($vals);
|
||||
@@ -288,7 +298,7 @@ class PageRender extends Visitor {
|
||||
$vals = $this->get('AutoPost',$attribute,$i);
|
||||
}
|
||||
|
||||
if (! $vals)
|
||||
if (! $vals || $vals == $attribute->getValues())
|
||||
return;
|
||||
|
||||
$attribute->clearValue();
|
||||
@@ -325,7 +335,17 @@ class PageRender extends Visitor {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s:<u>%s</u></font><br />',__METHOD__,'Choosing the DEFAULT template, no other template applicable');
|
||||
|
||||
# Since getTemplate() returns a default template if the one we want doesnt exist, we can return $templates->getID(), it should be the default.
|
||||
return $template->getID();
|
||||
if ($_SESSION[APPCONFIG]->getValue('appearance','disable_default_template') AND $this->getMode() == 'creation') {
|
||||
|
||||
system_message(array(
|
||||
'title'=>_('No available templates'),
|
||||
'body'=>_('There are no available active templates for this container.'),
|
||||
'type'=>'warn'));
|
||||
|
||||
return 'invalid';
|
||||
|
||||
} else
|
||||
return $template->getID();
|
||||
|
||||
# If there is only 1 defined template, and no default available, then that is our template.
|
||||
} elseif ((count($templates->getTemplates($this->getMode(),$this->getModeContainer(),true)) == 1) && ! $this->haveDefaultTemplate()) {
|
||||
@@ -359,7 +379,7 @@ class PageRender extends Visitor {
|
||||
$href = sprintf('cmd.php?cmd=schema&server_id=%s&view=attributes&viewvalue=%s',
|
||||
$this->getServerID(),$attribute->getName());
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->getValue('appearance','show_schema_link'))
|
||||
if (! $_SESSION[APPCONFIG]->getValue('appearance','show_schema_link') || !$_SESSION[APPCONFIG]->isCommandAvailable('script','schema'))
|
||||
printf('%s',_($attribute->getFriendlyName()));
|
||||
|
||||
elseif ($attribute->getLDAPtype())
|
||||
@@ -474,7 +494,7 @@ class PageRender extends Visitor {
|
||||
|
||||
# Is there a hint for this attribute
|
||||
if ($attribute->getHint())
|
||||
return sprintf('<acronym title="%s">%s</acronym>',$attribute->getHint(),_('hint'));
|
||||
return sprintf('<acronym title="%s">%s</acronym>',_($attribute->getHint()),_('hint'));
|
||||
else
|
||||
return '';
|
||||
}
|
||||
@@ -501,7 +521,7 @@ class PageRender extends Visitor {
|
||||
debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
foreach ($this->template->getAttributes(true) as $attribute)
|
||||
if ($attribute->hasbeenModified())
|
||||
if ($attribute->hasbeenModified()) {
|
||||
if ($attribute->getValues())
|
||||
foreach ($attribute->getValues() as $index => $details)
|
||||
$this->draw('HiddenValue',$attribute,$index);
|
||||
@@ -509,6 +529,7 @@ class PageRender extends Visitor {
|
||||
# We are deleting this attribute, so we need to display an empty value
|
||||
else
|
||||
$this->draw('HiddenValue',$attribute,0);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -558,7 +579,7 @@ class PageRender extends Visitor {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
if (DEBUGTMPSUB) printf(' <small>[%s]</small>',__METHOD__);
|
||||
|
||||
echo $attribute->getValue($i);
|
||||
echo htmlspecialchars($attribute->getValue($i));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -588,7 +609,7 @@ class PageRender extends Visitor {
|
||||
|
||||
$val = $attribute->getValue($i);
|
||||
|
||||
printf('<input type="text" class="roval" name="new_values[%s][%s]" id="new_values_%s_%s" value="%s" readonly />',
|
||||
printf('<input type="text" class="roval" name="new_values[%s][%s]" id="new_values_%s_%s" value="%s" readonly="readonly" />',
|
||||
htmlspecialchars($attribute->getName()),$i,htmlspecialchars($attribute->getName()),$i,htmlspecialchars($val));
|
||||
}
|
||||
|
||||
@@ -598,14 +619,14 @@ class PageRender extends Visitor {
|
||||
$val = $attribute->getValue($i);
|
||||
|
||||
if ($attribute->getHelper() || $attribute->getVerify())
|
||||
echo '<table cellspacing="0" cellpadding="0" border=1><tr><td valign="top">';
|
||||
echo '<table cellspacing="0" cellpadding="0" border="0"><tr><td valign="top">';
|
||||
|
||||
printf('<input type="text" class="value" name="new_values[%s][%s]" id="new_values_%s_%s" value="%s" %s%s %s %s/>',
|
||||
htmlspecialchars($attribute->getName()),$i,
|
||||
htmlspecialchars($attribute->getName()),$i,
|
||||
htmlspecialchars($val),
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '',
|
||||
($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : '');
|
||||
|
||||
@@ -689,8 +710,8 @@ class PageRender extends Visitor {
|
||||
printf('<input type="file" class="value" name="new_values[%s][%s]" id="new_values_%s_%s" value="" %s%s %s %s/><br />',
|
||||
htmlspecialchars($attribute->getName()),$i,
|
||||
htmlspecialchars($attribute->getName()),$i,
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
($attribute->getSize() > 0) ? 'size="'.$attribute->getSize().'"' : '',
|
||||
($attribute->getMaxLength() > 0) ? 'maxlength="'.$attribute->getMaxLength().'"' : '');
|
||||
}
|
||||
@@ -702,11 +723,11 @@ class PageRender extends Visitor {
|
||||
$val = $attribute->getValue($i);
|
||||
|
||||
echo '<span style="white-space: nowrap;">';
|
||||
printf('<input type="text" class="value" id="f_date_%s_%s" name="new_values[%s][%s]" value="%s" %s%s %s %s/> ',
|
||||
printf('<input type="text" class="value" id="new_values_%s_%s" name="new_values[%s][%s]" value="%s" %s%s %s %s/> ',
|
||||
$attribute->getName(),$i,
|
||||
htmlspecialchars($attribute->getName()),$i,htmlspecialchars($val),
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '',
|
||||
($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : '');
|
||||
|
||||
@@ -727,13 +748,13 @@ class PageRender extends Visitor {
|
||||
|
||||
printf('<span style="white-space: nowrap;"><input type="text" class="value" name="%s" id="%s" value="%s" %s%s %s %s/> ',
|
||||
$input_name,$id,htmlspecialchars($val),
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
($attribute->getSize() > 0) ? 'size="'.$attribute->getSize().'"' : '',
|
||||
($attribute->getMaxLength() > 0) ? 'maxlength="'.$attribute->getMaxLength().'"' : '');
|
||||
|
||||
# Draw a link for popping up the entry browser if this is the type of attribute that houses DNs.
|
||||
draw_chooser_link(sprintf('entry_form.%s',$id),false);
|
||||
draw_chooser_link('entry_form',$id,false);
|
||||
echo '</span>';
|
||||
|
||||
if ($attribute->getHelper()) {
|
||||
@@ -829,7 +850,10 @@ class PageRender extends Visitor {
|
||||
}
|
||||
|
||||
protected function drawFormReadOnlyValueJpegAttribute($attribute,$i) {
|
||||
draw_jpeg_photo($this->getServer(),$this->template->getDN(),$attribute->getName(),$i,false,false);
|
||||
$this->draw('HiddenValue',$attribute,$i);
|
||||
$_SESSION['tmp'][$attribute->getName()][$i] = $attribute->getValue($i);
|
||||
|
||||
draw_jpeg_photo(null,$this->template->getDN(),$attribute->getName(),$i,false,false);
|
||||
}
|
||||
|
||||
protected function drawFormReadOnlyValueMultiLineAttribute($attribute,$i) {
|
||||
@@ -837,9 +861,9 @@ class PageRender extends Visitor {
|
||||
|
||||
$val = $attribute->getValue($i);
|
||||
|
||||
printf('<textarea class="roval" %s %s name="new_values[%s][%s]" id="new_values_%s_%s" readonly>%s</textarea>',
|
||||
($attribute->getRows() > 0) ? 'rows="'.$attribute->getRows().'"' : '',
|
||||
($attribute->getCols() > 0) ? 'cols="'.$attribute->getCols().'"' : '',
|
||||
printf('<textarea class="roval" rows="%s" cols="%s" name="new_values[%s][%s]" id="new_values_%s_%s" readonly="readonly">%s</textarea>',
|
||||
($attribute->getRows() > 0) ? $attribute->getRows() : 5,
|
||||
($attribute->getCols() > 0) ? $attribute->getCols() : 100,
|
||||
htmlspecialchars($attribute->getName()),$i,
|
||||
htmlspecialchars($attribute->getName()),$i,
|
||||
$val);
|
||||
@@ -850,13 +874,13 @@ class PageRender extends Visitor {
|
||||
|
||||
$val = $attribute->getValue($i);
|
||||
|
||||
printf('<textarea class="value" %s %s name="new_values[%s][%s]" id="new_values_%s_%s" %s%s>%s</textarea>',
|
||||
($attribute->getRows() > 0) ? 'rows="'.$attribute->getRows().'"' : '',
|
||||
($attribute->getCols() > 0) ? 'cols="'.$attribute->getCols().'"' : '',
|
||||
printf('<textarea class="value" rows="%s" cols="%s" name="new_values[%s][%s]" id="new_values_%s_%s" %s%s>%s</textarea>',
|
||||
($attribute->getRows() > 0) ? $attribute->getRows() : 5,
|
||||
($attribute->getCols() > 0) ? $attribute->getCols() : 100,
|
||||
htmlspecialchars($attribute->getName()),$i,
|
||||
htmlspecialchars($attribute->getName()),$i,
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$val);
|
||||
}
|
||||
|
||||
@@ -933,11 +957,11 @@ class PageRender extends Visitor {
|
||||
if (trim($val))
|
||||
$enc_type = get_enc_type($val);
|
||||
else
|
||||
$enc_type = $server->getValue('appearance','password_hash');
|
||||
$enc_type = $server->getValue('appearance','pla_password_hash');
|
||||
|
||||
$obfuscate_password = obfuscate_password_display($enc_type);
|
||||
|
||||
printf('<input type="%s" class="roval" name="new_values[%s][%s]" id="new_values_%s_%s" value="%s" %s readonly /><br />',
|
||||
printf('<input type="%s" class="roval" name="new_values[%s][%s]" id="new_values_%s_%s" value="%s" %s readonly="readonly" /><br />',
|
||||
($obfuscate_password ? 'password' : 'text'),
|
||||
htmlspecialchars($attribute->getName()),$i,htmlspecialchars($attribute->getName()),
|
||||
$i,htmlspecialchars($val),($attribute->getSize() > 0) ? 'size="'.$attribute->getSize().'"' : '');
|
||||
@@ -958,7 +982,7 @@ class PageRender extends Visitor {
|
||||
if (trim($val))
|
||||
$enc_type = get_enc_type($val);
|
||||
else
|
||||
$enc_type = $server->getValue('appearance','password_hash');
|
||||
$enc_type = $server->getValue('appearance','pla_password_hash');
|
||||
|
||||
echo '<table cellspacing="0" cellpadding="0"><tr><td valign="top">';
|
||||
|
||||
@@ -969,8 +993,8 @@ class PageRender extends Visitor {
|
||||
($obfuscate_password ? 'password' : 'text'),
|
||||
htmlspecialchars($attribute->getName()),$i,$id,
|
||||
htmlspecialchars($val),
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
($attribute->getSize() > 0) ? sprintf('size="%s"',$attribute->getSize()) : '',
|
||||
($attribute->getMaxLength() > 0) ? sprintf('maxlength="%s"',$attribute->getMaxLength()) : '');
|
||||
|
||||
@@ -1011,26 +1035,29 @@ class PageRender extends Visitor {
|
||||
$vals = $attribute->getValues();
|
||||
$j = 0;
|
||||
|
||||
if (! $vals && ! is_null($attribute->getDefault()) && ! is_array($vals = $attribute->getDefault()))
|
||||
$vals = array($attribute->getDefault());
|
||||
|
||||
if (($attribute->getSize() > 0) && ($attribute->getSize() < $attribute->getOptionCount())) {
|
||||
|
||||
printf('<select name="new_values[%s][]" size="%s" multiple>',
|
||||
printf('<select name="new_values[%s][]" size="%s" multiple="multiple">',
|
||||
htmlspecialchars($attribute->getName()),$attribute->getSize());
|
||||
|
||||
foreach ($attribute->getSelection() as $value => $description) {
|
||||
if (in_array($value,$vals))
|
||||
$selected[$value] = true;
|
||||
|
||||
printf('<option id="new_values_%s_%s" value="%s" onMouseDown="focus_%s(this);" onClick="blur_%s(this);" %s>%s</option>',
|
||||
printf('<option id="new_values_%s_%s" value="%s" onmouseDown="focus_%s(this);" onclick="blur_%s(this);" %s>%s</option>',
|
||||
htmlspecialchars($attribute->getName()),$j++,
|
||||
$value,htmlspecialchars($attribute->getName()),htmlspecialchars($attribute->getName()),
|
||||
isset($selected[$value]) ? 'selected' : '',$description);
|
||||
isset($selected[$value]) ? 'selected="selected"' : '',$description);
|
||||
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
foreach ($vals as $val) {
|
||||
if (! isset($selected[$val]))
|
||||
printf('<option id="new_values_%s_%s" value="%s" onMouseDown="focus_%s(this);" onClick="blur_%s(this);" selected>%s</option>',
|
||||
printf('<option id="new_values_%s_%s" value="%s" onmousedown="focus_%s(this);" onclick="blur_%s(this);" selected="selected">%s</option>',
|
||||
htmlspecialchars($attribute->getName()),$j++,
|
||||
$val,htmlspecialchars($attribute->getName()),
|
||||
htmlspecialchars($attribute->getName()),$val);
|
||||
@@ -1041,7 +1068,12 @@ class PageRender extends Visitor {
|
||||
echo '</select>';
|
||||
|
||||
} else {
|
||||
echo '<table cellspacing="0" cellpadding="0" border=0>';
|
||||
echo '<table cellspacing="0" cellpadding="0" border="0">';
|
||||
|
||||
// For checkbox items, we need to render a blank entry, so that we detect an all-unselect situation
|
||||
printf('<tr><td colspan="2"><input type="hidden" id="new_values_%s_%s" name="new_values[%s][]" value="%s"/></td></tr>',
|
||||
htmlspecialchars($attribute->getName()),$j++,
|
||||
htmlspecialchars($attribute->getName()),'');
|
||||
|
||||
foreach ($attribute->getSelection() as $value => $description) {
|
||||
if (in_array($value,$vals))
|
||||
@@ -1050,19 +1082,19 @@ class PageRender extends Visitor {
|
||||
printf('<tr><td><input type="checkbox" id="new_values_%s_%s" name="new_values[%s][]" value="%s" %s%s %s/></td><td><span style="white-space: nowrap;"> %s</span></td></tr>',
|
||||
htmlspecialchars($attribute->getName()),$j++,
|
||||
htmlspecialchars($attribute->getName()),$value,
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
isset($selected[$value]) ? 'checked' : '',
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
isset($selected[$value]) ? 'checked="checked"' : '',
|
||||
$description);
|
||||
}
|
||||
|
||||
foreach ($vals as $val)
|
||||
if (! isset($selected[$val]))
|
||||
printf('<tr><td><input type="checkbox" id="%s" name="new_values[%s][]" value="%s" %s%s checked/></td><td><span style="white-space: nowrap;"> %s</span></td></tr>',
|
||||
printf('<tr><td><input type="checkbox" id="new_values_%s_%s" name="new_values[%s][]" value="%s" %s%s checked="checked"/></td><td><span style="white-space: nowrap;"> %s</span></td></tr>',
|
||||
htmlspecialchars($attribute->getName()),$j++,
|
||||
htmlspecialchars($attribute->getName()),$val,
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '',
|
||||
$val);
|
||||
|
||||
echo '</table>';
|
||||
@@ -1088,15 +1120,12 @@ class PageRender extends Visitor {
|
||||
printf('<select name="new_values[%s][]" id="new_values_%s_%s" %s%s>',
|
||||
htmlspecialchars($attribute->getName()),
|
||||
htmlspecialchars($attribute->getName()),$i,
|
||||
$attribute->needJS('focus') ? sprintf('onFocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onBlur="blur_%s(this);" ',$attribute->getName()) : '');
|
||||
$attribute->needJS('focus') ? sprintf('onfocus="focus_%s(this);" ',$attribute->getName()) : '',
|
||||
$attribute->needJS('blur') ? sprintf('onblur="blur_%s(this);" ',$attribute->getName()) : '');
|
||||
|
||||
foreach ($attribute->getSelection() as $value => $description) {
|
||||
printf('<option value="%s" %s>%s</option>',$value,
|
||||
($value == $val) ? 'selected' : '',$description);
|
||||
|
||||
if ($value == $val)
|
||||
$found = true;
|
||||
((strcasecmp($value,$val) == 0) && $found = true) ? 'selected="selected"' : '',$description);
|
||||
|
||||
if ($value == '')
|
||||
$empty_value = true;
|
||||
@@ -1105,7 +1134,7 @@ class PageRender extends Visitor {
|
||||
}
|
||||
|
||||
if (!$found) {
|
||||
printf('<option value="%s" selected>%s</option>',$val,$val == '' ? ' ' : $val);
|
||||
printf('<option value="%s" selected="selected">%s</option>',$val,$val == '' ? ' ' : $val);
|
||||
if ($val == '')
|
||||
$empty_value = true;
|
||||
echo "\n";
|
||||
|
@@ -195,6 +195,14 @@ class Query extends xmlTemplate {
|
||||
return $this->dn;
|
||||
}
|
||||
|
||||
public function getDNEncode($url=true) {
|
||||
// @todo Be nice to do all this in 1 location
|
||||
if ($url)
|
||||
return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn));
|
||||
else
|
||||
return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn);
|
||||
}
|
||||
|
||||
public function getAttrSortOrder() {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
@@ -239,8 +247,8 @@ class Query extends xmlTemplate {
|
||||
# If our display order is empty, then dynamically build it
|
||||
if (! count($result)) {
|
||||
foreach ($this->results as $details)
|
||||
foreach ($details as $attrs)
|
||||
$result = array_merge($result,array_keys(array_change_key_case($attrs)));
|
||||
foreach ($details as $attrs)
|
||||
$result = array_merge($result,array_keys(array_change_key_case($attrs)));
|
||||
|
||||
$result = array_unique($result);
|
||||
sort($result);
|
||||
|
@@ -79,13 +79,15 @@ class QueryRender extends PageRender {
|
||||
|
||||
$baseDNs = $server->getBaseDN();
|
||||
|
||||
echo '<center>';
|
||||
echo '<form action="cmd.php" name="advanced_search_form">';
|
||||
printf('<script type="text/javascript" src="%sdnChooserPopup.js"></script>',JSDIR);
|
||||
echo '<form action="cmd.php" id="advanced_search_form">';
|
||||
echo '<div>';
|
||||
echo '<input type="hidden" name="cmd" value="query_engine" />';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$server->getIndex());
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="forminput" border=0>';
|
||||
echo '<tr><td colspan=2> </td></tr>';
|
||||
echo '<table class="forminput" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||
echo '<tr><td colspan="2"> </td></tr>';
|
||||
|
||||
$templates = $this->getTemplates();
|
||||
|
||||
@@ -100,21 +102,22 @@ class QueryRender extends PageRender {
|
||||
foreach ($templates->getTemplates() as $template)
|
||||
printf('<option value="%s" %s>%s</option>',
|
||||
$template->getID(),
|
||||
($this->template_id == $template->getID() ? 'selected' : ''),
|
||||
($this->template_id == $template->getID() ? 'selected="selected"' : ''),
|
||||
$template->getDescription());
|
||||
echo '</select>';
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
echo '<tr>';
|
||||
printf('<td><acronym title="%s">%s</acronym></td>',_('The format to show the query results'),_('Display Format'));
|
||||
echo '<td>';
|
||||
echo '<select name="format" style="width: 200px">';
|
||||
|
||||
printf('<option value="list" %s>%s</option>',
|
||||
$_SESSION[APPCONFIG]->getValue('search','display') == 'list' ? 'selected' : '',_('list'));
|
||||
$_SESSION[APPCONFIG]->getValue('search','display') == 'list' ? 'selected="selected"' : '',_('list'));
|
||||
printf('<option value="table" %s>%s</option>',
|
||||
$_SESSION[APPCONFIG]->getValue('search','display') == 'table' ? 'selected' : '',_('table'));
|
||||
$_SESSION[APPCONFIG]->getValue('search','display') == 'table' ? 'selected="selected"' : '',_('table'));
|
||||
|
||||
echo '</select>';
|
||||
echo '</td>';
|
||||
@@ -134,17 +137,17 @@ class QueryRender extends PageRender {
|
||||
|
||||
echo '<tr>';
|
||||
|
||||
echo '<td colspan=2>';
|
||||
echo '<td colspan="2">';
|
||||
printf('<div id="customquery" style="display: %s">','block');
|
||||
echo '<br/>';
|
||||
echo '<fieldset>';
|
||||
printf('<legend>%s</legend>',_('Custom Query'));
|
||||
echo '<table border=0></tr>';
|
||||
echo '<table border="0"><tr>';
|
||||
|
||||
printf('<td>%s</td>',_('Base DN'));
|
||||
printf('<td><input type="text" name="base" value="%s" style="width: 200px" id="base" />',count($baseDNs) == 1 ? $baseDNs[0] : '');
|
||||
|
||||
draw_chooser_link('advanced_search_form.base');
|
||||
draw_chooser_link('advanced_search_form','base');
|
||||
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
@@ -201,11 +204,10 @@ class QueryRender extends PageRender {
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
|
||||
printf('<tr><td colspan="2"><br /><center><input type="submit" name="search" value="%s" /></center></td></tr>',_('Search'));
|
||||
printf('<tr><td colspan="2" style="text-align: center;"><br /><input type="submit" name="search" value="%s" /></td></tr>',_('Search'));
|
||||
|
||||
echo '</table>';
|
||||
echo '</form>';
|
||||
echo '</center>';
|
||||
}
|
||||
|
||||
private function visitStart() {
|
||||
@@ -227,7 +229,6 @@ class QueryRender extends PageRender {
|
||||
# If Mass Actions Enabled
|
||||
if ($_SESSION[APPCONFIG]->getValue('mass','enabled')) {
|
||||
$mass_actions = array(
|
||||
' ' => '',
|
||||
_('delete') => 'mass_delete',
|
||||
_('edit') => 'mass_edit'
|
||||
);
|
||||
@@ -247,7 +248,7 @@ class QueryRender extends PageRender {
|
||||
printf('<div id="DN%s" style="display: %s">',
|
||||
$this->getAjaxRef($base), ($show == $this->getAjaxRef($base) ? 'block' : 'none'));
|
||||
|
||||
echo '<table class="result_box" border=0 width=100%>';
|
||||
echo '<table class="result_box" border="0" width="100%">';
|
||||
echo '<tr><td>';
|
||||
echo '<br/>';
|
||||
echo '<br/>';
|
||||
@@ -265,13 +266,13 @@ class QueryRender extends PageRender {
|
||||
# Temporarily set our DN, for rendering that leverages our DN (eg: JpegPhoto)
|
||||
$this->template->setDN($dndetails['dn']);
|
||||
|
||||
echo '<table class="result" border=0>';
|
||||
echo '<table class="result" border="0">';
|
||||
|
||||
echo '<tr class="list_title">';
|
||||
printf('<td class="icon"><img src="%s/%s" alt="icon" /></td>',IMGDIR,get_icon($server->getIndex(),$dndetails['dn']));
|
||||
|
||||
printf('<td colspan=2><a href="cmd.php?cmd=template_engine&server_id=%s&dn=%s">%s</a></td>',
|
||||
$server->getIndex(),rawurlencode(dn_unescape($dndetails['dn'])),htmlspecialchars(get_rdn($dndetails['dn'])));
|
||||
printf('<td colspan="2"><a href="cmd.php?cmd=template_engine&server_id=%s&dn=%s">%s</a></td>',
|
||||
$server->getIndex(),$this->template->getDNEncode(),htmlspecialchars(get_rdn($dndetails['dn'])));
|
||||
echo '</tr>';
|
||||
|
||||
printf('<tr class="list_item"><td class="blank"> </td><td class="heading">dn</td><td class="value">%s</td></tr>',
|
||||
@@ -279,6 +280,8 @@ class QueryRender extends PageRender {
|
||||
|
||||
# Iterate over each attribute for this entry
|
||||
foreach (explode(',',$ado) as $attr) {
|
||||
$attr = strtolower($attr);
|
||||
|
||||
# Ignore DN, we've already displayed it.
|
||||
if ($attr == 'dn')
|
||||
continue;
|
||||
@@ -318,16 +321,19 @@ class QueryRender extends PageRender {
|
||||
if (! $results) {
|
||||
echo _('Search returned no results');
|
||||
|
||||
continue;
|
||||
continue 2;
|
||||
}
|
||||
|
||||
printf('<form action="cmd.php" method="post" id="massform_%s">',$counter);
|
||||
echo '<div>';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$server->getIndex());
|
||||
|
||||
foreach ($this->template->resultsdata[$base]['attrs'] as $attr)
|
||||
printf('<input type="hidden" name="attrs[]" value="%s" />',$attr);
|
||||
|
||||
echo '<table class="result_table" border=0>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="result_table" border="0">';
|
||||
|
||||
echo '<thead class="fixheader">';
|
||||
echo '<tr class="heading">';
|
||||
@@ -351,14 +357,14 @@ class QueryRender extends PageRender {
|
||||
# Temporarily set our DN, for rendering that leverages our DN (eg: JpegPhoto)
|
||||
$this->template->setDN($dndetails['dn']);
|
||||
|
||||
printf('<tr class="%s" id="tr_ma_%s" onClick="var cb=document.getElementById(\'ma_%s\'); cb.checked=!cb.checked;">',
|
||||
printf('<tr class="%s" id="tr_ma_%s" onclick="var cb=document.getElementById(\'ma_%s\'); cb.checked=!cb.checked;">',
|
||||
$j%2 ? 'even' : 'odd',$j,$j);
|
||||
|
||||
# Is mass action enabled.
|
||||
if ($_SESSION[APPCONFIG]->getValue('mass','enabled'))
|
||||
printf('<td><input type="checkbox" id="ma_%s" name="dn[]" value="%s" onclick="this.checked=!this.checked;" /></td>',$j,$dndetails['dn']);
|
||||
|
||||
$href = sprintf('cmd=template_engine&server_id=%s&dn=%s',$server->getIndex(),rawurlencode($dndetails['dn']));
|
||||
$href = sprintf('cmd=template_engine&server_id=%s&dn=%s',$server->getIndex(),$this->template->getDNEncode());
|
||||
printf('<td class="icon"><a href="cmd.php?%s"><img src="%s/%s" alt="icon" /></a></td>',
|
||||
htmlspecialchars($href),
|
||||
IMGDIR,get_icon($server->getIndex(),$dndetails['dn']));
|
||||
@@ -400,13 +406,11 @@ class QueryRender extends PageRender {
|
||||
if ($_SESSION[APPCONFIG]->getValue('mass','enabled')) {
|
||||
printf('<tr class="%s">',++$j%2 ? 'odd' : 'even');
|
||||
printf('<td><input type="checkbox" name="allbox" value="1" onclick="CheckAll(1,\'massform_\',%s);" /></td>',$counter);
|
||||
printf('<td colspan=%s>',2+count(explode(',',$ado)));
|
||||
echo '<select name="cmd" onChange="if (this.value) submit();" style="font-size: 12px">';
|
||||
printf('<td colspan="%s">',2+count(explode(',',$ado)));
|
||||
|
||||
foreach ($mass_actions as $action => $display)
|
||||
printf('<option value="%s">%s</option>',$display,$action);
|
||||
foreach ($mass_actions as $display => $action)
|
||||
printf('<button type="submit" name="cmd" value="%s">%s</button> ',$action,$display);
|
||||
|
||||
echo '</select>';
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
@@ -429,7 +433,7 @@ class QueryRender extends PageRender {
|
||||
}
|
||||
|
||||
if (get_request('format','REQUEST',false,'table') == 'table')
|
||||
printf('<script type="text/javascript" language="javascript" src="%sCheckAll.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sCheckAll.js"></script>',JSDIR);
|
||||
}
|
||||
|
||||
public function drawSubTitle($subtitle=null) {
|
||||
@@ -457,7 +461,7 @@ class QueryRender extends PageRender {
|
||||
$results = array();
|
||||
|
||||
foreach (explode(',',$this->template->getAttrDisplayOrder()) as $attr)
|
||||
$results[$attr] = $attribute_factory->newAttribute($attr,array('values'=>array()),$this->getServerID());
|
||||
$results[strtolower($attr)] = $attribute_factory->newAttribute($attr,array('values'=>array()),$this->getServerID());
|
||||
|
||||
return $results;
|
||||
}
|
||||
@@ -471,7 +475,7 @@ class QueryRender extends PageRender {
|
||||
|
||||
private function drawBaseTabs() {
|
||||
# Setup the Javascript to show/hide our DIVs.
|
||||
echo '<script type="text/javascript" language="javascript">';
|
||||
echo '<script type="text/javascript">';
|
||||
echo 'function items() {';
|
||||
echo 'var $items = new Array();';
|
||||
$counter = 0;
|
||||
@@ -481,7 +485,7 @@ class QueryRender extends PageRender {
|
||||
echo '}</script>';
|
||||
echo "\n\n";
|
||||
|
||||
echo '<table class="result_table" border=0>';
|
||||
echo '<table class="result_table" border="0">';
|
||||
echo '<tr>';
|
||||
$counter = 0;
|
||||
foreach ($this->template->results as $base => $results) {
|
||||
@@ -492,7 +496,7 @@ class QueryRender extends PageRender {
|
||||
$this->getAjaxRef($base),
|
||||
$this->getAjaxRef($base),
|
||||
($show == $this->getAjaxRef($base) ? '#F0F0F0' : '#E0E0E0'),
|
||||
$base);
|
||||
htmlspecialchars($base));
|
||||
}
|
||||
echo '</tr>';
|
||||
echo '</table>';
|
||||
@@ -502,7 +506,7 @@ class QueryRender extends PageRender {
|
||||
private function drawResultsTable($base,$results) {
|
||||
$server = $this->getServer();
|
||||
|
||||
echo '<table class="result" border=0>';
|
||||
echo '<table class="result" border="0">';
|
||||
|
||||
echo '<tr>';
|
||||
printf('<td>%s: <b>%s</b><br/><br/><div class="execution_time">(%s %s)</div></td>',_('Entries found'),
|
||||
@@ -540,7 +544,7 @@ class QueryRender extends PageRender {
|
||||
echo ' ]</small>';
|
||||
|
||||
echo '<br />';
|
||||
printf('<small>%s: <b>%s</b></small>',_('Base DN'),$base);
|
||||
printf('<small>%s: <b>%s</b></small>',_('Base DN'),htmlspecialchars($base));
|
||||
|
||||
echo '<br />';
|
||||
printf('<small>%s: <b>%s</b></small>',_('Filter performed'),htmlspecialchars($this->template->resultsdata[$base]['filter']));
|
||||
|
@@ -37,6 +37,13 @@ class SelectionAttribute extends Attribute {
|
||||
$this->selection[$value] = $description;
|
||||
}
|
||||
|
||||
public function addValue($new_val,$i=-1) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
$this->addOption($new_val,$i);
|
||||
}
|
||||
|
||||
public function getOptionCount() {
|
||||
return count($this->selection);
|
||||
}
|
||||
|
@@ -45,6 +45,8 @@ class Template extends xmlTemplate {
|
||||
private $dn;
|
||||
# Where this template will store its data
|
||||
protected $container;
|
||||
# Does this template prohibit children being created
|
||||
private $noleaf = false;
|
||||
# A regexp that determines if this template is valid in the container.
|
||||
private $regexp;
|
||||
# Template Title
|
||||
@@ -54,6 +56,14 @@ class Template extends xmlTemplate {
|
||||
# Template RDN attributes
|
||||
private $rdn;
|
||||
|
||||
public function __construct($server_id,$name=null,$filename=null,$type=null,$id=null) {
|
||||
parent::__construct($server_id,$name,$filename,$type,$id);
|
||||
|
||||
# If this is the default template, we might disable leafs by default.
|
||||
if (is_null($filename))
|
||||
$this->noleaf = $_SESSION[APPCONFIG]->getValue('appearance','disable_default_leaf');
|
||||
}
|
||||
|
||||
public function __clone() {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
@@ -248,7 +258,7 @@ class Template extends xmlTemplate {
|
||||
* or delete.
|
||||
* (OLD values are IGNORED, we will have got them when we build this object from the LDAP server DN.)
|
||||
*/
|
||||
public function accept($makeVisible=false) {
|
||||
public function accept($makeVisible=false,$nocache=false) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
@@ -265,7 +275,7 @@ class Template extends xmlTemplate {
|
||||
$rdnarray = rdn_explode(strtolower(get_rdn(dn_escape($this->dn))));
|
||||
|
||||
$counter = 1;
|
||||
foreach ($server->getDNAttrValues($this->dn,null,LDAP_DEREF_NEVER,array_merge(array('*'),$server->getValue('server','custom_attrs'))) as $attr => $values) {
|
||||
foreach ($server->getDNAttrValues($this->dn,null,LDAP_DEREF_NEVER,array_merge(array('*'),$server->getValue('server','custom_attrs')),$nocache) as $attr => $values) {
|
||||
# We ignore DNs.
|
||||
if ($attr == 'dn')
|
||||
continue;
|
||||
@@ -320,6 +330,13 @@ class Template extends xmlTemplate {
|
||||
unset($_REQUEST['new_values']['objectclass']);
|
||||
}
|
||||
|
||||
} elseif (get_request('create_base')) {
|
||||
if (get_request('rdn')) {
|
||||
$rdn = explode('=',get_request('rdn'));
|
||||
$attribute = $this->addAttribute($rdn[0],array('values'=>array($rdn[1])));
|
||||
$attribute->setRDN(1);
|
||||
}
|
||||
|
||||
} else {
|
||||
debug_dump_backtrace('No DN or CONTAINER?',1);
|
||||
}
|
||||
@@ -333,7 +350,7 @@ class Template extends xmlTemplate {
|
||||
continue;
|
||||
|
||||
# If _REQUEST['skip_array'] with this attr set, we'll ignore this new_value
|
||||
if (isset($_REQUEST['skip_array'][$attr]))
|
||||
if (isset($_REQUEST['skip_array'][$attr]) && $_REQUEST['skip_array'][$attr] == 'on')
|
||||
continue;
|
||||
|
||||
# Prune out entries with a blank value.
|
||||
@@ -525,7 +542,8 @@ class Template extends xmlTemplate {
|
||||
# If this is the default creation template, we need to set some additional values
|
||||
if ($this->isType('default') && $this->getContext() == 'create') {
|
||||
# Load our schema, based on the objectclasses that may have already been defined.
|
||||
$this->rebuildTemplateAttrs();
|
||||
if (! get_request('create_base'))
|
||||
$this->rebuildTemplateAttrs();
|
||||
|
||||
# Set the RDN attribute
|
||||
$counter = 1;
|
||||
@@ -610,6 +628,18 @@ class Template extends xmlTemplate {
|
||||
# If DN is not set, our DN will be made from our RDN and Container.
|
||||
elseif ($this->getRDN() && $this->getContainer())
|
||||
return sprintf('%s,%s',$this->getRDN(),$this->GetContainer());
|
||||
|
||||
# If container is not set, we're probably creating the base
|
||||
elseif ($this->getRDN() && get_request('create_base'))
|
||||
return $this->getRDN();
|
||||
}
|
||||
|
||||
public function getDNEncode($url=true) {
|
||||
// @todo Be nice to do all this in 1 location
|
||||
if ($url)
|
||||
return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->getDN()));
|
||||
else
|
||||
return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->getDN());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -643,10 +673,18 @@ class Template extends xmlTemplate {
|
||||
return $this->container;
|
||||
}
|
||||
|
||||
public function getContainerEncode($url=true) {
|
||||
// @todo Be nice to do all this in 1 location
|
||||
if ($url)
|
||||
return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->container));
|
||||
else
|
||||
return preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->container);
|
||||
}
|
||||
|
||||
/**
|
||||
* Copy a DN
|
||||
*/
|
||||
public function copy($template,$rdn) {
|
||||
public function copy($template,$rdn,$asnew=false) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
@@ -686,6 +724,10 @@ class Template extends xmlTemplate {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @todo If this is a Jpeg Attribute, we need to mark it read only, since it cant be deleted like text attributes can
|
||||
if (strcasecmp(get_class($attribute),'jpegAttribute') == 0)
|
||||
$attribute->setReadOnly();
|
||||
}
|
||||
|
||||
# If we have any RDN values left over, there werent in the original entry and need to be added.
|
||||
@@ -699,6 +741,11 @@ class Template extends xmlTemplate {
|
||||
else
|
||||
$attribute->setRDN($counter++);
|
||||
}
|
||||
|
||||
# If we are copying into a new entry, we need to discard all the "old values"
|
||||
if ($asnew)
|
||||
foreach ($this->getAttributes(true) as $sattribute)
|
||||
$sattribute->setOldValue(array());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -805,7 +852,7 @@ class Template extends xmlTemplate {
|
||||
return '';
|
||||
|
||||
foreach ($vals as $val)
|
||||
$rdn .= sprintf('%s=%s+',$attribute->getName(),$val);
|
||||
$rdn .= sprintf('%s=%s+',$attribute->getName(false),$val);
|
||||
}
|
||||
|
||||
# Chop the last plus sign off when returning
|
||||
@@ -844,7 +891,9 @@ class Template extends xmlTemplate {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
if ($this->getContainer())
|
||||
if ($this->getContainer() && get_request('cmd','REQUEST') == 'copy')
|
||||
return 'copyasnew';
|
||||
elseif ($this->getContainer() || get_request('create_base'))
|
||||
return 'create';
|
||||
elseif ($this->getDN())
|
||||
return 'edit';
|
||||
@@ -864,6 +913,14 @@ class Template extends xmlTemplate {
|
||||
return $this->visible;
|
||||
}
|
||||
|
||||
public function setVisible() {
|
||||
$this->visible = true;
|
||||
}
|
||||
|
||||
public function setInvisible() {
|
||||
$this->visible = false;
|
||||
}
|
||||
|
||||
public function getRegExp() {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',5,1,__FILE__,__LINE__,__METHOD__,$fargs,$this->regexp);
|
||||
@@ -1226,7 +1283,7 @@ class Template extends xmlTemplate {
|
||||
# Collect our structural, MUST & MAY attributes.
|
||||
$oclass_processed = array();
|
||||
$superclasslist = array();
|
||||
$allattrs = array();
|
||||
$allattrs = array('objectclass');
|
||||
|
||||
foreach ($this->getObjectClasses() as $oclass) {
|
||||
# If we get some superclasses - then we'll need to go through them too.
|
||||
@@ -1285,7 +1342,7 @@ class Template extends xmlTemplate {
|
||||
continue;
|
||||
|
||||
if (! $this->isAttrType($objectclassattr,'may'))
|
||||
$this->setAttrLDAPtype($sattr->getName(false),'optional');
|
||||
$this->setAttrLDAPtype($sattr->getName(false),'may');
|
||||
|
||||
if (! in_array($objectclassattr,$allattrs))
|
||||
array_push($allattrs,$objectclassattr);
|
||||
@@ -1316,7 +1373,8 @@ class Template extends xmlTemplate {
|
||||
# Check that attributes are defined by an ObjectClass
|
||||
foreach ($this->getAttributes(true) as $index => $attribute)
|
||||
if (! in_array($attribute->getName(),$allattrs) && (! array_intersect($attribute->getAliases(),$allattrs))
|
||||
&& (! in_array_ignore_case('extensibleobject',$this->getObjectClasses()))) {
|
||||
&& (! in_array_ignore_case('extensibleobject',$this->getObjectClasses()))
|
||||
&& (! in_array_ignore_case($attribute->getName(),$server->getValue('server','custom_attrs')))) {
|
||||
unset($this->attributes[$index]);
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_template_warning'))
|
||||
@@ -1487,7 +1545,7 @@ class Template extends xmlTemplate {
|
||||
|
||||
foreach ($this->getObjectClasses() as $oc) {
|
||||
$soc = $server->getSchemaObjectClass($oc);
|
||||
$attrs = array_merge($attrs,$soc->getMustAttrNames(),$soc->getMayAttrNames());
|
||||
$attrs = array_merge($attrs,$soc->getMustAttrNames(true),$soc->getMayAttrNames(true));
|
||||
$attrs = array_unique($attrs);
|
||||
}
|
||||
|
||||
@@ -1501,5 +1559,13 @@ class Template extends xmlTemplate {
|
||||
masort($attributes,'name');
|
||||
return $attributes;
|
||||
}
|
||||
|
||||
public function isNoLeaf() {
|
||||
return $this->noleaf;
|
||||
}
|
||||
|
||||
public function sort() {
|
||||
usort($this->attributes,'sortAttrs');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@@ -48,17 +48,18 @@ class TemplateRender extends PageRender {
|
||||
|
||||
$this->page = get_request('page','REQUEST',false,1);
|
||||
|
||||
if ($this->template_id) {
|
||||
parent::accept();
|
||||
if ($this->template_id AND $this->template_id != 'invalid') {
|
||||
if (! $this->template)
|
||||
parent::accept();
|
||||
|
||||
$this->url_base = sprintf('server_id=%s&dn=%s',
|
||||
$this->getServerID(),rawurlencode($this->template->getDN()));
|
||||
$this->getServerID(),$this->template->getDNEncode());
|
||||
$this->layout['hint'] = sprintf('<td class="icon"><img src="%s/light.png" alt="%s" /></td><td colspan="3"><span class="hint">%%s</span></td>',
|
||||
IMGDIR,_('Hint'));
|
||||
$this->layout['action'] = '<td class="icon"><img src="%s/%s" alt="%s" /></td><td><a href="cmd.php?%s" title="%s">%s</a></td>';
|
||||
$this->layout['actionajax'] = '<td class="icon"><img src="%s/%s" alt="%s" /></td><td><a href="cmd.php?%s" title="%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');">%s</a></td>';
|
||||
|
||||
# If we dont want to render this template automatically, we'll return here.
|
||||
# If we don't want to render this template automatically, we'll return here.
|
||||
if ($norender)
|
||||
return;
|
||||
|
||||
@@ -266,15 +267,13 @@ class TemplateRender extends PageRender {
|
||||
*/
|
||||
case 'MultiList':
|
||||
case 'PickList':
|
||||
$args[2] = strtolower($args[2]);
|
||||
|
||||
# arg5 overrides our container
|
||||
if (empty($args[5]))
|
||||
$container = $server->getContainerPath($container,$args[0]);
|
||||
else
|
||||
$container = $args[5];
|
||||
|
||||
# Process filter (arg 1), eventually replace %attr% by it's value set in a previous page.
|
||||
# Process filter (arg 1), eventually replace %attr% by its value set in a previous page.
|
||||
preg_match_all('/%(\w+)(\|.+)?(\/[lUC])?%/U',$args[1],$filtermatchall);
|
||||
//print_r($matchall); // -1 = highlevel match, 1 = attr, 2 = subst, 3 = mod
|
||||
|
||||
@@ -440,6 +439,8 @@ class TemplateRender extends PageRender {
|
||||
return 'modification';
|
||||
elseif ($this->container)
|
||||
return 'creation';
|
||||
elseif (get_request('create_base'))
|
||||
return 'creation';
|
||||
else
|
||||
debug_dump_backtrace(sprintf('Unknown mode for %s',__METHOD__),1);
|
||||
}
|
||||
@@ -500,17 +501,21 @@ class TemplateRender extends PageRender {
|
||||
|
||||
$avail_templates = $this->getTemplates();
|
||||
$templates = $avail_templates->getTemplates($this->getMode(),$this->getModeContainer());
|
||||
printf('<center><h3>%s</h3></center>',$msg);
|
||||
printf('<h3 style="text-align: center;">%s</h3>',$msg);
|
||||
|
||||
$href_parms = array_to_query_string($_GET,array('meth'));
|
||||
printf('<form name="template_choice_form" action="cmd.php?%s" method="post">',htmlspecialchars($href_parms));
|
||||
printf('<form id="template_choice_form" action="cmd.php?%s" method="post">',htmlspecialchars($href_parms));
|
||||
echo "\n\n";
|
||||
|
||||
foreach ($_POST as $p => $v)
|
||||
printf('<input type="hidden" name="%s" value="%s">',$p,$v);
|
||||
echo "\n\n";
|
||||
if (count($_POST)) {
|
||||
echo '<div>';
|
||||
foreach ($_POST as $p => $v)
|
||||
printf('<input type="hidden" name="%s" value="%s" />',$p,$v);
|
||||
echo '</div>';
|
||||
echo "\n\n";
|
||||
}
|
||||
|
||||
echo '<table class="forminput" width="100%" border=0>';
|
||||
echo '<table class="forminput" width="100%" border="0">';
|
||||
echo '<tr>';
|
||||
printf('<td class="heading" style="vertical-align: top">%s:</td>',_('Templates'));
|
||||
echo '<td>';
|
||||
@@ -542,9 +547,9 @@ class TemplateRender extends PageRender {
|
||||
else {
|
||||
if (isAjaxEnabled())
|
||||
printf('<td><input type="radio" name="template" value="%s" id="%s" onclick="return ajDISPLAY(\'BODY\',\'%s&template=%s\',\'%s\');" /></td>',
|
||||
htmlspecialchars($details->getID()),htmlspecialchars($details->getID()),htmlspecialchars($href_parms),$details->getID(),_('Retieving DN'));
|
||||
htmlspecialchars($details->getID()),htmlspecialchars($details->getID()),htmlspecialchars($href_parms),$details->getID(),str_replace('\'','\\\'',_('Retrieving DN')));
|
||||
else
|
||||
printf('<td><input type="radio" name="template" value="%s" id="%s" onclick="document.forms.template_choice_form.submit()" /></td>',
|
||||
printf('<td><input type="radio" name="template" value="%s" id="%s" onclick="document.getElementById(\'template_choice_form\').submit()" /></td>',
|
||||
htmlspecialchars($details->getID()),htmlspecialchars($details->getID()));
|
||||
}
|
||||
|
||||
@@ -554,7 +559,7 @@ class TemplateRender extends PageRender {
|
||||
htmlspecialchars($details->getID()));
|
||||
|
||||
if ($isInValid)
|
||||
printf('<span style="color: gray"><acronym title="%s">',_($isInValid));
|
||||
printf('<span id="%s" style="color: gray"><acronym title="%s">',htmlspecialchars($details->getID()),_($isInValid));
|
||||
|
||||
echo _($details->getTitle());
|
||||
|
||||
@@ -579,9 +584,9 @@ class TemplateRender extends PageRender {
|
||||
echo '<tr>';
|
||||
if (isAjaxEnabled())
|
||||
printf('<td><input type="radio" name="template" value="none" id="none" onclick="return ajDISPLAY(\'BODY\',\'%s&template=%s\',\'%s\');" /></td>',
|
||||
htmlspecialchars($href_parms),'none',_('Retieving DN'));
|
||||
htmlspecialchars($href_parms),'none',str_replace('\'','\\\'',_('Retrieving DN')));
|
||||
else
|
||||
echo '<td><input type="radio" name="template" value="none" id="none" onclick="document.forms.template_choice_form.submit()" /></td>';
|
||||
echo '<td><input type="radio" name="template" value="none" id="none" onclick="document.getElementById(\'template_choice_form\').submit()" /></td>';
|
||||
|
||||
printf('<td class="icon"><label for="none"><img src="%s/ldap-default.png" alt="" /></label></td>',IMGDIR);
|
||||
printf('<td class="label"><label for="none">%s</label></td>',_('Default'));
|
||||
@@ -609,11 +614,11 @@ class TemplateRender extends PageRender {
|
||||
|
||||
# If we have a DN, then we are an editing template
|
||||
if ($this->dn)
|
||||
$this->template->setDN(get_request('dn','REQUEST'));
|
||||
$this->template->setDN($this->dn);
|
||||
|
||||
# Else if we have a container, we are a creating template
|
||||
elseif ($this->container)
|
||||
$this->template->setContainer(get_request('container','REQUEST'));
|
||||
elseif ($this->container || get_request('create_base'))
|
||||
$this->template->setContainer($this->container);
|
||||
|
||||
else
|
||||
debug_dump_backtrace('Dont know what type of template we are - no DN or CONTAINER?',1);
|
||||
@@ -639,10 +644,19 @@ class TemplateRender extends PageRender {
|
||||
$this->drawStepForm($this->page);
|
||||
$this->drawStepFormEnd();
|
||||
|
||||
} elseif ($this->template->getContext() == 'copyasnew') {
|
||||
$this->drawStepFormStart($this->page);
|
||||
printf('<input type="hidden" name="container" value="%s" />',$this->template->getContainer(false));
|
||||
echo '<div><table>';
|
||||
$this->drawRDNChooser();
|
||||
echo '</table></div>';
|
||||
$this->drawForm(true);
|
||||
$this->drawStepFormSubmitButton($this->page);
|
||||
|
||||
} else {
|
||||
# Draw internal attributes
|
||||
if (get_request('show_internal_attrs','REQUEST')) {
|
||||
echo '<table class="entry" cellspacing="0" align="center" border=0>';
|
||||
echo '<table class="entry" cellspacing="0" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||
$this->drawInternalAttributes();
|
||||
echo '</table><br/>';
|
||||
echo "\n";
|
||||
@@ -665,7 +679,10 @@ class TemplateRender extends PageRender {
|
||||
|
||||
# Title
|
||||
$this->drawTitle();
|
||||
$this->drawSubTitle();
|
||||
if (get_request('create_base'))
|
||||
$this->drawSubTitle(sprintf('<b>%s</b>: %s',_('Creating Base DN'),$this->template->getDN()));
|
||||
else
|
||||
$this->drawSubTitle();
|
||||
echo "\n";
|
||||
|
||||
# Menu
|
||||
@@ -682,7 +699,7 @@ class TemplateRender extends PageRender {
|
||||
break;
|
||||
|
||||
case 'modification':
|
||||
$title = get_rdn($this->dn);
|
||||
$title = htmlspecialchars(get_rdn($this->dn));
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -702,7 +719,7 @@ class TemplateRender extends PageRender {
|
||||
case 'creation':
|
||||
$subtitle = sprintf('%s: <b>%s</b> %s: <b>%s</b>',
|
||||
_('Server'),$this->getServer()->getName(),
|
||||
_('Container'),$this->container);
|
||||
_('Container'),htmlspecialchars($this->container));
|
||||
|
||||
if ($this->template_id) {
|
||||
$subtitle .= '<br />';
|
||||
@@ -716,7 +733,7 @@ class TemplateRender extends PageRender {
|
||||
case 'modification':
|
||||
$subtitle = sprintf('%s: <b>%s</b> %s: <b>%s</b>',
|
||||
_('Server'),$this->getServer()->getName(),
|
||||
_('Distinguished Name'),$this->dn);
|
||||
_('Distinguished Name'),htmlspecialchars($this->dn));
|
||||
|
||||
if ($this->template_id) {
|
||||
$subtitle .= '<br />';
|
||||
@@ -739,7 +756,7 @@ class TemplateRender extends PageRender {
|
||||
# We only have a menu for editing entries.
|
||||
if ($this->template->getContext() == 'edit') {
|
||||
|
||||
echo '<table class="menu" width="100%" border=0>';
|
||||
echo '<table class="menu" width="100%" border="0">';
|
||||
echo '<tr>';
|
||||
$menuitem_number = 0;
|
||||
|
||||
@@ -769,7 +786,7 @@ class TemplateRender extends PageRender {
|
||||
if ($ms) {
|
||||
if (($menuitem_number % 2) == 1) {
|
||||
$menuitem_number++;
|
||||
echo '<td colspan=2> </td>';
|
||||
echo '<td colspan="2"> </td>';
|
||||
$endofrow = false;
|
||||
$start = false;
|
||||
}
|
||||
@@ -794,7 +811,7 @@ class TemplateRender extends PageRender {
|
||||
} elseif ($ms) {
|
||||
if (($menuitem_number % 2) == 1) {
|
||||
$menuitem_number++;
|
||||
echo '<td colspan=2> </td>';
|
||||
echo '<td colspan="2"> </td>';
|
||||
$endofrow = false;
|
||||
$start = false;
|
||||
}
|
||||
@@ -902,7 +919,7 @@ class TemplateRender extends PageRender {
|
||||
return '';
|
||||
|
||||
case 'childcreate':
|
||||
if ($_SESSION[APPCONFIG]->isCommandAvailable('script','create') && ! $this->template->isReadOnly())
|
||||
if ($_SESSION[APPCONFIG]->isCommandAvailable('script','create') && ! $this->template->isReadOnly() && ! $this->template->isNoLeaf())
|
||||
return $this->getMenuItemCreate();
|
||||
else
|
||||
return '';
|
||||
@@ -1041,7 +1058,7 @@ class TemplateRender extends PageRender {
|
||||
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'refresh.png',_('Refresh'),
|
||||
htmlspecialchars($href),_('Refresh this entry'),htmlspecialchars($href),_('Reloading'),_('Refresh'));
|
||||
htmlspecialchars($href),_('Refresh this entry'),htmlspecialchars($href),str_replace('\'','\\\'',_('Reloading')),_('Refresh'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'refresh.png',_('Refresh'),
|
||||
htmlspecialchars($href),_('Refresh this entry'),_('Refresh'));
|
||||
@@ -1055,7 +1072,7 @@ class TemplateRender extends PageRender {
|
||||
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'switch.png',_('Switch Template'),
|
||||
htmlspecialchars($href),_('Change to another template'),htmlspecialchars($href),_('Loading'),_('Switch Template'));
|
||||
htmlspecialchars($href),_('Change to another template'),htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Switch Template'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'switch.png',_('Switch Template'),
|
||||
htmlspecialchars($href),_('Change to another template'),_('Switch Template'));
|
||||
@@ -1071,7 +1088,7 @@ class TemplateRender extends PageRender {
|
||||
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'export.png',_('Export'),
|
||||
htmlspecialchars($href),_('Save a dump of this object'),htmlspecialchars($href),_('Loading'),_('Export'));
|
||||
htmlspecialchars($href),_('Save a dump of this object'),htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Export'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'export.png',_('Export'),
|
||||
htmlspecialchars($href),_('Save a dump of this object'),_('Export'));
|
||||
@@ -1088,7 +1105,7 @@ class TemplateRender extends PageRender {
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'cut.png',_('Cut'),
|
||||
htmlspecialchars($href),_('Copy this object to another location, a new DN, or another server'),
|
||||
htmlspecialchars($href),_('Loading'),_('Copy or move this entry'));
|
||||
htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Copy or move this entry'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'cut.png',_('Cut'),
|
||||
htmlspecialchars($href),_('Copy this object to another location, a new DN, or another server'),
|
||||
@@ -1126,7 +1143,7 @@ class TemplateRender extends PageRender {
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'trash.png',_('Trash'),
|
||||
htmlspecialchars($href),_('You will be prompted to confirm this decision'),
|
||||
htmlspecialchars($href),_('Loading'),_('Delete this entry'));
|
||||
htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Delete this entry'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'trash.png',_('Trash'),
|
||||
htmlspecialchars($href),_('You will be prompted to confirm this decision'),_('Delete this entry'));
|
||||
@@ -1142,7 +1159,7 @@ class TemplateRender extends PageRender {
|
||||
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'rename.png',_('Rename'),
|
||||
htmlspecialchars($href),_('Rename this entry'),htmlspecialchars($href),_('Loading'),_('Rename'));
|
||||
htmlspecialchars($href),_('Rename this entry'),htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Rename'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'rename.png',_('Rename'),
|
||||
htmlspecialchars($href),_('Rename this entry'),_('Rename'));
|
||||
@@ -1159,7 +1176,7 @@ class TemplateRender extends PageRender {
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'compare.png',_('Compare'),
|
||||
htmlspecialchars($href),_('Compare this entry with another'),
|
||||
htmlspecialchars($href),_('Loading'),_('Compare with another entry'));
|
||||
htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Compare with another entry'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'compare.png',_('Compare'),
|
||||
htmlspecialchars($href),_('Compare this entry with another'),_('Compare with another entry'));
|
||||
@@ -1171,12 +1188,12 @@ class TemplateRender extends PageRender {
|
||||
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$href = sprintf('cmd=template_engine&server_id=%s&container=%s',$this->getServerID(),rawurlencode($this->template->getDN()));
|
||||
$href = sprintf('cmd=template_engine&server_id=%s&container=%s',$this->getServerID(),$this->template->getDNEncode());
|
||||
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'create.png',_('Create'),
|
||||
htmlspecialchars($href),_('Create a child entry'),
|
||||
htmlspecialchars($href),_('Loading'),_('Create a child entry'));
|
||||
htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Create a child entry'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'create.png',_('Create'),
|
||||
htmlspecialchars($href),_('Create a child entry'),_('Create a child entry'));
|
||||
@@ -1197,7 +1214,7 @@ class TemplateRender extends PageRender {
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($layout,IMGDIR,'add.png',_('Add'),
|
||||
htmlspecialchars($href),_('Add new attribute to this object'),
|
||||
htmlspecialchars($href),_('Add new attribute'),_('Add new attribute'));
|
||||
htmlspecialchars($href),str_replace('\'','\\\'',_('Add new attribute')),_('Add new attribute'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'add.png',_('Add'),
|
||||
htmlspecialchars($href),_('Add new attribute to this object'),_('Add new attribute'));
|
||||
@@ -1210,12 +1227,12 @@ class TemplateRender extends PageRender {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$href = sprintf('cmd=query_engine&server_id=%s&filter=%s&base=%s&scope=one&query=none&size_limit=0&search=true',
|
||||
$this->getServerID(),rawurlencode('objectClass=*'),rawurlencode($this->template->getDN()));
|
||||
$this->getServerID(),rawurlencode('objectClass=*'),$this->template->getDNEncode());
|
||||
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'children.png',_('Children'),
|
||||
htmlspecialchars($href),_('View the children of this object'),
|
||||
htmlspecialchars($href),_('Loading'),
|
||||
htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),
|
||||
($children_count == 1) ? _('View 1 child') : sprintf(_('View %s children'),$children_count));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'children.png',_('Children'),
|
||||
@@ -1234,7 +1251,7 @@ class TemplateRender extends PageRender {
|
||||
if (isAjaxEnabled())
|
||||
return sprintf($this->layout['actionajax'],IMGDIR,'export.png',_('Save'),
|
||||
htmlspecialchars($href),_('Save a dump of this object and all of its children'),
|
||||
htmlspecialchars($href),_('Loading'),_('Export subtree'));
|
||||
htmlspecialchars($href),str_replace('\'','\\\'',_('Loading')),_('Export subtree'));
|
||||
else
|
||||
return sprintf($this->layout['action'],IMGDIR,'export.png',_('Save'),
|
||||
htmlspecialchars($href),_('Save a dump of this object and all of its children'),_('Export subtree'));
|
||||
@@ -1251,7 +1268,7 @@ class TemplateRender extends PageRender {
|
||||
if (! count($this->template->getRDNAttrs())) {
|
||||
printf('<tr><th colspan="2">%s</th></tr>','RDN');
|
||||
|
||||
echo '<tr><td class="value" colspan="2"><center><select name="rdn_attribute[]" id="rdn_attribute">';
|
||||
echo '<tr><td class="value" colspan="2" style="text-align: center;"><select name="rdn_attribute[]" id="rdn_attribute" />';
|
||||
printf('<option value="">%s</option>',_('select the rdn attribute'));
|
||||
|
||||
if ($_SESSION[APPCONFIG]->getValue('appearance','rdn_all_attrs'))
|
||||
@@ -1269,12 +1286,16 @@ class TemplateRender extends PageRender {
|
||||
}
|
||||
}
|
||||
|
||||
echo '</select></center></td></tr>';
|
||||
echo '</select></td></tr>';
|
||||
|
||||
} else {
|
||||
echo '<tr><td colspan="2">';
|
||||
foreach ($this->template->getRDNAttrs() as $rdn)
|
||||
printf('<input type="hidden" name="rdn_attribute[]" value="%s" id="rdn_attribute"/>',htmlspecialchars($rdn));
|
||||
|
||||
if (get_request('create_base'))
|
||||
echo '<input type="hidden" name="create_base" value="true" />';
|
||||
|
||||
echo '</td></tr>';
|
||||
}
|
||||
}
|
||||
@@ -1287,8 +1308,13 @@ class TemplateRender extends PageRender {
|
||||
|
||||
echo '<tr>';
|
||||
printf('<td class="heading">%s</td>',_('Container'));
|
||||
printf('<td><input type="text" name="container" size="40" value="%s" />',htmlspecialchars($default_container));
|
||||
draw_chooser_link('entry_form.container');
|
||||
echo '<td>';
|
||||
if (get_request('create_base'))
|
||||
printf('%s<input type="hidden" name="container" size="40" value="%s" />',$default_container,htmlspecialchars($default_container));
|
||||
else {
|
||||
printf('<input type="text" name="container" size="40" value="%s" />',htmlspecialchars($default_container));
|
||||
draw_chooser_link('entry_form','container');
|
||||
}
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
@@ -1305,7 +1331,7 @@ class TemplateRender extends PageRender {
|
||||
|
||||
echo '<tr>';
|
||||
printf('<td class="heading">%s</td>',_('ObjectClasses'));
|
||||
echo '<td><select name="new_values[objectclass][]" multiple="true" size="15">';
|
||||
echo '<td><select name="new_values[objectclass][]" multiple="multiple" size="15">';
|
||||
|
||||
foreach ($socs as $name => $oclass) {
|
||||
if (! strcasecmp('top',$name))
|
||||
@@ -1348,34 +1374,52 @@ class TemplateRender extends PageRender {
|
||||
/** FORM METHODS **/
|
||||
|
||||
public function drawFormStart() {
|
||||
echo '<form action="cmd.php" method="post" enctype="multipart/form-data" name="entry_form" onSubmit="return submitForm(this)">';
|
||||
echo '<form action="cmd.php" method="post" enctype="multipart/form-data" id="entry_form" 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" />';
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
protected function drawForm() {
|
||||
protected function drawForm($nosubmit=false) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
echo '<div>';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$this->getServerID());
|
||||
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($this->template->getDN()));
|
||||
printf('<input type="hidden" name="dn" value="%s" />',$this->template->getDNEncode(false));
|
||||
printf('<input type="hidden" name="template" value="%s" />',$this->template->getID());
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="entry" cellspacing="0" align="center" border=0>';
|
||||
echo '<table class="entry" cellspacing="0" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||
|
||||
$this->drawShownAttributes();
|
||||
$this->drawFormSubmitButton();
|
||||
if (! $nosubmit)
|
||||
$this->drawFormSubmitButton();
|
||||
|
||||
echo '</table>';
|
||||
|
||||
echo '<div> ';
|
||||
$this->drawHiddenAttributes();
|
||||
echo '</div>';
|
||||
}
|
||||
|
||||
public function drawFormEnd() {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
# Include the RDN details to support creating the base
|
||||
if (get_request('create_base')) {
|
||||
if (get_request('rdn')) {
|
||||
$rdn = explode('=',get_request('rdn'));
|
||||
echo '<div>';
|
||||
printf('<input type="hidden" name="new_values[%s][]" value="%s" />',$rdn[0],$rdn[1]);
|
||||
printf('<input type="hidden" name="rdn_attribute[]" value="%s" />',$rdn[0]);
|
||||
echo '</div>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '</form>';
|
||||
|
||||
# Javascript
|
||||
@@ -1384,11 +1428,11 @@ class TemplateRender extends PageRender {
|
||||
# For debugging, show the template object.
|
||||
if (! $_SESSION[APPCONFIG]->getValue('appearance','hide_debug_info') && get_request('debug','GET')) {
|
||||
echo "\n\n";
|
||||
printf('<img src="%s/plus.png" alt="Plus" onClick="if (document.getElementById(\'DEBUGtemplate\').style.display == \'none\') { document.getElementById(\'DEBUGtemplate\').style.display = \'block\' } else { document.getElementById(\'DEBUGtemplate\').style.display = \'none\' };"/>',IMGDIR);
|
||||
printf('<img src="%s/plus.png" alt="Plus" onclick="if (document.getElementById(\'DEBUGtemplate\').style.display == \'none\') { document.getElementById(\'DEBUGtemplate\').style.display = \'block\' } else { document.getElementById(\'DEBUGtemplate\').style.display = \'none\' };"/>',IMGDIR);
|
||||
echo '<div id="DEBUGtemplate" style="display: none">';
|
||||
echo '<fieldset>';
|
||||
printf('<legend>DEBUG: %s</legend>',$this->template->getDescription());
|
||||
echo '<textarea cols=120 rows=20>';
|
||||
echo '<textarea cols="120" rows="20">';
|
||||
debug_dump($this);
|
||||
echo '</textarea>';
|
||||
echo '</fieldset>';
|
||||
@@ -1400,7 +1444,9 @@ class TemplateRender extends PageRender {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
if (! $this->template->isReadOnly())
|
||||
printf('<tr><td colspan=2><center><input type="submit" id="create_button" name="submit" value="%s" /></center></td></tr>',_('Update Object'));
|
||||
// @todo cant use AJAX here, it affects file uploads.
|
||||
printf('<tr><td colspan="2" style="text-align: center;"><input type="submit" id="create_button" name="submit" value="%s" /></td></tr>',
|
||||
_('Update Object'));
|
||||
}
|
||||
|
||||
/** STEP FORM METHODS **/
|
||||
@@ -1414,7 +1460,7 @@ class TemplateRender extends PageRender {
|
||||
# The default template only uses 2 pages
|
||||
$this->pagelast = 2;
|
||||
|
||||
echo '<center><h4>';
|
||||
echo '<h4 style="text-align: center;">';
|
||||
printf('%s: ',sprintf(_('Step %s of %s'),$page,$this->pagelast));
|
||||
|
||||
if ($page == 1)
|
||||
@@ -1422,10 +1468,10 @@ class TemplateRender extends PageRender {
|
||||
else
|
||||
echo _('Specify attributes and values');
|
||||
|
||||
echo '</h4></center>';
|
||||
echo '</h4>';
|
||||
|
||||
} elseif ($this->template->getDescription())
|
||||
printf('<center><h4>%s (%s)</h4></center>',
|
||||
printf('<h4 style="text-align: center;">%s (%s)</h4>',
|
||||
_($this->template->getDescription()),
|
||||
sprintf(_('Step %s of %s'),$page,$this->pagelast));
|
||||
}
|
||||
@@ -1434,12 +1480,14 @@ class TemplateRender extends PageRender {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
if (($this->template->isType('default') && $this->template->getContext() == 'create' && $page == 1) || $page < $this->pagelast) {
|
||||
echo '<form action="cmd.php?cmd=template_engine" method="post" enctype="multipart/form-data" name="entry_form" onSubmit="return submitForm(this)">';
|
||||
echo '<form action="cmd.php?cmd=template_engine" method="post" enctype="multipart/form-data" id="entry_form" onsubmit="return submitForm(this)">';
|
||||
echo '<div>';
|
||||
|
||||
} else {
|
||||
echo '<form action="cmd.php" method="post" enctype="multipart/form-data" name="entry_form" onSubmit="return submitForm(this)">';
|
||||
echo '<form action="cmd.php" method="post" enctype="multipart/form-data" id="entry_form" onsubmit="return submitForm(this)">';
|
||||
echo '<div>';
|
||||
|
||||
if ($_SESSION[APPCONFIG]->getValue('confirm','create'))
|
||||
if ($_SESSION[APPCONFIG]->getValue('confirm','create') && ! get_request('create_base'))
|
||||
echo '<input type="hidden" name="cmd" value="create_confirm" />';
|
||||
else
|
||||
echo '<input type="hidden" name="cmd" value="create" />';
|
||||
@@ -1452,19 +1500,24 @@ class TemplateRender extends PageRender {
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$this->getServerID());
|
||||
printf('<input type="hidden" name="template" value="%s" />',$this->template->getID());
|
||||
printf('<input type="hidden" name="page" value="%s" />',$page+1);
|
||||
if (get_request('create_base'))
|
||||
echo '<input type="hidden" name="create_base" value="true" />';
|
||||
|
||||
$this->drawHiddenAttributes();
|
||||
|
||||
if ($this->template->isType('default') && $page == 1) {
|
||||
echo '<table class="forminput" align="center" border=0>';
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="forminput" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||
|
||||
$this->drawContainerChooser($this->template->getContainer());
|
||||
$this->drawObjectClassChooser();
|
||||
|
||||
} else {
|
||||
printf('<input type="hidden" name="container" value="%s" />',htmlspecialchars($this->template->getContainer()));
|
||||
printf('<input type="hidden" name="container" value="%s" />',$this->template->getContainerEncode(false));
|
||||
echo '</div>';
|
||||
|
||||
echo '<table class="entry" cellspacing="0" align="center" border=0>';
|
||||
echo '<table class="entry" cellspacing="0" border="0" style="margin-left: auto; margin-right: auto;">';
|
||||
|
||||
$this->drawRDNChooser();
|
||||
|
||||
@@ -1492,7 +1545,9 @@ class TemplateRender extends PageRender {
|
||||
if ($page < $this->pagelast)
|
||||
printf('<td> </td><td><input type="submit" id="create_button" value="%s" /></td>',_('Proceed >>'));
|
||||
else
|
||||
printf('<td><center><input type="submit" id="create_button" name="submit" value="%s"/></center></td>',_('Create Object'));
|
||||
// @todo cant use AJAX here, it affects file uploads.
|
||||
printf('<td style="text-align: center;"><input type="submit" id="create_button" name="submit" value="%s" /></td>',
|
||||
_('Create Object'));
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
@@ -1524,7 +1579,7 @@ class TemplateRender extends PageRender {
|
||||
$this->draw('Template',$attribute);
|
||||
|
||||
else
|
||||
printf('<tr class="noinput"><td colspan="2"><center>(%s)</center></td></tr>',_('none'));
|
||||
printf('<tr class="noinput"><td colspan="2" style="text-align: center;">(%s)</td></tr>',_('none'));
|
||||
|
||||
printf('<tr><th colspan="2">%s</th></tr>',_('Optional Attributes'));
|
||||
if (count($attrs['optional']))
|
||||
@@ -1532,7 +1587,7 @@ class TemplateRender extends PageRender {
|
||||
$this->draw('Template',$attribute);
|
||||
|
||||
else
|
||||
printf('<tr class="noinput"><td colspan="2"><center>(%s)</center></td></tr>',_('none'));
|
||||
printf('<tr class="noinput"><td colspan="2" style="text-align: center;">(%s)</td></tr>',_('none'));
|
||||
|
||||
echo "\n";
|
||||
}
|
||||
@@ -1558,14 +1613,14 @@ class TemplateRender extends PageRender {
|
||||
printf('<!-- START: %s -->',__METHOD__);
|
||||
echo "\n";
|
||||
|
||||
printf('<script type="text/javascript" language="javascript" src="%sTemplateRender.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" language="javascript" src="%stoAscii.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" language="javascript" src="%sdnChooserPopup.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sTemplateRender.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%stoAscii.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sdnChooserPopup.js"></script>',JSDIR);
|
||||
echo "\n";
|
||||
|
||||
printf('<!-- START: MAIN FORM VALIDATION: %s -->',__METHOD__);
|
||||
echo '
|
||||
<script type="text/javascript" language="javascript">
|
||||
<script type="text/javascript">
|
||||
function validateForm(silence) {
|
||||
var i = 0;
|
||||
var valid = true;
|
||||
@@ -1598,28 +1653,38 @@ function validateForm(silence) {
|
||||
|
||||
$this->drawTemplateJavascript();
|
||||
|
||||
# If we have a DateAttribute, we need to set some defaults for the js_calendar.
|
||||
if (isset($_SESSION[APPCONFIG])) {
|
||||
foreach ($this->template->getAttributesShown() as $attribute) {
|
||||
if (array_key_exists($attribute->getName(),array_change_key_case($_SESSION[APPCONFIG]->getValue('appearance','date_attrs')))) {
|
||||
echo '<!-- START: GLOBAL SETTINGS FOR THE js_calendar -->'."\n";
|
||||
echo '<script type="text/javascript" language="javascript">'."\n";
|
||||
echo 'var defaults = new Array();'."\n";
|
||||
printf('var default_date_format = "%s";',$_SESSION[APPCONFIG]->getValue('appearance','date'));
|
||||
echo "\n";
|
||||
echo '</script>'."\n";
|
||||
echo '<!-- END: GLOBAL SETTINGS FOR THE js_calendar -->'."\n";
|
||||
echo "\n";
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
# For DateAttributes, we need to set some defaults for the js_calendar.
|
||||
echo '<!-- START: GLOBAL SETTINGS FOR THE js_calendar -->'."\n";
|
||||
echo '<script type="text/javascript">'."\n";
|
||||
echo 'var defaults = new Array();'."\n";
|
||||
printf('var default_date_format = "%s";',$_SESSION[APPCONFIG]->getValue('appearance','date'));
|
||||
echo "\n";
|
||||
echo '</script>'."\n";
|
||||
echo '<!-- END: GLOBAL SETTINGS FOR THE js_calendar -->'."\n";
|
||||
echo "\n";
|
||||
|
||||
foreach ($this->template->getAttributesShown() as $attribute)
|
||||
$this->draw('Javascript',$attribute);
|
||||
|
||||
echo '<script type="text/javascript" language="javascript">validateForm(true);</script>'."\n";
|
||||
// @todo We need to sleep here a little bit, because our JS may not have loaded yet.
|
||||
echo '<script type="text/javascript">
|
||||
if (typeof getAttributeComponents == "undefined")
|
||||
setTimeout("isJSComplete()",1000);
|
||||
else
|
||||
validateForm(true);
|
||||
|
||||
function isJSComplete() {
|
||||
if (typeof getAttributeComponents == "undefined") {
|
||||
alert("Our Javascript didnt load in time, you may need to reload this page");
|
||||
|
||||
// Sometimes the alert gives us enough time!
|
||||
if (typeof getAttributeComponents != "undefined")
|
||||
alert("Don\'t bother, our JS is loaded now!");
|
||||
}
|
||||
|
||||
validateForm(true);
|
||||
}
|
||||
</script>'."\n";
|
||||
printf('<!-- END: %s -->',__METHOD__);
|
||||
echo "\n";
|
||||
}
|
||||
@@ -1643,7 +1708,7 @@ function validateForm(silence) {
|
||||
printf('<!-- START: %s -->',__METHOD__);
|
||||
|
||||
echo '
|
||||
<script type="text/javascript" language="javascript">
|
||||
<script type="text/javascript">
|
||||
var attrTrace;
|
||||
function fill(id,value) {
|
||||
attrTrace = new Array();
|
||||
@@ -1728,7 +1793,7 @@ function fillRec(id,value) {
|
||||
else
|
||||
echo '<tr>';
|
||||
|
||||
echo '<td class="value" colspan=2>';
|
||||
echo '<td class="value" colspan="2">';
|
||||
}
|
||||
|
||||
protected function drawEndValueLineAttribute($attribute) {
|
||||
@@ -1794,7 +1859,7 @@ function fillRec(id,value) {
|
||||
|
||||
else {
|
||||
if ($icon = $attribute->getIcon())
|
||||
printf('<img src="%s" alt="Icon" align="top" /> ',$icon);
|
||||
printf('<img src="%s" alt="Icon" style="float: right;" /> ',$icon);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1802,7 +1867,7 @@ function fillRec(id,value) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
if (strlen($val) <= 0)
|
||||
printf('<img src="%s/ldap-alias.png" alt="Go" align="top" /> ',IMGDIR);
|
||||
printf('<img src="%s/ldap-alias.png" alt="Go" style="float: right;" /> ',IMGDIR);
|
||||
elseif ($this->getServer()->dnExists($val))
|
||||
printf('<a href="cmd.php?cmd=template_engine&server_id=%s&dn=%s" title="%s %s"><img src="%s/ldap-alias.png" alt="Go" /></a> ',
|
||||
$this->getServerID(),rawurlencode($val),_('Go to'),$val,IMGDIR);
|
||||
@@ -1813,7 +1878,7 @@ function fillRec(id,value) {
|
||||
protected function drawMailValueIconAttribute($attribute,$val) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$img = sprintf('<img src="%s/mail.png" alt="%s" align="top" />',IMGDIR,_('Mail'));
|
||||
$img = sprintf('<img src="%s/mail.png" alt="%s" style="float: right;" />',IMGDIR,_('Mail'));
|
||||
if (strlen($val) <= 0)
|
||||
echo $img;
|
||||
else
|
||||
@@ -1824,13 +1889,13 @@ function fillRec(id,value) {
|
||||
protected function drawUrlValueIconAttribute($attribute,$val) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$img = sprintf('<img src="%s/ldap-dc.png" alt="%s" align="top" />',IMGDIR,_('URL'));
|
||||
$img = sprintf('<img src="%s/ldap-dc.png" alt="%s" style="float: right;" />',IMGDIR,_('URL'));
|
||||
$url = explode(' +',$val,2);
|
||||
|
||||
if (strlen($val) <= 0)
|
||||
echo $img;
|
||||
else
|
||||
printf('<a href="%s" target="new">%s</a>',htmlspecialchars($url[0]),$img);
|
||||
printf('<a href="%s" onclick="target=\'new\';">%s</a>',htmlspecialchars($url[0]),$img);
|
||||
echo ' ';
|
||||
}
|
||||
|
||||
@@ -1848,7 +1913,7 @@ function fillRec(id,value) {
|
||||
printf('<!-- START: ATTRIBUTE %s (%s)-->',__METHOD__,$attribute->getName());
|
||||
echo "\n";
|
||||
|
||||
echo '<script type="text/javascript" language="javascript">'."\n";
|
||||
echo '<script type="text/javascript">'."\n";
|
||||
|
||||
echo '// focus'."\n";
|
||||
if ($attribute->needJS('focus')) {
|
||||
@@ -1867,9 +1932,10 @@ function fillRec(id,value) {
|
||||
}
|
||||
|
||||
echo '// validate'."\n";
|
||||
printf('function validate_%s(component,silence) {',$attribute->getName());
|
||||
echo "\n";
|
||||
|
||||
if ($attribute->needJS('validate')) {
|
||||
printf('function validate_%s(component,silence) {',$attribute->getName());
|
||||
echo "\n";
|
||||
echo ' var valid = true;';
|
||||
echo "\n";
|
||||
$this->draw('ValidateJavascript',$attribute,'component','silence','valid');
|
||||
@@ -1877,9 +1943,13 @@ function fillRec(id,value) {
|
||||
echo ' if (valid) { component.style.backgroundColor = "white"; component.style.color = "black"; }';
|
||||
echo ' else { component.style.backgroundColor = \'#FFFFA0\'; component.style.color = "black"; }';
|
||||
echo ' return valid;';
|
||||
echo '}'."\n";
|
||||
|
||||
} else {
|
||||
echo ' return true;'."\n";
|
||||
}
|
||||
|
||||
echo '}'."\n";
|
||||
|
||||
echo '</script>'."\n";
|
||||
|
||||
printf('<!-- END: ATTRIBUTE %s (%s)-->',__METHOD__,$attribute->getName());
|
||||
@@ -1917,7 +1987,7 @@ function fillRec(id,value) {
|
||||
|
||||
protected function drawFillJavascriptAttribute($attribute,$component_id,$component_value) {
|
||||
if ($attribute->needJS('validate'))
|
||||
printf("\tvalidate_%s(pla_getComponentById(%s),false);\n",$attribute->getName(),$component_id);
|
||||
printf("\tvalidate_%s(pla_getComponentById(%s),true);\n",$attribute->getName(),$component_id);
|
||||
}
|
||||
|
||||
protected function drawValidateJavascriptAttribute($attribute,$component,$silence,$var_valid) {
|
||||
@@ -1939,13 +2009,18 @@ function fillRec(id,value) {
|
||||
protected function drawMenuAttribute($attribute) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$result = '';
|
||||
$item = '';
|
||||
|
||||
echo '<table class="entry" border=0><tr><td width=25> </td>';
|
||||
echo '<td>';
|
||||
foreach (array('add','modify','rename') as $action)
|
||||
if ($item = $this->get('MenuItem',$attribute,$action))
|
||||
printf('<div class="add_value">%s</div>',$item);
|
||||
$result .= sprintf('<div class="add_value">%s</div>',$item);
|
||||
|
||||
if (! $result)
|
||||
return;
|
||||
|
||||
echo '<table class="entry" border="0"><tr><td style="width: 25px;"> </td>';
|
||||
printf('<td>%s</td>',$result);
|
||||
echo '</td>';
|
||||
echo '</tr></table>';
|
||||
}
|
||||
@@ -2000,12 +2075,30 @@ function fillRec(id,value) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$href_parm = htmlspecialchars(sprintf('cmd=add_value_form&server_id=%s&dn=%s&attr=%s',
|
||||
$this->getServerID(),rawurlencode($this->template->getDN()),rawurlencode($attribute->getName(false))));
|
||||
$this->getServerID(),$this->template->getDNEncode(),rawurlencode($attribute->getName(false))));
|
||||
|
||||
if (isAjaxEnabled())
|
||||
return sprintf('(<a href="cmd.php?%s" title="%s %s" onclick="return ajDISPLAY(\'ADDVALUE%s\',\'%s&raw=1\',\'%s\');">%s</a>)',
|
||||
return sprintf('(<a href="cmd.php?%s" title="%s %s" onclick="return ajDISPLAY(\'ADDVALUE%s\',\'%s&raw=1\',\'%s\',1);">%s</a>)',
|
||||
$href_parm,_('Add an additional value to attribute'),$attribute->getName(false),$attribute->getName(),
|
||||
$href_parm,_('Add Value to Attribute'),_('add value'));
|
||||
$href_parm,str_replace('\'','\\\'',_('Add Value to Attribute')),_('add value'));
|
||||
else
|
||||
return sprintf('(<a href="cmd.php?%s" title="%s %s">%s</a>)',
|
||||
$href_parm,_('Add an additional value to attribute'),$attribute->getName(false),_('add value'));
|
||||
}
|
||||
|
||||
protected function getAddValueMenuItemObjectClassAttribute($attribute) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$href_parm = htmlspecialchars(sprintf('cmd=add_value_form&server_id=%s&dn=%s&attr=%s',
|
||||
$this->getServerID(),$this->template->getDNEncode(),rawurlencode($attribute->getName(false))));
|
||||
|
||||
if (isAjaxEnabled())
|
||||
return sprintf('(<a href="cmd.php?%s" title="%s %s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');">%s</a>)',
|
||||
$href_parm,_('Add an additional value to attribute'),$attribute->getName(false),
|
||||
$href_parm,str_replace('\'','\\\'',_('Add Value to Attribute')),_('add value'));
|
||||
else
|
||||
return sprintf('(<a href="cmd.php?%s" title="%s %s">%s</a>)',
|
||||
$href_parm,_('Add an additional value to attribute'),$attribute->getName(false),_('add value'));
|
||||
@@ -2018,12 +2111,12 @@ function fillRec(id,value) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$href = sprintf('cmd=modify_member_form&server_id=%s&dn=%s&attr=%s',
|
||||
$this->getServerID(),rawurlencode($this->template->getDN()),rawurlencode($attribute->getName()));
|
||||
$this->getServerID(),$this->template->getDNEncode(),rawurlencode($attribute->getName()));
|
||||
|
||||
if (isAjaxEnabled())
|
||||
return sprintf('(<a href="cmd.php?%s" title="%s: %s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');">%s</a>)',
|
||||
htmlspecialchars($href),_('Modify members for'),$this->template->getDN(),
|
||||
htmlspecialchars($href),_('Modify group membership'),
|
||||
htmlspecialchars($href),str_replace('\'','\\\'',_('Modify group membership')),
|
||||
_('modify group members'));
|
||||
else
|
||||
return sprintf('(<a href="cmd.php?%s" title="%s: %s">%s</a>)',
|
||||
@@ -2037,7 +2130,7 @@ function fillRec(id,value) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
$href = sprintf('cmd.php?cmd=rename_form&server_id=%s&dn=%s&template=%s',
|
||||
$this->getServerID(),rawurlencode($this->template->getDN()),$this->template->getID());
|
||||
$this->getServerID(),$this->template->getDNEncode(),$this->template->getID());
|
||||
|
||||
return sprintf('<small>(<a href="%s">%s</a>)</small>',htmlspecialchars($href),_('rename'));
|
||||
}
|
||||
@@ -2047,10 +2140,13 @@ function fillRec(id,value) {
|
||||
protected function drawValueAttribute($attribute,$i) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
if ($attribute->isMultiple() && $i > 0)
|
||||
return;
|
||||
|
||||
$val = $attribute->getValue($i);
|
||||
|
||||
if ($attribute->isVisible()) {
|
||||
echo '<table cellspacing="0" cellpadding="0" width="100%" border=0><tr><td class="icon" width=25>';
|
||||
echo '<table cellspacing="0" cellpadding="0" width="100%" border="0"><tr><td class="icon" style="width: 25px;">';
|
||||
$this->draw('Icon',$attribute,$val);
|
||||
echo '</td>';
|
||||
|
||||
@@ -2065,7 +2161,7 @@ function fillRec(id,value) {
|
||||
if ($attribute->isVisible()) {
|
||||
echo '</td>';
|
||||
|
||||
echo '<td valign="top" align="right">';
|
||||
echo '<td valign="top" style="text-align: right;">';
|
||||
$this->draw('RequiredSymbol',$attribute);
|
||||
echo '</td></tr></table>';
|
||||
}
|
||||
@@ -2131,14 +2227,14 @@ function fillRec(id,value) {
|
||||
$id,htmlspecialchars($attribute->getName()),$i);
|
||||
|
||||
foreach ($vals as $v) {
|
||||
printf('<option value="%s" %s>%s</option>',$v,($v == $default) ? 'selected' : '',$v);
|
||||
printf('<option value="%s" %s>%s</option>',$v,($v == $default) ? 'selected="selected"' : '',$v);
|
||||
|
||||
if ($v == $default)
|
||||
$found = true;
|
||||
}
|
||||
|
||||
if (! $found)
|
||||
printf('<option value="%s" selected>%s</option>',$default,$default ? $default : ' ');
|
||||
printf('<option value="%s" selected="selected">%s</option>',$default,$default ? $default : ' ');
|
||||
|
||||
echo '</select>';
|
||||
|
||||
@@ -2187,22 +2283,22 @@ function fillRec(id,value) {
|
||||
echo "\n";
|
||||
|
||||
echo '<!-- This form is submitted by JavaScript when the user clicks "Delete attribute" on a binary attribute -->';
|
||||
echo '<form name="delete_attribute_form" action="cmd.php?cmd=delete_attr" method="post">';
|
||||
echo '<form id="delete_attribute_form" action="cmd.php?cmd=delete_attr" method="post">';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$this->getServerID());
|
||||
printf('<input type="hidden" name="dn" value="%s" />',htmlspecialchars($this->template->getDN()));
|
||||
printf('<input type="hidden" name="dn" value="%s" />',$this->template->getDNEncode(false));
|
||||
printf('<input type="hidden" name="template" value="%s" />',$this->template->getID());
|
||||
echo '<input type="hidden" name="attr" value="FILLED IN BY JAVASCRIPT" />';
|
||||
echo '<input type="hidden" name="index" value="FILLED IN BY JAVASCRIPT" />';
|
||||
echo '</form>';
|
||||
|
||||
echo '
|
||||
<script type="text/javascript" language="javascript">
|
||||
<script type="text/javascript">
|
||||
function deleteAttribute(attrName,friendlyName,i)
|
||||
{
|
||||
if (confirm("'._('Really delete value from attribute').' \'" + friendlyName + "\'?")) {
|
||||
document.delete_attribute_form.attr.value = attrName;
|
||||
document.delete_attribute_form.index.value = i;
|
||||
document.delete_attribute_form.submit();
|
||||
document.getElementById(\'delete_attribute_form\').attr.value = attrName;
|
||||
document.getElementById(\'delete_attribute_form\').index.value = i;
|
||||
document.getElementById(\'delete_attribute_form\').submit();
|
||||
}
|
||||
}
|
||||
</script>';
|
||||
@@ -2226,9 +2322,9 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
|
||||
# This JS may have been rendered by multiple Date attributes
|
||||
if (! $drawn) {
|
||||
printf('<script type="text/javascript" language="javascript" src="%sjscalendar/lang/calendar-en.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" language="javascript" src="%sjscalendar/calendar-setup.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" language="javascript" src="%sdate_selector.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sjscalendar/lang/calendar-en.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sjscalendar/calendar-setup.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sdate_selector.js"></script>',JSDIR);
|
||||
|
||||
$drawn = true;
|
||||
}
|
||||
@@ -2242,10 +2338,10 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
$config['format'] = $config['date'][$attribute->getName()];
|
||||
|
||||
for ($i=0;$i<=$attribute->getValueCount();$i++) {
|
||||
printf('<script type="text/javascript" language="javascript">defaults[\'f_date_%s_%s\'] = \'%s\';</script>',$attribute->getName(),$i,$config['format']);
|
||||
printf('<script type="text/javascript">defaults[\'new_values_%s_%s\'] = \'%s\';</script>',$attribute->getName(),$i,$config['format']);
|
||||
|
||||
if (in_array_ignore_case($attribute->getName(),array_keys($config['time'])) && ($config['time'][$attribute->getName()]))
|
||||
printf('<script type="text/javascript" language="javascript">defaults[\'f_time_%s_%s\'] = \'%s\';</script>',$attribute->getName(),$i,'true');
|
||||
printf('<script type="text/javascript">defaults[\'f_time_%s_%s\'] = \'%s\';</script>',$attribute->getName(),$i,'true');
|
||||
|
||||
echo "\n";
|
||||
}
|
||||
@@ -2258,7 +2354,7 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
* Draws an HTML date selector button which, when clicked, pops up a date selector dialog.
|
||||
*/
|
||||
protected function drawSelectorPopupDateAttribute($attribute,$i) {
|
||||
printf('<a href="javascript:dateSelector(\'%s_%s\');" title="%s"><img class="chooser" src="%s/calendar.png" id="f_trigger_%s_%s" style="cursor: pointer;" alt="Calendar" /></a>',
|
||||
printf('<a href="javascript:dateSelector(\'%s_%s\');" title="%s"><img src="%s/calendar.png" alt="Calendar" class="chooser" id="f_trigger_%s_%s" style="cursor: pointer;" /></a>',
|
||||
$attribute->getName(),$i,_('Click to popup a dialog to select a date graphically'),IMGDIR,$attribute->getName(),$i);
|
||||
}
|
||||
|
||||
@@ -2275,6 +2371,9 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
protected function drawIconObjectClassAttribute($attribute,$val) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->getValue('appearance','show_schema_link') || !$_SESSION[APPCONFIG]->isCommandAvailable('script','schema'))
|
||||
return;
|
||||
|
||||
if (strlen($val) > 0) {
|
||||
$href = sprintf('cmd.php?cmd=schema&server_id=%s&view=objectclasses&viewvalue=%s',
|
||||
$this->getServerID(),$val);
|
||||
@@ -2286,13 +2385,13 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
/** PASSWORD ATTRIBUTES **/
|
||||
|
||||
protected function drawJavascriptPasswordAttribute($attribute) {
|
||||
static $drawn = false;
|
||||
static $drawn = array();
|
||||
|
||||
# This JS may have been rendered by multiple Binary attributes
|
||||
if ($drawn)
|
||||
if (isset($drawn[$attribute->getName()]) && $drawn[$attribute->getName()])
|
||||
return;
|
||||
else
|
||||
$drawn = true;
|
||||
$drawn[$attribute->getName()] = true;
|
||||
|
||||
printf('<!-- START: PASSWORD ATTRIBUTE %s (%s)-->',__METHOD__,$attribute->getName());
|
||||
echo "\n";
|
||||
@@ -2301,10 +2400,10 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
|
||||
# Add the javascript so we can call check password later.
|
||||
echo '
|
||||
<script type="text/javascript" language="javascript">
|
||||
function passwordComparePopup(component_id) {
|
||||
<script type="text/javascript">
|
||||
function passwordComparePopup(component_id,attr) {
|
||||
mywindow = open(\'password_checker.php\',\'myname\',\'resizable=no,width=500,height=200,scrollbars=1\');
|
||||
mywindow.location.href = \'password_checker.php?componentid=\'+component_id;
|
||||
mywindow.location.href = \'password_checker.php?componentid=\'+component_id+\'&attr=\'+attr;
|
||||
if (mywindow.opener == null) mywindow.opener = self;
|
||||
}
|
||||
</script>';
|
||||
@@ -2317,8 +2416,8 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
protected function drawCheckLinkPasswordAttribute($attribute,$component_id) {
|
||||
if (DEBUGTMP) printf('<font size=-2>%s</font><br />',__METHOD__);
|
||||
|
||||
printf('<small><a href="javascript:passwordComparePopup(\'%s\')">%s...</a></small><br />',
|
||||
$component_id,_('Check password'));
|
||||
printf('<small><a href="javascript:passwordComparePopup(\'%s\',\'%s\')">%s...</a></small><br />',
|
||||
$component_id,$attribute->getName(),_('Check password'));
|
||||
}
|
||||
|
||||
/** RANDOM PASSWORD **/
|
||||
@@ -2339,7 +2438,7 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
$pwd = str_replace("'","\\'",$pwd);
|
||||
|
||||
printf("\n<!-- %s -->\n",__METHOD__);
|
||||
echo '<script type="text/javascript" language="javascript">'."\n";
|
||||
echo '<script type="text/javascript">'."\n";
|
||||
echo 'var i = 0;'."\n";
|
||||
printf('var component = document.getElementById(\'new_values_%s_\'+i);',$attribute->getName());
|
||||
echo "\n";
|
||||
@@ -2367,17 +2466,17 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
if ($val = $attribute->getValue($i))
|
||||
$default = get_enc_type($val);
|
||||
else
|
||||
$default = $this->getServer()->getValue('appearance','password_hash');
|
||||
$default = $this->getServer()->getValue('appearance','pla_password_hash');
|
||||
|
||||
if (! $attribute->getPostValue())
|
||||
printf('<input type="hidden" name="post_value[%s][]" value="%s"/>',$attribute->getName(),$i);
|
||||
printf('<input type="hidden" name="post_value[%s][]" value="%s" />',$attribute->getName(),$i);
|
||||
|
||||
printf('<select name="%s[%s][%s]" id="%s_%s_%s">',
|
||||
$id,htmlspecialchars($attribute->getName()),$i,
|
||||
$id,htmlspecialchars($attribute->getName()),$i);
|
||||
|
||||
foreach (password_types() as $v => $display)
|
||||
printf('<option value="%s" %s>%s</option>',$v,($v == $default) ? 'selected' : '',$display);
|
||||
printf('<option value="%s" %s>%s</option>',$v,($v == $default) ? 'selected="selected"' : '',$display);
|
||||
|
||||
echo '</select>';
|
||||
}
|
||||
@@ -2386,7 +2485,7 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
$id = 'enc';
|
||||
|
||||
if (! $attribute->getPostValue())
|
||||
printf('<input type="hidden" name="post_value[%s][]" value="%s"/>',$attribute->getName(),$i);
|
||||
printf('<input type="hidden" name="post_value[%s][]" value="%s" />',$attribute->getName(),$i);
|
||||
|
||||
switch ($attribute->getName()) {
|
||||
case 'sambalmpassword' : $enc = 'lm'; break;
|
||||
@@ -2396,7 +2495,7 @@ function deleteAttribute(attrName,friendlyName,i)
|
||||
return '';
|
||||
}
|
||||
|
||||
printf('<input type="hidden" name="%s[%s][%s]" id="%s_%s_%s" value="%s">',
|
||||
printf('<input type="hidden" name="%s[%s][%s]" id="%s_%s_%s" value="%s" />',
|
||||
$id,htmlspecialchars($attribute->getName()),$i,
|
||||
$id,htmlspecialchars($attribute->getName()),$i,$enc);
|
||||
}
|
||||
|
15
lib/Tree.php
15
lib/Tree.php
@@ -51,16 +51,23 @@ abstract class Tree {
|
||||
return null;
|
||||
|
||||
$treeclass = $_SESSION[APPCONFIG]->getValue('appearance','tree');
|
||||
eval('$tree = new '.$treeclass.'($server_id);');
|
||||
$tree = new $treeclass($server_id);
|
||||
|
||||
# If we are not logged in, just return the empty tree.
|
||||
if (is_null($server->getLogin(null)))
|
||||
return $tree;
|
||||
|
||||
foreach ($server->getBaseDN(null) as $base)
|
||||
if ($base)
|
||||
foreach ($server->getBaseDN(null) as $base) {
|
||||
if ($base) {
|
||||
$tree->addEntry($base);
|
||||
|
||||
if ($server->getValue('appearance','open_tree')) {
|
||||
$baseEntry = $tree->getEntry($base);
|
||||
$baseEntry->open();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
set_cached_item($server_id,'tree','null',$tree);
|
||||
}
|
||||
|
||||
@@ -103,7 +110,7 @@ abstract class Tree {
|
||||
$return = array();
|
||||
|
||||
foreach ($this->entries as $details)
|
||||
if ($details->isBaseDN())
|
||||
if ($details->isBaseDN() AND ((! $this->getServer()->getValue('server','hide_noaccess_base')) OR $details->isInLdap()))
|
||||
array_push($return,$details);
|
||||
|
||||
return $return;
|
||||
|
@@ -58,6 +58,10 @@ class TreeItem {
|
||||
return $this->dn;
|
||||
}
|
||||
|
||||
public function getDNEncode() {
|
||||
return urlencode(preg_replace('/%([0-9a-fA-F]+)/',"%25\\1",$this->dn));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the RDN of this tree items DN.
|
||||
*
|
||||
|
@@ -55,20 +55,7 @@ abstract class Visitor {
|
||||
printf('<font size=-2>Method Exists: %s::%s (%s)</font><br />',get_class($this),$call,$args);
|
||||
|
||||
if (method_exists($this,$call)) {
|
||||
$call .= '(';
|
||||
|
||||
for ($i = 0; $i < count($args); $i++)
|
||||
if ($i == 0)
|
||||
$call .= sprintf('$args[%s]',$i);
|
||||
else
|
||||
$call .= sprintf(',$args[%s]',$i);
|
||||
|
||||
$call .= ');';
|
||||
|
||||
if (defined('DEBUGTMP') && DEBUGTMP)
|
||||
printf('<font size=-2><b>Invoking Method: $this->%s</b></font><br />',$call);
|
||||
|
||||
eval('$r = $this->'.$call);
|
||||
$r = call_user_func_array(array($this,$call),$args);
|
||||
|
||||
if (isset($r))
|
||||
return $r;
|
||||
|
@@ -193,7 +193,7 @@ if (isset($_SERVER['SERVER_SOFTWARE']) && ! isset($_SESSION[APPCONFIG])) {
|
||||
}
|
||||
|
||||
# Check for safe mode.
|
||||
if (ini_get('safe_mode') && ! get_request('cmd','GET'))
|
||||
if (@ini_get('safe_mode') && ! get_request('cmd','GET'))
|
||||
system_message(array(
|
||||
'title'=>_('PHP Safe Mode'),
|
||||
'body'=>_('You have PHP Safe Mode enabled. This application may work unexpectedly in Safe Mode.'),
|
||||
@@ -215,11 +215,11 @@ if (DEBUG_ENABLED)
|
||||
app_version(),$_REQUEST);
|
||||
|
||||
# Set our PHP timelimit.
|
||||
if ($_SESSION[APPCONFIG]->getValue('session','timelimit') && ! ini_get('safe_mode'))
|
||||
if ($_SESSION[APPCONFIG]->getValue('session','timelimit') && ! @ini_get('safe_mode'))
|
||||
set_time_limit($_SESSION[APPCONFIG]->getValue('session','timelimit'));
|
||||
|
||||
# If debug mode is set, increase the time_limit, since we probably need it.
|
||||
if (DEBUG_ENABLED && $_SESSION[APPCONFIG]->getValue('session','timelimit') && ! ini_get('safe_mode'))
|
||||
if (DEBUG_ENABLED && $_SESSION[APPCONFIG]->getValue('session','timelimit') && ! @ini_get('safe_mode'))
|
||||
set_time_limit($_SESSION[APPCONFIG]->getValue('session','timelimit') * 5);
|
||||
|
||||
/**
|
||||
@@ -227,7 +227,7 @@ if (DEBUG_ENABLED && $_SESSION[APPCONFIG]->getValue('session','timelimit') && !
|
||||
* Shall we attempt to auto-determine the language?
|
||||
*/
|
||||
# If we are in safe mode, and LANG is not in the allowed vars, display an error.
|
||||
if (ini_get('safe_mode') && ! in_array('LANG',explode(',',ini_get('safe_mode_allowed_env_vars'))))
|
||||
if (@ini_get('safe_mode') && ! in_array('LANG',explode(',',@ini_get('safe_mode_allowed_env_vars'))))
|
||||
error('You are running in SAFE_MODE, but LANG is not in the safe_mode_allowed_env_vars. Please add LANG to safe_mode_allowed_env_vars','error',true,false);
|
||||
|
||||
$app['language'] = $_SESSION[APPCONFIG]->getValue('appearance','language');
|
||||
@@ -296,7 +296,7 @@ if ($app['language'] == 'auto') {
|
||||
* Strip slashes from GET, POST, and COOKIE variables if this
|
||||
* PHP install is configured to automatically addslashes()
|
||||
*/
|
||||
if (get_magic_quotes_gpc() && (! isset($slashes_stripped) || ! $slashes_stripped)) {
|
||||
if (@get_magic_quotes_gpc() && (! isset($slashes_stripped) || ! $slashes_stripped)) {
|
||||
array_stripslashes($_REQUEST);
|
||||
array_stripslashes($_GET);
|
||||
array_stripslashes($_POST);
|
||||
|
@@ -87,6 +87,10 @@ class Config {
|
||||
'desc'=>'Disabled the Default Template',
|
||||
'default'=>false);
|
||||
|
||||
$this->default->appearance['disable_default_leaf'] = array(
|
||||
'desc'=>'Disabled creating leaf entries in the Default Template',
|
||||
'default'=>false);
|
||||
|
||||
$this->default->appearance['friendly_attrs'] = array(
|
||||
'desc'=>'Friendly names for attributes',
|
||||
'default'=>array());
|
||||
@@ -103,6 +107,10 @@ class Config {
|
||||
'desc'=>'Hide the features that may provide sensitive debugging information to the browser',
|
||||
'default'=>true);
|
||||
|
||||
$this->default->appearance['hide_template_regexp'] = array(
|
||||
'desc'=>'Templates that are disabled by their regex are not shown',
|
||||
'default'=>false);
|
||||
|
||||
$this->default->appearance['hide_template_warning'] = array(
|
||||
'desc'=>'Hide template errors from being displayed',
|
||||
'default'=>false);
|
||||
@@ -253,6 +261,11 @@ class Config {
|
||||
'desc'=>'LDAP search filter for the tree entries',
|
||||
'default'=>'(objectClass=*)');
|
||||
|
||||
# PLA will not display the header and footer parts in minimal mode.
|
||||
$this->default->appearance['minimalMode'] = array(
|
||||
'desc'=>'Minimal mode hides header and footer parts',
|
||||
'default'=>false);
|
||||
|
||||
## Caching
|
||||
$this->default->cache['schema'] = array(
|
||||
'desc'=>'Cache Schema Activity',
|
||||
@@ -280,6 +293,10 @@ class Config {
|
||||
|
||||
/** Confirm actions
|
||||
*/
|
||||
$this->default->confirm['copy'] = array(
|
||||
'desc'=>'Confirm copy actions',
|
||||
'default'=>true);
|
||||
|
||||
$this->default->confirm['create'] = array(
|
||||
'desc'=>'Confirm creation actions',
|
||||
'default'=>true);
|
||||
@@ -469,14 +486,6 @@ class Config {
|
||||
'desc'=>'Blowfish key to encrypt cookie details',
|
||||
'default'=>null);
|
||||
|
||||
$this->default->session['memorylimit'] = array(
|
||||
'desc'=>'Set the PHP memorylimit warning threshold.',
|
||||
'default'=>24);
|
||||
|
||||
$this->default->session['timelimit'] = array(
|
||||
'desc'=>'Set the PHP timelimit.',
|
||||
'default'=>30);
|
||||
|
||||
/** Cookie Time
|
||||
* If you used auth_type 'form' in the servers list, you can adjust how long the cookie will last
|
||||
* (default is 0 seconds, which expires when you close the browser)
|
||||
@@ -485,6 +494,18 @@ class Config {
|
||||
'desc'=>'Time in seconds for the life of cookies',
|
||||
'default'=>0);
|
||||
|
||||
$this->default->session['http_realm'] = array(
|
||||
'desc'=>'HTTP Authentication Realm',
|
||||
'default'=>sprintf('%s %s',app_name(),_('login')));
|
||||
|
||||
$this->default->session['memorylimit'] = array(
|
||||
'desc'=>'Set the PHP memorylimit warning threshold.',
|
||||
'default'=>24);
|
||||
|
||||
$this->default->session['timelimit'] = array(
|
||||
'desc'=>'Set the PHP timelimit.',
|
||||
'default'=>30);
|
||||
|
||||
/**
|
||||
* Session Menu
|
||||
*/
|
||||
@@ -677,9 +698,9 @@ class Config {
|
||||
$cmd = $this->getValue('commands',$index);
|
||||
|
||||
if (! is_string($a) || ! isset($cmd[$a]))
|
||||
debug_dump(array('Unknown command '=>$a),1);
|
||||
|
||||
return $cmd[$a];
|
||||
return false;
|
||||
else
|
||||
return $cmd[$a];
|
||||
}
|
||||
|
||||
public function configDefinition($key,$index,$config) {
|
||||
|
72
lib/ds.php
72
lib/ds.php
@@ -133,10 +133,12 @@ abstract class DS {
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
switch ($this->getValue('login','auth_type')) {
|
||||
case 'cookie':
|
||||
case 'config':
|
||||
case 'http':
|
||||
case 'proxy':
|
||||
case 'session':
|
||||
case 'sasl':
|
||||
return $this->getValue('login','auth_type');
|
||||
|
||||
default:
|
||||
@@ -164,6 +166,13 @@ abstract class DS {
|
||||
return null;
|
||||
|
||||
switch ($this->getAuthType()) {
|
||||
case 'cookie':
|
||||
if (! isset($_COOKIE[$method.'-USER']))
|
||||
# If our bind_id is set, we'll pass that back for logins.
|
||||
return (! is_null($this->getValue('login','bind_id')) && $method == 'login') ? $this->getValue('login','bind_id') : null;
|
||||
else
|
||||
return blowfish_decrypt($_COOKIE[$method.'-USER']);
|
||||
|
||||
case 'config':
|
||||
if (! isset($_SESSION['USER'][$this->index][$method]['name']))
|
||||
return $this->getValue('login','bind_id');
|
||||
@@ -178,6 +187,7 @@ abstract class DS {
|
||||
|
||||
case 'http':
|
||||
case 'session':
|
||||
case 'sasl':
|
||||
if (! isset($_SESSION['USER'][$this->index][$method]['name']))
|
||||
# If our bind_id is set, we'll pass that back for logins.
|
||||
return (! is_null($this->getValue('login','bind_id')) && $method == 'login') ? $this->getValue('login','bind_id') : null;
|
||||
@@ -199,6 +209,11 @@ abstract class DS {
|
||||
$method = $this->getMethod($method);
|
||||
|
||||
switch ($this->getAuthType()) {
|
||||
case 'cookie':
|
||||
set_cookie($method.'-USER',blowfish_encrypt($user),NULL,'/');
|
||||
set_cookie($method.'-PASS',blowfish_encrypt($pass),NULL,'/');
|
||||
return true;
|
||||
|
||||
case 'config':
|
||||
return true;
|
||||
|
||||
@@ -208,6 +223,7 @@ abstract class DS {
|
||||
|
||||
case 'http':
|
||||
case 'session':
|
||||
case 'sasl':
|
||||
$_SESSION['USER'][$this->index][$method]['name'] = blowfish_encrypt($user);
|
||||
$_SESSION['USER'][$this->index][$method]['pass'] = blowfish_encrypt($pass);
|
||||
|
||||
@@ -235,6 +251,13 @@ abstract class DS {
|
||||
return null;
|
||||
|
||||
switch ($this->getAuthType()) {
|
||||
case 'cookie':
|
||||
if (! isset($_COOKIE[$method.'-PASS']))
|
||||
# If our bind_id is set, we'll pass that back for logins.
|
||||
return (! is_null($this->getValue('login','bind_pass')) && $method == 'login') ? $this->getValue('login','bind_pass') : null;
|
||||
else
|
||||
return blowfish_decrypt($_COOKIE[$method.'-PASS']);
|
||||
|
||||
case 'config':
|
||||
case 'proxy':
|
||||
if (! isset($_SESSION['USER'][$this->index][$method]['pass']))
|
||||
@@ -244,6 +267,7 @@ abstract class DS {
|
||||
|
||||
case 'http':
|
||||
case 'session':
|
||||
case 'sasl':
|
||||
if (! isset($_SESSION['USER'][$this->index][$method]['pass']))
|
||||
# If our bind_pass is set, we'll pass that back for logins.
|
||||
return (! is_null($this->getValue('login','bind_pass')) && $method == 'login') ? $this->getValue('login','bind_pass') : null;
|
||||
@@ -329,6 +353,29 @@ abstract class DS {
|
||||
|
||||
break;
|
||||
|
||||
case 'sasl':
|
||||
# Propogate any given Kerberos credential cache location
|
||||
if (isset($_ENV['REDIRECT_KRB5CCNAME']))
|
||||
putenv(sprintf('KRB5CCNAME=%s',$_ENV['REDIRECT_KRB5CCNAME']));
|
||||
elseif (isset($_SERVER['KRB5CCNAME']))
|
||||
putenv(sprintf('KRB5CCNAME=%s',$_SERVER['KRB5CCNAME']));
|
||||
|
||||
# Map the SASL auth ID to a DN
|
||||
$regex = $this->getValue('login', 'sasl_dn_regex');
|
||||
$replacement = $this->getValue('login', 'sasl_dn_replacement');
|
||||
|
||||
if ($regex && $replacement) {
|
||||
$userDN = preg_replace($regex, $replacement, $_SERVER['REMOTE_USER']);
|
||||
|
||||
$CACHE[$this->index][$method] = $this->login($userDN, '', $method);
|
||||
|
||||
# Otherwise, use the user name as is
|
||||
# For GSSAPI Authentication + mod_auth_kerb and Basic Authentication
|
||||
} else
|
||||
$CACHE[$this->index][$method] = $this->login(isset($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'] : '', '', $method);
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
$CACHE[$this->index][$method] = is_null($this->getLogin($method)) ? false : true;
|
||||
}
|
||||
@@ -348,12 +395,17 @@ abstract class DS {
|
||||
unset ($_SESSION['cache'][$this->index]);
|
||||
|
||||
switch ($this->getAuthType()) {
|
||||
case 'cookie':
|
||||
set_cookie($method.'-USER','',time()-3600,'/');
|
||||
set_cookie($method.'-PASS','',time()-3600,'/');
|
||||
|
||||
case 'config':
|
||||
return true;
|
||||
|
||||
case 'http':
|
||||
case 'proxy':
|
||||
case 'session':
|
||||
case 'sasl':
|
||||
if (isset($_SESSION['USER'][$this->index][$method]))
|
||||
unset($_SESSION['USER'][$this->index][$method]);
|
||||
|
||||
@@ -490,6 +542,10 @@ class Datastore {
|
||||
'desc'=>'Whether this server is visible',
|
||||
'default'=>true);
|
||||
|
||||
$this->default->server['hide_noaccess_base'] = array(
|
||||
'desc'=>'If base DNs are not accessible, hide them instead of showing create',
|
||||
'default'=>false);
|
||||
|
||||
# Authentication Information
|
||||
$this->default->login['auth_type'] = array(
|
||||
'desc'=>'Authentication Type',
|
||||
@@ -526,6 +582,16 @@ class Datastore {
|
||||
'desc'=>'Session timout in seconds',
|
||||
'default'=>session_cache_expire()-1);
|
||||
|
||||
$this->default->login['sasl_dn_regex'] = array(
|
||||
'desc'=>'SASL authorization id to user dn PCRE regular expression',
|
||||
'untested'=>true,
|
||||
'default'=>null);
|
||||
|
||||
$this->default->login['sasl_dn_replacement'] = array(
|
||||
'desc'=>'SASL authorization id to user dn PCRE regular expression replacement string',
|
||||
'untested'=>true,
|
||||
'default'=>null);
|
||||
|
||||
# Prefix for custom pages
|
||||
$this->default->custom['pages_prefix'] = array(
|
||||
'desc'=>'Prefix name for custom pages',
|
||||
@@ -598,6 +664,8 @@ class Datastore {
|
||||
if (! $isVisible || ($isVisible && $server->getValue('server','visible')))
|
||||
$CACHE[$isVisible][$id] = $server;
|
||||
|
||||
masort($CACHE[$isVisible],'name');
|
||||
|
||||
return $CACHE[$isVisible];
|
||||
}
|
||||
|
||||
@@ -612,11 +680,11 @@ class Datastore {
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
# If no index defined, then pick the lowest one.
|
||||
if (is_null($index))
|
||||
if (is_null($index) || ! trim($index) || ! is_numeric($index))
|
||||
$index = min($this->GetServerList())->getIndex();
|
||||
|
||||
if (! isset($this->objects[$index]))
|
||||
debug_dump_backtrace("Error: Datastore instance [$index] doesnt exist?",1);
|
||||
debug_dump_backtrace(sprintf('Error: Datastore instance [%s] doesnt exist?',htmlspecialchars($index)),1);
|
||||
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED)
|
||||
debug_log('Returning instance of database (%s)',3,0,__FILE__,__LINE__,__METHOD__,$index);
|
||||
|
210
lib/ds_ldap.php
210
lib/ds_ldap.php
@@ -19,8 +19,6 @@ class ldap extends DS {
|
||||
private $_schema_entries = null;
|
||||
# Schema DN
|
||||
private $_schemaDN = null;
|
||||
# Attributes that should be treated as MAY attributes, even though the scheme has them as MUST attributes.
|
||||
private $force_may = array();
|
||||
|
||||
public function __construct($index) {
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
@@ -82,14 +80,9 @@ class ldap extends DS {
|
||||
'default'=>array());
|
||||
|
||||
# SASL configuration
|
||||
$this->default->server['sasl'] = array(
|
||||
'desc'=>'Use SASL authentication when binding LDAP server',
|
||||
'default'=>false);
|
||||
|
||||
$this->default->sasl['mech'] = array(
|
||||
'desc'=>'SASL mechanism used while binding LDAP server',
|
||||
'untested'=>true,
|
||||
'default'=>'PLAIN');
|
||||
'default'=>'GSSAPI');
|
||||
|
||||
$this->default->sasl['realm'] = array(
|
||||
'desc'=>'SASL realm name',
|
||||
@@ -188,6 +181,14 @@ class ldap extends DS {
|
||||
* specifies deref behavior for each ldap_search operation. */
|
||||
ldap_set_option($resource,LDAP_OPT_REFERRALS,0);
|
||||
|
||||
/* Enabling manageDsaIt to be able to browse through glued entries
|
||||
* 2.16.840.1.113730.3.4.2 : "ManageDsaIT Control" "RFC 3296" "The client may provide
|
||||
* the ManageDsaIT control with an operation to indicate that the operation is intended
|
||||
* to manage objects within the DSA (server) Information Tree. The control causes
|
||||
* Directory-specific entries (DSEs), regardless of type, to be treated as normal entries
|
||||
* allowing clients to interrogate and update these entries using LDAP operations." */
|
||||
ldap_set_option($resource,LDAP_OPT_SERVER_CONTROLS,array(array('oid'=>'2.16.840.1.113730.3.4.2')));
|
||||
|
||||
# Try to fire up TLS is specified in the config
|
||||
if ($this->isTLSEnabled())
|
||||
$this->startTLS($resource);
|
||||
@@ -258,7 +259,7 @@ class ldap extends DS {
|
||||
else
|
||||
$userDN = $this->getLoginID($user,'login');
|
||||
|
||||
if (! $userDN && $this->getValue('login','fallback_dn'))
|
||||
if (! $userDN && $this->getValue('login','fallback_dn') && strpos($user, '='))
|
||||
$userDN = $user;
|
||||
|
||||
if (! $userDN)
|
||||
@@ -312,8 +313,6 @@ class ldap extends DS {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
$size_limit = 500;
|
||||
$time_limit = 0;
|
||||
$attrs_only = 0;
|
||||
|
||||
# Defaults
|
||||
@@ -335,7 +334,9 @@ class ldap extends DS {
|
||||
if (! isset($query['scope']))
|
||||
$query['scope'] = 'sub';
|
||||
if (! isset($query['size_limit']))
|
||||
$query['size_limit'] = $size_limit;
|
||||
$query['size_limit'] = 0;
|
||||
if (! isset($query['time_limit']))
|
||||
$query['time_limit'] = 0;
|
||||
|
||||
if ($query['scope'] == 'base' && ! isset($query['baseok']))
|
||||
system_message(array(
|
||||
@@ -362,16 +363,16 @@ class ldap extends DS {
|
||||
|
||||
switch ($query['scope']) {
|
||||
case 'base':
|
||||
$search = @ldap_read($resource,$query['base'],$query['filter'],$query['attrs'],$attrs_only,$query['size_limit'],$time_limit,$query['deref']);
|
||||
$search = @ldap_read($resource,$query['base'],$query['filter'],$query['attrs'],$attrs_only,$query['size_limit'],$query['time_limit'],$query['deref']);
|
||||
break;
|
||||
|
||||
case 'one':
|
||||
$search = @ldap_list($resource,$query['base'],$query['filter'],$query['attrs'],$attrs_only,$query['size_limit'],$time_limit,$query['deref']);
|
||||
$search = @ldap_list($resource,$query['base'],$query['filter'],$query['attrs'],$attrs_only,$query['size_limit'],$query['time_limit'],$query['deref']);
|
||||
break;
|
||||
|
||||
case 'sub':
|
||||
default:
|
||||
$search = @ldap_search($resource,$query['base'],$query['filter'],$query['attrs'],$attrs_only,$query['size_limit'],$time_limit,$query['deref']);
|
||||
$search = @ldap_search($resource,$query['base'],$query['filter'],$query['attrs'],$attrs_only,$query['size_limit'],$query['time_limit'],$query['deref']);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -477,6 +478,7 @@ class ldap extends DS {
|
||||
$this->getLoginClass() ? sprintf('(objectclass=%s)',join(')(objectclass=',$this->getLoginClass())) : '');
|
||||
$query['attrs'] = array('dn');
|
||||
|
||||
$result = array();
|
||||
foreach ($this->getLoginBaseDN() as $base) {
|
||||
$query['base'] = $base;
|
||||
$result = $this->query($query,$method);
|
||||
@@ -576,7 +578,7 @@ class ldap extends DS {
|
||||
*
|
||||
* Users may configure phpLDAPadmin to use SASL in config,php thus:
|
||||
* <code>
|
||||
* $servers->setValue('server','sasl',true|false);
|
||||
* $servers->setValue('login','auth_type','sasl');
|
||||
* </code>
|
||||
*
|
||||
* @return boolean
|
||||
@@ -585,12 +587,17 @@ class ldap extends DS {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
if ($this->getValue('server','sasl') && ! function_exists('ldap_sasl_bind')) {
|
||||
error(_('SASL has been enabled in your config, but your PHP install does not support SASL. SASL will be disabled.'),'warn');
|
||||
if ($this->getValue('login','auth_type') != 'sasl')
|
||||
return false;
|
||||
|
||||
} else
|
||||
return $this->getValue('server','sasl');
|
||||
if (! function_exists('ldap_sasl_bind')) {
|
||||
error(_('SASL has been enabled in your config, but your PHP install does not support SASL. SASL will be disabled.'),'warn');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
# If we get here, SASL must be configured.
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -605,60 +612,61 @@ class ldap extends DS {
|
||||
|
||||
static $CACHE = array();
|
||||
|
||||
switch (strtolower($this->getValue('sasl','mech'))) {
|
||||
case 'gssapi':
|
||||
if (isset($_ENV['REDIRECT_KRB5CCNAME']))
|
||||
putenv(sprintf('KRB5CCNAME={%s}',$_ENV['REDIRECT_KRB5CCNAME']));
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
error(sprintf('%s (%s) has NOT been tested, please let us know if it works and which version of PHP you are using.',__METHOD__,$this->getValue('sasl','mech')),'info');
|
||||
}
|
||||
|
||||
if (! $this->getValue('server','sasl') || ! function_exists('ldap_start_tls'))
|
||||
# We shouldnt be doing SASL binds for anonymous queries?
|
||||
if ($method == 'anon')
|
||||
return false;
|
||||
|
||||
if (! isset($CACHE['login_dn'])) {
|
||||
$CACHE['login_dn'] = is_null($this->getLogin($method)) ? $this->getLogin('user') : $this->getLogin($method);
|
||||
$CACHE['login_pass'] = is_null($this->getPassword($method)) ? $this->getPassword('user') : $this->getPassword($method);
|
||||
# At the moment, we have only implemented GSSAPI
|
||||
if (! in_array(strtolower($this->getValue('sasl','mech')),array('gssapi'))) {
|
||||
system_message(array(
|
||||
'title'=>_('SASL Method not implemented'),
|
||||
'body'=>sprintf('<b>%s</b>: %s %s',_('Error'),$this->getValue('sasl','mech'),_('has not been implemented yet')),
|
||||
'type'=>'error'));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (! isset($CACHE['login_dn']))
|
||||
$CACHE['login_dn'] = is_null($this->getLogin($method)) ? $this->getLogin('user') : $this->getLogin($method);
|
||||
|
||||
$CACHE['authz_id'] = '';
|
||||
|
||||
/*
|
||||
# Do we need to rewrite authz_id?
|
||||
if (! isset($CACHE['authz_id']))
|
||||
if (! trim($this->getValue('sasl','authz_id'))) {
|
||||
if (! trim($this->getValue('sasl','authz_id')) && strtolower($this->getValue('sasl','mech')) != 'gssapi') {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Rewriting bind DN [%s] -> authz_id with regex [%s] and replacement [%s].',9,0,__FILE__,__LINE__,__METHOD__,
|
||||
$CACHE['login_dn'],
|
||||
$this->getValue('sasl','authz_id_regex'),
|
||||
$this->getValue('sasl','authz_id_replacement'));
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Rewriting bind DN [%s] -> authz_id with regex [%s] and replacement [%s].',9,0,__FILE__,__LINE__,__METHOD__,
|
||||
$CACHE['login_dn'],
|
||||
$this->getValue('sasl','authz_id_regex'),
|
||||
$this->getValue('sasl','authz_id_replacement'));
|
||||
$CACHE['authz_id'] = @preg_replace($this->getValue('sasl','authz_id_regex'),
|
||||
$this->getValue('sasl','authz_id_replacement'),$CACHE['login_dn']);
|
||||
|
||||
$CACHE['authz_id'] = @preg_replace($this->getValue('sasl','authz_id_regex'),
|
||||
$this->getValue('sasl','authz_id_replacement'),$CACHE['login_dn']);
|
||||
# Invalid regex?
|
||||
if (is_null($CACHE['authz_id']))
|
||||
error(sprintf(_('It seems that sasl_authz_id_regex "%s" contains invalid PCRE regular expression. The error is "%s".'),
|
||||
$this->getValue('sasl','authz_id_regex'),(isset($php_errormsg) ? $php_errormsg : '')),
|
||||
'error','index.php');
|
||||
|
||||
# Invalid regex?
|
||||
if (is_null($CACHE['authz_id']))
|
||||
error(sprintf(_('It seems that sasl_authz_id_regex "%s" contains invalid PCRE regular expression. The error is "%s".'),
|
||||
$this->getValue('sasl','authz_id_regex'),(isset($php_errormsg) ? $php_errormsg : '')),
|
||||
'error','index.php');
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Resource [%s], SASL OPTIONS: mech [%s], realm [%s], authz_id [%s], props [%s]',9,0,__FILE__,__LINE__,__METHOD__,
|
||||
$resource,
|
||||
$this->getValue('sasl','mech'),
|
||||
$this->getValue('sasl','realm'),
|
||||
$CACHE['authz_id'],
|
||||
$this->getValue('sasl','props'));
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Resource [%s], SASL OPTIONS: mech [%s], realm [%s], authz_id [%s], props [%s]',9,0,__FILE__,__LINE__,__METHOD__,
|
||||
$resource,
|
||||
$this->getValue('sasl','mech'),
|
||||
$this->getValue('sasl','realm'),
|
||||
$CACHE['authz_id'],
|
||||
$this->getValue('sasl','props'));
|
||||
|
||||
} else
|
||||
$CACHE['authz_id'] = $this->getValue('sasl','authz_id');
|
||||
*/
|
||||
|
||||
# @todo this function is different in PHP5.1 and PHP5.2
|
||||
return @ldap_sasl_bind($resource,$CACHE['login_dn'],$CACHE['login_pass'],
|
||||
return @ldap_sasl_bind($resource,NULL,'',
|
||||
$this->getValue('sasl','mech'),
|
||||
$this->getValue('sasl','realm'),
|
||||
$CACH['authz_id'],
|
||||
$CACHE['authz_id'],
|
||||
$this->getValue('sasl','props'));
|
||||
}
|
||||
|
||||
@@ -1116,13 +1124,14 @@ class ldap extends DS {
|
||||
|
||||
if (is_array($dn)) {
|
||||
$a = array();
|
||||
foreach ($dn as $key => $rdn)
|
||||
$a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn);
|
||||
|
||||
foreach ($dn as $key => $rdn) {
|
||||
$a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function($m) { return chr(hexdec('${m[1]}')); }, $rdn);
|
||||
}
|
||||
return $a;
|
||||
|
||||
} else
|
||||
return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn);
|
||||
} else {
|
||||
return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/', function($m) { return chr(hexdec('${m[1]}')); }, $dn);
|
||||
}
|
||||
}
|
||||
|
||||
public function getRootDSE($method=null) {
|
||||
@@ -1375,6 +1384,40 @@ class ldap extends DS {
|
||||
}
|
||||
}
|
||||
|
||||
# Option 3: try cn=config
|
||||
$olc_schema = 'olc'.$schema_to_fetch;
|
||||
$olc_schema_found = false;
|
||||
if (is_null($schema_search)) {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Attempting cn=config work-around...',24,0,__FILE__,__LINE__,__METHOD__);
|
||||
|
||||
$ldap_dn = 'cn=schema,cn=config';
|
||||
$ldap_filter = '(objectClass=*)';
|
||||
|
||||
$schema_search = @ldap_search($this->connect($method),$ldap_dn,$ldap_filter,array($olc_schema),false,0,10,LDAP_DEREF_NEVER);
|
||||
|
||||
if (! is_null($schema_search)) {
|
||||
$schema_entries = @ldap_get_entries($this->connect($method),$schema_search);
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Search returned [%s]',24,0,__FILE__,__LINE__,__METHOD__,$schema_entries);
|
||||
|
||||
if ($schema_entries) {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Found schema with filter of (%s) and attribute filter (%s)',24,0,__FILE__,__LINE__,__METHOD__,$ldap_filter,$olc_schema);
|
||||
|
||||
$olc_schema_found = true;
|
||||
|
||||
} else {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Didnt find schema with filter (%s) and attribute filter (%s)',24,0,__FILE__,__LINE__,__METHOD__,$ldap_filter,$olc_schema);
|
||||
|
||||
unset($schema_entries);
|
||||
$schema_search = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (is_null($schema_search)) {
|
||||
/* Still cant find the schema, try with the RootDSE
|
||||
* Attempt to pull schema from Root DSE with scope "base", or
|
||||
@@ -1444,9 +1487,35 @@ class ldap extends DS {
|
||||
return $return;
|
||||
}
|
||||
|
||||
if(! isset($schema_entries[0][$schema_to_fetch])) {
|
||||
if ($olc_schema_found) {
|
||||
unset ($schema_entries['count']);
|
||||
|
||||
foreach ($schema_entries as $entry) {
|
||||
if (isset($entry[$olc_schema])) {
|
||||
unset($entry[$olc_schema]['count']);
|
||||
|
||||
foreach ($entry[$olc_schema] as $schema_definition)
|
||||
/* Schema definitions in child nodes prefix the schema entries with "{n}"
|
||||
the preg_replace call strips out this prefix. */
|
||||
$schema[] = preg_replace('/^\{\d*\}\(/','(',$schema_definition);
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($schema)) {
|
||||
$this->_schema_entries[$olc_schema] = $schema;
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Returning (%s)',25,0,__FILE__,__LINE__,__METHOD__,$schema);
|
||||
|
||||
return $schema;
|
||||
|
||||
} else
|
||||
return null;
|
||||
}
|
||||
|
||||
if (! isset($schema_entries[0][$schema_to_fetch])) {
|
||||
if (in_array($schema_to_fetch,$schema_error_message_array)) {
|
||||
error(sprintf('Our attempts to find your SCHEMA for "%s" has return UNEXPECTED results.<br /><br /><small>(We expected a "%s" in the $schema array but it wasnt there.)</small><br /><br />%s<br /><br />Dump of $schema_search:<hr /><pre><small>%s</small></pre>',
|
||||
error(sprintf('Our attempts to find your SCHEMA for "%s" have return UNEXPECTED results.<br /><br /><small>(We expected a "%s" in the $schema array but it wasnt there.)</small><br /><br />%s<br /><br />Dump of $schema_search:<hr /><pre><small>%s</small></pre>',
|
||||
$schema_to_fetch,gettype($schema_search),$schema_error_message,serialize($schema_entries)),'error','index.php');
|
||||
|
||||
} else {
|
||||
@@ -1910,14 +1979,13 @@ class ldap extends DS {
|
||||
* This function determines if the specified attribute is contained in the force_may list
|
||||
* as configured in config.php.
|
||||
*
|
||||
* @return boolean True if the specified attribute is in the $force_may list and false
|
||||
* otherwise.
|
||||
* @return boolean True if the specified attribute is configured to be force as a may attribute
|
||||
*/
|
||||
function isForceMay($attr_name) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
return in_array($attr_name,$this->force_may);
|
||||
return in_array($attr_name,unserialize(strtolower(serialize($this->getValue('server','force_may')))));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2002,7 +2070,7 @@ class ldap extends DS {
|
||||
* @see getDNSysAttrs
|
||||
* @see getDNAttrValue
|
||||
*/
|
||||
public function getDNAttrValues($dn,$method=null,$deref=LDAP_DEREF_NEVER,$attrs=array('*','+')) {
|
||||
public function getDNAttrValues($dn,$method=null,$deref=LDAP_DEREF_NEVER,$attrs=array('*','+'),$nocache=false) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',17,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
@@ -2018,7 +2086,7 @@ class ldap extends DS {
|
||||
elseif (in_array('*',$attrs))
|
||||
$cacheindex = '*';
|
||||
|
||||
if (! is_null($cacheindex) && isset($CACHE[$this->index][$method][$dn][$cacheindex])) {
|
||||
if (! $nocache && ! is_null($cacheindex) && isset($CACHE[$this->index][$method][$dn][$cacheindex])) {
|
||||
$results = $CACHE[$this->index][$method][$dn][$cacheindex];
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
@@ -2218,6 +2286,8 @@ class ldap extends DS {
|
||||
strcasecmp($attr_name,'objectSID') == 0 ||
|
||||
strcasecmp($attr_name,'auditingPolicy') == 0 ||
|
||||
strcasecmp($attr_name,'jpegPhoto') == 0 ||
|
||||
strcasecmp($attr_name,'krbExtraData') == 0 ||
|
||||
strcasecmp($attr_name,'krbPrincipalKey') == 0 ||
|
||||
$syntax == '1.3.6.1.4.1.1466.115.121.1.10' ||
|
||||
$syntax == '1.3.6.1.4.1.1466.115.121.1.28' ||
|
||||
$syntax == '1.3.6.1.4.1.1466.115.121.1.5' ||
|
||||
|
@@ -13,13 +13,10 @@
|
||||
* @subpackage DataStore
|
||||
*/
|
||||
class ldap_pla extends ldap {
|
||||
# Attributes that should be treated as MAY attributes, even though the scheme has them as MUST attributes.
|
||||
private $force_may = array();
|
||||
|
||||
function __construct($index) {
|
||||
parent::__construct($index);
|
||||
|
||||
$this->default->appearance['password_hash'] = array(
|
||||
$this->default->appearance['pla_password_hash'] = array(
|
||||
'desc'=>'Default HASH to use for passwords',
|
||||
'default'=>'md5');
|
||||
|
||||
@@ -27,6 +24,10 @@ class ldap_pla extends ldap {
|
||||
'desc'=>'Whether to show the "Create new Entry here" in the tree browser',
|
||||
'default'=>true);
|
||||
|
||||
$this->default->appearance['open_tree'] = array(
|
||||
'desc'=>'Whether to initially open each tree',
|
||||
'default'=>false);
|
||||
|
||||
$this->default->login['fallback_dn'] = array(
|
||||
'desc'=>'If the attribute base login fails, see if a DN was entered',
|
||||
'default'=>false);
|
||||
@@ -51,6 +52,10 @@ class ldap_pla extends ldap {
|
||||
'desc'=>'Custom operational attributes to be treated as internal attributes',
|
||||
'default'=>array('+'));
|
||||
|
||||
$this->default->server['jpeg_attributes'] = array(
|
||||
'desc'=>'Additional attributes to treat as Jpeg Attributes',
|
||||
'default'=>array());
|
||||
|
||||
# This was added in case the LDAP server doesnt provide them with a base +,* query.
|
||||
$this->default->server['root_dse_attributes'] = array(
|
||||
'desc'=>'RootDSE attributes for use when displaying server info',
|
||||
@@ -85,6 +90,11 @@ class ldap_pla extends ldap {
|
||||
'*'
|
||||
));
|
||||
|
||||
$this->default->server['force_may'] = array(
|
||||
'desc'=>'Force server MUST attributes as MAY attributes',
|
||||
'default'=>array(
|
||||
));
|
||||
|
||||
# Settings for auto_number
|
||||
$this->default->auto_number['enable'] = array(
|
||||
'desc'=>'Enable the AUTO UID feature',
|
||||
@@ -123,6 +133,19 @@ class ldap_pla extends ldap {
|
||||
'default'=>null);
|
||||
}
|
||||
|
||||
public function __get($key) {
|
||||
switch ($key) {
|
||||
case 'name':
|
||||
return $this->getValue('server','name');
|
||||
|
||||
default:
|
||||
system_message(array(
|
||||
'title'=>_('Unknown request for Object value.'),
|
||||
'body'=>sprintf(_('Attempt to obtain value %s from %s'),$key,get_class($this)),
|
||||
'type'=>'error'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets whether the admin has configured phpLDAPadmin to show the "Create New" link in the tree viewer.
|
||||
* <code>
|
||||
@@ -337,6 +360,11 @@ class ldap_pla extends ldap {
|
||||
if ($result) {
|
||||
# Update the tree
|
||||
$tree = get_cached_item($this->index,'tree');
|
||||
|
||||
# If we created the base, delete it, then add it back
|
||||
if (get_request('create_base'))
|
||||
$tree->delEntry($dn);
|
||||
|
||||
$tree->addEntry($dn);
|
||||
|
||||
set_cached_item($this->index,'tree','null',$tree);
|
||||
@@ -474,7 +502,7 @@ class ldap_pla extends ldap {
|
||||
return false;
|
||||
|
||||
if (run_hook('pre_entry_modify',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attrs'=>$attrs))) {
|
||||
$result = @ldap_mod_replace($this->connect($method),$dn,$attrs);
|
||||
$result = @ldap_modify($this->connect($method),$dn,$attrs);
|
||||
|
||||
if ($result) {
|
||||
run_hook('post_entry_modify',array('server_id'=>$this->index,'method'=>$method,'dn'=>$dn,'attrs'=>$attrs));
|
||||
@@ -587,7 +615,7 @@ class ldap_pla extends ldap {
|
||||
foreach ($results as $values)
|
||||
# If one of the attributes is owned to somebody else, then we may as well die here.
|
||||
if ($values['dn'] != $dn) {
|
||||
$href = sprintf('cmd.php?cmd=query_engine&server_id=%s&filter=%s&scope=sub&query=none&format=list',$this->index,$query['filter']);
|
||||
$href = sprintf('cmd.php?cmd=query_engine&server_id=%s&filter=%s&scope=sub&query=none&format=list&search=true',$this->index,$query['filter']);
|
||||
|
||||
system_message(array(
|
||||
'title'=>_('Attribute value would not be unique'),
|
||||
|
@@ -58,8 +58,11 @@ if (! function_exists('mhash') && ! function_exists('mhash_keygen_s2k')) {
|
||||
function openssl_hash($openssl_hash_id,$password_clear) {
|
||||
global $emuhash_emu;
|
||||
|
||||
$current_magic_quotes = get_magic_quotes_runtime();
|
||||
set_magic_quotes_runtime(0);
|
||||
if (PHP_VERSION < 6) {
|
||||
$current_magic_quotes = @get_magic_quotes_runtime();
|
||||
@set_magic_quotes_runtime(0);
|
||||
}
|
||||
|
||||
$tmpfile = tempnam($emuhash_emu['tmpdir'],'emuhash');
|
||||
$pwhandle = fopen($tmpfile,'w');
|
||||
|
||||
@@ -73,7 +76,9 @@ if (! function_exists('mhash') && ! function_exists('mhash_keygen_s2k')) {
|
||||
$pass = fread($prog,1024);
|
||||
pclose($prog);
|
||||
unlink($tmpfile);
|
||||
set_magic_quotes_runtime($current_magic_quotes);
|
||||
|
||||
if (PHP_VERSION < 6)
|
||||
@set_magic_quotes_runtime($current_magic_quotes);
|
||||
|
||||
return $pass;
|
||||
}
|
||||
|
@@ -324,9 +324,9 @@ class ExportCSV extends Export {
|
||||
}
|
||||
|
||||
if ($this->compress)
|
||||
echo gzencode($output);
|
||||
return gzencode($output);
|
||||
else
|
||||
echo $output;
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -428,9 +428,9 @@ class ExportDSML extends Export {
|
||||
$output .= sprintf('</dsml>%s',$this->br);
|
||||
|
||||
if ($this->compress)
|
||||
echo gzencode($output);
|
||||
return gzencode($output);
|
||||
else
|
||||
echo $output;
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -506,9 +506,9 @@ class ExportLDIF extends Export {
|
||||
}
|
||||
|
||||
if ($this->compress)
|
||||
echo gzencode($output);
|
||||
return gzencode($output);
|
||||
else
|
||||
echo $output;
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -578,6 +578,7 @@ class ExportVCARD extends Export {
|
||||
*/
|
||||
function export() {
|
||||
$server = $this->getServer();
|
||||
$output = '';
|
||||
|
||||
# Sift through the entries.
|
||||
foreach ($this->results as $base => $results) {
|
||||
@@ -591,10 +592,11 @@ class ExportVCARD extends Export {
|
||||
$addr .= $dndetails[$attr];
|
||||
unset($dndetails[$attr]);
|
||||
}
|
||||
|
||||
$addr .= ';';
|
||||
}
|
||||
|
||||
$output = sprintf('BEGIN:VCARD%s',$this->br);
|
||||
$output .= sprintf('BEGIN:VCARD%s',$this->br);
|
||||
|
||||
# Loop for the attributes
|
||||
foreach ($dndetails as $key => $attr) {
|
||||
@@ -633,9 +635,9 @@ class ExportVCARD extends Export {
|
||||
}
|
||||
|
||||
if ($this->compress)
|
||||
echo gzencode($output);
|
||||
return gzencode($output);
|
||||
else
|
||||
echo $output;
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@@ -51,7 +51,7 @@ if (file_exists(LIBDIR.'functions.custom.php'))
|
||||
/**
|
||||
* Loads class definition
|
||||
*/
|
||||
function __autoload($className) {
|
||||
function pla_autoload($className) {
|
||||
if (file_exists(HOOKSDIR."classes/$className.php"))
|
||||
require_once(HOOKSDIR."classes/$className.php");
|
||||
elseif (file_exists(LIBDIR."$className.php"))
|
||||
@@ -66,10 +66,16 @@ function __autoload($className) {
|
||||
'type'=>'error'));
|
||||
}
|
||||
|
||||
if (version_compare(phpversion(), '7.0', '>=')) {
|
||||
spl_autoload_register('pla_autoload');
|
||||
} else {
|
||||
eval('function __autoload($className) {pla_autoload($className);}');
|
||||
}
|
||||
|
||||
/**
|
||||
* Strips all slashes from the specified array in place (pass by ref).
|
||||
* @param Array The array to strip slashes from, typically one of
|
||||
* $_GET, $_POST, or $_COOKIE.
|
||||
* $_GET, $_POST, or $_COOKIE.
|
||||
*/
|
||||
function array_stripslashes(&$array) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
@@ -167,7 +173,7 @@ function app_error_handler($errno,$errstr,$file,$lineno) {
|
||||
$body .= sprintf('<tr><td>Web server:</td><td><b>%s</b></td></tr>',isset($_SERVER['SERVER_SOFTWARE']) ? $_SERVER['SERVER_SOFTWARE'] : 'SCRIPT');
|
||||
|
||||
if (function_exists('get_href'))
|
||||
$body .= sprintf('<tr><td colspan="2"><a href="%s" target="_blank"><center>%s.</center></a></td></tr>',
|
||||
$body .= sprintf('<tr><td colspan="2"><a href="%s" onclick="target=\'_blank\';"><center>%s.</center></a></td></tr>',
|
||||
get_href('search_bug',"&summary_keyword=".rawurlencode($errstr)),
|
||||
_('Please check and see if this bug has been reported'));
|
||||
$body .= '</table>';
|
||||
@@ -362,7 +368,7 @@ function cmd_control_pane($type) {
|
||||
|
||||
'hide_debug_info'=>array(
|
||||
'title'=>_('Show Cache'),
|
||||
'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('script','show_cache') : false,
|
||||
'enable'=>isset($_SESSION[APPCONFIG]) ? ($_SESSION[APPCONFIG]->isCommandAvailable('script','show_cache')) && (! $_SESSION[APPCONFIG]->getValue('appearance','hide_debug_info')) : false,
|
||||
'link'=>sprintf('href="cmd.php?cmd=show_cache" onclick="return ajDISPLAY(\'BODY\',\'cmd=show_cache\',\'%s\');" title="%s"',
|
||||
_('Loading'),_('Show Cache'),_('Show Cache')),
|
||||
'image'=>sprintf('<img src="%s/debug-cache.png" alt="%s" />',IMGDIR,_('Show Cache'))),
|
||||
@@ -375,31 +381,31 @@ function cmd_control_pane($type) {
|
||||
'forum'=>array(
|
||||
'title'=>_('Forum'),
|
||||
'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true,
|
||||
'link'=>sprintf('href="%s" title="%s" target="_blank"',get_href('forum'),_('Forum')),
|
||||
'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('forum'),_('Forum')),
|
||||
'image'=>sprintf('<img src="%s/forum-big.png" alt="%s" />',IMGDIR,_('Forum'))),
|
||||
|
||||
'feature'=>array(
|
||||
'title'=>_('Request feature'),
|
||||
'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true,
|
||||
'link'=>sprintf('href="%s" title="%s" target="_blank"',get_href('add_rfe'),_('Request feature')),
|
||||
'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('add_rfe'),_('Request feature')),
|
||||
'image'=>sprintf('<img src="%s/request-feature-big.png" alt="%s" />',IMGDIR,_('Request feature'))),
|
||||
|
||||
'bug'=>array(
|
||||
'title'=>_('Report a bug'),
|
||||
'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true,
|
||||
'link'=>sprintf('href="%s" title="%s" target="_blank"',get_href('add_bug'),_('Report a bug')),
|
||||
'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('add_bug'),_('Report a bug')),
|
||||
'image'=>sprintf('<img src="%s/bug-big.png" alt="%s" />',IMGDIR,_('Report a bug'))),
|
||||
|
||||
'donation'=>array(
|
||||
'title'=>_('Donate'),
|
||||
'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true,
|
||||
'link'=>sprintf('href="%s" title="%s" target="_blank"',get_href('donate'),_('Donate')),
|
||||
'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('donate'),_('Donate')),
|
||||
'image'=>sprintf('<img src="%s/smile-big.png" alt="%s" />',IMGDIR,_('Donate'))),
|
||||
|
||||
'help'=>array(
|
||||
'title'=>_('Help'),
|
||||
'enable'=>isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->isCommandAvailable('cmd','oslinks') : true,
|
||||
'link'=>sprintf('href="%s" title="%s" target="_blank"',get_href('documentation'),_('Help')),
|
||||
'link'=>sprintf('href="%s" title="%s" onclick="target=\'_blank\';"',get_href('documentation'),_('Help')),
|
||||
'image'=>sprintf('<img src="%s/help-big.png" alt="%s" />',IMGDIR,_('Help')))
|
||||
);
|
||||
|
||||
@@ -563,7 +569,7 @@ function debug_log($msg,$level,$indent) {
|
||||
fwrite($debug_file,$debug_message."\n");
|
||||
}
|
||||
|
||||
if ($_SESSION[APPCONFIG]->getValue('debug','syslog'))
|
||||
if ($_SESSION[APPCONFIG]->getValue('debug','syslog') && function_exists('syslog_notice'))
|
||||
syslog_notice($debug_message);
|
||||
}
|
||||
|
||||
@@ -612,10 +618,10 @@ function error($msg,$type='note',$redirect=null,$fatal=false,$backtrace=false) {
|
||||
_('Function'),$line['function']);
|
||||
|
||||
if (isset($line['args'])) {
|
||||
$display = strlen(serialize($line['args'])) < 50 ? serialize($line['args']) : substr(serialize($line['args']),0,50).'...<TRUNCATED>';
|
||||
$display = strlen(serialize($line['args'])) < 50 ? htmlspecialchars(serialize($line['args'])) : htmlspecialchars(substr(serialize($line['args']),0,50)).'...<TRUNCATED>';
|
||||
$_SESSION['backtrace'][$error]['args'] = $line['args'];
|
||||
if (file_exists(LIBDIR.'../tools/unserialize.php'))
|
||||
$body .= sprintf(' (<a href="%s?index=%s" target="backtrace">%s</a>)',
|
||||
$body .= sprintf(' (<a href="%s?index=%s" onclick="target=\'backtrace\';">%s</a>)',
|
||||
'../tools/unserialize.php',$error,$display);
|
||||
else
|
||||
$body .= sprintf(' (%s)',$display);
|
||||
@@ -648,20 +654,20 @@ function error($msg,$type='note',$redirect=null,$fatal=false,$backtrace=false) {
|
||||
function get_request($attr,$type='POST',$die=false,$default=null) {
|
||||
switch($type) {
|
||||
case 'GET':
|
||||
$value = isset($_GET[$attr]) ? (is_array($_GET[$attr]) ? $_GET[$attr] : rawurldecode($_GET[$attr])) : $default;
|
||||
$value = isset($_GET[$attr]) ? (is_array($_GET[$attr]) ? $_GET[$attr] : (empty($_GET['nodecode'][$attr]) ? rawurldecode($_GET[$attr]) : $_GET[$attr])) : $default;
|
||||
break;
|
||||
|
||||
case 'REQUEST':
|
||||
$value = isset($_REQUEST[$attr]) ? (is_array($_REQUEST[$attr]) ? $_REQUEST[$attr] : rawurldecode($_REQUEST[$attr])) : $default;
|
||||
$value = isset($_REQUEST[$attr]) ? (is_array($_REQUEST[$attr]) ? $_REQUEST[$attr] : (empty($_REQUEST['nodecode'][$attr]) ? rawurldecode($_REQUEST[$attr]) : $_REQUEST[$attr])) : $default;
|
||||
break;
|
||||
|
||||
case 'SESSION':
|
||||
$value = isset($_SESSION[$attr]) ? (is_array($_SESSION[$attr]) ? $_SESSION[$attr] : rawurldecode($_SESSION[$attr])) : $default;
|
||||
$value = isset($_SESSION[$attr]) ? (is_array($_SESSION[$attr]) ? $_SESSION[$attr] : (empty($_SESSION['nodecode'][$attr]) ? rawurldecode($_SESSION[$attr]) : $_SESSION[$attr])) : $default;
|
||||
break;
|
||||
|
||||
case 'POST':
|
||||
default:
|
||||
$value = isset($_POST[$attr]) ? (is_array($_POST[$attr]) ? $_POST[$attr] : rawurldecode($_POST[$attr])) : $default;
|
||||
$value = isset($_POST[$attr]) ? (is_array($_POST[$attr]) ? $_POST[$attr] : (empty($_POST['nodecode'][$attr]) ? rawurldecode($_POST[$attr]) : $_POST[$attr])) : $default;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -745,6 +751,21 @@ function blowfish_encrypt($data,$secret=null) {
|
||||
if (! trim($secret))
|
||||
return $data;
|
||||
|
||||
if (! empty($data) && function_exists('openssl_encrypt') && in_array('bf-ecb', openssl_get_cipher_methods())) {
|
||||
$keylen = openssl_cipher_iv_length('bf-ecb') * 2;
|
||||
return openssl_encrypt($data, 'bf-ecb', substr($secret,0,$keylen));
|
||||
}
|
||||
|
||||
if (function_exists('mcrypt_module_open') && ! empty($data)) {
|
||||
$td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_ECB,'');
|
||||
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM);
|
||||
mcrypt_generic_init($td,substr($secret,0,mcrypt_enc_get_key_size($td)),$iv);
|
||||
$encrypted_data = base64_encode(mcrypt_generic($td,$data));
|
||||
mcrypt_generic_deinit($td);
|
||||
|
||||
return $encrypted_data;
|
||||
}
|
||||
|
||||
if (file_exists(LIBDIR.'blowfish.php'))
|
||||
require_once LIBDIR.'blowfish.php';
|
||||
else
|
||||
@@ -761,6 +782,7 @@ function blowfish_encrypt($data,$secret=null) {
|
||||
|
||||
$encrypt .= $pma_cipher->encryptBlock($block, $secret);
|
||||
}
|
||||
|
||||
return base64_encode($encrypt);
|
||||
}
|
||||
|
||||
@@ -790,6 +812,21 @@ function blowfish_decrypt($encdata,$secret=null) {
|
||||
if (! trim($secret))
|
||||
return $encdata;
|
||||
|
||||
if (! empty($encdata) && function_exists('openssl_encrypt') && in_array('bf-ecb', openssl_get_cipher_methods())) {
|
||||
$keylen = openssl_cipher_iv_length('bf-ecb') * 2;
|
||||
return trim(openssl_decrypt($encdata, 'bf-ecb', substr($secret,0,$keylen)));
|
||||
}
|
||||
|
||||
if (function_exists('mcrypt_module_open') && ! empty($encdata)) {
|
||||
$td = mcrypt_module_open(MCRYPT_BLOWFISH,'',MCRYPT_MODE_ECB,'');
|
||||
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_DEV_URANDOM);
|
||||
mcrypt_generic_init($td,substr($secret,0,mcrypt_enc_get_key_size($td)),$iv);
|
||||
$decrypted_data = trim(mdecrypt_generic($td,base64_decode($encdata)));
|
||||
mcrypt_generic_deinit($td);
|
||||
|
||||
return $decrypted_data;
|
||||
}
|
||||
|
||||
if (file_exists(LIBDIR.'blowfish.php'))
|
||||
require_once LIBDIR.'blowfish.php';
|
||||
else
|
||||
@@ -802,7 +839,8 @@ function blowfish_decrypt($encdata,$secret=null) {
|
||||
for ($i=0; $i<strlen($data); $i+=8)
|
||||
$decrypt .= $pma_cipher->decryptBlock(substr($data, $i, 8), $secret);
|
||||
|
||||
$return = trim($decrypt);
|
||||
// Strip off our \0's that were added.
|
||||
$return = preg_replace("/\\0*$/",'',$decrypt);
|
||||
$CACHE[$encdata] = $return;
|
||||
return $return;
|
||||
}
|
||||
@@ -971,6 +1009,23 @@ function get_custom_file($index,$filename,$path) {
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replacement for create_function() which is deprecated as of php 7.2
|
||||
*
|
||||
* @param string The function arguments
|
||||
* @param string The function code
|
||||
*/
|
||||
function pla_create_function($args, $code) {
|
||||
if (version_compare(phpversion(),'7.0','>=')) {
|
||||
# anonymous functions were introduced in PHP 5.3.0
|
||||
return eval("return function(".$args."){".$code."};");
|
||||
|
||||
} else {
|
||||
# create_function is deprecated in php 7.2
|
||||
return create_function($args, $code);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sort a multi dimensional array.
|
||||
*
|
||||
@@ -980,11 +1035,12 @@ function get_custom_file($index,$filename,$path) {
|
||||
* @return array Sorted multi demension array.
|
||||
*/
|
||||
function masort(&$data,$sortby,$rev=0) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
# if the array to sort is null or empty
|
||||
if (! $data) return;
|
||||
# if the array to sort is null or empty, or if we have some nasty chars
|
||||
if (! preg_match('/^[a-zA-Z0-9_]+(\([a-zA-Z0-9_,]*\))?$/',$sortby) || ! $data)
|
||||
return;
|
||||
|
||||
static $CACHE = array();
|
||||
|
||||
@@ -1057,7 +1113,7 @@ function masort(&$data,$sortby,$rev=0) {
|
||||
|
||||
$code .= 'return $c;';
|
||||
|
||||
$CACHE[$sortby] = create_function('$a, $b',$code);
|
||||
$CACHE[$sortby] = pla_create_function('$a, $b',$code);
|
||||
}
|
||||
|
||||
uasort($data,$CACHE[$sortby]);
|
||||
@@ -1422,11 +1478,8 @@ function get_next_number($base,$attr,$increment=false,$filter=false,$startmin=nu
|
||||
$query['filter'] = sprintf('(%s=*)',$attr);
|
||||
$search = $server->query($query,'auto_number');
|
||||
|
||||
if (! count($search))
|
||||
return;
|
||||
|
||||
# Construct a list of used numbers
|
||||
$autonum = array();
|
||||
$autonum = array(0);
|
||||
|
||||
foreach ($search as $dn => $values) {
|
||||
$values = array_change_key_case($values);
|
||||
@@ -1451,10 +1504,10 @@ function get_next_number($base,$attr,$increment=false,$filter=false,$startmin=nu
|
||||
for ($i=0;$i<count($autonum);$i++) {
|
||||
$num = $autonum[$i] < $minNumber ? $minNumber : $autonum[$i];
|
||||
|
||||
/* If we're at the end of the list, or we've found a gap between this number and the
|
||||
following, use the next available number in the gap. */
|
||||
if ($i+1 == count($autonum) || $autonum[$i+1] > $num+1)
|
||||
return $autonum[$i] >= $num ? $num+1 : $num;
|
||||
/* If we're at the end of the list, or we've found a gap between this number and the
|
||||
following, use the next available number in the gap. */
|
||||
if ($i+1 == count($autonum) || $autonum[$i+1] > $num+1)
|
||||
return $autonum[$i] >= $num ? $num+1 : $num;
|
||||
}
|
||||
|
||||
# If we didnt find a suitable gap and are all above the minNumber, we'll just return the $minNumber
|
||||
@@ -1604,6 +1657,9 @@ function get_icon($server_id,$dn,$object_classes=array()) {
|
||||
elseif (in_array('room',$object_classes))
|
||||
return 'door.png';
|
||||
|
||||
elseif (in_array('iphost',$object_classes))
|
||||
return 'host.png';
|
||||
|
||||
elseif (in_array('device',$object_classes))
|
||||
return 'device.png';
|
||||
|
||||
@@ -1641,9 +1697,6 @@ function get_icon($server_id,$dn,$object_classes=array()) {
|
||||
elseif (in_array('groupofuniquenames',$object_classes))
|
||||
return 'ldap-uniquegroup.png';
|
||||
|
||||
elseif (in_array('iphost',$object_classes))
|
||||
return 'host.png';
|
||||
|
||||
elseif (in_array('nlsproductcontainer',$object_classes))
|
||||
return 'n.png';
|
||||
|
||||
@@ -1919,7 +1972,7 @@ function support_oid_to_text($key) {
|
||||
if ($oid_id) {
|
||||
$CACHE[$oid_id]['title'] = isset($entry[4]) ? $entry[4] : null;
|
||||
$CACHE[$oid_id]['ref'] = isset($entry[6]) ? $entry[6] : null;
|
||||
$desc = isset($entry[8]) ? $entry[8] : sprintf('<acryonym title="%s"><small>%s</small></acryonym>',$unknown['desc'],$unknown['title']);
|
||||
$desc = isset($entry[8]) ? $entry[8] : sprintf('<acronym title="%s">%s</acronym>',$unknown['desc'],$unknown['title']);
|
||||
$CACHE[$oid_id]['desc'] = preg_replace('/\s+/',' ',$desc);
|
||||
}
|
||||
}
|
||||
@@ -1931,7 +1984,7 @@ function support_oid_to_text($key) {
|
||||
return array(
|
||||
'title'=>$key,
|
||||
'ref'=>null,
|
||||
'desc'=>sprintf('<acryonym title="%s"><small>%s</small></acryonym>',$unknown['desc'],$unknown['title']));
|
||||
'desc'=>sprintf('<acronym title="%s">%s</acronym>',$unknown['desc'],$unknown['title']));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1941,7 +1994,7 @@ function ldap_error_msg($msg,$errnum) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
$body = '<table border=0>';
|
||||
$body = '<table border="0">';
|
||||
|
||||
$errnum = ('0x'.str_pad(dechex($errnum),2,0,STR_PAD_LEFT));
|
||||
$verbose_error = pla_verbose_error($errnum);
|
||||
@@ -2003,7 +2056,7 @@ function draw_jpeg_photo($server,$dn,$attr_name='jpegphoto',$index,$draw_delete_
|
||||
'type'=>'warn'));
|
||||
|
||||
# This should atleast generate some text that says "Image not available"
|
||||
echo '<img src="view_jpeg_photo.php?location=session" alt="Photo" />';
|
||||
printf('<img src="view_jpeg_photo.php?location=session&attr=%s" alt="Photo" />',$attr_name);
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -2056,7 +2109,7 @@ function draw_jpeg_photo($server,$dn,$attr_name='jpegphoto',$index,$draw_delete_
|
||||
$img_height = $height;
|
||||
}
|
||||
|
||||
$href = sprintf('view_jpeg_photo.php?dn=%s&index=%s',rawurlencode($dn),$index);
|
||||
$href = sprintf('view_jpeg_photo.php?dn=%s&index=%s&attr=%s',rawurlencode($dn),$index,$attr_name);
|
||||
|
||||
printf('<acronym title="%s %s. %s x %s %s.">',number_format($outjpeg),_('bytes'),$width,$height,_('pixels'));
|
||||
|
||||
@@ -2085,15 +2138,19 @@ function password_types() {
|
||||
debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
return array(
|
||||
'blowfish'=>'blowfish',
|
||||
''=>'clear',
|
||||
'blowfish'=>'blowfish',
|
||||
'crypt'=>'crypt',
|
||||
'ext_des'=>'ext_des',
|
||||
'md5'=>'md5',
|
||||
'k5key'=>'k5key',
|
||||
'md5crypt'=>'md5crypt',
|
||||
'sha'=>'sha',
|
||||
'smd5'=>'smd5',
|
||||
'ssha'=>'ssha'
|
||||
'ssha'=>'ssha',
|
||||
'sha512'=>'sha512',
|
||||
'sha256crypt'=>'sha256crypt',
|
||||
'sha512crypt'=>'sha512crypt',
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2102,16 +2159,26 @@ function password_types() {
|
||||
*
|
||||
* @param string The password to hash in clear text.
|
||||
* @param string Standard LDAP encryption type which must be one of
|
||||
* crypt, ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, or clear.
|
||||
* crypt, ext_des, md5crypt, blowfish, md5, sha, smd5, ssha, sha512,
|
||||
* sha256crypt, sha512crypt, or clear.
|
||||
* @return string The hashed password.
|
||||
*/
|
||||
function password_hash($password_clear,$enc_type) {
|
||||
function pla_password_hash($password_clear,$enc_type) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
$enc_type = strtolower($enc_type);
|
||||
|
||||
switch($enc_type) {
|
||||
case 'blowfish':
|
||||
if (! defined('CRYPT_BLOWFISH') || CRYPT_BLOWFISH == 0)
|
||||
error(_('Your system crypt library does not support blowfish encryption.'),'error','index.php');
|
||||
|
||||
# Hardcoded to second blowfish version and set number of rounds
|
||||
$new_value = sprintf('{CRYPT}%s',crypt($password_clear,'$2a$12$'.random_salt(13)));
|
||||
|
||||
break;
|
||||
|
||||
case 'crypt':
|
||||
if ($_SESSION[APPCONFIG]->getValue('password', 'no_random_crypt_salt'))
|
||||
$new_value = sprintf('{CRYPT}%s',crypt($password_clear,substr($password_clear,0,2)));
|
||||
@@ -2129,6 +2196,20 @@ function password_hash($password_clear,$enc_type) {
|
||||
|
||||
break;
|
||||
|
||||
case 'k5key':
|
||||
$new_value = sprintf('{K5KEY}%s',$password_clear);
|
||||
|
||||
system_message(array(
|
||||
'title'=>_('Unable to Encrypt Password'),
|
||||
'body'=>'phpLDAPadmin cannot encrypt K5KEY passwords',
|
||||
'type'=>'warn'));
|
||||
|
||||
break;
|
||||
|
||||
case 'md5':
|
||||
$new_value = sprintf('{MD5}%s',base64_encode(pack('H*',md5($password_clear))));
|
||||
break;
|
||||
|
||||
case 'md5crypt':
|
||||
if (! defined('CRYPT_MD5') || CRYPT_MD5 == 0)
|
||||
error(_('Your system crypt library does not support md5crypt encryption.'),'error','index.php');
|
||||
@@ -2137,19 +2218,6 @@ function password_hash($password_clear,$enc_type) {
|
||||
|
||||
break;
|
||||
|
||||
case 'blowfish':
|
||||
if (! defined('CRYPT_BLOWFISH') || CRYPT_BLOWFISH == 0)
|
||||
error(_('Your system crypt library does not support blowfish encryption.'),'error','index.php');
|
||||
|
||||
# Hardcoded to second blowfish version and set number of rounds
|
||||
$new_value = sprintf('{CRYPT}%s',crypt($password_clear,'$2a$12$'.random_salt(13)));
|
||||
|
||||
break;
|
||||
|
||||
case 'md5':
|
||||
$new_value = sprintf('{MD5}%s',base64_encode(pack('H*',md5($password_clear))));
|
||||
break;
|
||||
|
||||
case 'sha':
|
||||
# Use php 4.3.0+ sha1 function, if it is available.
|
||||
if (function_exists('sha1'))
|
||||
@@ -2177,7 +2245,7 @@ function password_hash($password_clear,$enc_type) {
|
||||
if (function_exists('mhash') && function_exists('mhash_keygen_s2k')) {
|
||||
mt_srand((double)microtime()*1000000);
|
||||
$salt = mhash_keygen_s2k(MHASH_MD5,$password_clear,substr(pack('h*',md5(mt_rand())),0,8),4);
|
||||
$new_value = spritnf('{SMD5}%s',base64_encode(mhash(MHASH_MD5,$password_clear.$salt).$salt));
|
||||
$new_value = sprintf('{SMD5}%s',base64_encode(mhash(MHASH_MD5,$password_clear.$salt).$salt));
|
||||
|
||||
} else {
|
||||
error(_('Your PHP install does not have the mhash() or mhash_keygen_s2k() function. Cannot do S2K hashes.'),'error','index.php');
|
||||
@@ -2185,6 +2253,30 @@ function password_hash($password_clear,$enc_type) {
|
||||
|
||||
break;
|
||||
|
||||
case 'sha512':
|
||||
if (function_exists('openssl_digest') && function_exists('base64_encode')) {
|
||||
$new_value = sprintf('{SHA512}%s', base64_encode(openssl_digest($password_clear, 'sha512', true)));
|
||||
|
||||
} else {
|
||||
error(_('Your PHP install doest not have the openssl_digest() or base64_encode() function. Cannot do SHA512 hashes. '),'error','index.php');
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 'sha256crypt':
|
||||
if (! defined('CRYPT_SHA256') || CRYPT_SHA256 == 0)
|
||||
error(_('Your system crypt library does not support sha256crypt encryption.'),'error','index.php');
|
||||
$new_value = sprintf('{CRYPT}%s',crypt($password_clear,'$5$'.random_salt(8)));
|
||||
|
||||
break;
|
||||
|
||||
case 'sha512crypt':
|
||||
if (! defined('CRYPT_SHA512') || CRYPT_SHA512 == 0)
|
||||
error(_('Your system crypt library does not support sha512crypt encryption.'),'error','index.php');
|
||||
$new_value = sprintf('{CRYPT}%s',crypt($password_clear,'$6$'.random_salt(8)));
|
||||
|
||||
break;
|
||||
|
||||
case 'clear':
|
||||
default:
|
||||
$new_value = $password_clear;
|
||||
@@ -2201,10 +2293,30 @@ function password_hash($password_clear,$enc_type) {
|
||||
* @param String The password in clear text to test.
|
||||
* @return Boolean True if the clear password matches the hash, and false otherwise.
|
||||
*/
|
||||
function password_check($cryptedpassword,$plainpassword) {
|
||||
function password_check($cryptedpassword,$plainpassword,$attribute='userpassword') {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
if (in_array($attribute,array('sambalmpassword','sambantpassword'))) {
|
||||
$smb = new smbHash;
|
||||
|
||||
switch($attribute) {
|
||||
case 'sambalmpassword':
|
||||
if (strcmp($smb->lmhash($plainpassword),strtoupper($cryptedpassword)) == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
||||
case 'sambantpassword':
|
||||
if (strcmp($smb->nthash($plainpassword),strtoupper($cryptedpassword)) == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (preg_match('/{([^}]+)}(.*)/',$cryptedpassword,$matches)) {
|
||||
$cryptedpassword = $matches[2];
|
||||
$cypher = strtolower($matches[1]);
|
||||
@@ -2240,7 +2352,7 @@ function password_check($cryptedpassword,$plainpassword) {
|
||||
# Check php mhash support before using it
|
||||
if (function_exists('mhash')) {
|
||||
$hash = base64_decode($cryptedpassword);
|
||||
$salt = substr($hash,-4);
|
||||
$salt = substr($hash,16);
|
||||
$new_hash = base64_encode(mhash(MHASH_MD5,$plainpassword.$salt).$salt);
|
||||
|
||||
if (strcmp($cryptedpassword,$new_hash) == 0)
|
||||
@@ -2256,7 +2368,7 @@ function password_check($cryptedpassword,$plainpassword) {
|
||||
|
||||
# SHA crypted passwords
|
||||
case 'sha':
|
||||
if (strcasecmp(password_hash($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0)
|
||||
if (strcasecmp(pla_password_hash($plainpassword,'sha'),'{SHA}'.$cryptedpassword) == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
@@ -2265,7 +2377,7 @@ function password_check($cryptedpassword,$plainpassword) {
|
||||
|
||||
# MD5 crypted passwords
|
||||
case 'md5':
|
||||
if( strcasecmp(password_hash($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0)
|
||||
if( strcasecmp(pla_password_hash($plainpassword,'md5'),'{MD5}'.$cryptedpassword) == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
@@ -2296,7 +2408,7 @@ function password_check($cryptedpassword,$plainpassword) {
|
||||
if (! defined('CRYPT_MD5') || CRYPT_MD5 == 0)
|
||||
error(_('Your system crypt library does not support md5crypt encryption.'),'error','index.php');
|
||||
|
||||
list($type,$salt,$hash) = explode('$',$cryptedpassword);
|
||||
list($dummy,$type,$salt,$hash) = explode('$',$cryptedpassword);
|
||||
|
||||
if (crypt($plainpassword,'$1$'.$salt) == $cryptedpassword)
|
||||
return true;
|
||||
@@ -2328,6 +2440,15 @@ function password_check($cryptedpassword,$plainpassword) {
|
||||
|
||||
break;
|
||||
|
||||
# SHA512 crypted passwords
|
||||
case 'sha512':
|
||||
if (strcasecmp(pla_password_hash($plainpassword,'sha512'),'{SHA512}'.$cryptedpassword) == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
|
||||
break;
|
||||
|
||||
# No crypt is given assume plaintext passwords are used
|
||||
default:
|
||||
if ($plainpassword == $cryptedpassword)
|
||||
@@ -2386,15 +2507,11 @@ function get_enc_type($user_password) {
|
||||
* "edit_form.member_uid". See /templates/modification/default.php for example usage.
|
||||
* @param boolean (optional) If true, the function draws the localized text "choose" to the right of the button.
|
||||
*/
|
||||
function draw_chooser_link($form_element,$include_choose_text=true,$rdn='none') {
|
||||
function draw_chooser_link($form,$element,$include_choose_text=true,$rdn='none') {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',1,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
if ($rdn == 'none')
|
||||
$href = sprintf("javascript:dnChooserPopup('%s','');",$form_element);
|
||||
else
|
||||
$href = sprintf("javascript:dnChooserPopup('%s','%s');",$form_element,$rdn);
|
||||
|
||||
$href = sprintf("javascript:dnChooserPopup('%s','%s','%s');",$form,$element,$rdn == 'none' ? '' : rawurlencode($rdn));
|
||||
$title = _('Click to popup a dialog to select an entry (DN) graphically');
|
||||
|
||||
printf('<a href="%s" title="%s"><img class="chooser" src="%s/find.png" alt="Find" /></a>',$href,$title,IMGDIR);
|
||||
@@ -2403,6 +2520,32 @@ function draw_chooser_link($form_element,$include_choose_text=true,$rdn='none')
|
||||
printf('<span class="x-small"><a href="%s" title="%s">%s</a></span>',$href,$title,_('browse'));
|
||||
}
|
||||
|
||||
/**
|
||||
* http://php.net/manual/en/function.ldap-explode-dn.php#34724
|
||||
* fixed for:
|
||||
* Keep attention on UTF8 encoded DNs. Since openLDAP >=2.1.2
|
||||
* ldap_explode_dn turns unprintable chars (in the ASCII sense, UTF8
|
||||
* encoded) into \<hexcode>.
|
||||
*/
|
||||
function ldap_explode_dn_patch($dn,$with_attrib) {
|
||||
$result = ldap_explode_dn($dn,$with_attrib);
|
||||
if (! $result)
|
||||
return null;
|
||||
|
||||
# translate hex code into ascii again
|
||||
foreach ($result as $key => $value) {
|
||||
$result[$key] = preg_replace_callback(
|
||||
"/\\\([0-9A-Fa-f]{2})/",
|
||||
function ($matches) {
|
||||
return chr(hexdec($matches[1]));
|
||||
},
|
||||
$value
|
||||
);
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Explode a DN into an array of its RDN parts.
|
||||
*
|
||||
@@ -2438,8 +2581,8 @@ function pla_explode_dn($dn,$with_attributes=0) {
|
||||
$dn = addcslashes($dn,'<>+";');
|
||||
|
||||
# split the dn
|
||||
$result[0] = ldap_explode_dn(dn_escape($dn),0);
|
||||
$result[1] = ldap_explode_dn(dn_escape($dn),1);
|
||||
$result[0] = ldap_explode_dn_patch(dn_escape($dn),0);
|
||||
$result[1] = ldap_explode_dn_patch(dn_escape($dn),1);
|
||||
if (! $result[$with_attributes]) {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Returning NULL - NO result.',1,0,__FILE__,__LINE__,__METHOD__);
|
||||
@@ -2498,12 +2641,22 @@ function dn_unescape($dn) {
|
||||
$a = array();
|
||||
|
||||
foreach ($dn as $key => $rdn)
|
||||
$a[$key] = preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$rdn);
|
||||
$a[$key] = preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
|
||||
function ($r) {
|
||||
return chr(hexdec($r[1]));
|
||||
},
|
||||
$rdn
|
||||
);
|
||||
|
||||
return $a;
|
||||
|
||||
} else {
|
||||
return preg_replace('/\\\([0-9A-Fa-f]{2})/e',"''.chr(hexdec('\\1')).''",$dn);
|
||||
return preg_replace_callback('/\\\([0-9A-Fa-f]{2})/',
|
||||
function ($r) {
|
||||
return chr(hexdec($r[1]));
|
||||
},
|
||||
$dn
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2516,30 +2669,21 @@ function dn_unescape($dn) {
|
||||
* @return string The URL to the requested item.
|
||||
*/
|
||||
function get_href($type,$extra_info='') {
|
||||
$sf = 'https://sourceforge.net';
|
||||
$pla = 'http://phpldapadmin.sourceforge.net';
|
||||
$group_id = '61828';
|
||||
$bug_atid = '498546';
|
||||
$rfe_atid = '498549';
|
||||
$forum_id = 'phpldapadmin-users';
|
||||
|
||||
switch($type) {
|
||||
case 'add_bug':
|
||||
return sprintf('%s/tracker/?func=add&group_id=%s&atid=%s',$sf,$group_id,$bug_atid);
|
||||
return 'https://github.com/leenooks/phpLDAPadmin/issues';
|
||||
case 'add_rfe':
|
||||
return sprintf('%s/tracker/?func=add&group_id=%s&atid=%s',$sf,$group_id,$rfe_atid);
|
||||
return 'https://github.com/leenooks/phpLDAPadmin/issues';
|
||||
case 'credits':
|
||||
return sprintf('%s/Credits',$pla);
|
||||
case 'documentation':
|
||||
return sprintf('%s/Documentation',$pla);
|
||||
case 'donate':
|
||||
return sprintf('%s/donate/index.php?group_id=%s',$sf,$group_id);
|
||||
return 'https://sourceforge.net/donate/index.php?group_id=61828';
|
||||
case 'forum':
|
||||
return sprintf('%s/mailarchive/forum.php?forum_name=%s',$sf,$forum_id);
|
||||
case 'logo':
|
||||
return isset($_SESSION) && ! $_SESSION[APPCONFIG]->getValue('appearance','remoteurls') ? '' : sprintf('http://sflogo.sourceforge.net/sflogo.php?group_id=%s&type=8',$group_id);
|
||||
case 'sf':
|
||||
return sprintf('%s/projects/phpldapadmin',$sf);
|
||||
return 'https://stackoverflow.com/questions/tagged/phpldapadmin';
|
||||
case 'web':
|
||||
return sprintf('%s',$pla);
|
||||
default:
|
||||
@@ -2730,7 +2874,7 @@ function draw_formatted_dn($server,$entry) {
|
||||
|
||||
$formats = $_SESSION[APPCONFIG]->getValue('appearance','tree_display_format');
|
||||
|
||||
foreach ($formats as $format) {
|
||||
foreach ($formats as $format) {
|
||||
$has_none = false;
|
||||
preg_match_all('/%[a-zA-Z_0-9]+/',$format,$tokens);
|
||||
$tokens = $tokens[0];
|
||||
@@ -2795,7 +2939,7 @@ function server_select_list($selected=null,$logged_on=false,$name='index',$isVis
|
||||
|
||||
$count++;
|
||||
$server_menu_html .= sprintf('<option value="%s" %s>%s</option>',
|
||||
$server->getIndex(),($server->getIndex() == $selected ? 'selected' : ''),$server->getName());
|
||||
$server->getIndex(),($server->getIndex() == $selected ? 'selected="selected"' : ''),$server->getName());
|
||||
|
||||
# We will set this variable, in case there is only 1 hit.
|
||||
$selected_server = $server;
|
||||
@@ -2860,7 +3004,6 @@ function binSIDtoText($binsid) {
|
||||
* or true to have the returned array sorted by DN (uses ksort)
|
||||
* or an array of attribute names to sort by attribute values
|
||||
* @return array Array of values keyed by $key.
|
||||
* @todo sort is not being performed
|
||||
*/
|
||||
function return_ldap_hash($base,$filter,$key,$attrs,$sort=true) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
@@ -2882,11 +3025,12 @@ function return_ldap_hash($base,$filter,$key,$attrs,$sort=true) {
|
||||
if (is_array($values[$key]))
|
||||
foreach ($values[$key] as $i => $k)
|
||||
foreach ($attrs as $attr) {
|
||||
if (isset($values[$attr])) {
|
||||
$lattr = strtolower($attr);
|
||||
if (isset($values[$lattr])) {
|
||||
$v = '';
|
||||
|
||||
if (is_array($values[$attr]) && isset($values[$attr][$i]))
|
||||
$v = $values[$attr][$i];
|
||||
if (is_array($values[$lattr]) && isset($values[$lattr][$i]))
|
||||
$v = $values[$lattr][$i];
|
||||
|
||||
if (is_string($v) && (strlen($v) > 0))
|
||||
$results[$k][$attr] = $v;
|
||||
@@ -2894,9 +3038,14 @@ function return_ldap_hash($base,$filter,$key,$attrs,$sort=true) {
|
||||
}
|
||||
|
||||
else
|
||||
foreach ($attrs as $attr)
|
||||
if (isset($values[$attr]))
|
||||
$results[$values[$key]][$attr] = $values[$attr];
|
||||
foreach ($attrs as $attr) {
|
||||
$lattr = strtolower($attr);
|
||||
if (isset($values[$lattr]))
|
||||
$results[$values[$key]][$attr] = $values[$lattr];
|
||||
}
|
||||
|
||||
if ($sort)
|
||||
masort($results,is_array($sort) ? implode(',',$sort) : 'dn');
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
@@ -117,7 +117,7 @@ function run_hook($hook_name,$args) {
|
||||
* @param rollback_function Name of the php rollback function called upon failure.
|
||||
*/
|
||||
function add_hook($hook_name,$hook_function,$priority=0,$rollback_function=null) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',257,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
# First, see if the hook function exists.
|
||||
@@ -153,7 +153,7 @@ function add_hook($hook_name,$hook_function,$priority=0,$rollback_function=null)
|
||||
* procedures that call this function as a rollback will be removed.
|
||||
*/
|
||||
function remove_hook($hook_name,$hook_function,$priority,$rollback_function) {
|
||||
if (DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',257,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
if (array_key_exists($hook_name,$_SESSION[APPCONFIG]->hooks)) {
|
||||
|
@@ -215,7 +215,7 @@ class ImportLDIF extends Import {
|
||||
return $this->error(sprintf('%s %s',_('DN does not exist'),$dn),$lines);
|
||||
|
||||
$this->template->setDN($dn);
|
||||
$this->template->accept();
|
||||
$this->template->accept(false,true);
|
||||
|
||||
return $this->getModifyDetails($lines);
|
||||
|
||||
@@ -295,7 +295,7 @@ class ImportLDIF extends Import {
|
||||
return $current;
|
||||
|
||||
} else
|
||||
return false;
|
||||
return array();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -511,7 +511,7 @@ class ImportLDIF extends Import {
|
||||
case 'delete':
|
||||
$deleteattr = false;
|
||||
|
||||
if ($key = array_search($attribute_value_part,$attribute->getValues()))
|
||||
if (($key = array_search($attribute_value_part,$attribute->getValues())) !== false)
|
||||
$attribute->delValue($key);
|
||||
else
|
||||
return $this->error(sprintf('%s %s',_('Delete value doesnt exist in DN'),$attribute_value_part),
|
||||
@@ -589,7 +589,7 @@ class ImportLDIF extends Import {
|
||||
$attrs['newsuperior'] = $attrvalue[1];
|
||||
|
||||
} else
|
||||
return $this->error(_('A valid newsuperier attribute should be specified'),$lines);
|
||||
return $this->error(_('A valid newsuperior attribute should be specified'),$lines);
|
||||
|
||||
} else
|
||||
$attrs['newsuperior'] = $server->getContainer($this->template->getDN());
|
||||
|
59
lib/page.php
59
lib/page.php
@@ -79,12 +79,8 @@ class page {
|
||||
ob_start();
|
||||
|
||||
# Initial Values
|
||||
$this->_pageheader[] .= '<?xml version="1.0" encoding="utf-8"?>'."\n";
|
||||
$this->_pageheader[] .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"'."\n";
|
||||
$this->_pageheader[] .= '"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">'."\n";
|
||||
$this->_pageheader[] .= "\n";
|
||||
$this->_pageheader[] .= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="auto" lang="auto" dir="ltr">'."\n";
|
||||
$this->_pageheader[] .= "\n";
|
||||
$this->_pageheader[] = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
|
||||
$this->_pageheader[] .= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="auto">'."\n";
|
||||
}
|
||||
|
||||
/* Add to the HTML Header */
|
||||
@@ -106,10 +102,18 @@ class page {
|
||||
|
||||
# Page Title
|
||||
echo '<head>';
|
||||
printf('<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />');
|
||||
|
||||
$DNs = get_request('dn','REQUEST');
|
||||
if (is_array($DNs))
|
||||
$DNs = '';
|
||||
|
||||
if (isset($_SESSION[APPCONFIG]))
|
||||
printf('<title>%s (%s) - %s</title>',
|
||||
$this->_app['title'],app_version(),$_SESSION[APPCONFIG]->getValue('appearance','page_title'));
|
||||
printf('<title>%s (%s) - %s%s</title>',
|
||||
$this->_app['title'],
|
||||
app_version(),
|
||||
$DNs ? htmlspecialchars($DNs).' ' : '',
|
||||
$_SESSION[APPCONFIG]->getValue('appearance','page_title'));
|
||||
else
|
||||
printf('<title>%s - %s</title>',$this->_app['title'],app_version());
|
||||
|
||||
@@ -120,8 +124,8 @@ class page {
|
||||
if (defined('JSDIR')) {
|
||||
printf('<link type="text/css" rel="stylesheet" media="all" href="%sjscalendar/calendar-blue.css" title="blue" />',JSDIR);
|
||||
echo "\n";
|
||||
printf('<script type="text/javascript" language="javascript" src="%sajax_functions.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" language="javascript" src="%sjscalendar/calendar.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sajax_functions.js"></script>',JSDIR);
|
||||
printf('<script type="text/javascript" src="%sjscalendar/calendar.js"></script>',JSDIR);
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
@@ -145,8 +149,8 @@ class page {
|
||||
|
||||
echo '<tr class="pagehead">';
|
||||
|
||||
echo '<td colspan=3><div id="ajHEAD"><table width=100% border=0><tr>';
|
||||
printf('<td align="left"><a href="%s" target="_blank"><img src="%s" alt="Logo" class="logo" /></a></td>',get_href('sf'),$this->_app['logo']);
|
||||
echo '<td colspan="3"><div id="ajHEAD"><table width="100%" border="0"><tr>';
|
||||
printf('<td style="text-align: left;"><a href="%s" onclick="target=\'_blank\';"><img src="%s" alt="Logo" class="logo" /></a></td>',get_href('sf'),$this->_app['logo']);
|
||||
|
||||
echo '<td class="imagetop">';
|
||||
$empty = true;
|
||||
@@ -174,7 +178,7 @@ class page {
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
echo '<table class="control" width=100% border=0>';
|
||||
echo '<table class="control" width="100%" border="0">';
|
||||
echo '<tr><td>';
|
||||
|
||||
$empty = true;
|
||||
@@ -209,7 +213,7 @@ class page {
|
||||
$this->index = min(array_keys($_SESSION[APPCONFIG]->getServerList()));
|
||||
|
||||
if (count($_SESSION[APPCONFIG]->getServerList()) > 1) {
|
||||
echo '<form name="server_select" action="cmd.php" method="post">';
|
||||
echo '<form id="server_select" action="cmd.php" method="post">';
|
||||
echo '<table class="server_select"><tr><td>';
|
||||
printf('%s:<br />%s',_('Server Select'),
|
||||
server_select_list($this->index,false,'index',true,sprintf("onchange=\"tree_unhide('index',%s)\"",$this->index)));
|
||||
@@ -244,7 +248,7 @@ class page {
|
||||
if (! isset($this->_block[$side]))
|
||||
return;
|
||||
|
||||
printf('<td class="%s" colspan=2>',$side);
|
||||
printf('<td class="%s" colspan="2">',$side);
|
||||
foreach ($this->_block[$side] as $object)
|
||||
echo $object->draw($side);
|
||||
echo '</td>';
|
||||
@@ -272,7 +276,7 @@ class page {
|
||||
}
|
||||
|
||||
if (isset($details['title']))
|
||||
printf('<tr><td class="icon" rowspan=2 align="right"><img src="%s" alt="%s" /></td><td class="head" align="right">%s</td></tr>',
|
||||
printf('<tr><td class="icon" rowspan="2"><img src="%s" alt="%s" /></td><td class="head">%s</td></tr>',
|
||||
$icon,$details['type'],$details['title']);
|
||||
|
||||
if (isset($details['body']))
|
||||
@@ -316,10 +320,10 @@ class page {
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED && (($fargs=func_get_args())||$fargs='NOARGS'))
|
||||
debug_log('Entered (%%)',129,0,__FILE__,__LINE__,__METHOD__,$fargs);
|
||||
|
||||
printf('<tr class="foot"><td><small>%s</small></td><td colspan=2><div id="ajFOOT">%s</div>%s</td></tr>',
|
||||
printf('<tr class="foot"><td><small>%s</small></td><td colspan="2"><div id="ajFOOT">%s</div>%s</td></tr>',
|
||||
isCompress() ? '[C]' : ' ',
|
||||
app_version(),
|
||||
get_href('logo') ? sprintf('<a href="%s"><img src="%s" border="0" alt="SourceForge.net Logo" /></a>',get_href('sf'),get_href('logo')) : ' ');
|
||||
' ');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -371,6 +375,15 @@ class page {
|
||||
'TREE'=>true,
|
||||
'FOOT'=>true
|
||||
);
|
||||
|
||||
if ($_SESSION[APPCONFIG]->getValue('appearance','minimalMode')) {
|
||||
$display = array(
|
||||
'HEAD'=>false,
|
||||
'CONTROL'=>false,
|
||||
'TREE'=>true,
|
||||
'FOOT'=>false
|
||||
);
|
||||
}
|
||||
|
||||
$display = array_merge($display,$filter);
|
||||
|
||||
@@ -381,14 +394,14 @@ class page {
|
||||
# Page Header
|
||||
echo '<body>';
|
||||
echo "\n";
|
||||
echo '<table class="page" border=0 width=100%>';
|
||||
echo '<table class="page" border="0" width="100%">';
|
||||
|
||||
if ($display['HEAD'])
|
||||
$this->head_print();
|
||||
|
||||
# Control Line
|
||||
if ($display['CONTROL']) {
|
||||
echo '<tr class="control"><td colspan=3>';
|
||||
echo '<tr class="control"><td colspan="3">';
|
||||
echo '<div id="ajCONTROL">';
|
||||
$this->control_print();
|
||||
echo '</div></td></tr>';
|
||||
@@ -399,15 +412,15 @@ class page {
|
||||
echo '<tr>';
|
||||
|
||||
if ($display['TREE']) {
|
||||
echo '<td class="tree" colspan=2>';
|
||||
printf('<acronym title="%s"><img src="%s/plus.png" align="right" onClick="if (document.getElementById(\'ajTREE\').style.display == \'none\') { document.getElementById(\'ajTREE\').style.display = \'block\' } else { document.getElementById(\'ajTREE\').style.display = \'none\' };"/></acronym>',_('Hide/Unhide the tree'),IMGDIR);
|
||||
echo '<td class="tree" colspan="2">';
|
||||
printf('<acronym title="%s"><img src="%s/plus.png" alt="" style="float: right;" onclick="if (document.getElementById(\'ajTREE\').style.display == \'none\') { document.getElementById(\'ajTREE\').style.display = \'block\' } else { document.getElementById(\'ajTREE\').style.display = \'none\' };"/></acronym>',_('Hide/Unhide the tree'),IMGDIR);
|
||||
echo '<div id="ajTREE">';
|
||||
$this->tree();
|
||||
echo '</div>';
|
||||
echo '</td>';
|
||||
}
|
||||
|
||||
echo '<td class="body" width=80%>';
|
||||
echo '<td class="body" style="width: 80%;">';
|
||||
echo '<div id="ajBODY">';
|
||||
echo "\n";
|
||||
$this->body();
|
||||
|
@@ -57,7 +57,7 @@ abstract class xmlTemplates {
|
||||
'type'=>'info','special'=>true));
|
||||
|
||||
$changed = true;
|
||||
eval(sprintf('$this->templates[$index] = new %s($this->server_id,$template->getName(false),$template->getFileName(),$template->getType(),$index);',$class['name']));
|
||||
$this->templates[$index] = new $class['name']($this->server_id,$template->getName(false),$template->getFileName(),$template->getType(),$index);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ abstract class xmlTemplates {
|
||||
if (! in_array($filename,$this->getTemplateFiles())) {
|
||||
$templatename = preg_replace('/.xml$/','',$file);
|
||||
|
||||
eval(sprintf('$this->templates[$index] = new %s($this->server_id,$templatename,$filename,$type,$index);',$class['name']));
|
||||
$this->templates[$index] = new $class['name']($this->server_id,$templatename,$filename,$type,$index);
|
||||
$index++;
|
||||
|
||||
$changed = true;
|
||||
@@ -129,7 +129,7 @@ abstract class xmlTemplates {
|
||||
|
||||
# Store the template
|
||||
$templatename = preg_replace('/.xml$/','',$file);
|
||||
eval(sprintf('$this->templates[$counter] = new %s($this->server_id,$templatename,$filename,$type,$counter);',$class['name']));
|
||||
$this->templates[$counter] = new $class['name']($this->server_id,$templatename,$filename,$type,$counter);
|
||||
$counter++;
|
||||
}
|
||||
}
|
||||
@@ -198,9 +198,13 @@ abstract class xmlTemplates {
|
||||
|
||||
# Clone this, as we'll disable some templates, as a result of the container being requested.
|
||||
$template = clone $details;
|
||||
if (! is_null($container) && ($regexp = $template->getRegExp()) && (! @preg_match('/'.$regexp.'/i',$container)))
|
||||
if (! is_null($container) && ($regexp = $template->getRegExp()) && (! @preg_match('/'.$regexp.'/i',$container))) {
|
||||
$template->setInvalid(_('This template is not valid in this container'),true);
|
||||
|
||||
if ($_SESSION[APPCONFIG]->getValue('appearance','hide_template_regexp'))
|
||||
$template->setInvisible();
|
||||
}
|
||||
|
||||
if ($template->isVisible() && (! $disabled || ! $template->isAdminDisabled()))
|
||||
if (is_null($type) || (! is_null($type) && $template->isType($type)))
|
||||
array_push($result,$template);
|
||||
@@ -226,7 +230,7 @@ abstract class xmlTemplates {
|
||||
return clone $template;
|
||||
|
||||
# If we get here, the template ID didnt exist, so return a blank template, which be interpreted as the default template
|
||||
eval(sprintf('$object = new %s($this->server_id,null,null,"default");',$class['name']));
|
||||
$object = new $class['name']($this->server_id,null,null,'default');
|
||||
return $object;
|
||||
}
|
||||
|
||||
@@ -433,6 +437,12 @@ abstract class xmlTemplate {
|
||||
# Initialise the Attribute Factory.
|
||||
$attribute_factory = new AttributeFactory();
|
||||
|
||||
if (preg_match('/;/',$name))
|
||||
system_message(array(
|
||||
'title'=>'phpLDAPadmin doesnt support RFC3866.',
|
||||
'body'=>sprintf('%s {%s} (%s)','PLA might not do what you expect...',$name,(is_array($value) ? serialize($value) : $value)),
|
||||
'type'=>'warn'));
|
||||
|
||||
# If there isnt a schema item for this attribute
|
||||
$attribute = $attribute_factory->newAttribute($name,$value,$server->getIndex(),$source);
|
||||
|
||||
@@ -440,11 +450,6 @@ abstract class xmlTemplate {
|
||||
|
||||
if (is_null($attrid))
|
||||
array_push($this->attributes,$attribute);
|
||||
else
|
||||
debug_dump_backtrace(sprintf('There was a request to add an attribute (%s), but it was already defined? (%s)',$attrid,__METHOD__),true);
|
||||
|
||||
if ($this->getID() == 'none')
|
||||
usort($this->attributes,'sortAttrs');
|
||||
|
||||
return $attribute;
|
||||
}
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
locale/gn_PY/LC_MESSAGES/messages.mo
Normal file
BIN
locale/gn_PY/LC_MESSAGES/messages.mo
Normal file
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
locale/nb_NO/LC_MESSAGES/messages.mo
Normal file
BIN
locale/nb_NO/LC_MESSAGES/messages.mo
Normal file
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
locale/oc_FR/LC_MESSAGES/messages.mo
Normal file
BIN
locale/oc_FR/LC_MESSAGES/messages.mo
Normal file
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user