RELEASE 1.1.0.6
4
INSTALL
@ -1,5 +1,5 @@
|
||||
For install instructions in non-English languages, see the wiki:
|
||||
http://phpldapadmin.wiki.sourceforge.net
|
||||
http://phpldapadmin.sourceforge.net
|
||||
|
||||
* Requirements
|
||||
|
||||
@ -17,7 +17,7 @@ For install instructions in non-English languages, see the wiki:
|
||||
* For additional help
|
||||
|
||||
See the wiki:
|
||||
http://phpldapadmin.wiki.sourceforge.net
|
||||
http://phpldapadmin.sourceforge.net
|
||||
|
||||
Join our mailing list:
|
||||
https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel
|
||||
|
@ -134,11 +134,17 @@ $config->custom->commands['all'] = array(
|
||||
An AttributeFactory defines which class to use to represent a given attribute */
|
||||
// $config->custom->appearance['attribute_factory'] = "AttributeFactory";
|
||||
|
||||
/* Just show your custom templates. */
|
||||
// $config->custom->appearance['custom_templates_only'] = false;
|
||||
|
||||
/* Disable the default template. */
|
||||
// $config->custom->appearance['disable_default_template'] = false;
|
||||
|
||||
/* Configure what objects are shown in left hand tree */
|
||||
// $config->custom->appearance['tree_filter'] = '(objectclass=*)';
|
||||
|
||||
/* The height and width of the tree. If these values are not set, then
|
||||
no tree scroll bars are provided.
|
||||
no tree scroll bars are provided. */
|
||||
// $config->custom->appearance['tree_height'] = null;
|
||||
# $config->custom->appearance['tree_height'] = 600;
|
||||
// $config->custom->appearance['tree_width'] = null;
|
||||
@ -270,7 +276,8 @@ $ldapservers->SetValue($i,'server','name','My LDAP Server');
|
||||
authentication with dn.
|
||||
This is useful, when users should be able to log in with their uid, but
|
||||
the ldap administrator wants to log in with his root-dn, that does not
|
||||
necessarily have the uid attribute. */
|
||||
necessarily have the uid attribute.
|
||||
When using this feature, login_class is ignored. */
|
||||
// $ldapservers->SetValue($i,'login','fallback_dn',false);
|
||||
|
||||
/* If you specified 'cookie' or 'session' as the auth_type above, and you
|
||||
@ -314,7 +321,7 @@ $ldapservers->SetValue($i,'server','name','My LDAP Server');
|
||||
// $ldapservers->SetValue($i,'auto_number','min','1000');
|
||||
|
||||
/* The DN of the uidPool entry when 'uidpool' mechanism is used above. */
|
||||
# $servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
|
||||
// $ldapservers->SetValue($i,'auto_number','uidpool_dn','cn=uidPool,dc=example,dc=com');
|
||||
|
||||
/* If you set this, then phpldapadmin will bind to LDAP with this user ID when
|
||||
searching for the uidnumber. The idea is, this user id would have full
|
||||
@ -364,6 +371,25 @@ $ldapservers->SetValue($i,'server','name','My LDAP Server');
|
||||
has children. Certain servers are known to allow it, certain are not */
|
||||
// $ldapservers->SetValue($i,'server','branch_rename',false);
|
||||
|
||||
/* If you set this, then phpldapadmin will show these attributes as
|
||||
internal attributes, even if they are not defined in your schema. */
|
||||
// $ldapservers->SetValue($i,'server','custom_sys_attrs',array(''));
|
||||
# $ldapservers->SetValue($i,'server','custom_sys_attrs',array('passwordExpirationTime','passwordAllowChangeTime'));
|
||||
|
||||
/* If you set this, then phpldapadmin will show these attributes on
|
||||
objects, even if they are not defined in your schema. */
|
||||
// $ldapservers->SetValue($i,'server','custom_attrs',array(''));
|
||||
# $ldapservers->SetValue($i,'server','custom_attrs',array('nsRoleDN','nsRole','nsAccountLock'));
|
||||
|
||||
/* These attributes will be forced to MAY attributes and become option in the
|
||||
templates. If they are not defined in the templates, then they wont appear
|
||||
as per normal template processing. You may want to do this becuase your LDAP
|
||||
server may automatically calculate a default value.
|
||||
In Fedora Directory Server using the DNA Plugin one could ignore uidNumber,
|
||||
gidNumber and sambaSID. */
|
||||
// $ldapservers->SetValue($i,'force_may','attrs',array(''));
|
||||
# $ldapservers->SetValue($i,'force_may','attrs',array('uidNumber','gidNumber','sambaSID'));
|
||||
|
||||
/**************************************************************************
|
||||
* If you want to configure additional LDAP servers, do so below. *
|
||||
* Remove the commented lines and use this section as a template for all *
|
||||
@ -494,7 +520,7 @@ $friendly_attrs['uid'] = 'User Name';
|
||||
/*********************************************/
|
||||
|
||||
/* Add "modify group members" link to the attribute. */
|
||||
// $config->custom->modify_member['groupattr'] = array('member','uniqueMember','memberUid')
|
||||
// $config->custom->modify_member['groupattr'] = array('member','uniqueMember','memberUid');
|
||||
|
||||
/* Configure filter for member search. This only applies to "modify group members" feature */
|
||||
// $config->custom->modify_member['filter'] = '(objectclass=Person)';
|
||||
|
11
doc/uidpool.schema
Executable file
@ -0,0 +1,11 @@
|
||||
##
|
||||
## Used for storing the next gid and next uid in the the directory
|
||||
##
|
||||
objectclass ( 1.3.6.1.4.1.7165.1.2.2.3 NAME 'uidPool' SUP top AUXILIARY
|
||||
DESC 'Pool for allocating UNIX uids'
|
||||
MUST ( uidNumber $ cn ) )
|
||||
|
||||
|
||||
objectclass ( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' SUP top AUXILIARY
|
||||
DESC 'Pool for allocating UNIX gids'
|
||||
MUST ( gidNumber $ cn ) )
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_attr.php,v 1.20.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_attr.php,v 1.20.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Adds an attribute/value pair to an object
|
||||
@ -19,11 +19,12 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('add attribute')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('add attribute')),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['val'] = get_request('val','POST');
|
||||
$entry['binary'] = get_request('binary','POST');
|
||||
|
||||
@ -34,7 +35,7 @@ $entry['attr']['string'] = get_request('attr','POST');
|
||||
$entry['attr']['encode'] = rawurlencode($entry['attr']['string']);
|
||||
|
||||
if ((strlen($entry['binary']) <= 0) && (strlen($entry['val']) <= 0))
|
||||
pla_error(_('You left the attribute value blank. Please go back and try again.'));
|
||||
error(_('You left the attribute value blank. Please go back and try again.'),'error','index.php');
|
||||
|
||||
/*
|
||||
* Special case for binary attributes (like jpegPhoto and userCertificate):
|
||||
@ -48,44 +49,44 @@ if ($badattr = $ldapserver->checkUniqueAttr($entry['dn']['string'],$entry['attr'
|
||||
$href = htmlspecialchars(sprintf('cmd.php?cmd=search&search=true&form=advanced&server_id=%s&filter=%s=%s',
|
||||
$ldapserver->server_id,$entry['attr']['string'],$badattr));
|
||||
|
||||
pla_error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$entry['attr']['string'],$badattr,$entry['dn']['string'],$href));
|
||||
error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$entry['attr']['string'],$badattr,$entry['dn']['string'],$href),'error','index.php');
|
||||
}
|
||||
|
||||
if (strlen($entry['binary']) > 0) {
|
||||
if ($_FILES['val']['size'] == 0)
|
||||
pla_error(_('The file you chose is either empty or does not exist. Please go back and try again.'));
|
||||
error(_('The file you chose is either empty or does not exist. Please go back and try again.'),'error','index.php');
|
||||
|
||||
if (! is_uploaded_file($_FILES['val']['tmp_name'])) {
|
||||
if (isset($_FILES['val']['error']))
|
||||
|
||||
switch($_FILES['val']['error']) {
|
||||
case 0: # No error; possible file attack!
|
||||
pla_error(_('Security error: The file being uploaded may be malicious.'));
|
||||
error(_('Security error: The file being uploaded may be malicious.'),'error','index.php');
|
||||
break;
|
||||
|
||||
case 1: # Uploaded file exceeds the upload_max_filesize directive in php.ini
|
||||
pla_error(_('The file you uploaded is too large. Please check php.ini, upload_max_size setting'));
|
||||
error(_('The file you uploaded is too large. Please check php.ini, upload_max_size setting'),'error','index.php');
|
||||
break;
|
||||
|
||||
case 2: # Uploaded file exceeds the MAX_FILE_SIZE directive specified in the html form
|
||||
pla_error(_('The file you uploaded is too large. Please check php.ini, upload_max_size setting'));
|
||||
error(_('The file you uploaded is too large. Please check php.ini, upload_max_size setting'),'error','index.php');
|
||||
break;
|
||||
|
||||
case 3: # Uploaded file was only partially uploaded
|
||||
pla_error(_('The file you selected was only partially uploaded, likley due to a network error.'));
|
||||
error(_('The file you selected was only partially uploaded, likley due to a network error.'),'error','index.php');
|
||||
break;
|
||||
|
||||
case 4: # No file was uploaded
|
||||
pla_error(_('You left the attribute value blank. Please go back and try again.'));
|
||||
error(_('You left the attribute value blank. Please go back and try again.'),'error','index.php');
|
||||
break;
|
||||
|
||||
default: # A default error, just in case! :)
|
||||
pla_error(_('Security error: The file being uploaded may be malicious.'));
|
||||
error(_('Security error: The file being uploaded may be malicious.'),'error','index.php');
|
||||
break;
|
||||
}
|
||||
|
||||
else
|
||||
pla_error(_('Security error: The file being uploaded may be malicious.'));
|
||||
error(_('Security error: The file being uploaded may be malicious.'),'error','index.php');
|
||||
}
|
||||
|
||||
$binaryfile['name'] = $_FILES['val']['tmp_name'];
|
||||
@ -125,7 +126,10 @@ if ($result) {
|
||||
die();
|
||||
|
||||
} else {
|
||||
pla_error(_('Failed to add the attribute.'),$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Failed to add the attribute.'),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_attr_form.php,v 1.16.2.2 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_attr_form.php,v 1.16.2.4 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Displays a form for adding an attribute/value to an LDAP entry.
|
||||
@ -15,8 +15,9 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['dn']['string'] = get_request('dn','GET');
|
||||
$entry['rdn'] = get_rdn($entry['dn']['string']);
|
||||
|
||||
@ -24,6 +25,7 @@ printf('<h3 class="title">%s <b>%s</b></h3>',_('Add new attribute'),htmlspecialc
|
||||
printf('<h3 class="subtitle">%s: <b>%s</b> %s: <b>%s</b></h3>',
|
||||
_('Server'),$ldapserver->name,_('Distinguished Name'),htmlspecialchars($entry['dn']['string']));
|
||||
|
||||
$dn = array();
|
||||
$dn['attrs'] = $ldapserver->getDNAttrs($entry['dn']['string']);
|
||||
$dn['oclasses'] = $ldapserver->getDNAttr($entry['dn']['string'],'objectClass');
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_oclass.php,v 1.19 2007/12/15 07:50:30 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_oclass.php,v 1.19.2.1 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Adds an objectClass to the specified dn.
|
||||
@ -20,11 +20,12 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if ($ldapserver->isAttrReadOnly('objectClass'))
|
||||
pla_error(_('ObjectClasses are flagged as read only in the phpLDAPadmin configuration.'));
|
||||
error(_('ObjectClasses are flagged as read only in the phpLDAPadmin configuration.'),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['dn']['encode'] = get_request('dn');
|
||||
$entry['dn']['string'] = urldecode($entry['dn']['encode']);
|
||||
|
||||
@ -42,7 +43,7 @@ if (is_array($entry['new']['attrs']) && count($entry['new']['attrs']) > 0)
|
||||
$href['search'] = htmlspecialchars(sprintf('cmd.php?cmd=search&search=true&form=advanced&server_id=%s&filter=%s=%s',
|
||||
$ldapserver->server_id,$attr,$badattr));
|
||||
|
||||
pla_error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$attr,$badattr,$entry['dn']['string'],$href['search']));
|
||||
error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$attr,$badattr,$entry['dn']['string'],$href['search']),'error','index.php');
|
||||
}
|
||||
|
||||
$new_entry[$attr] = $val;
|
||||
@ -51,7 +52,10 @@ if (is_array($entry['new']['attrs']) && count($entry['new']['attrs']) > 0)
|
||||
$result = $ldapserver->attrModify($entry['dn']['string'],$new_entry);
|
||||
|
||||
if (! $result)
|
||||
pla_error(_('Could not perform ldap_mod_add operation.'),$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not perform ldap_mod_add operation.'),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
|
||||
else {
|
||||
$modified_attrs = array_keys($entry['new']['attrs']);
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_oclass_form.php,v 1.25.2.1 2008/01/13 05:37:00 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_oclass_form.php,v 1.25.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* This page may simply add the objectClass and take you back to the edit page,
|
||||
@ -20,14 +20,15 @@
|
||||
*/
|
||||
require './common.php';
|
||||
|
||||
$entry = array();
|
||||
$entry['oclass']['new'] = get_request('new_oclass','REQUEST');
|
||||
$entry['dn']['string'] = get_request('dn','REQUEST');
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if (! $entry['oclass']['new'])
|
||||
pla_error(_('You did not select any ObjectClasses for this object. Please go back and do so.'));
|
||||
error(_('You did not select any ObjectClasses for this object. Please go back and do so.'),'error','index.php');
|
||||
|
||||
/* Ensure that the object has defined all MUST attrs for this objectClass.
|
||||
* If it hasn't, present a form to have the user enter values for all the
|
||||
@ -108,7 +109,10 @@ if (count($ldap['attrs']['need']) > 0) {
|
||||
$result = $ldapserver->attrModify($entry['dn']['string'],array('objectClass'=>$entry['oclass']['new']));
|
||||
|
||||
if (! $result)
|
||||
pla_error('Could not perform ldap_mod_add operation.',$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not perform ldap_mod_add operation.'),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
|
||||
else {
|
||||
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s&modified_attrs[]=objectClass',
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value.php,v 1.21.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value.php,v 1.21.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Adds a value to an attribute for a given dn.
|
||||
@ -18,12 +18,13 @@
|
||||
*/
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('add attribute value')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('add attribute value')),'error','index.php');
|
||||
|
||||
# The DN and ATTR we are working with.
|
||||
$entry = array();
|
||||
$entry['dn']['encode'] = get_request('dn','POST',true);
|
||||
$entry['dn']['string'] = rawurldecode($entry['dn']['encode']);
|
||||
$entry['attr']['encode'] = get_request('attr','POST',true);
|
||||
@ -34,7 +35,7 @@ $entry['value']['string'] = get_request('new_value','POST',true);
|
||||
$entry['value']['bin'] = get_request('binary','POST') ? true : false;
|
||||
|
||||
if ($ldapserver->isAttrReadOnly($entry['attr']['string']))
|
||||
pla_error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),$entry['attr']['html']));
|
||||
error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),$entry['attr']['html']),'error','index.php');
|
||||
|
||||
/*
|
||||
* Special case for binary attributes:
|
||||
@ -56,7 +57,7 @@ if ($badattr = $ldapserver->checkUniqueAttr($entry['dn']['string'],$entry['attr'
|
||||
$href = htmlspecialchars(sprintf('cmd.php?cmd=search&search=true&form=advanced&server_id=%s&filter=%s=%s',
|
||||
$ldapserver->server_id,$entry['attr']['string'],$badattr));
|
||||
|
||||
pla_error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$entry['attr']['string'],$badattr,$entry['dn']['string'],$href));
|
||||
error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$entry['attr']['string'],$badattr,$entry['dn']['string'],$href),'error','index.php');
|
||||
}
|
||||
|
||||
# Call the custom callback for each attribute modification and verify that it should be modified.
|
||||
@ -69,8 +70,11 @@ if (run_hook('pre_attr_add',
|
||||
$add_result = $ldapserver->attrModify($entry['dn']['string'],$new_entry);
|
||||
|
||||
if (! $add_result) {
|
||||
pla_error(_('Could not perform ldap_mod_add operation.'),
|
||||
$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not perform ldap_mod_add operation.'),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
|
||||
} else {
|
||||
run_hook('post_attr_modify',
|
||||
array('server_id'=>$ldapserver->server_id,'dn'=>$entry['dn']['string'],'attr_name'=>$entry['attr']['string'],'new_value'=>$new_entry));
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value_form.php,v 1.39.2.3 2008/01/13 05:43:13 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value_form.php,v 1.39.2.6 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Displays a form to allow the user to enter a new value to add
|
||||
@ -13,9 +13,10 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
# The DN and ATTR we are working with.
|
||||
$entry = array();
|
||||
$entry['dn']['encode'] = get_request('dn','GET',true);
|
||||
$entry['dn']['string'] = urldecode($entry['dn']['encode']);
|
||||
$entry['dn']['html'] = htmlspecialchars($entry['dn']['string']);
|
||||
@ -34,7 +35,7 @@ $entry['rdn']['html'] = htmlspecialchars($entry['rdn']['string']);
|
||||
/***************/
|
||||
|
||||
if (! $entry['dn']['string'] || ! $ldapserver->dnExists($entry['dn']['string']))
|
||||
pla_error(sprintf(_('The entry (%s) does not exist.'),$entry['dn']['html']),null,-1,true);
|
||||
error(sprintf(_('The entry (%s) does not exist.'),$entry['dn']['html']),'error','index.php');
|
||||
|
||||
$tree = get_cached_item($ldapserver->server_id,'tree');
|
||||
$entry['ldap'] = null;
|
||||
@ -52,7 +53,7 @@ eval('$reader = new '.$_SESSION[APPCONFIG]->GetValue('appearance','entry_reader'
|
||||
$reader->visit('Start', $entry['ldap']);
|
||||
|
||||
if (! $entry['ldap'] || $entry['ldap']->isReadOnly())
|
||||
pla_error(sprintf(_('The entry (%s) is in readonly mode.'),$entry['dn']['html']),null,-1,true);
|
||||
error(sprintf(_('The entry (%s) is in readonly mode.'),$entry['dn']['html']),'error','index.php');
|
||||
|
||||
/*********************/
|
||||
/* attribute values */
|
||||
@ -71,11 +72,13 @@ if (!$ldap['attr']) {
|
||||
$ldap['count'] = $ldap['attr']->getValueCount();
|
||||
|
||||
if ($ldap['attr']->isReadOnly())
|
||||
pla_error(sprintf(_('The attribute (%s) is in readonly mode.'),$entry['attr']['html']),null,-1,true);
|
||||
error(sprintf(_('The attribute (%s) is in readonly mode.'),$entry['attr']['html']),'error','index.php');
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('add attribute value')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('add attribute value')),'error','index.php');
|
||||
|
||||
if (($ldap['attr']->getValueCount() == 0) && ! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('add attribute')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('add attribute')),'error','index.php');
|
||||
|
||||
$entry['attr']['oclass'] = (strcasecmp($entry['attr']['string'],'objectClass') == 0) ? true : false;
|
||||
|
||||
@ -156,8 +159,8 @@ if ($entry['attr']['oclass']) {
|
||||
echo '</tr>';
|
||||
|
||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','show_hints'))
|
||||
printf('<tr><td colspan=2><small><br /><img src="images/light.png" alt="Hint" /><span class="hint">%s</span></small></td></tr>',
|
||||
_('Note: You may be required to enter new attributes that these objectClass(es) require'));
|
||||
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>';
|
||||
@ -165,7 +168,7 @@ if ($entry['attr']['oclass']) {
|
||||
} else {
|
||||
# Draw a blank field
|
||||
echo '<table border=0><tr><td>';
|
||||
$writer->draw('BlankValue', $ldap['attr'], $ldap['count']);
|
||||
$writer->draw('BlankValue',$ldap['attr'],$ldap['count'],$reader);
|
||||
echo '</td></tr><tr><td>';
|
||||
|
||||
if ($ldap['schema']->getDescription())
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare.php,v 1.16.2.3 2008/01/13 06:33:50 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare.php,v 1.16.2.7 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Compare two DNs - the destination DN is editable.
|
||||
@ -8,27 +8,28 @@
|
||||
|
||||
require_once './common.php';
|
||||
|
||||
$dn_src = isset($_POST['dn_src']) ? $_POST['dn_src'] : null;
|
||||
$dn_dst = isset($_POST['dn_dst']) ? $_POST['dn_dst'] : null;
|
||||
$dn_src = get_request('dn_src');
|
||||
$dn_dst = get_request('dn_dst');
|
||||
|
||||
$encoded_dn_src = rawurlencode($dn_src);
|
||||
$encoded_dn_dst = rawurlencode($dn_dst);
|
||||
|
||||
$server_id_src = (isset($_POST['server_id_src']) ? $_POST['server_id_src'] : '');
|
||||
$server_id_dst = (isset($_POST['server_id_dst']) ? $_POST['server_id_dst'] : '');
|
||||
$server_id_src = get_request('server_id_src');
|
||||
$server_id_dst = get_request('server_id_dst');
|
||||
|
||||
$ldapserver_src = $_SESSION[APPCONFIG]->ldapservers->Instance($server_id_src);
|
||||
if (! $ldapserver_src->haveAuthInfo())
|
||||
pla_error(_('Not enough information to login to server. Please check your configuration.'));
|
||||
error(_('Not enough information to login to server. Please check your configuration.'),'error','index.php');
|
||||
|
||||
$ldapserver_dst = $_SESSION[APPCONFIG]->ldapservers->Instance($server_id_dst);
|
||||
if (! $ldapserver_src->haveAuthInfo())
|
||||
pla_error(_('Not enough information to login to server. Please check your configuration.'));
|
||||
error(_('Not enough information to login to server. Please check your configuration.'),'error','index.php');
|
||||
|
||||
if (! $ldapserver_src->dnExists($dn_src))
|
||||
pla_error(sprintf(_('No such entry: %s'),pretty_print_dn($dn_src)));
|
||||
error(sprintf('%s (%s)',_('No such entry.'),pretty_print_dn($dn_src)),'error','index.php');
|
||||
|
||||
if (! $ldapserver_dst->dnExists($dn_dst))
|
||||
pla_error(sprintf(_('No such entry: %s'),pretty_print_dn($dn_dst)));
|
||||
error(sprintf('%s (%s)',_('No such entry.'),pretty_print_dn($dn_dst)),'error','index.php');
|
||||
|
||||
$attrs_src = $ldapserver_src->getDNAttrs($dn_src,false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||
$attrs_dst = $ldapserver_dst->getDNAttrs($dn_dst,false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||
@ -253,12 +254,12 @@ foreach ($attrs_all as $attr) {
|
||||
|
||||
if (count($vals) > 1)
|
||||
for ($i=1; $i<=count($vals); $i++)
|
||||
printf('<a href="%s&value_num=%s"><img src="images/save.png" /> %s(%s)</a><br />',$href,$i,_('download value'),$i);
|
||||
printf('<a href="%s&value_num=%s"><img src="%s/save.png" /> %s(%s)</a><br />',$href,$i,_('download value'),IMGDIR,$i);
|
||||
else
|
||||
printf('<a href="%s"><img src="images/save.png" /> %s</a><br />',$href,_('download value'));
|
||||
printf('<a href="%s"><img src="%s/save.png" /> %s</a><br />',$href,IMGDIR,_('download value'));
|
||||
|
||||
if ($side == 'dst' && ! $ldapserver_dst->isReadOnly() && ! $ldapserver->isAttrReadOnly($attr))
|
||||
printf('<a href="javascript:deleteAttribute(\'%s\');" style="color:red;"><img src="images/trash.png" /> %s</a>',$attr,_('delete attribute'));
|
||||
printf('<a href="javascript:deleteAttribute(\'%s\');" style="color:red;"><img src="%s/trash.png" /> %s</a>',$attr,IMGDIR,_('delete attribute'));
|
||||
|
||||
echo '</small>';
|
||||
echo '</td>';
|
||||
@ -322,8 +323,7 @@ foreach ($attrs_all as $attr) {
|
||||
|
||||
if ($side == 'dst') {
|
||||
printf('<input style="width: 260px" type="password" name="new_values[userpassword]" value="%s" />',htmlspecialchars($user_password));
|
||||
echo enc_type_select_list($enc_type);
|
||||
|
||||
echo enc_type_select_list($enc_type,'enc','userpassword',0);
|
||||
}
|
||||
|
||||
echo '<br />';
|
||||
@ -383,8 +383,8 @@ foreach ($attrs_all as $attr) {
|
||||
# Is this value is a structural objectClass, make it read-only
|
||||
if (0 == strcasecmp($attr,'objectClass')) {
|
||||
|
||||
printf('<a title="%s" href="cmd.php?cmd=schema&server_id=%s&view=objectClasses&viewvalue=%s"><img src="images/info.png" /></a>',
|
||||
_('View the schema description for this objectClass'),$ldapserver->server_id,htmlspecialchars($val));
|
||||
printf('<a title="%s" href="cmd.php?cmd=schema&server_id=%s&view=objectClasses&viewvalue=%s"><img src="%s/info.png" /></a>',
|
||||
_('View the schema description for this objectClass'),$ldapserver->server_id,htmlspecialchars($val),IMGDIR);
|
||||
|
||||
$schema_object = $ldapserver->getSchemaObjectClass($val);
|
||||
|
||||
@ -400,14 +400,14 @@ foreach ($attrs_all as $attr) {
|
||||
}
|
||||
|
||||
if (is_dn_string($val) || $ldapserver->isDNAttr($attr))
|
||||
printf('<a title="%s" href="cmd.php?cmd=template_engine&server_id=%s&dn=%s"><img style="vertical-align: top" src="images/go.png" /></a>',
|
||||
sprintf(_('Go to %s'),htmlspecialchars($val)),$ldapserver->server_id,rawurlencode($val));
|
||||
printf('<a title="%s" href="cmd.php?cmd=template_engine&server_id=%s&dn=%s"><img style="vertical-align: top" src="%s/go.png" /></a>',
|
||||
sprintf(_('Go to %s'),htmlspecialchars($val)),$ldapserver->server_id,rawurlencode($val),IMGDIR);
|
||||
|
||||
elseif (is_mail_string($val))
|
||||
printf('<a href="mailto:%s><img style="vertical-align: center" src="images/mail.png" /></a>',htmlspecialchars($val));
|
||||
printf('<a href="mailto:%s><img style="vertical-align: center" src="%s/mail.png" /></a>',htmlspecialchars($val),IMGDIR);
|
||||
|
||||
elseif (is_url_string($val))
|
||||
printf('<a href="%s" target="new"><img style="vertical-align: center" src="images/dc.png" /></a>',htmlspecialchars($val));
|
||||
printf('<a href="%s" target="new"><img style="vertical-align: center" src="%s/dc.png" /></a>',htmlspecialchars($val),IMGDIR);
|
||||
|
||||
if ($ldapserver->isMultiLineAttr($attr,$val)) {
|
||||
if ($side == 'dst')
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare_form.php,v 1.5 2007/12/15 07:50:30 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare_form.php,v 1.5.2.1 2008/12/12 07:29:55 wurley Exp $
|
||||
|
||||
/**
|
||||
* Compares to DN entries side by side.
|
||||
@ -14,7 +14,7 @@
|
||||
|
||||
require_once './common.php';
|
||||
|
||||
$dn = (isset($_GET['dn']) ? $_GET['dn'] : '');
|
||||
$dn = get_request('dn','GET');
|
||||
$rdn = get_rdn($dn);
|
||||
$select_server_html = server_select_list($ldapserver->server_id,true,'server_id_dst');
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy.php,v 1.44.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy.php,v 1.44.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Copies a given object to create a new one.
|
||||
@ -17,8 +17,9 @@
|
||||
require './common.php';
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_move'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('copy entry')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('copy entry')),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['src']['id'] = get_request('server_id');
|
||||
$entry['dst']['id'] = get_request('dest_server_id');
|
||||
|
||||
@ -26,10 +27,10 @@ $entry['src']['ldapserver'] = $_SESSION[APPCONFIG]->ldapservers->Instance($entry
|
||||
$entry['dst']['ldapserver'] = $_SESSION[APPCONFIG]->ldapservers->Instance($entry['dst']['id']);
|
||||
|
||||
if ($entry['dst']['ldapserver']->isReadOnly())
|
||||
pla_error(_('Destination server is currently READ-ONLY.'));
|
||||
error(_('Destination server is currently READ-ONLY.'),'error','index.php');
|
||||
|
||||
if (! $entry['src']['ldapserver']->haveAuthInfo() || ! $entry['dst']['ldapserver']->haveAuthInfo())
|
||||
pla_error(_('Not enough information to login to server. Please check your configuration.'));
|
||||
error(_('Not enough information to login to server. Please check your configuration.'),'error','index.php');
|
||||
|
||||
$entry['src']['dn'] = get_request('old_dn');
|
||||
$entry['dst']['dn'] = get_request('new_dn');
|
||||
@ -38,19 +39,19 @@ $entry['src']['remove'] = (get_request('remove') == 'yes') ? true : false;
|
||||
|
||||
# Error checking
|
||||
if (strlen(trim($entry['dst']['dn'])) == 0)
|
||||
pla_error(_('You left the destination DN blank.'));
|
||||
error(_('You left the destination DN blank.'),'error','index.php');
|
||||
|
||||
if (pla_compare_dns($entry['src']['dn'],$entry['dst']['dn']) == 0 && $entry['src']['id'] == $entry['dst']['id'])
|
||||
pla_error(_('The source and destination DN are the same.'));
|
||||
error(_('The source and destination DN are the same.'),'error','index.php');
|
||||
|
||||
if ($entry['dst']['ldapserver']->dnExists($entry['dst']['dn']))
|
||||
pla_error(sprintf(_('The destination entry (%s) already exists.'),pretty_print_dn($entry['dst']['dn'])));
|
||||
error(sprintf(_('The destination entry (%s) already exists.'),pretty_print_dn($entry['dst']['dn'])),'error','index.php');
|
||||
|
||||
if (! $entry['dst']['ldapserver']->dnExists(get_container($entry['dst']['dn'])))
|
||||
pla_error(sprintf(_('The destination container (%s) does not exist.'),pretty_print_dn(get_container($entry['dst']['dn']))));
|
||||
error(sprintf(_('The destination container (%s) does not exist.'),pretty_print_dn(get_container($entry['dst']['dn']))),'error','index.php');
|
||||
|
||||
if ($entry['src']['recursive']) {
|
||||
$filter = isset($_POST['filter']) ? $_POST['filter'] : '(objectClass=*)';
|
||||
$filter = get_request('filter','POST',false,'(objectClass=*)');
|
||||
|
||||
# Build a tree similar to that of the tree browser to give to r_copy_dn
|
||||
$snapshot_tree = array();
|
||||
@ -141,7 +142,11 @@ function copy_dn($ldapserver_src,$ldapserver_dst,$dn_src,$dn_dst) {
|
||||
$add_result = $ldapserver_dst->add($dn_dst,$new_entry);
|
||||
if (! $add_result) {
|
||||
echo '</small><br /><br />';
|
||||
pla_error(_('Failed to copy DN: ').$dn_dst,$ldapserver_dst->error(),$ldapserver_dst->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Failed to copy DN.').sprintf(' (%s)',$dn_dst),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
|
||||
} else {
|
||||
run_hook('post_entry_create',
|
||||
array('server_id'=>$ldapserver_dst->server_id,'dn'=>$dn_dst,'attrs'=>$new_entry));
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy_form.php,v 1.30.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy_form.php,v 1.30.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Copies a given object to create a new one.
|
||||
@ -15,8 +15,9 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['dn'] = get_request('dn','GET');
|
||||
$entry['rdn'] = get_rdn($entry['dn']);
|
||||
|
||||
@ -99,7 +100,7 @@ echo '</table></form>';
|
||||
echo "\n";
|
||||
|
||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','show_hints'))
|
||||
printf('<small><img src="images/light.png" alt="Light" /><span class="hint">%s</span></small>',_('Hint: Copying between different servers only works if there are no schema violations'));
|
||||
printf('<small><img src="%s/light.png" alt="Light" /><span class="hint">%s</span></small>',IMGDIR,_('Hint: Copying between different servers only works if there are no schema violations'));
|
||||
|
||||
echo '</center>';
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/create.php,v 1.48.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/create.php,v 1.48.2.4 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Creates a new object.
|
||||
@ -19,12 +19,12 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'), null, -1, true);
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_create'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('create entry')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('create entry')),'error','index.php');
|
||||
|
||||
$rdn_attr = isset($_POST['rdn_attribute']) ? $_POST['rdn_attribute'] : null;
|
||||
$rdn_attr = get_request('rdn_attribute');
|
||||
|
||||
$entryfactoryclass = $_SESSION[APPCONFIG]->GetValue('appearance','entry_factory');
|
||||
eval('$entry_factory = new '.$entryfactoryclass.'();');
|
||||
@ -36,7 +36,7 @@ $entry->accept($reader);
|
||||
$container = $entry->getContainer();
|
||||
|
||||
if (!$container || !$ldapserver->dnExists($container))
|
||||
pla_error(sprintf(_('The container you specified (%s) does not exist. Please try again.'),htmlspecialchars($container)),null,-1,true);
|
||||
error(sprintf(_('The container you specified (%s) does not exist. Please try again.'),htmlspecialchars($container)),'error','index.php');
|
||||
|
||||
$tree = get_cached_item($ldapserver->server_id,'tree');
|
||||
if ($tree) {
|
||||
@ -46,18 +46,18 @@ if ($tree) {
|
||||
|
||||
$container_entry = $tree->getEntry($container);
|
||||
if ($container_entry->isLeaf())
|
||||
pla_error(sprintf(_('The container (%s) is a leaf.'), htmlspecialchars($container)), null, -1, true);
|
||||
error(sprintf(_('The container (%s) is a leaf.'), htmlspecialchars($container)),'error','index.php');
|
||||
}
|
||||
|
||||
$entry->setRdnAttributeName($rdn_attr);
|
||||
if (!$entry->getRdnAttribute())
|
||||
pla_error(sprintf(_('The Rdn attribute (%s) does not exist.'), htmlspecialchars($rdn_attr)), null, -1, true);
|
||||
error(sprintf(_('The Rdn attribute (%s) does not exist.'), htmlspecialchars($rdn_attr)),'error','index.php');
|
||||
|
||||
$new_dn = $entry->getDn();
|
||||
if (! $new_dn)
|
||||
pla_error(_('You left the RDN field blank.'));
|
||||
error(_('You left the RDN field blank.'),'error','index.php');
|
||||
|
||||
$redirect = isset($_POST['redirect']) ? $_POST['redirect'] : false;
|
||||
$redirect = get_request('redirect','POST',false,false);
|
||||
|
||||
$new_entry = array();
|
||||
$attrs = $entry->getAttributes();
|
||||
@ -69,8 +69,9 @@ foreach ($attrs as $attr) {
|
||||
$new_vals[] = $val;
|
||||
}
|
||||
|
||||
if ($attr->isRequired() && !$new_vals)
|
||||
pla_error(sprintf(_('You left the value blank for required attribute (%s).'), htmlspecialchars($attr->getName())));
|
||||
if ($attr->isRequired() && !$new_vals && !$ldapserver->isIgnoredAttr($attr->getName()))
|
||||
error(sprintf(_('You left the value blank for required attribute (%s).'),htmlspecialchars($attr->getName())),'error','index.php');
|
||||
|
||||
|
||||
if ($new_vals)
|
||||
$new_entry[$attr->getName()] = $new_vals;
|
||||
@ -83,7 +84,7 @@ foreach ($new_entry as $attr => $vals) {
|
||||
# Check to see if this is a unique Attribute
|
||||
if ($badattr = $ldapserver->checkUniqueAttr($new_dn,$attr,$vals)) {
|
||||
$search_href = sprintf('?cmd=search&search=true&form=advanced&server_id=%s&filter=%s=%s', $ldapserver->server_id,$attr,$badattr);
|
||||
pla_error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$attr,$badattr,$new_dn,$search_href));
|
||||
error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href=\'%s\'>search</a> for that entry.'),$attr,$badattr,$new_dn,$search_href),'error','index.php');
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,6 +130,9 @@ if ($add_result) {
|
||||
}
|
||||
|
||||
} else {
|
||||
pla_error(_('Could not add the object to the LDAP server.'),$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not add the object to the LDAP server.'),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
}
|
||||
?>
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/css/style.css,v 1.48.2.4 2008/01/13 07:17:23 wurley Exp $ */
|
||||
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/css/style.css,v 1.48.2.8 2008/12/19 00:38:31 wurley Exp $ */
|
||||
|
||||
/* Global Page */
|
||||
table.page {
|
||||
@ -96,7 +96,7 @@ table.page table.control td.logo img.logo {
|
||||
text-align: right;
|
||||
|
||||
width: 100px;
|
||||
height: 60px;
|
||||
height: 50px;
|
||||
}
|
||||
|
||||
/* Global Page - LDAP Tree */
|
||||
@ -276,6 +276,7 @@ table.tree td.rdn a:hover {
|
||||
font-size: 13px;
|
||||
color: #841212;
|
||||
background-color: #FFF0C0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
table.tree td.rdn span.count {
|
||||
@ -300,13 +301,6 @@ table.tree td.link a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
table.tree td.rdn a:hover {
|
||||
font-size: 13px;
|
||||
color: #841212;
|
||||
background-color: #FFF0C0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
table.tree td.links a:hover {
|
||||
text-decoration: none;
|
||||
color: blue;
|
||||
@ -438,6 +432,7 @@ table.entry input {
|
||||
}
|
||||
|
||||
table.entry input.value {
|
||||
color: #000000;
|
||||
font-size: 14px;
|
||||
width: 350px;
|
||||
background-color: #FFFFFF;
|
||||
@ -447,15 +442,16 @@ table.entry div.helper {
|
||||
text-align: left;
|
||||
white-space: nowrap;
|
||||
background-color: #FFFFFF;
|
||||
color: #888;
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
table.entry input.roval {
|
||||
font-size: 14px;
|
||||
width: 350px;
|
||||
background-color: #FFFFFF;
|
||||
color: #000000;
|
||||
border: none;
|
||||
}
|
||||
|
||||
@ -463,12 +459,14 @@ table.entry textarea.value {
|
||||
font-size: 14px;
|
||||
width: 350px;
|
||||
background-color: #FFFFFF;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
table.entry textarea.roval {
|
||||
font-size: 14px;
|
||||
width: 350px;
|
||||
background-color: #FFFFFF;
|
||||
color: #000000;
|
||||
border: none;
|
||||
}
|
||||
|
||||
@ -604,41 +602,50 @@ table.entry tr.updated td.ew2_val {
|
||||
#login {
|
||||
background: url('../images/uid.png') no-repeat 0 1px;
|
||||
background-color: #FAFAFF;
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
}
|
||||
|
||||
#login:focus {
|
||||
background-color: #F0F0FF;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#login:disabled {
|
||||
background-color: #DDDDFF;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#password {
|
||||
background: url('../images/key.png') no-repeat 0 1px;
|
||||
background-color: #FAFAFF;
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
}
|
||||
|
||||
#password:focus {
|
||||
background-color: #F0F0FF;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#password:disabled {
|
||||
background-color: #DDDDFF;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#generic {
|
||||
background-color: #FAFAFF;
|
||||
color: #000000;
|
||||
padding-left: 17px;
|
||||
}
|
||||
#generic:focus {
|
||||
background-color: #F0F0FF;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
#generic:disabled {
|
||||
background-color: #DDDDFF;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
/* After input results */
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete.php,v 1.27.2.2 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete.php,v 1.27.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Deletes a DN and presents a "job's done" message.
|
||||
@ -15,24 +15,25 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_delete', 'simple_delete'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete entry')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete entry')),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['dn'] = get_request('dn');
|
||||
|
||||
if (! $entry['dn'])
|
||||
pla_error(_('You must specify a DN'));
|
||||
error(_('You must specify a DN'),'error','index.php');
|
||||
|
||||
if (! $ldapserver->dnExists($entry['dn']))
|
||||
pla_error(sprintf(_('No such entry: %s'),'<b>'.pretty_print_dn($entry['dn']).'</b>'));
|
||||
error(sprintf('%s (%s)',_('No such entry.'),'<b>'.pretty_print_dn($entry['dn']).'</b>'),'error','index.php');
|
||||
|
||||
# Check the user-defined custom callback first.
|
||||
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$entry['dn'])))
|
||||
$result = $ldapserver->delete($entry['dn']);
|
||||
else
|
||||
pla_error(sprintf(_('Could not delete the entry: %s'),'<b>'.pretty_print_dn($entry['dn']).'</b>'));
|
||||
error(sprintf(_('Could not delete the entry: %s'),'<b>'.pretty_print_dn($entry['dn']).'</b>'),'error','index.php');
|
||||
|
||||
if ($result) {
|
||||
# Custom callback
|
||||
@ -46,7 +47,9 @@ if ($result) {
|
||||
sprintf('index.php?server_id=%s',$ldapserver->server_id));
|
||||
|
||||
} else {
|
||||
pla_error(sprintf(_('Could not delete the entry: %s'),'<b>'.pretty_print_dn($entry['dn']).'</b>'),
|
||||
$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($entry['dn'])),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
}
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete_attr.php,v 1.16.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete_attr.php,v 1.16.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Deletes an attribute from an entry with NO confirmation.
|
||||
@ -15,23 +15,24 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_delete'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete attribute')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete attribute')),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['dn']['string'] = get_request('dn');
|
||||
$entry['dn']['encode'] = rawurlencode($entry['dn']['string']);
|
||||
$entry['attr'] = get_request('attr');
|
||||
|
||||
if (! $entry['dn']['string'])
|
||||
pla_error(_('No DN specified'));
|
||||
error(_('No DN specified'),'error','index.php');
|
||||
|
||||
if (! $entry['attr'])
|
||||
pla_error(_('No attribute name specified.'));
|
||||
error(_('No attribute name specified.'),'error','index.php');
|
||||
|
||||
if ($ldapserver->isAttrReadOnly($entry['attr']))
|
||||
pla_error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),htmlspecialchars($entry['attr'])));
|
||||
error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),htmlspecialchars($entry['attr'])),'error','index.php');
|
||||
|
||||
$update_array = array();
|
||||
$update_array[$entry['attr']] = array();
|
||||
@ -47,6 +48,9 @@ if ($result) {
|
||||
die();
|
||||
|
||||
} else {
|
||||
pla_error(_('Could not perform ldap_modify operation.'),$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not perform ldap_modify operation.'),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
}
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete_form.php,v 1.26.2.1 2008/01/13 05:37:00 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/delete_form.php,v 1.26.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* delete_form.php
|
||||
@ -16,8 +16,9 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['dn']['string'] = get_request('dn','GET');
|
||||
$entry['dn']['html'] = htmlspecialchars($entry['dn']['string']);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/download_binary_attr.php,v 1.15.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/download_binary_attr.php,v 1.15.2.4 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -12,27 +12,32 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
if (! $ldapserver->haveAuthInfo())
|
||||
pla_error(_('Not enough information to login to server. Please check your configuration.'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
$dn = rawurldecode($_GET['dn']);
|
||||
$attr = $_GET['attr'];
|
||||
if (! $ldapserver->haveAuthInfo())
|
||||
error(_('Not enough information to login to server. Please check your configuration.'),'error','index.php');
|
||||
|
||||
$dn = rawurldecode(get_request('dn','GET'));
|
||||
$attr = get_request('attr','GET');
|
||||
|
||||
# if there are multiple values in this attribute, which one do you want to see?
|
||||
$value_num = isset($_GET['value_num']) ? $_GET['value_num'] : null;
|
||||
$value_num = get_request('value_num','GET');
|
||||
|
||||
if (! $ldapserver->dnExists($dn))
|
||||
pla_error(sprintf(_('No such entry: %s'),pretty_print_dn($dn)));
|
||||
error(sprintf('%s (%s)',_('No such entry.'),pretty_print_dn($dn)),'error','index.php');
|
||||
|
||||
$search = $ldapserver->search(null,$dn,'(objectClass=*)',array($attr),'base',false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||
|
||||
# Dump the binary data to the browser
|
||||
if (ob_get_level()) ob_end_clean();
|
||||
$obStatus = ob_get_status();
|
||||
if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status'])
|
||||
ob_end_clean();
|
||||
|
||||
header('Content-type: octet-stream');
|
||||
header("Content-disposition: attachment; filename=$attr");
|
||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||
|
||||
if ($value_num && is_array($search[$attr][$dn]))
|
||||
echo $search[$dn][$attr][$value_num];
|
||||
else
|
||||
|
@ -1,41 +1,42 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/draw_tree_node.php,v 1.2.2.1 2007/12/21 12:11:55 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/draw_tree_node.php,v 1.2.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
*/
|
||||
|
||||
$entry['dn'] = get_request('dn','REQUEST');
|
||||
$entry['server_id'] = get_request('server_id','REQUEST');
|
||||
$entry['code'] = get_request('code','REQUEST');
|
||||
$entry['action'] = get_request('action','REQUEST');
|
||||
$entry = array();
|
||||
$entry['dn'] = get_request('dn','REQUEST');
|
||||
$entry['server_id'] = get_request('server_id','REQUEST');
|
||||
$entry['code'] = get_request('code','REQUEST');
|
||||
$entry['action'] = get_request('action','REQUEST');
|
||||
|
||||
$tree = Tree::getInstance($entry['server_id']);
|
||||
if (! $tree)
|
||||
$tree = Tree::getInstance($entry['server_id']);
|
||||
if (! $tree)
|
||||
die();
|
||||
|
||||
$dnentry = $tree->getEntry($entry['dn']);
|
||||
if (! $dnentry) {
|
||||
$dnentry = $tree->getEntry($entry['dn']);
|
||||
if (! $dnentry) {
|
||||
$tree->addEntry($entry['dn']);
|
||||
$dnentry = $this->getEntry($entry['dn']);
|
||||
}
|
||||
}
|
||||
|
||||
if (! $dnentry)
|
||||
if (! $dnentry)
|
||||
die();
|
||||
|
||||
if ($entry['action'] == 0) {
|
||||
if ($entry['action'] == 0) {
|
||||
$dnentry->close();
|
||||
|
||||
} elseif ($entry['action'] == 2) {
|
||||
} elseif ($entry['action'] == 2) {
|
||||
$dnentry->open();
|
||||
|
||||
} else {
|
||||
} else {
|
||||
$dnentry->open();
|
||||
if ($entry['dn']) {
|
||||
echo $tree->draw_children($dnentry,$entry['code']);
|
||||
} else {
|
||||
$tree->draw(true);
|
||||
}
|
||||
}
|
||||
die();
|
||||
}
|
||||
die();
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/entry_chooser.php,v 1.31.2.3 2008/01/13 05:37:00 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/entry_chooser.php,v 1.31.2.5 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Display a selection (popup window) to pick a DN.
|
||||
@ -10,6 +10,7 @@
|
||||
include './common.php';
|
||||
include HTDOCDIR.'header.php';
|
||||
|
||||
$entry = array();
|
||||
$entry['container'] = get_request('container','GET');
|
||||
$entry['element'] = get_request('form_element','GET');
|
||||
$entry['rdn'] = get_request('rdn','GET');
|
||||
@ -38,7 +39,7 @@ if ($entry['container']) {
|
||||
if (isset($ldapserver) && ! is_null($entry['container'])) {
|
||||
|
||||
if (! $ldapserver->haveAuthInfo())
|
||||
pla_error(_('Not enough information to login to server. Please check your configuration.'));
|
||||
error(_('Not enough information to login to server. Please check your configuration.'),'error','index.php');
|
||||
|
||||
$entry['children'] = $ldapserver->getContainerContents($entry['container'],0,'(objectClass=*)',$_SESSION[APPCONFIG]->GetValue('deref','tree'));
|
||||
sort($entry['children']);
|
||||
@ -61,7 +62,7 @@ if (isset($ldapserver) && ! is_null($entry['container'])) {
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td class="blank"> </td>';
|
||||
printf('<td class="icon"><a href="%s"><img src="images/up.png" alt="Up" /></a></td>',$href['up']);
|
||||
printf('<td class="icon"><a href="%s"><img src="%s/up.png" alt="Up" /></a></td>',$href['up'],IMGDIR);
|
||||
printf('<td colspan=2><a href="%s">%s</a></td>',$href['up'],_('Back Up...'));
|
||||
echo '</tr>';
|
||||
|
||||
@ -76,7 +77,7 @@ if (isset($ldapserver) && ! is_null($entry['container'])) {
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td class="blank"> </td>';
|
||||
printf('<td class="icon"><a href="%s"><img src="images/plus.png" alt="Plus" /></a></td>',$href['expand']);
|
||||
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'],htmlspecialchars($dn));
|
||||
echo '</tr>';
|
||||
@ -107,7 +108,7 @@ if (isset($ldapserver) && ! is_null($entry['container'])) {
|
||||
|
||||
echo '<tr>';
|
||||
echo '<td class="blank"> </td>';
|
||||
printf('<td colspan=2 class="icon"><a href="%s"><img src="images/plus.png" alt="Plus" /></a></td>',$href['expand']);
|
||||
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'],htmlspecialchars($dn));
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export.php,v 1.18.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export.php,v 1.18.2.4 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -15,8 +15,9 @@ ini_set('session.cache_limiter','');
|
||||
require LIBDIR.'export_functions.php';
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('export'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('export')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('export')),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['base_dn'] = get_request('dn');
|
||||
$entry['format'] = get_request('format','POST',false,'unix');
|
||||
$entry['scope'] = get_request('scope','POST',false,'base');
|
||||
@ -40,8 +41,8 @@ if ($entry['sys_attr']) {
|
||||
array_push($attributes,'+');
|
||||
}
|
||||
|
||||
(! is_null($entry['exporter_id'])) or pla_error(_('You must choose an export format.'));
|
||||
isset($exporters[$entry['exporter_id']]) or pla_error(_('Invalid export format'));
|
||||
(! is_null($entry['exporter_id'])) or error(_('You must choose an export format.'),'error','index.php');
|
||||
isset($exporters[$entry['exporter_id']]) or error(_('Invalid export format'),'error','index.php');
|
||||
|
||||
# Initialisation of other variables
|
||||
$friendly_rdn = get_rdn($entry['base_dn'],1);
|
||||
@ -85,13 +86,13 @@ switch ($entry['exporter_id']) {
|
||||
|
||||
default:
|
||||
# truly speaking,this default case will never be reached. See check at the bottom.
|
||||
pla_error(_('No available exporter found.'));
|
||||
error(_('No available exporter found.'),'error','index.php');
|
||||
}
|
||||
|
||||
# set the CLRN
|
||||
$exporter->setOutputFormat($br);
|
||||
|
||||
if (isset($_REQUEST['compress']) && $_REQUEST['compress'] = 'on')
|
||||
if (get_request('compress','REQUEST') == 'on')
|
||||
$exporter->compress(true);
|
||||
|
||||
# prevent script from bailing early for long search
|
||||
@ -99,7 +100,10 @@ if (isset($_REQUEST['compress']) && $_REQUEST['compress'] = 'on')
|
||||
|
||||
# send the header
|
||||
if ($entry['file']) {
|
||||
if (ob_get_level()) ob_end_clean();
|
||||
$obStatus = ob_get_status();
|
||||
if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status'])
|
||||
ob_end_clean();
|
||||
|
||||
header('Content-type: application/download');
|
||||
header(sprintf('Content-Disposition: filename="%s.%s"',$friendly_rdn,$exporters[$entry['exporter_id']]['extension'].($exporter->isCompressed()?'.gz':'')));
|
||||
$exporter->export();
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export_form.php,v 1.26.2.1 2008/01/13 05:37:01 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export_form.php,v 1.26.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* export_form.php
|
||||
@ -13,6 +13,7 @@ require './common.php';
|
||||
|
||||
require LIBDIR.'export_functions.php';
|
||||
|
||||
$entry = array();
|
||||
$entry['format'] = get_request('format','GET',false,get_line_end_format());
|
||||
$entry['scope'] = get_request('scope','GET',false,'base');
|
||||
$entry['id'] = get_request('exporter_id','GET',false,0);
|
||||
|
Before Width: | Height: | Size: 665 B After Width: | Height: | Size: 662 B |
Before Width: | Height: | Size: 648 B After Width: | Height: | Size: 661 B |
Before Width: | Height: | Size: 902 B After Width: | Height: | Size: 902 B |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
BIN
htdocs/images/logo-small.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 17 KiB |
BIN
htdocs/images/logo.png
Normal file
After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 608 B After Width: | Height: | Size: 661 B |
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/index.php,v 1.49.2.5 2008/01/12 10:01:28 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/index.php,v 1.49.2.10 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -40,6 +40,10 @@ if (! is_readable(LIBDIR.'functions.php')) {
|
||||
if (ob_get_level())
|
||||
ob_end_clean();
|
||||
|
||||
# Make sure this PHP install has pcre
|
||||
if (! extension_loaded('pcre'))
|
||||
die('<p>Your install of PHP appears to be missing PCRE support.</p><p>Please install PCRE support before using phpLDAPadmin.<br /><small>(Dont forget to restart your web server afterwards)</small></p>');
|
||||
|
||||
require LIBDIR.'functions.php';
|
||||
|
||||
# Define the path to our configuration file.
|
||||
@ -48,9 +52,30 @@ if (defined('CONFDIR'))
|
||||
else
|
||||
$app['config_file'] = 'config.php';
|
||||
|
||||
# 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);
|
||||
|
||||
# Make sure this PHP install has gettext, we use it for language translation
|
||||
if (! extension_loaded('gettext'))
|
||||
error('<p>Your install of PHP appears to be missing GETTEXT support.</p><p>GETTEXT is used for language translation.</p><p>Please install GETTEXT support before using phpLDAPadmin.<br /><small>(Dont forget to restart your web server afterwards)</small></p>','error',true);
|
||||
system_message(array(
|
||||
'title'=>_('Missing required extension'),
|
||||
'body'=>'Your install of PHP appears to be missing GETTEXT support.</p><p>GETTEXT is used for language translation.</p><p>Please install GETTEXT support before using phpLDAPadmin.<br /><small>(Dont forget to restart your web server afterwards)</small>',
|
||||
'type'=>'error'));
|
||||
|
||||
# Make sure this PHP install has all our required extensions
|
||||
if (! extension_loaded('ldap'))
|
||||
system_message(array(
|
||||
'title'=>_('Missing required extension'),
|
||||
'body'=>'Your install of PHP appears to be missing LDAP support.<br /><br />Please install LDAP support before using phpLDAPadmin.<br /><small>(Dont forget to restart your web server afterwards)</small>',
|
||||
'type'=>'error'));
|
||||
|
||||
# Make sure that we have php-xml loaded.
|
||||
if (! function_exists('xml_parser_create'))
|
||||
system_message(array(
|
||||
'title'=>_('Missing required extension'),
|
||||
'body'=>'Your install of PHP appears to be missing XML support.<br /><br />Please install XML support before using phpLDAPadmin.<br /><small>(Dont forget to restart your web server afterwards)</small>',
|
||||
'type'=>'error'));
|
||||
|
||||
/**
|
||||
* Helper functions.
|
||||
@ -59,10 +84,10 @@ if (! extension_loaded('gettext'))
|
||||
if (isset($app['function_files']) && is_array($app['function_files']))
|
||||
foreach ($app['function_files'] as $file_name ) {
|
||||
if (! file_exists($file_name))
|
||||
error(sprintf('Fatal error: Required file "%s" does not exist.',$file_name),'error',true);
|
||||
error(sprintf('Fatal error: Required file "%s" does not exist.',$file_name),'error',null,true);
|
||||
|
||||
if (! is_readable($file_name))
|
||||
error(sprintf('Fatal error: Cannot read the file "%s", its permissions may be too strict.',$file_name),'error',true);
|
||||
error(sprintf('Fatal error: Cannot read the file "%s", its permissions may be too strict.',$file_name),'error',null,true);
|
||||
|
||||
ob_start();
|
||||
require $file_name;
|
||||
@ -71,10 +96,10 @@ if (isset($app['function_files']) && is_array($app['function_files']))
|
||||
|
||||
# Configuration File check
|
||||
if (! file_exists($app['config_file'])) {
|
||||
error(sprintf(_('You need to configure %s. Edit the file "%s" to do so. An example config file is provided in "%s.example".'),'phpLDAPadmin',$app['config_file'],$app['config_file']),'error',true);
|
||||
error(sprintf(_('You need to configure %s. Edit the file "%s" to do so. An example config file is provided in "%s.example".'),'phpLDAPadmin',$app['config_file'],$app['config_file']),'error',null,true);
|
||||
|
||||
} elseif (! is_readable($app['config_file'])) {
|
||||
error(sprintf('Fatal error: Cannot read your configuration file "%s", its permissions may be too strict.',$app['config_file']),'error',true);
|
||||
error(sprintf('Fatal error: Cannot read your configuration file "%s", its permissions may be too strict.',$app['config_file']),'error',null,true);
|
||||
}
|
||||
|
||||
# If our config file fails the sanity check, then stop now.
|
||||
@ -87,5 +112,8 @@ if (! check_config($app['config_file'])) {
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($uri = get_request('URI','GET'))
|
||||
header(sprintf('Location: cmd.php?%s',base64_decode($uri)));
|
||||
|
||||
include './cmd.php';
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/ldif_import.php,v 1.35.2.2 2008/01/28 12:58:43 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/ldif_import.php,v 1.35.2.4 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Imports an LDIF file to the specified server_id.
|
||||
@ -16,8 +16,9 @@
|
||||
require './common.php';
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('import'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('import')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('import')),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['continuous_mode'] = get_request('continuous_mode') ? true : false;
|
||||
$entry['ldif'] = get_request('ldif');
|
||||
|
||||
@ -31,20 +32,20 @@ if ($entry['ldif']) {
|
||||
$entry['size'] = $_FILES['ldif_file']['size'];
|
||||
|
||||
if (! is_array($_FILES['ldif_file'])) {
|
||||
pla_error(_('Missing uploaded file.'),null,-1,false);
|
||||
error(_('Missing uploaded file.'),'error');
|
||||
return;
|
||||
}
|
||||
if (! file_exists($file)) {
|
||||
pla_error(_('No LDIF file specified. Please try again.'),null,-1,false);
|
||||
error(_('No LDIF file specified. Please try again.'),'error');
|
||||
return;
|
||||
}
|
||||
if ($entry['size'] <= 0) {
|
||||
pla_error(_('Uploaded LDIF file is empty.'),null,-1,false);
|
||||
error(_('Uploaded LDIF file is empty.'),'error');
|
||||
return;
|
||||
}
|
||||
|
||||
} else {
|
||||
pla_error(_('You must either upload a file or provide an LDIF in the text box.'),null,-1,false);
|
||||
error(_('You must either upload a file or provide an LDIF in the text box.'),'error');
|
||||
return;
|
||||
}
|
||||
|
||||
@ -182,7 +183,7 @@ function display_pla_parse_error($exception,$faultyEntry) {
|
||||
$errorMessage = $actionErrorMsg[$faultyEntry->getChangeType()];
|
||||
|
||||
echo '<center>';
|
||||
echo '<table class="error"><tr><td class="img"><img src="images/warning.png" /></td>';
|
||||
printf('<table class="error"><tr><td class="img"><img src="%s/warning.png" /></td>',IMGDIR);
|
||||
echo '<td>';
|
||||
printf('<center><h2>%s</h2></center>',_('LDIF Parse Error'));
|
||||
echo '<br />';
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/ldif_import_form.php,v 1.22.2.1 2008/01/13 05:43:13 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/ldif_import_form.php,v 1.22.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Displays a form to allow the user to upload and import
|
||||
@ -13,10 +13,10 @@
|
||||
require './common.php';
|
||||
|
||||
if (! ini_get('file_uploads'))
|
||||
pla_error(_('Your PHP.INI does not have file_uploads = ON. Please enable file uploads in PHP.'));
|
||||
error(_('Your PHP.INI does not have file_uploads = ON. Please enable file uploads in PHP.'),'error','index.php');
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
printf('<h3 class="title" colspan=0>%s</h3>',_('Import LDIF File'));
|
||||
printf('<h3 class="subtitle" colspan=0>%s: <b>%s</b></h3>',_('Server'),htmlspecialchars($ldapserver->name));
|
||||
@ -38,7 +38,7 @@ printf('<tr><td> </td><td class="small"><b>%s %s</b></td></tr>',_('Maximum
|
||||
|
||||
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="60"></textarea></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"));
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login.php,v 1.56.2.4 2008/01/04 12:29:15 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login.php,v 1.56.2.5 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me the
|
||||
@ -149,7 +149,7 @@ if (! is_resource($ds)) {
|
||||
}
|
||||
|
||||
$ldapserver->auth_type = $save_auth_type;
|
||||
$ldapserver->setLoginDN($login['dn'],$login['pass'],$anon_bind) or pla_error(_('Could not set cookie.'));
|
||||
$ldapserver->setLoginDN($login['dn'],$login['pass'],$anon_bind) or error(_('Could not set cookie.'),'error','index.php');
|
||||
set_lastactivity($ldapserver);
|
||||
|
||||
if (! $anon_bind) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login_form.php,v 1.29.2.4 2008/01/13 05:37:01 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login_form.php,v 1.29.2.7 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Displays the login form for a server for users who specify 'cookie' or 'session' for their auth_type.
|
||||
@ -14,12 +14,12 @@
|
||||
require './common.php';
|
||||
|
||||
if (! in_array($ldapserver->auth_type, array('cookie','session')))
|
||||
pla_error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($ldapserver->auth_type)));
|
||||
error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($ldapserver->auth_type)),'error','index.php');
|
||||
|
||||
printf('<h3 class="title">%s %s</h3>',_('Authenticate to server'),$ldapserver->name);
|
||||
|
||||
# Check for a secure connection
|
||||
if (! isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
|
||||
if (! isset($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) != 'on') {
|
||||
echo '<br />';
|
||||
echo '<center>';
|
||||
echo '<span style="color:red">';
|
||||
@ -36,8 +36,8 @@ echo '<form action="cmd.php" method="post" name="login_form">';
|
||||
echo '<input type="hidden" name="cmd" value="login" />';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
|
||||
|
||||
if (isset($_GET['redirect']))
|
||||
printf('<input type="hidden" name="redirect" value="%s" />',rawurlencode($_GET['redirect']));
|
||||
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">';
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/logout.php,v 1.20.2.1 2007/12/26 03:25:38 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/logout.php,v 1.20.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me
|
||||
@ -16,18 +16,18 @@
|
||||
require './common.php';
|
||||
|
||||
if (! $ldapserver->haveAuthInfo())
|
||||
pla_error(_('No one is logged in to that server.'));
|
||||
error(_('No one is logged in to that server.'),'error','index.php');
|
||||
|
||||
if (in_array($ldapserver->auth_type, array('cookie','session','http'))) {
|
||||
syslog_notice (sprintf('Logout for %s',$ldapserver->getLoggedInDN()));
|
||||
if($ldapserver->auth_type!='http')
|
||||
$ldapserver->unsetLoginDN() or pla_error(_('Could not logout.'));
|
||||
$ldapserver->unsetLoginDN() or error(_('Could not logout.'),'error','index.php');
|
||||
unset_lastactivity($ldapserver);
|
||||
|
||||
@session_destroy();
|
||||
|
||||
} else
|
||||
pla_error(sprintf(_('Unknown auth_type: %s'), htmlspecialchars($ldapserver->auth_type)));
|
||||
error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($ldapserver->auth_type)),'error','index.php');
|
||||
|
||||
system_message(array(
|
||||
'title'=>_('Logout'),
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/mass_delete.php,v 1.17.2.2 2008/01/13 05:37:01 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/mass_delete.php,v 1.17.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Enables user to mass delete multiple entries using checkboxes.
|
||||
@ -19,23 +19,23 @@
|
||||
|
||||
require './common.php';
|
||||
|
||||
if( $ldapserver->isReadOnly() )
|
||||
pla_error(_('Unable to delete, server is in READY-ONLY mode.'));
|
||||
if ($ldapserver->isReadOnly())
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_delete', 'mass_delete'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete mass entries')));
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_delete','mass_delete'))
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete mass entries')),'error','index.php');
|
||||
|
||||
$confirmed = isset($_POST['confirmed']) ? true : false;
|
||||
isset($_POST['mass_delete']) or
|
||||
pla_error(_('Error calling mass_delete.php. Missing mass_delete in POST vars.'));
|
||||
error(_('Error calling mass_delete.php. Missing mass_delete in POST vars.'),'error','index.php');
|
||||
|
||||
$mass_delete = $_POST['mass_delete'];
|
||||
|
||||
is_array($mass_delete) or
|
||||
pla_error(_('mass_delete POST var is not an array.'));
|
||||
error(_('mass_delete POST var is not an array.'),'error','index.php');
|
||||
|
||||
$ldapserver->isMassDeleteEnabled() or
|
||||
pla_error(_('Mass deletion is not enabled. Please enable it in config.php before proceeding.'));
|
||||
error(_('Mass deletion is not enabled. Please enable it in config.php before proceeding.'),'error','index.php');
|
||||
|
||||
printf('<h3 class="title">%s</h3>',_('Mass Deleting'));
|
||||
|
||||
@ -48,7 +48,7 @@ if ($confirmed == true) {
|
||||
$failed_dns = array();
|
||||
|
||||
if (! is_array($mass_delete))
|
||||
pla_error(_('Malformed mass_delete array.'));
|
||||
error(_('Malformed mass_delete array.'),'error','index.php');
|
||||
|
||||
if (count($mass_delete) == 0) {
|
||||
echo '<br />';
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/modify_member_form.php,v 1.5.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/modify_member_form.php,v 1.5.2.6 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Displays a form to allow the user to modify group members.
|
||||
@ -18,12 +18,12 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
if (! $ldapserver->haveAuthInfo())
|
||||
pla_error(_('Not enough information to login to server. Please check your configuration.'));
|
||||
error(_('Not enough information to login to server. Please check your configuration.'),'error','index.php');
|
||||
|
||||
$attr = $_GET['attr'];
|
||||
$dn = isset($_GET['dn']) ? $_GET['dn'] : null;
|
||||
$attr = get_request('attr','GET');
|
||||
$dn = get_request('dn','GET');
|
||||
$encoded_dn = rawurlencode($dn);
|
||||
$encoded_attr = rawurlencode($attr);
|
||||
|
||||
@ -39,7 +39,7 @@ if ($current_members)
|
||||
else
|
||||
$num_current_members = 0;
|
||||
|
||||
sort($current_members);
|
||||
usort($current_members,'pla_compare_dns');
|
||||
|
||||
# Loop through all base dn's and search possible member entries
|
||||
foreach ($ldapserver->getBaseDN() as $base_dn) {
|
||||
@ -74,6 +74,7 @@ printf('<h3 class="subtitle">%s <b>%s</b> %s: <b>%s</b></h3>'
|
||||
printf('%s <b>%s</b> %s <b>%s</b>:',
|
||||
_('There are'),$num_current_members,_('members in group'),htmlspecialchars($rdn));
|
||||
|
||||
$possible_members = array();
|
||||
for ($i=0; $i<count($possible_values); $i++) {
|
||||
if (preg_match("/^$attr$/i",$_SESSION[APPCONFIG]->GetValue('modify_member','posixgroupattr')))
|
||||
$possible_members[$i] = $possible_values[$i][$_SESSION[APPCONFIG]->GetValue('modify_member','posixattr')];
|
||||
@ -81,7 +82,7 @@ for ($i=0; $i<count($possible_values); $i++) {
|
||||
$possible_members[$i] = $possible_values[$i][$_SESSION[APPCONFIG]->GetValue('modify_member','attr')];
|
||||
}
|
||||
|
||||
sort($possible_members);
|
||||
usort($possible_members,'pla_compare_dns');
|
||||
|
||||
/*
|
||||
* Show only user that are not already in group.
|
||||
@ -110,8 +111,8 @@ echo '<input type="hidden" name="cmd" value="update_confirm" />';
|
||||
echo '<table class="modify_members">';
|
||||
|
||||
echo '<tr>';
|
||||
printf('<td><img src="images/user.png" alt="Users" /> %s</td>',_('Available members'));
|
||||
printf('<td><img src="images/uniquegroup.png" alt="Members" /> %s</td>',_('Group members'));
|
||||
printf('<td><img src="%s/user.png" alt="Users" /> %s</td>',IMGDIR,_('Available members'));
|
||||
printf('<td><img src="%s/uniquegroup.png" alt="Members" /> %s</td>',IMGDIR,_('Group members'));
|
||||
echo '</tr>';
|
||||
|
||||
# Generate select box from all possible members
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/password_checker.php,v 1.10.2.1 2008/01/13 05:37:01 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/password_checker.php,v 1.10.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -11,6 +11,7 @@ require './common.php';
|
||||
include HTDOCDIR.'header.php';
|
||||
|
||||
echo '<body>';
|
||||
$entry = array();
|
||||
$entry['hash'] = get_request('hash','REQUEST');
|
||||
$entry['password'] = get_request('check_password','REQUEST');
|
||||
$entry['action'] = get_request('action','REQUEST');
|
||||
@ -34,7 +35,7 @@ echo '<table class="forminput" width=100% border=0>';
|
||||
echo '<tr>';
|
||||
printf('<td class="heading">%s</td>',_('Compare'));
|
||||
printf('<td><input type="%s" name="hash" id="hash" value="%s" /></td>',
|
||||
$entry['enc_type'] ? 'text' : 'password',htmlspecialchars($entry['hash']));
|
||||
(obfuscate_password_display($entry['enc_type']) ? 'password' : 'text'),htmlspecialchars($entry['hash']));
|
||||
echo '</tr>';
|
||||
|
||||
echo '<tr>';
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/purge_cache.php,v 1.9.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/purge_cache.php,v 1.9.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -10,7 +10,7 @@
|
||||
require './common.php';
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('purge'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('purge')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('purge')),'error','index.php');
|
||||
|
||||
$purge_session_keys = array('cache');
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rdelete.php,v 1.28.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rdelete.php,v 1.28.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Recursively deletes the specified DN and all of its children
|
||||
@ -15,17 +15,18 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_delete', 'simple_delete'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete entry')));
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_delete','simple_delete'))
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete entry')),'error','index.php');
|
||||
|
||||
$entry['dn'] = $_POST['dn'];
|
||||
$entry = array();
|
||||
$entry['dn'] = get_request('dn');
|
||||
if (! $entry['dn'])
|
||||
pla_error(_('You must specify a DN'));
|
||||
error(_('You must specify a DN'),'error','index.php');
|
||||
|
||||
if (! $ldapserver->dnExists($entry['dn']))
|
||||
pla_error(sprintf(_('No such entry: %s'),htmlspecialchars($entry['dn'])));
|
||||
error(sprintf('%s (%s)',_('No such entry.'),htmlspecialchars($entry['dn'])),'error','index.php');
|
||||
|
||||
printf('<h3 class="title">'._('Deleting %s').'</h3>',htmlspecialchars(get_rdn($entry['dn'])));
|
||||
printf('<h3 class="subtitle">%s</h3>',_('Recursive delete progress'));
|
||||
@ -42,8 +43,10 @@ if ($result) {
|
||||
printf(_('Entry %s and sub-tree deleted successfully.'),'<b>'.htmlspecialchars($entry['dn']).'</b>');
|
||||
|
||||
} else {
|
||||
pla_error(sprintf(_('Could not delete the entry: %s'),htmlspecialchars($entry['dn'])),
|
||||
$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($entry['dn'])),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
}
|
||||
|
||||
function pla_rdelete($ldapserver,$dn) {
|
||||
@ -60,8 +63,10 @@ function pla_rdelete($ldapserver,$dn) {
|
||||
return true;
|
||||
|
||||
} else {
|
||||
pla_error(sprintf(_('Failed to delete entry %s'),htmlspecialchars($dn)),
|
||||
$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($entry['dn'])),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
}
|
||||
|
||||
} else {
|
||||
@ -77,8 +82,10 @@ function pla_rdelete($ldapserver,$dn) {
|
||||
return true;
|
||||
|
||||
} else {
|
||||
pla_error(sprintf(_('Failed to delete entry %s'),htmlspecialchars($dn)),
|
||||
$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($entry['dn'])),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/refresh.php,v 1.18.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/refresh.php,v 1.18.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* This script alters the session variable 'tree', by re-querying
|
||||
@ -14,7 +14,7 @@
|
||||
require './common.php';
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('server_refresh'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('refresh server')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('refresh server')),'error','index.php');
|
||||
|
||||
unset($_SESSION['cache'][$ldapserver->server_id]['tree']);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rename.php,v 1.33.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rename.php,v 1.33.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Renames a DN to a different name.
|
||||
@ -18,25 +18,25 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_rename'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('rename entry')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('rename entry')),'error','index.php');
|
||||
|
||||
$dn = ($_POST['dn']);
|
||||
$dn = get_request('dn');
|
||||
if (! $ldapserver->isBranchRenameEnabled()) {
|
||||
# we search all children, not only the visible children in the tree
|
||||
$children = $ldapserver->getContainerContents($dn);
|
||||
if (count($children) > 0)
|
||||
pla_error(_('You cannot rename an entry which has children entries (eg, the rename operation is not allowed on non-leaf entries)'));
|
||||
error(_('You cannot rename an entry which has children entries (eg, the rename operation is not allowed on non-leaf entries)'),'error','index.php');
|
||||
}
|
||||
|
||||
$new_rdn = ($_POST['new_rdn']);
|
||||
$new_rdn = get_request('new_rdn');
|
||||
$container = get_container($dn);
|
||||
$new_dn = sprintf('%s,%s',$new_rdn,$container);
|
||||
|
||||
if ($new_dn == $dn)
|
||||
pla_error(_('You did not change the RDN'));
|
||||
error(_('You did not change the RDN'),'error','index.php');
|
||||
|
||||
$old_dn_attr = explode('=',$dn);
|
||||
$old_dn_attr = $old_dn_attr[0];
|
||||
@ -44,7 +44,7 @@ $old_dn_attr = $old_dn_attr[0];
|
||||
$new_dn_value = explode('=',$new_rdn,2);
|
||||
|
||||
if (count($new_dn_value) != 2 || ! isset($new_dn_value[1]))
|
||||
pla_error(_('Invalid RDN value'));
|
||||
error(_('Invalid RDN value'),'error','index.php');
|
||||
|
||||
$new_dn_attr = $new_dn_value[0];
|
||||
$new_dn_value = $new_dn_value[1];
|
||||
@ -58,7 +58,7 @@ if ($success) {
|
||||
$success = $ldapserver->rename($dn,$new_rdn,$container,$deleteoldrdn);
|
||||
|
||||
} else {
|
||||
pla_error(_('Could not rename the entry') );
|
||||
error(_('Could not rename the entry'),'error','index.php');
|
||||
}
|
||||
|
||||
if ($success) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rename_form.php,v 1.11.2.1 2008/01/13 05:37:01 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rename_form.php,v 1.11.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Displays a form for renaming an LDAP entry.
|
||||
@ -17,9 +17,9 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
if (! $ldapserver->haveAuthInfo())
|
||||
pla_error(_('Not enough information to login to server. Please check your configuration.'));
|
||||
error(_('Not enough information to login to server. Please check your configuration.'),'error','index.php');
|
||||
|
||||
$dn = $_GET['dn'];
|
||||
$rdn = get_rdn($dn);
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/schema.php,v 1.67.2.4 2008/01/28 20:58:08 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/schema.php,v 1.67.2.7 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Displays the schema for the specified server_id
|
||||
@ -17,8 +17,9 @@
|
||||
require './common.php';
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('schema'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('view schema')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('view schema')),'error','index.php');
|
||||
|
||||
$entry = array();
|
||||
$entry['view'] = get_request('view','GET','false','objectClasses');
|
||||
$entry['value'] = get_request('viewvalue','GET');
|
||||
|
||||
@ -63,7 +64,7 @@ echo '<br />';
|
||||
switch($entry['view']) {
|
||||
|
||||
case 'syntaxes':
|
||||
$highlight_oid = isset($_GET['highlight_oid']) ? $_GET['highlight_oid'] : false;
|
||||
$highlight_oid = get_request('highlight_oid','GET',false,false);
|
||||
|
||||
echo '<center>';
|
||||
print '<table class="result_table" border=0>';
|
||||
@ -73,7 +74,7 @@ switch($entry['view']) {
|
||||
|
||||
$schema_syntaxes = $ldapserver->SchemaSyntaxes(null,true);
|
||||
if (! $schema_syntaxes)
|
||||
pla_error($schema_error_str);
|
||||
error($schema_error_str,'error','index.php');
|
||||
|
||||
foreach ($schema_syntaxes as $syntax) {
|
||||
$counter++;
|
||||
@ -108,14 +109,15 @@ switch($entry['view']) {
|
||||
'usage' => _('Usage'),
|
||||
'maximum_length' => _('Maximum Length'),
|
||||
'aliases' => _('Aliases'),
|
||||
'used_by_objectclasses' => _('Used by objectClasses')
|
||||
'used_by_objectclasses' => _('Used by objectClasses'),
|
||||
'force_as_may' => _('Force as MAY by config')
|
||||
);
|
||||
|
||||
$schema_attrs = $ldapserver->SchemaAttributes();
|
||||
$schema_object_classes = $ldapserver->SchemaObjectClasses();
|
||||
|
||||
if (! $schema_attrs || ! $schema_object_classes)
|
||||
pla_error($schema_error_str);
|
||||
error($schema_error_str,'error','index.php');
|
||||
|
||||
printf('<small>%s:</small>',_('Jump to an attribute type'));
|
||||
echo '<form action="cmd.php" method="get">';
|
||||
@ -279,6 +281,10 @@ switch($entry['view']) {
|
||||
print '</td>';
|
||||
break;
|
||||
|
||||
case 'force_as_may':
|
||||
printf('<td>%s</td>',$attr->forced_as_may ? _('Yes') : _('No'));
|
||||
break;
|
||||
|
||||
}
|
||||
print '</tr>';
|
||||
}
|
||||
@ -292,7 +298,7 @@ switch($entry['view']) {
|
||||
case 'matching_rules':
|
||||
$schema_matching_rules = $ldapserver->MatchingRules(null,true);
|
||||
if (! $schema_matching_rules)
|
||||
pla_error($schema_error_str);
|
||||
error($schema_error_str,'error','index.php');
|
||||
|
||||
printf('<small>%s</small><br />',_('Jump to a matching rule'));
|
||||
|
||||
@ -371,7 +377,7 @@ switch($entry['view']) {
|
||||
case 'objectClasses':
|
||||
$schema_oclasses = $ldapserver->SchemaObjectClasses();
|
||||
if (! $schema_oclasses)
|
||||
pla_error($schema_error_str);
|
||||
error($schema_error_str,'error','index.php');
|
||||
|
||||
printf('<small>%s:</small>',_('Jump to an objectClass'));
|
||||
|
||||
@ -485,6 +491,11 @@ switch($entry['view']) {
|
||||
$href = htmlspecialchars(sprintf($entry['href']['objectClasses'],strtolower($attr->getSource())));
|
||||
printf('<small>(%s <a href="%s">%s</a>)</small>',_('Inherited from'),$href,$attr->getSource());
|
||||
}
|
||||
|
||||
if ($oclass->isForceMay($attr->getName())) {
|
||||
echo '<br />';
|
||||
printf('<small>%s</small>',_('This attribute has been forced as a MAY attribute by the configuration'));
|
||||
}
|
||||
echo '</li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
@ -502,5 +513,5 @@ switch($entry['view']) {
|
||||
}
|
||||
|
||||
if (! is_null($entry['value']) && ! $entry['viewed'])
|
||||
pla_error(sprintf(_('No such schema item: "%s"'),htmlspecialchars($entry['value'])));
|
||||
error(sprintf(_('No such schema item: "%s"'),htmlspecialchars($entry['value'])),'error','index.php');
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/search.php,v 1.78.2.6 2008/01/27 11:57:38 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/search.php,v 1.78.2.8 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Perform LDAP searches and draw the advanced/simple search forms
|
||||
@ -24,6 +24,7 @@ define('SIZE_LIMIT_EXCEEDED',4);
|
||||
$result_formats = array('list','table');
|
||||
|
||||
# Our incoming variables
|
||||
$entry = array();
|
||||
$entry['format'] = get_request('format','GET','false',$_SESSION[APPCONFIG]->GetValue('search','display'));
|
||||
$entry['form'] = get_request('form','GET',false,get_request('form','SESSION'));
|
||||
|
||||
@ -117,15 +118,15 @@ echo '<br />';
|
||||
if ($entry['search']) {
|
||||
if ($entry['form'] == 'advanced') {
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('search','advanced_search'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('advanced search')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('advanced search')),'error','index.php');
|
||||
|
||||
} elseif ($entry['form'] == 'predefined') {
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('search','predefined_search'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('predefined search')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('predefined search')),'error','index.php');
|
||||
|
||||
} elseif ($entry['form'] == 'simple') {
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('search','simple_search'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('simple search')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('simple search')),'error','index.php');
|
||||
}
|
||||
|
||||
if ($entry['form'] == 'advanced') {
|
||||
@ -247,7 +248,10 @@ if ($entry['search']) {
|
||||
$entry['scope'],$entry['orderby']['array'],$_SESSION[APPCONFIG]->GetValue('deref','search'));
|
||||
|
||||
if ((! $results) && $ldapserver->errno())
|
||||
pla_error(_('Encountered an error while performing search.'),$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Encountered an error while performing search.'),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
|
||||
$errno = $ldapserver->errno();
|
||||
|
||||
@ -269,11 +273,11 @@ if ($entry['search']) {
|
||||
$href = htmlspecialchars(sprintf('cmd.php?cmd=export_form&server_id=%s&scope=%s&dn=%s&filter=%s&attributes=%s',
|
||||
$ldapserver->server_id,$entry['scope'],$base_dn,rawurlencode($entry['filter']['clean']),rawurlencode(join(', ',$search_result_attributes))));
|
||||
|
||||
printf('<td style="text-align: right"><small>[ <a href="%s"><img src="images/save.png" alt="Save" /> %s</a> ]',
|
||||
$href,_('export results'));
|
||||
printf('<td style="text-align: right"><small>[ <a href="%s"><img src="%s/save.png" alt="Save" /> %s</a> ]',
|
||||
$href,IMGDIR,_('export results'));
|
||||
}
|
||||
|
||||
printf('[ <img src="images/rename.png" alt="rename" /> %s%s',_('Format'),_(':'));
|
||||
printf('[ <img src="%s/rename.png" alt="rename" /> %s%s',IMGDIR,_('Format'),_(':'));
|
||||
|
||||
foreach ($result_formats as $f) {
|
||||
echo ' ';
|
||||
@ -380,7 +384,7 @@ if ($entry['search']) {
|
||||
elseif ($entry['format'] == 'table')
|
||||
require LIBDIR.'search_results_table.php';
|
||||
else
|
||||
pla_error(sprintf(_('Unrecognized search result format: %s'),htmlspecialchars($entry['format'])));
|
||||
error(sprintf(_('Unrecognized search result format: %s'),htmlspecialchars($entry['format'])),'error','index.php');
|
||||
|
||||
echo '<br />';
|
||||
if (trim($pager_html))
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/server_info.php,v 1.27.2.2 2008/01/13 05:37:01 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/server_info.php,v 1.27.2.4 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Fetches and displays all information that it can from the specified server
|
||||
@ -13,7 +13,7 @@
|
||||
*/
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('server_info'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('view server informations')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('view server information')),'error','index.php');
|
||||
|
||||
# The attributes we'll examine when searching the LDAP server's RootDSE
|
||||
$root_dse_attributes = array(
|
||||
@ -94,8 +94,8 @@ foreach ($attrs as $attr => $values) {
|
||||
print '<tr>';
|
||||
|
||||
if (preg_match('/^[0-9]+\.[0-9]+/',$value)) {
|
||||
printf('<td width=5%%><img src="images/rfc.png" title="%s" alt="%s" /></td>',
|
||||
htmlspecialchars($value), htmlspecialchars($value));
|
||||
printf('<td width=5%%><img src="%s/rfc.png" title="%s" alt="%s" /></td>',
|
||||
IMGDIR,htmlspecialchars($value), htmlspecialchars($value));
|
||||
|
||||
if ($oidtext = support_oid_to_text($value))
|
||||
if (isset($oidtext['ref']))
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/show_cache.php,v 1.3.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/show_cache.php,v 1.3.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* This script shows the contents of the cache for debugging purposes
|
||||
@ -11,6 +11,7 @@
|
||||
|
||||
require './common.php';
|
||||
|
||||
$entry = array();
|
||||
$entry['key'] = get_request('key','REQUEST');
|
||||
$entry['index'] = get_request('index','REQUEST');
|
||||
|
||||
@ -80,7 +81,7 @@ if (! $_SESSION[APPCONFIG]->GetValue('appearance','hide_debug_info')) {
|
||||
poststr += "&index=" + encodeURI(xx);
|
||||
}
|
||||
|
||||
obj.innerHTML = '<img src="images/ajax-spinner.gif" /> Loading...';
|
||||
obj.innerHTML = '<img src="<?php echo IMGDIR ?>/ajax-spinner.gif" /> Loading...';
|
||||
makePOSTRequest('cmd.php',poststr,'alertCacheContents','cancelCacheContents');
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/template_engine.php,v 1.45.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/template_engine.php,v 1.45.2.2 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Template render engine.
|
||||
@ -15,6 +15,7 @@
|
||||
|
||||
require_once './common.php';
|
||||
|
||||
$entry = array();
|
||||
$entry['dn']['encode'] = get_request('dn','REQUEST');
|
||||
$entry['dn']['string'] = rawurldecode($entry['dn']['encode']);
|
||||
$entry['template'] = get_request('template','REQUEST',false,'');
|
||||
@ -22,7 +23,7 @@ $entry['template'] = get_request('template','REQUEST',false,'');
|
||||
# If we have a DN, then this is to edit the entry.
|
||||
if ($entry['dn']['string']) {
|
||||
$ldapserver->dnExists($entry['dn']['string'])
|
||||
or pla_error(sprintf(_('No such entry: %s'),pretty_print_dn($entry['dn']['string'])));
|
||||
or error(sprintf('%s (%s)',_('No such entry'),pretty_print_dn($entry['dn']['string'])),'error','index.php');
|
||||
|
||||
$tree = get_cached_item($ldapserver->server_id,'tree');
|
||||
|
||||
@ -51,7 +52,7 @@ if ($entry['dn']['string']) {
|
||||
|
||||
} else {
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
# Create a new empty entry
|
||||
$entryfactoryclass = $_SESSION[APPCONFIG]->GetValue('appearance','entry_factory');
|
||||
|
@ -1,41 +0,0 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/timeout.php,v 1.5.2.1 2007/12/21 12:11:55 wurley Exp $
|
||||
|
||||
/**
|
||||
* Time out page to be displayed on the right frame
|
||||
*
|
||||
* Variables that come in as GET vars:
|
||||
* - server_id
|
||||
*
|
||||
* @package phpLDAPadmin
|
||||
*/
|
||||
|
||||
/**
|
||||
*/
|
||||
|
||||
require './common.php';
|
||||
|
||||
if (! isset($ldapserver)) {
|
||||
header("Location: index.php");
|
||||
die();
|
||||
}
|
||||
|
||||
include './header.php';
|
||||
|
||||
# If $session_timeout not defined, use ( session_cache_expire() - 1 )
|
||||
$session_timeout = $ldapserver->session_timeout ? $ldapserver->session_timeout : session_cache_expire()-1;
|
||||
?>
|
||||
|
||||
<h3 class="title"><?php echo $ldapserver->name; ?></h3>
|
||||
<br />
|
||||
<br />
|
||||
<center>
|
||||
<b><?php printf('%s %s %s',_('Your Session timed out after'),$session_timeout,_('min. of inactivity. You have been automatically logged out.')); ?></b>
|
||||
<br />
|
||||
<br />
|
||||
<?php echo _('To log back in please click on the following link:'); ?><br />
|
||||
<a href="cmd.php?cmd=login_form&server_id=<?php echo $ldapserver->server_id; ?>"><?php echo _('Login...'); ?></a>
|
||||
</center>
|
||||
|
||||
</body>
|
||||
</html>
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update.php,v 1.29.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update.php,v 1.29.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Updates or deletes a value from a specified attribute for a specified dn.
|
||||
@ -26,24 +26,25 @@
|
||||
|
||||
require './common.php';
|
||||
|
||||
$entry = array();
|
||||
$entry['dn']['string'] = get_request('dn');
|
||||
$entry['dn']['encode'] = rawurlencode($entry['dn']['string']);
|
||||
|
||||
# If cancel was submited, got back to the edit display.
|
||||
if (isset($_REQUEST['cancel'])) {
|
||||
if (get_request('cancel','REQUEST')) {
|
||||
header(sprintf('Location: cmd.php?cmd=template_engine&server_id=%s&dn=%s',$ldapserver->server_id,$entry['dn']['encode']));
|
||||
die();
|
||||
}
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
$entry['update'] = get_request('update_array','POST',false,array());
|
||||
$entry['skip'] = get_request('skip_array','POST',false,array());
|
||||
$failed_attrs = array();
|
||||
|
||||
if (! is_array($entry['update']))
|
||||
pla_error(_('update_array is malformed. This might be a phpLDAPadmin bug. Please report it.'));
|
||||
error(_('update_array is malformed. This might be a phpLDAPadmin bug. Please report it.'),'error','index.php');
|
||||
|
||||
run_hook ('pre_update',
|
||||
array('server_id'=>$ldapserver->server_id,'dn'=>$entry['dn']['string'],'update_array'=>$entry['update']));
|
||||
@ -58,13 +59,14 @@ foreach ($entry['update'] as $attr => $val) {
|
||||
$entry['update'][$attr] = array();
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_delete'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete attribute')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('delete attribute')),'error','index.php');
|
||||
|
||||
} else { # Skip change
|
||||
$entry['update'][$attr] = $val;
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value')
|
||||
&& ! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_delete_value'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('modify attribute values')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('modify attribute values')),'error','index.php');
|
||||
}
|
||||
|
||||
} else {
|
||||
@ -77,7 +79,7 @@ foreach ($entry['update'] as $attr => $val) {
|
||||
|
||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value')
|
||||
&& ! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_delete_value'))
|
||||
pla_error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('modify attribute values')));
|
||||
error(sprintf('%s%s %s',_('This operation is not permitted by the configuration'),_(':'),_('modify attribute values')),'error','index.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -89,8 +91,8 @@ foreach ($entry['update'] as $attr_name => $val) {
|
||||
$href['search'] = sprintf('cmd.php?cmd=search&search=true&form=advanced&server_id=%s&filter=%s=%s',
|
||||
$ldapserver->server_id,$attr_name,$badattr);
|
||||
|
||||
pla_error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href="%s">search</a> for that entry.'),
|
||||
$attr_name,$badattr,$entry['dn']['string'],$href['search']));
|
||||
error(sprintf(_('Your attempt to add <b>%s</b> (<i>%s</i>) to <br><b>%s</b><br> is NOT allowed. That attribute/value belongs to another entry.<p>You might like to <a href="%s">search</a> for that entry.'),
|
||||
$attr_name,$badattr,$entry['dn']['string'],$href['search']),'error','index.php');
|
||||
}
|
||||
|
||||
if (run_hook('pre_attr_modify',
|
||||
@ -100,8 +102,9 @@ foreach ($entry['update'] as $attr_name => $val) {
|
||||
$failed_attrs[$attr_name] = $val;
|
||||
|
||||
} elseif ($ldapserver->isAttrReadOnly($attr)) {
|
||||
pla_error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),
|
||||
htmlspecialchars($attr_name)));
|
||||
error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),
|
||||
htmlspecialchars($attr_name)),'error','index.php');
|
||||
|
||||
} else {
|
||||
// binary values
|
||||
if (isset($_SESSION['submitform'][$attr_name])) {
|
||||
@ -175,6 +178,9 @@ if ($result) {
|
||||
die();
|
||||
|
||||
} else {
|
||||
pla_error(_('Could not perform ldap_modify operation.'),$ldapserver->error(),$ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Could not perform ldap_modify operation.'),
|
||||
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
}
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update_confirm.php,v 1.49.2.3 2008/01/13 05:37:01 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update_confirm.php,v 1.49.2.4 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Takes the results of clicking "Save" in template_engine.php and determines which
|
||||
@ -16,17 +16,18 @@
|
||||
require './common.php';
|
||||
|
||||
if ($ldapserver->isReadOnly())
|
||||
pla_error(_('You cannot perform updates while server is in read-only mode'));
|
||||
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||
|
||||
/***************/
|
||||
/* get entry */
|
||||
/***************/
|
||||
|
||||
$entry = array();
|
||||
$entry['dn']['string'] = get_request('dn');
|
||||
$entry['dn']['encode'] = rawurlencode($entry['dn']['string']);
|
||||
|
||||
if (! $entry['dn']['string'] || ! $ldapserver->dnExists($entry['dn']['string']))
|
||||
pla_error(sprintf(_('The entry (%s) does not exist.'),htmlspecialchars($entry['dn']['string'])),null,-1,true);
|
||||
error(sprintf(_('The entry (%s) does not exist.'),htmlspecialchars($entry['dn']['string'])),'error','index.php');
|
||||
|
||||
$tree = get_cached_item($ldapserver->server_id,'tree');
|
||||
$entry['ldap'] = null;
|
||||
@ -40,7 +41,7 @@ if ($tree) {
|
||||
}
|
||||
|
||||
if (! $entry['ldap'] || $entry['ldap']->isReadOnly())
|
||||
pla_error(sprintf(_('The entry (%s) is in readonly mode.'),htmlspecialchars($entry['dn']['string'])),null,-1,true);
|
||||
error(sprintf(_('The entry (%s) is in readonly mode.'),htmlspecialchars($entry['dn']['string'])),'error','index.php');
|
||||
|
||||
/***************/
|
||||
/* old values */
|
||||
@ -96,9 +97,9 @@ $attr_to_delete = array();
|
||||
|
||||
// if objectClass attribute is modified
|
||||
if (isset($entry['values']['new']['objectClass'])) {
|
||||
if (!isset($entry['values']['old']['objectClass'])) {
|
||||
pla_error(_('An entry should have one structural objectClass.'));
|
||||
}
|
||||
if (!isset($entry['values']['old']['objectClass']))
|
||||
error(_('An entry should have one structural objectClass.'),'error','index.php');
|
||||
|
||||
// deleted objectClasses
|
||||
foreach ($entry['values']['old']['objectClass'] as $oldOC) {
|
||||
if (!in_array($oldOC, $entry['values']['new']['objectClass'])) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/view_jpeg_photo.php,v 1.11.2.1 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/view_jpeg_photo.php,v 1.11.2.3 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -9,27 +9,29 @@
|
||||
|
||||
require './common.php';
|
||||
|
||||
$file = array();
|
||||
$file['name'] = get_request('file','GET');
|
||||
|
||||
/* Security check (we don't want anyone tryting to get at /etc/passwd or something)
|
||||
* Slashes and dots are not permitted in these names.
|
||||
*/
|
||||
if (! preg_match('/^pla/',$file['name']) || preg_match('/[\.\/\\\\]/',$file['name']))
|
||||
pla_error(sprintf('%s: %s',_('Unsafe file name'),htmlspecialchars($file['name'])));
|
||||
error(sprintf('%s: %s',_('Unsafe file name'),htmlspecialchars($file['name'])),'error','index.php');
|
||||
|
||||
/* Little security measure here (prevents users from accessing
|
||||
files, like /etc/passwd for example).*/
|
||||
$file['name'] = basename(addcslashes($file['name'],'/\\'));
|
||||
$file['name'] = sprintf('%s/%s',$_SESSION[APPCONFIG]->GetValue('jpeg','tmpdir'),$file['name']);
|
||||
if (! file_exists($file['name']))
|
||||
pla_error(sprintf('%s%s %s',_('No such file'),_(':'),htmlspecialchars($file['name'])));
|
||||
error(sprintf('%s%s %s',_('No such file'),_(':'),htmlspecialchars($file['name'])),'error','index.php');
|
||||
|
||||
$file['handle'] = fopen($file['name'],'r');
|
||||
$file['data'] = fread($file['handle'],filesize($file['name']));
|
||||
fclose($file['handle']);
|
||||
|
||||
if (ob_get_level())
|
||||
ob_clean();
|
||||
$obStatus = ob_get_status();
|
||||
if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status'])
|
||||
ob_end_clean();
|
||||
|
||||
Header('Content-type: image/jpeg');
|
||||
Header('Content-disposition: inline; filename=jpeg_photo.jpg');
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/welcome.php,v 1.26.2.2 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/welcome.php,v 1.26.2.4 2008/12/12 08:41:30 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -13,7 +13,7 @@ require './common.php';
|
||||
|
||||
echo '<center>';
|
||||
echo '<br /><br />';
|
||||
printf('<img src="images/logo.jpg" title="%s" alt="%s" />',_('phpLDAPadmin logo'),_('phpLDAPadmin logo'));
|
||||
printf('<img src="%s/logo.png" title="%s" alt="%s" />',IMGDIR,_('phpLDAPadmin logo'),_('phpLDAPadmin logo'));
|
||||
echo '<br /><br />';
|
||||
echo _('Use the menu to the left to navigate');
|
||||
echo '<br /><br />';
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/AJAXTree.php,v 1.2 2007/12/15 07:50:31 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/AJAXTree.php,v 1.2.2.2 2008/12/12 06:46:15 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -101,7 +101,7 @@ class AJAXTree extends PLMTree {
|
||||
}
|
||||
|
||||
echo '<a href="'.$edit_href.'" onclick="return displayMainPage(\''.$edit_href_params.'\');" title="'.$dn.'" >';
|
||||
echo '<img align="top" border="0" class="imgs" id="jt'.$node_id.'folder" src="images/'.$entry->getIcon($ldapserver).'" alt="->" />';
|
||||
printf('<img align="top" border="0" class="imgs" id="jt%sfolder" src="%s/%s" alt="->" />',$node_id,IMGDIR,$entry->getIcon($ldapserver));
|
||||
echo '</a>';
|
||||
echo ' ';
|
||||
echo '<a href="'.$edit_href.'" onclick="return displayMainPage(\''.$edit_href_params.'\');" title="'.$dn.'" class="phplm">';
|
||||
@ -131,6 +131,10 @@ class AJAXTree extends PLMTree {
|
||||
$first_child = $this->get_plm_before_first_child($parent_entry,$code);
|
||||
$last_child = $this->get_plm_after_last_child($parent_entry,$code);
|
||||
|
||||
# If compression is on, we need to compress this output - but only if called by draw_tree_node
|
||||
if (function_exists('isCompress') && isCompress() && get_request('cmd','REQUEST') == 'draw_tree_node')
|
||||
ob_start();
|
||||
|
||||
echo $first_child;
|
||||
|
||||
for ($i=0; $i<count($children); $i++) {
|
||||
@ -141,6 +145,12 @@ class AJAXTree extends PLMTree {
|
||||
}
|
||||
|
||||
echo $last_child;
|
||||
|
||||
# If compression is on, we need to compress this output
|
||||
if (function_exists('isCompress') && isCompress() && get_request('cmd','REQUEST') == 'draw_tree_node') {
|
||||
$output = ob_get_clean();
|
||||
echo gzencode($output);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -272,7 +282,7 @@ class AJAXTree extends PLMTree {
|
||||
}
|
||||
//folderLayer.src = \'js/phplayersmenu/menuimages/tree_folder_open.png\';
|
||||
//folderLayer.src = \'js/phplayersmenu/menuimages/tree_folder_closed.png\';
|
||||
nodeLayer.src = \'images/ajax-spinner.gif\';
|
||||
nodeLayer.src = \''.IMGDIR.'ajax-spinner.gif\';
|
||||
|
||||
// perform action
|
||||
if (action == 2) {
|
||||
@ -310,7 +320,7 @@ class AJAXTree extends PLMTree {
|
||||
}
|
||||
function displayMainPage(urlParameters) {
|
||||
var mainPageDiv = getMainPageDiv();
|
||||
if (mainPageDiv) includeHTML(mainPageDiv, \'<img src="images/ajax-progress.gif"><br><small>'._('Retrieving DN').'...<\/small>\');
|
||||
if (mainPageDiv) includeHTML(mainPageDiv, \'<img src="'.IMGDIR.'ajax-progress.gif"><br><small>'._('Retrieving DN').'...<\/small>\');
|
||||
makeGETRequest(\'cmd.php\', urlParameters+\'&meth=get_body\', \'alertMainPage\', \'cancelMainPage\');
|
||||
return false;
|
||||
}
|
||||
@ -337,7 +347,7 @@ class AJAXTree extends PLMTree {
|
||||
$output .= $this->get_indentation($level);
|
||||
$output .= '<img align="top" border="0" class="imgs" src="js/phplayersmenu/menuimages/tree_split.png" alt="--" />';
|
||||
$output .= '<a href="'.htmlspecialchars($href).'" title="'.$entry->getDn().'">';
|
||||
$output .= '<img align="top" border="0" class="imgs" src="images/star.png" alt="->" />';
|
||||
$output .= sprintf('<img align="top" border="0" class="imgs" src="%s/star.png" alt="->" />',IMGDIR);
|
||||
$output .= '</a>';
|
||||
$output .= ' ';
|
||||
$output .= '<a href="'.htmlspecialchars($href).'" title="'._('Create new entry here').'" class="phplm">';
|
||||
@ -361,7 +371,7 @@ class AJAXTree extends PLMTree {
|
||||
$output .= $this->get_indentation($level);
|
||||
$output .= '<img align="top" border="0" class="imgs" src="js/phplayersmenu/menuimages/tree_corner.png" alt="--" />';
|
||||
$output .= '<a href="'.htmlspecialchars($href).'" title="'.$entry->getDn().'">';
|
||||
$output .= '<img align="top" border="0" class="imgs" src="images/star.png" alt="->" />';
|
||||
$output .= sprintf('<img align="top" border="0" class="imgs" src="%s/star.png" alt="->" />',IMGDIR);
|
||||
$output .= '</a>';
|
||||
$output .= ' ';
|
||||
$output .= '<a href="'.htmlspecialchars($href).'" title="'._('Create new entry here').'" class="phplm">';
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/Attribute.php,v 1.2.2.2 2007/12/26 09:26:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/Attribute.php,v 1.2.2.3 2008/11/28 23:26:51 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -253,10 +253,7 @@ class Attribute {
|
||||
|
||||
public function isRdn() {
|
||||
if ($this->entry) {
|
||||
//$rdn = get_rdn($this->entry->getDn());
|
||||
//$attr = $this->name;
|
||||
//return preg_match("/^${attr}=/", $rdn);
|
||||
return ($this->name == $this->entry->getRdnAttributeName());
|
||||
return (preg_grep('/'.$this->name.'/',$this->entry->getRdnAttributeName()));
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/DefaultCreatingEntry.php,v 1.2.2.2 2007/12/29 08:24:10 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/DefaultCreatingEntry.php,v 1.2.2.3 2008/11/29 01:35:47 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -145,8 +145,8 @@ class DefaultCreatingEntry extends Entry {
|
||||
|
||||
public function getRdnAttributeName() {
|
||||
$attr = $this->getRdnAttribute();
|
||||
if ($attr) return $attr->getName();
|
||||
else return '';
|
||||
if ($attr) return array($attr->getName());
|
||||
else return array('');
|
||||
}
|
||||
|
||||
public function getRdnAttribute() {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/DefaultEditingEntry.php,v 1.2.2.2 2007/12/29 08:25:24 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/DefaultEditingEntry.php,v 1.2.2.3 2008/03/01 02:13:03 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -32,10 +32,20 @@ class DefaultEditingEntry extends Entry {
|
||||
if (!$int_attrs_vals) $int_attrs_vals = array();
|
||||
elseif (!is_array($int_attrs_vals)) $int_attrs_vals = array($int_attrs_vals);
|
||||
|
||||
$custom_int_attrs_vals = $ldapserver->getCustomDNSysAttrs($this->getDn());
|
||||
if (! $custom_int_attrs_vals) $attrs_vals = array();
|
||||
elseif (! is_array($custom_int_attrs_vals)) $custom_int_attrs_vals = array($custom_int_attrs_vals);
|
||||
|
||||
$attrs_vals = $ldapserver->getDNAttrs($this->getDn(),false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||
if (! $attrs_vals) $attrs_vals = array();
|
||||
elseif (! is_array($attrs_vals)) $attrs_vals = array($attrs_vals);
|
||||
|
||||
$custom_attrs_vals = $ldapserver->getCustomDNAttrs($this->getDn(),false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||
if (! $custom_attrs_vals) $attrs_vals = array();
|
||||
elseif (! is_array($custom_attrs_vals)) $custom_attrs_vals = array($custom_attrs_vals);
|
||||
|
||||
$int_attrs_vals = array_merge($int_attrs_vals,$custom_int_attrs_vals);
|
||||
$attrs_vals = array_merge($attrs_vals,$custom_attrs_vals);
|
||||
$attrs_vals = array_merge($attrs_vals, $int_attrs_vals);
|
||||
uksort($attrs_vals,'sortAttrs'); # Sort these entries
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/Entry.php,v 1.2.2.3 2008/01/27 07:23:43 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/Entry.php,v 1.2.2.4 2008/11/28 23:26:51 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -58,10 +58,17 @@ abstract class Entry {
|
||||
}
|
||||
|
||||
public function getRdnAttributeName() {
|
||||
$attr = '';
|
||||
$attr = array();
|
||||
if ($this->dn) {
|
||||
$i = strpos($this->dn, '=');
|
||||
if ($i !== false) $attr = substr($this->dn, 0, $i);
|
||||
$i = strpos($this->dn, ',');
|
||||
if ($i !== false) {
|
||||
$attrs = split('\+',substr($this->dn, 0, $i));
|
||||
foreach ($attrs as $id => $attr) {
|
||||
list ($name,$value) = split('=',$attr);
|
||||
$attrs[$id] = $name;
|
||||
}
|
||||
$attr = array_unique($attrs);
|
||||
}
|
||||
}
|
||||
return $attr;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/EntryReader.php,v 1.2.2.3 2008/01/27 14:09:14 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/EntryReader.php,v 1.2.2.5 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
define('ENTRY_READER_CREATION_CONTEXT', '1');
|
||||
define('ENTRY_READER_EDITING_CONTEXT', '2');
|
||||
@ -113,7 +113,11 @@ class EntryReader extends Visitor {
|
||||
// @todo editing objectclasses
|
||||
if (($this->context == ENTRY_READER_CREATION_CONTEXT) && ($name == 'objectClass')) return;
|
||||
|
||||
if ($this->context == ENTRY_READER_EDITING_CONTEXT)
|
||||
$old_vals = $this->get('OldValues', $attribute);
|
||||
else
|
||||
$old_vals = array();
|
||||
|
||||
$new_vals = $this->get('NewValues', $attribute);
|
||||
|
||||
if (isset($_POST['old_values'][$name])) {
|
||||
@ -205,7 +209,7 @@ class EntryReader extends Visitor {
|
||||
}
|
||||
|
||||
if (is_null($val)) {
|
||||
pla_error(sprintf(_('Your template is missing variable (%s)'), $request));
|
||||
error(sprintf(_('Your template is missing variable (%s)'),$request),'error','index.php');
|
||||
}
|
||||
|
||||
return $val;
|
||||
@ -255,7 +259,7 @@ class EntryReader extends Visitor {
|
||||
if (function_exists($matches[1])) {
|
||||
$val = call_user_func($matches[1], $matches[2], $attribute, $i, $val);
|
||||
} else {
|
||||
pla_error(sprintf(_('Your template has an unknown post function (%s).'), $matches[1]));
|
||||
error(sprintf(_('Your template has an unknown post function (%s).'),$matches[1]),'error','index.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/EntryWriter1.php,v 1.3.2.13 2008/01/28 11:40:16 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/EntryWriter1.php,v 1.3.2.30 2008/12/19 00:35:09 wurley Exp $
|
||||
|
||||
define('IdEntryRefreshMenuItem', '0');
|
||||
define('IdEntryExportBaseMenuItem', '1');
|
||||
@ -42,12 +42,12 @@ class EntryWriter1 extends EntryWriter {
|
||||
/**************************/
|
||||
|
||||
protected function drawEntryHeader($entry) {
|
||||
// title
|
||||
# Title
|
||||
$this->draw('Title', $entry);
|
||||
$this->draw('Subtitle', $entry);
|
||||
echo "\n";
|
||||
|
||||
// menu
|
||||
# Menu
|
||||
$this->draw('Menu', $entry);
|
||||
}
|
||||
|
||||
@ -56,13 +56,20 @@ class EntryWriter1 extends EntryWriter {
|
||||
protected function drawEntryMenu($entry) {}
|
||||
|
||||
protected function drawEntryJavascript($entry) {
|
||||
printf("\n<!-- START: %s -->\n",__METHOD__);
|
||||
|
||||
if (isset($_SESSION[APPCONFIG])) {
|
||||
echo '<script type="text/javascript" language="javascript">';
|
||||
echo 'var defaults = new Array();var default_date_format = "';
|
||||
echo $_SESSION[APPCONFIG]->GetValue('appearance', 'date');
|
||||
echo '";</script>';
|
||||
echo "\n";
|
||||
echo '<!-- 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 "\n";
|
||||
}
|
||||
|
||||
echo '<!-- START Global functions for general PLA processing. -->'."\n";
|
||||
echo '<script type="text/javascript" language="javascript">
|
||||
function pla_getComponentById(id) {
|
||||
return document.getElementById(id);
|
||||
@ -105,9 +112,8 @@ class EntryWriter1 extends EntryWriter {
|
||||
} else { // text, textarea
|
||||
component.value = value;
|
||||
}
|
||||
}</script>';
|
||||
}
|
||||
|
||||
echo '<script type="text/javascript" language="javascript">
|
||||
function getAttributeComponents(prefix, name) {
|
||||
var components = new Array();
|
||||
var i = 0;
|
||||
@ -128,6 +134,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
return components;
|
||||
}
|
||||
|
||||
function getAttributeValues(prefix, name) {
|
||||
var components = getAttributeComponents(prefix, name);
|
||||
var values = new Array();
|
||||
@ -136,26 +143,32 @@ class EntryWriter1 extends EntryWriter {
|
||||
if (val) values[values.length] = val;
|
||||
}
|
||||
return values;
|
||||
}</script>';
|
||||
}
|
||||
</script>'."\n";
|
||||
echo '<!-- END Global functions for general PLA processing. -->'."\n";
|
||||
echo "\n";
|
||||
|
||||
echo '<script type="text/javascript" language="javascript">
|
||||
function validateForm(silence) {
|
||||
var i = 0;
|
||||
var valid = true;
|
||||
var components = null;';
|
||||
var components = null;'."\n";
|
||||
|
||||
foreach ($entry->getAttributes() as $attribute) {
|
||||
if ($attribute->isVisible()) {
|
||||
echo 'components = getAttributeComponents("new", "'.$attribute->getName().'");
|
||||
if ($attribute->isVisible() && ($attribute->hasProperty('onchange')) || $attribute->isRequired()) {
|
||||
echo "\n";
|
||||
echo ' components = getAttributeComponents("new", "'.$attribute->getName().'");
|
||||
for (i = 0; i < components.length; i++) {
|
||||
if (window.validate_'.$attribute->getName().') {
|
||||
valid = (!validate_'.$attribute->getName().'(components[i], silence) || !valid) ? false : true;
|
||||
}
|
||||
}';
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
echo ' return valid;
|
||||
}
|
||||
</script>';
|
||||
</script>'."\n";
|
||||
|
||||
echo '<script type="text/javascript" language="javascript">
|
||||
function submitForm(form) {
|
||||
@ -167,7 +180,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
function alertError(err, silence) {
|
||||
if (!silence) alert(err);
|
||||
}
|
||||
</script>';
|
||||
</script>'."\n";
|
||||
|
||||
for ($i = 0; $i < count($this->shown_attributes); $i++) {
|
||||
$this->draw('Javascript', $this->shown_attributes[$i]);
|
||||
@ -175,7 +188,9 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
echo '<script type="text/javascript" language="javascript">
|
||||
validateForm(true);
|
||||
</script>';
|
||||
</script>'."\n";
|
||||
|
||||
printf("\n<!-- END: %s -->\n",__METHOD__);
|
||||
}
|
||||
|
||||
/********************************/
|
||||
@ -186,10 +201,10 @@ class EntryWriter1 extends EntryWriter {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Entered with (%s)',1,__FILE__,__LINE__,__METHOD__,$entry->getDn());
|
||||
|
||||
// init
|
||||
# Init
|
||||
$this->visit('Entry::Start', $entry);
|
||||
|
||||
// check
|
||||
# Check
|
||||
$container = $entry->getContainer();
|
||||
$container_ok = true;
|
||||
$objectclasses_ok = true;
|
||||
@ -205,17 +220,17 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
}
|
||||
|
||||
// header
|
||||
# Header
|
||||
$this->draw('Header', $entry);
|
||||
|
||||
// errors
|
||||
# Errors
|
||||
if (!$container_ok) {
|
||||
pla_error(sprintf(_('The container you specified (%s) does not exist.'),htmlspecialchars($container)), null, -1, false);
|
||||
error(sprintf(_('The container you specified (%s) does not exist.'),htmlspecialchars($container)),'error');
|
||||
echo '<br />';
|
||||
}
|
||||
|
||||
if (!$objectclasses_ok) {
|
||||
pla_error(_('You did not select any objectClasses for this object.'), null, -1, false);
|
||||
error(_('You did not select any objectClasses for this object.'),'error');
|
||||
echo '<br />';
|
||||
}
|
||||
}
|
||||
@ -318,7 +333,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
public function drawDefaultCreatingEntryStepFormEnd($entry, $step) {
|
||||
echo '</form>';
|
||||
|
||||
// javascript
|
||||
# Javascript
|
||||
$this->draw('Javascript', $entry);
|
||||
}
|
||||
|
||||
@ -381,13 +396,11 @@ class EntryWriter1 extends EntryWriter {
|
||||
protected function drawDefaultCreatingEntryShownAttributes($entry) {
|
||||
$attrs = array();
|
||||
|
||||
// put required attributes first
|
||||
foreach ($this->shown_attributes as $sa) {
|
||||
# Put required attributes first
|
||||
foreach ($this->shown_attributes as $sa)
|
||||
if ($sa->isRequired()) $attrs[] = $sa;
|
||||
}
|
||||
foreach ($this->shown_attributes as $sa) {
|
||||
foreach ($this->shown_attributes as $sa)
|
||||
if (!$sa->isRequired()) $attrs[] = $sa;
|
||||
}
|
||||
|
||||
$has_required_attrs = false;
|
||||
$has_optional_attrs = false;
|
||||
@ -409,7 +422,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
}
|
||||
|
||||
$this->draw('', $attr);
|
||||
$this->draw('',$attr,$entry);
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
@ -421,7 +434,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
protected function drawDefaultCreatingEntryHiddenAttributes($entry) {
|
||||
foreach ($this->hidden_attributes as $attr) {
|
||||
$this->draw('', $attr);
|
||||
$this->draw('',$attr,$entry);
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
@ -438,13 +451,13 @@ class EntryWriter1 extends EntryWriter {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Entered with (%s)',1,__FILE__,__LINE__,__METHOD__,$entry->getDn());
|
||||
|
||||
// init
|
||||
# Init
|
||||
$this->visit('Entry::Start', $entry);
|
||||
|
||||
// header
|
||||
# Header
|
||||
$this->draw('Header', $entry);
|
||||
|
||||
// form start
|
||||
# Form start
|
||||
if (! $entry->isReadOnly()) {
|
||||
echo '<form action="cmd.php?cmd=update_confirm" method="post" enctype="multipart/form-data" name="entry_form" onSubmit="return submitForm(this)">';
|
||||
printf('<input type="hidden" name="server_id" value="%s" />',$this->index);
|
||||
@ -459,21 +472,21 @@ class EntryWriter1 extends EntryWriter {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Entered with (%s)',1,__FILE__,__LINE__,__METHOD__,$entry->getDn());
|
||||
|
||||
// draw internal attributes
|
||||
# Draw internal attributes
|
||||
if (get_request('show_internal_attrs','REQUEST')) {
|
||||
$this->draw('InternalAttributes', $entry);
|
||||
echo "\n\n";
|
||||
}
|
||||
|
||||
// draw visible attributes
|
||||
# Draw visible attributes
|
||||
$this->draw('ShownAttributes', $entry);
|
||||
|
||||
// form end
|
||||
# Form end
|
||||
if (! $entry->isReadOnly()) {
|
||||
$this->draw('FormSubmitButton', $entry);
|
||||
echo '</table>';
|
||||
|
||||
// draw hidden attributes
|
||||
# Draw hidden attributes
|
||||
$this->draw('HiddenAttributes', $entry);
|
||||
|
||||
printf('</form>');
|
||||
@ -482,7 +495,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
printf('</table>');
|
||||
}
|
||||
|
||||
// javascript
|
||||
# Javascript
|
||||
$this->draw('Javascript', $entry);
|
||||
}
|
||||
|
||||
@ -631,13 +644,13 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
case IdEntryRenameMenuItem :
|
||||
if (!$entry->isReadOnly() && $config->isCommandAvailable('entry_rename')) {
|
||||
$rdnAttr = $entry->getAttribute($entry->getRdnAttributeName());
|
||||
if ($rdnAttr && $rdnAttr->isVisible() && !$rdnAttr->isReadOnly()) {
|
||||
foreach ($entry->getRdnAttributeName() as $rdnAttr) {
|
||||
$rdnAttr = $entry->getAttribute($rdnAttr);
|
||||
if ($rdnAttr && $rdnAttr->isVisible() && !$rdnAttr->isReadOnly())
|
||||
return $this->get('RenameMenuItem', $entry);
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
} else return '';
|
||||
}
|
||||
return '';
|
||||
|
||||
case IdEntryDeleteAttributeMessage :
|
||||
if ($config->GetValue('appearance', 'show_hints')
|
||||
@ -666,12 +679,12 @@ class EntryWriter1 extends EntryWriter {
|
||||
static $children_count = false;
|
||||
static $more_children = false;
|
||||
if ($children_count === false) {
|
||||
// visible children in the tree
|
||||
# Visible children in the tree
|
||||
$children_count = $entry->getChildrenNumber();
|
||||
// is there filtered children ?
|
||||
# Is there filtered children ?
|
||||
$more_children = $entry->isSizeLimited();
|
||||
if (!$more_children) {
|
||||
// all children in ldap
|
||||
# All children in ldap
|
||||
$all_children = $this->getLDAPServer()->getContainerContents(
|
||||
$entry->getDn(), $children_count + 1,
|
||||
'(objectClass=*)', $config->GetValue('deref','view'));
|
||||
@ -805,7 +818,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
|
||||
protected function getDefaultEditingEntryDeleteAttributeMessage($entry) {
|
||||
if ($_SESSION[APPCONFIG]->isCommandAvailable('attribute_delete_value'))
|
||||
if ($_SESSION[APPCONFIG]->isCommandAvailable('attribute_delete_value') && ! $entry->isReadOnly())
|
||||
return sprintf($this->hint_layout,_('Hint: To delete an attribute, empty the text field and click save.'));
|
||||
else
|
||||
return '';
|
||||
@ -830,7 +843,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
$counter = 0;
|
||||
|
||||
foreach ($this->internal_attributes as $attr) {
|
||||
$this->draw('',$attr);
|
||||
$this->draw('',$attr,$entry);
|
||||
$counter++;
|
||||
echo "\n";
|
||||
}
|
||||
@ -844,14 +857,14 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
protected function drawDefaultEditingEntryShownAttributes($entry) {
|
||||
foreach ($this->shown_attributes as $attr) {
|
||||
$this->draw('',$attr);
|
||||
$this->draw('',$attr,$entry);
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
|
||||
protected function drawDefaultEditingEntryHiddenAttributes($entry) {
|
||||
foreach ($this->hidden_attributes as $attr) {
|
||||
$this->draw('',$attr);
|
||||
$this->draw('',$attr,$entry);
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
@ -970,13 +983,11 @@ class EntryWriter1 extends EntryWriter {
|
||||
echo '<form action="cmd.php?cmd=template_engine" method="post" enctype="multipart/form-data" name="entry_form" onSubmit="return submitForm(this)">';
|
||||
|
||||
} else {
|
||||
// Patch 1539633
|
||||
// default action is create.php
|
||||
// you can change this behavior by setting <action>myscript.php</action> in template header
|
||||
echo '<form action="cmd.php" method="post" enctype="multipart/form-data" name="entry_form" onSubmit="return submitForm(this)">';
|
||||
printf('<input type="hidden" name="cmd" value="%s" />',
|
||||
$entry->hasProperty('action') ? rawurlencode($entry->getProperty('action')) : 'create');
|
||||
}
|
||||
|
||||
} else {
|
||||
$this->draw('DefaultCreatingEntry::StepFormStart', $entry, $step);
|
||||
}
|
||||
@ -998,7 +1009,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
$this->draw('RdnChooser', $entry);
|
||||
|
||||
// draw attributes
|
||||
# Draw attributes
|
||||
$this->draw('ShownAttributes', $entry);
|
||||
|
||||
$this->draw('StepFormSubmitButton', $entry, $step);
|
||||
@ -1040,6 +1051,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
$i = -1;
|
||||
$templates = &$entry->getTemplates();
|
||||
$nb_templates = count($templates);
|
||||
|
||||
if ($entry->hasDefaultTemplate()) $nb_templates++;
|
||||
|
||||
foreach ($templates as $template_name => $template_attrs) {
|
||||
@ -1109,12 +1121,13 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
foreach ($this->shown_attributes as $attr) {
|
||||
$page = $attr->getProperty('page');
|
||||
|
||||
if ($page == $this->step) {
|
||||
$this->draw('', $attr);
|
||||
$this->draw('',$attr,$entry);
|
||||
echo "\n";
|
||||
//} elseif ($page < $this->step) {
|
||||
|
||||
} else {
|
||||
// the displayed attributes are the visible attributes in shown_attributes list
|
||||
# The displayed attributes are the visible attributes in shown_attributes list
|
||||
$attr->hide();
|
||||
$this->hidden_attributes[] = $attr;
|
||||
}
|
||||
@ -1128,15 +1141,13 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
|
||||
foreach ($this->hidden_attributes as $attr) {
|
||||
//$page = $attr->hasProperty('page') ? $attr->getProperty('page') : -1;
|
||||
//if ($page <= $this->step) {
|
||||
$this->draw('', $attr);
|
||||
$this->draw('',$attr,$entry);
|
||||
echo "\n";
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
protected function drawTemplateCreatingEntryJavascript($entry) {
|
||||
printf("\n<!-- START: %s -->\n",__METHOD__);
|
||||
$this->draw('DefaultCreatingEntry::Javascript', $entry);
|
||||
|
||||
$templates = new Templates($this->index);
|
||||
@ -1173,6 +1184,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
// here comes template-specific implementation, generated by php
|
||||
if (false) {}';
|
||||
foreach ($entry->getAttributes() as $attribute) {
|
||||
if ($attribute->isVisible() && ($attribute->hasProperty('onchange')) || $attribute->isRequired()) {
|
||||
$attr = $attribute->getName();
|
||||
echo "\n\t\t\t\t\telse if ((i = id.indexOf('_".$attr."_')) >= 0) {\n";
|
||||
echo "\t\t\t\t\t\tpre = id.substring(0, i+1);\n";
|
||||
@ -1183,7 +1195,10 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
echo "\t\t\t}\n";
|
||||
}
|
||||
}
|
||||
echo '}}</script>';
|
||||
|
||||
printf("\n<!-- END: %s -->\n",__METHOD__);
|
||||
}
|
||||
|
||||
/********************************/
|
||||
@ -1258,6 +1273,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
$i = -1;
|
||||
$templates = &$entry->getTemplates();
|
||||
$nb_templates = count($templates);
|
||||
|
||||
if ($entry->hasDefaultTemplate()) $nb_templates++;
|
||||
|
||||
foreach ($templates as $template_name => $template_attrs) {
|
||||
@ -1309,7 +1325,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
protected function drawTemplateEditingEntryShownAttributes($entry) {
|
||||
foreach ($this->shown_attributes as $attr) {
|
||||
// @todo if this->page == attr->page
|
||||
$this->draw('', $attr);
|
||||
$this->draw('',$attr,$entry);
|
||||
echo "\n";
|
||||
}
|
||||
}
|
||||
@ -1320,6 +1336,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
|
||||
protected function drawTemplateEditingEntryJavascript($entry) {
|
||||
printf("\n<!-- START: %s -->\n",__METHOD__);
|
||||
$this->draw('DefaultEditingEntry::Javascript', $entry);
|
||||
|
||||
$templates = new Templates($this->index);
|
||||
@ -1354,6 +1371,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
// here comes template-specific implementation, generated by php
|
||||
if (false) {}';
|
||||
foreach ($entry->getAttributes() as $attribute) {
|
||||
if ($attribute->isVisible() && ($attribute->hasProperty('onchange')) || $attribute->isRequired()) {
|
||||
$attr = $attribute->getName();
|
||||
echo "\n\t\t\telse if ((i = id.indexOf('_".$attr."_')) >= 0) {\n";
|
||||
echo "\t\t\t\tpre = id.substring(0, i+1);\n";
|
||||
@ -1364,34 +1382,36 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
echo "\t\t\t}\n";
|
||||
}
|
||||
}
|
||||
echo '}}</script>';
|
||||
printf("\n<!-- END: %s -->\n",__METHOD__);
|
||||
}
|
||||
|
||||
/**************************/
|
||||
/* Paint an Attribute */
|
||||
/**************************/
|
||||
|
||||
protected function drawAttribute($attribute) {
|
||||
protected function drawAttribute($attribute,$entry) {
|
||||
if ($attribute->isVisible()) $this->draw('Informations', $attribute);
|
||||
$this->draw('Values', $attribute);
|
||||
$this->draw('Values',$attribute,$entry);
|
||||
}
|
||||
|
||||
protected function drawAttributeJavascript($attribute) {
|
||||
echo '<script type="text/javascript" language="javascript">';
|
||||
echo '<script type="text/javascript" language="javascript">'."\n";
|
||||
echo 'function focus_'.$attribute->getName().'(component) {';
|
||||
$this->draw('FocusJavascript', $attribute, 'component');
|
||||
echo '}';
|
||||
echo '}'."\n";
|
||||
echo 'function blur_'.$attribute->getName().'(component) {';
|
||||
$this->draw('BlurJavascript', $attribute, 'component');
|
||||
echo '}';
|
||||
echo '}'."\n";
|
||||
echo 'function validate_'.$attribute->getName().'(component, silence) {';
|
||||
echo ' var valid = true;';
|
||||
$this->draw('ValidateJavascript', $attribute, 'component', 'silence', 'valid');
|
||||
echo ' if (valid) component.style.backgroundColor = "white";';
|
||||
echo ' else component.style.backgroundColor = \'#F0F0FF\';';
|
||||
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 '}';
|
||||
echo '</script>';
|
||||
echo '}'."\n";
|
||||
echo '</script>'."\n";
|
||||
}
|
||||
|
||||
protected function drawAttributeFocusJavascript($attribute, $component) {
|
||||
@ -1417,7 +1437,8 @@ class EntryWriter1 extends EntryWriter {
|
||||
}';
|
||||
echo 'var comp = getAttributeComponents("new", "'.$attribute->getName().'");
|
||||
for (var i = 0; i < comp.length; i++) {
|
||||
comp[i].style.backgroundColor = '.$var_valid.' ? "white" : \'#F0F0FF\';
|
||||
comp[i].style.backgroundColor = '.$var_valid.' ? "white" : \'#FFFFA0\';
|
||||
comp[i].style.color = '.$var_valid.' ? "black" : \'#00005F\';
|
||||
}';
|
||||
}
|
||||
}
|
||||
@ -1436,7 +1457,6 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
protected function getTemplateCreatingEntryAttributeBlurJavascript($entry, $attribute, $component) {
|
||||
$j = 'fill('.$component.'.id, pla_getComponentValue('.$component.'));';
|
||||
//$j .= $this->get('DefaultCreatingEntry::AttributeBlurJavascript',$entry, $attribute, $component);
|
||||
return $j;
|
||||
}
|
||||
|
||||
@ -1446,7 +1466,6 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
protected function getTemplateEditingEntryAttributeBlurJavascript($entry, $attribute, $component) {
|
||||
$j = 'fill('.$component.'.id, pla_getComponentValue('.$component.'));';
|
||||
//$j .= $this->get('DefaultEditingEntry::AttributeBlurJavascript',$entry, $attribute, $component);
|
||||
return $j;
|
||||
}
|
||||
|
||||
@ -1494,6 +1513,12 @@ class EntryWriter1 extends EntryWriter {
|
||||
$attr_note .= $rdn_note;
|
||||
}
|
||||
|
||||
$hint_note = $this->get('HintNote',$attribute);
|
||||
if ($hint_note) {
|
||||
if (trim($attr_note)) $attr_note .= ', ';
|
||||
$attr_note .= $hint_note;
|
||||
}
|
||||
|
||||
if ($attr_note) printf('<sup><small>%s</small></sup>', $attr_note);
|
||||
|
||||
if ($attribute->isReadOnly() && $this->getLDAPServer()->isAttrReadOnly($attribute->getName())) {
|
||||
@ -1503,14 +1528,14 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
}
|
||||
|
||||
protected function drawAttributeValues($attribute) {
|
||||
protected function drawAttributeValues($attribute,$entry) {
|
||||
if ($attribute->isVisible()) $this->draw('StartValueLine', $attribute);
|
||||
|
||||
# draws values
|
||||
$value_count = $attribute->getValueCount();
|
||||
$i = 0;
|
||||
for (; $i < $value_count; $i++) {
|
||||
$this->draw('Value', $attribute, $i);
|
||||
$this->draw('Value',$attribute,$i,$entry);
|
||||
}
|
||||
|
||||
if ($this->context == ENTRY_WRITER_CREATION_CONTEXT) {
|
||||
@ -1519,7 +1544,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
else $blankvalue_count -= $value_count;
|
||||
|
||||
for ($j = 0; $j < $blankvalue_count; $j++) {
|
||||
$this->draw('BlankValue', $attribute, $i + $j);
|
||||
$this->draw('BlankValue',$attribute,$i+$j,$entry);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1548,7 +1573,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
switch ($i) {
|
||||
case IdAttributeAddValueMenuItem :
|
||||
if ($attribute->isVisible() && !$attribute->isReadOnly()
|
||||
&& !$attribute->isRdn() && $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value')) {
|
||||
&& $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value')) {
|
||||
if ($attribute->getMaxValueCount() < 0 || $attribute->getValueCount() < $attribute->getMaxValueCount()) {
|
||||
return $this->get('AddValueMenuItem', $attribute);
|
||||
}
|
||||
@ -1595,7 +1620,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
}
|
||||
|
||||
protected function drawAttributeValue($attribute, $i) {
|
||||
protected function drawAttributeValue($attribute,$i,$entry) {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Entered with (%s, %d)',1,__FILE__,__LINE__,__METHOD__,$attribute->getName(),$i);
|
||||
|
||||
@ -1610,7 +1635,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
$this->draw('OldValue', $attribute, $i);
|
||||
|
||||
$this->draw('NewValue', $attribute, $i);
|
||||
$this->draw('NewValue',$attribute,$i,$entry);
|
||||
|
||||
if ($attribute->isVisible()) {
|
||||
echo '</td><td valign="top" align="right" width="100%">';
|
||||
@ -1626,7 +1651,10 @@ class EntryWriter1 extends EntryWriter {
|
||||
* Save the current value to detect changes
|
||||
*/
|
||||
protected function drawAttributeOldValue($attribute, $i) {
|
||||
if ($this->context == ENTRY_WRITER_EDITING_CONTEXT)
|
||||
$val = $attribute->getValue($i);
|
||||
else
|
||||
$val = '';
|
||||
if (!is_string($val)) $val = '';
|
||||
if ($i < 0) $i = 0;
|
||||
|
||||
@ -1637,11 +1665,24 @@ class EntryWriter1 extends EntryWriter {
|
||||
/**
|
||||
* Display the current value
|
||||
*/
|
||||
protected function drawAttributeNewValue($attribute, $i) {
|
||||
protected function drawAttributeNewValue($attribute,$i,$entry) {
|
||||
if (!$attribute->isVisible()) {
|
||||
$this->draw('HiddenValue', $attribute, $i);
|
||||
$this->draw('Javascript',$attribute);
|
||||
|
||||
} elseif ($attribute->isReadOnly() || ($attribute->getEntry() && $attribute->getEntry()->getDn() && $attribute->isRdn())) {
|
||||
|
||||
/* If this is the RDN, we need to see if it has multiple values. If it does, and the multivalues are not
|
||||
* not in the RDN, then we need to make them editable. */
|
||||
|
||||
if ($attribute->isRdn()) {
|
||||
$rdn = split('\+',get_rdn($entry->getDN()));
|
||||
if (in_array(sprintf('%s=%s',$attribute->getName(),$attribute->getValue($i)),$rdn))
|
||||
$this->draw('ReadOnlyValue', $attribute, $i);
|
||||
else
|
||||
$this->draw('ReadWriteValue', $attribute, $i);
|
||||
|
||||
} else
|
||||
$this->draw('ReadOnlyValue', $attribute, $i);
|
||||
|
||||
} else {
|
||||
@ -1649,8 +1690,8 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
}
|
||||
|
||||
protected function drawAttributeBlankValue($attribute, $i) {
|
||||
$this->draw('Value', $attribute, $i);
|
||||
protected function drawAttributeBlankValue($attribute,$i,$entry) {
|
||||
$this->draw('Value',$attribute,$i,$entry);
|
||||
}
|
||||
|
||||
protected function drawAttributeHiddenValue($attribute, $i) {
|
||||
@ -1854,9 +1895,8 @@ class EntryWriter1 extends EntryWriter {
|
||||
printf('<img src="%s/go.png" alt="Go" align="top" /> ',IMGDIR);
|
||||
|
||||
} elseif ($this->getLDAPServer()->dnExists($val)) {
|
||||
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',$this->index,$val);
|
||||
printf('<a title="%s %s" href="%s"><img src="%s/go.png" alt="Go" /></a> ',_('Go to'),
|
||||
htmlspecialchars($val), htmlspecialchars($href),IMGDIR);
|
||||
printf('<a title="%s %s" href="cmd.php?cmd=template_engine&server_id=%s&dn=%s"><img src="%s/go.png" alt="Go" /></a> ',
|
||||
_('Go to'),htmlspecialchars($val),$this->index,rawurlencode($val),IMGDIR);
|
||||
|
||||
} else {
|
||||
printf('<a title="%s %s"><img src="%s/nogo.png" alt="Go" /></a> ',_('DN not available'),htmlspecialchars($val),IMGDIR);
|
||||
@ -1872,8 +1912,9 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
protected function drawAttributeUrlValueIcon($attribute, $val) {
|
||||
$img = sprintf('<img src="%s/dc.png" alt="%s" align="top" />',IMGDIR,_('URL'));
|
||||
$url = split(' +',$val,2);
|
||||
if (strlen($val) <= 0) echo $img;
|
||||
else printf('<a href="%s" target="new">'.$img.'</a>', htmlspecialchars($val));
|
||||
else printf('<a href="%s" target="new">%s</a>',htmlspecialchars($url[0]),$img);
|
||||
echo ' ';
|
||||
}
|
||||
|
||||
@ -1884,25 +1925,27 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
if ($attribute->getEntry() && $attribute->getEntry()->getDn() // if not creating attribute
|
||||
&& $config->isCommandAvailable('schema') ) {
|
||||
|
||||
$href = sprintf('cmd.php?cmd=schema&server_id=%s&view=attributes&viewvalue=%s',
|
||||
$this->index, real_attr_name($attribute->getName()));
|
||||
printf('<a title="'._('Click to view the schema definition for attribute type \'%s\'')
|
||||
.'" href="%s">%s</a>', $attribute->getName(), htmlspecialchars($href), $attr_display);
|
||||
|
||||
} else {
|
||||
printf('%s', $attr_display);
|
||||
}
|
||||
}
|
||||
|
||||
protected function getAttributeAliasNote($attribute) {
|
||||
# is there a user-friendly translation available for this attribute?
|
||||
# Is there a user-friendly translation available for this attribute?
|
||||
$friendly_name = $attribute->getFriendlyName();
|
||||
|
||||
if ($friendly_name != $attribute->getName()) {
|
||||
return sprintf('<acronym title="%s: \'%s\' %s \'%s\'">%s</acronym>',_('Note'),$friendly_name,_('is an alias for'),$attribute->getName(),_('alias'));
|
||||
} else {
|
||||
if ($friendly_name != $attribute->getName())
|
||||
return sprintf('<acronym title="%s: \'%s\' %s \'%s\'">%s</acronym>',
|
||||
_('Note'),$friendly_name,_('is an alias for'),$attribute->getName(),_('alias'));
|
||||
else
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
protected function getAttributeRequiredNote($attribute) {
|
||||
# is this attribute required by an objectClass ?
|
||||
@ -1949,6 +1992,15 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
}
|
||||
|
||||
protected function getAttributeHintNote($attribute) {
|
||||
# Is there a hint for this attribute
|
||||
if ($attribute->getHint()) {
|
||||
return sprintf('<acronym title="%s">%s</acronym> ',htmlspecialchars($attribute->getHint()),_('hint'));
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
protected function drawAttributeRequiredSymbol($attribute) {
|
||||
echo '*';
|
||||
}
|
||||
@ -2029,6 +2081,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
|
||||
protected function drawBinaryAttributeJavascript($attribute) {
|
||||
printf("\n<!-- START: %s -->\n",__METHOD__);
|
||||
$this->draw('Attribute::Javascript', $attribute);
|
||||
|
||||
$dn = '';
|
||||
@ -2057,6 +2110,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
}
|
||||
</script>';
|
||||
printf("\n<!-- END: %s -->\n",__METHOD__);
|
||||
}
|
||||
|
||||
protected function drawBinaryAttributeBlurJavascript($attribute, $component) {
|
||||
@ -2077,10 +2131,11 @@ class EntryWriter1 extends EntryWriter {
|
||||
($attribute->getSize() > 0) ? 'size="'.$attribute->getSize().'"' : '',
|
||||
($attribute->getMaxLength() > 0) ? 'maxlength="'.$attribute->getMaxLength().'"' : '');
|
||||
draw_date_selector_link($attribute->getName().'_'.$i);
|
||||
echo '</span>';
|
||||
echo '</span>'."\n";
|
||||
}
|
||||
|
||||
protected function drawDateAttributeJavascript($attribute) {
|
||||
printf("\n<!-- START: %s -->\n",__METHOD__);
|
||||
$this->draw('Attribute::Javascript', $attribute);
|
||||
|
||||
$entry['date'] = $_SESSION[APPCONFIG]->GetValue('appearance','date_attrs');
|
||||
@ -2100,6 +2155,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
if (in_array_ignore_case($attribute->getName(),array_keys($entry['time'])) && ($entry['time'][$attribute->getName()]))
|
||||
printf('<script type="text/javascript" language="javascript">defaults[\'f_time_%s_%s\'] = \'%s\';</script>',$attribute->getName(),$i,'true');
|
||||
}
|
||||
printf("\n<!-- END: %s -->\n",__METHOD__);
|
||||
}
|
||||
|
||||
/***************************/
|
||||
@ -2135,6 +2191,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
$this->draw('Helper', $attribute, $i);
|
||||
echo '</td></tr></table>';
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
protected function drawDnAttributeIcon($attribute, $val) {
|
||||
@ -2261,7 +2318,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
/* Paint a ObjectClassAttribute */
|
||||
/********************************/
|
||||
|
||||
protected function drawObjectClassAttributeNewValue($attribute, $i) {
|
||||
protected function drawObjectClassAttributeNewValue($attribute,$i,$entry) {
|
||||
$val = $attribute->getValue($i);
|
||||
if (!is_string($val)) $val = '';
|
||||
if ($i < 0) $i = 0;
|
||||
@ -2282,7 +2339,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
_('This is a structural ObjectClass and cannot be removed.'),
|
||||
_('structural'));
|
||||
} else {
|
||||
$this->draw('Attribute::NewValue', $attribute, $i);
|
||||
$this->draw('Attribute::NewValue',$attribute,$i,$entry);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2300,16 +2357,13 @@ class EntryWriter1 extends EntryWriter {
|
||||
/*****************************/
|
||||
|
||||
protected function drawPasswordAttributeOldValue($attribute, $i) {
|
||||
//if ($this->context == ENTRY_WRITER_CREATION_CONTEXT) {
|
||||
$this->draw('Attribute::OldValue', $attribute, $i);
|
||||
//}
|
||||
}
|
||||
|
||||
protected function drawPasswordAttributeHiddenValue($attribute, $i) {
|
||||
if ($this->context == ENTRY_WRITER_CREATION_CONTEXT) {
|
||||
if ($this->context == ENTRY_WRITER_CREATION_CONTEXT)
|
||||
$this->draw('Attribute::HiddenValue', $attribute, $i);
|
||||
}
|
||||
}
|
||||
|
||||
protected function drawPasswordAttributeReadOnlyValue($attribute, $i) {
|
||||
$val = $attribute->getValue($i);
|
||||
@ -2324,6 +2378,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
($obfuscate_password ? 'password' : 'text'),
|
||||
htmlspecialchars($attribute->getName()), $i, htmlspecialchars($attribute->getName()),
|
||||
$i, htmlspecialchars($val), ($attribute->getSize() > 0) ? 'size="'.$attribute->getSize().'"' : '');
|
||||
|
||||
if ($val != '') $this->draw('CheckLink', $attribute, 'new_values_'.htmlspecialchars($attribute->getName()).'_'.$i);
|
||||
}
|
||||
|
||||
@ -2335,9 +2390,8 @@ class EntryWriter1 extends EntryWriter {
|
||||
$enc_type = get_enc_type($val);
|
||||
|
||||
# Set the default hashing type if the password is blank (must be newly created)
|
||||
if ($val == '') {
|
||||
if ($val == '')
|
||||
$enc_type = get_default_hash($this->index);
|
||||
}
|
||||
|
||||
echo '<table cellspacing="0" cellpadding="0"><tr><td valign="top">';
|
||||
|
||||
@ -2353,11 +2407,12 @@ class EntryWriter1 extends EntryWriter {
|
||||
($attribute->getMaxLength() > 0) ? 'maxlength="'.$attribute->getMaxLength().'"' : '');
|
||||
|
||||
echo '</td><td valign="top">';
|
||||
if ($attribute->hasProperty('helper')) {
|
||||
|
||||
if ($attribute->hasProperty('helper'))
|
||||
$this->draw('Helper', $attribute, $i);
|
||||
} else {
|
||||
echo enc_type_select_list($enc_type,'enc',$attribute,$i);
|
||||
}
|
||||
else
|
||||
echo enc_type_select_list($enc_type,'enc',$attribute->getName(),$i);
|
||||
|
||||
echo '</td></tr><tr><td valign="top">';
|
||||
|
||||
if ($attribute->hasProperty('verify') && $attribute->getProperty('verify') && $obfuscate_password) {
|
||||
@ -2394,6 +2449,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
|
||||
protected function drawPasswordAttributeJavascript($attribute) {
|
||||
printf("\n<!-- START: %s -->\n",__METHOD__);
|
||||
$this->draw('Attribute::Javascript', $attribute);
|
||||
|
||||
static $already_draw = false;
|
||||
@ -2401,6 +2457,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
else $already_draw = true;
|
||||
|
||||
# add the javascript so we can call check password later.
|
||||
printf("\n<!-- %s -->\n",__METHOD__);
|
||||
echo '
|
||||
<script type="text/javascript" language="javascript">
|
||||
function passwordComparePopup(component_id) {
|
||||
@ -2409,6 +2466,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
if (mywindow.opener == null) mywindow.opener = self;
|
||||
}
|
||||
</script>';
|
||||
printf("\n<!-- END: %s -->\n",__METHOD__);
|
||||
}
|
||||
|
||||
/***********************************/
|
||||
@ -2416,12 +2474,14 @@ class EntryWriter1 extends EntryWriter {
|
||||
/***********************************/
|
||||
|
||||
protected function drawRandomPasswordAttributeJavascript($attribute) {
|
||||
printf("\n<!-- START: %s -->\n",__METHOD__);
|
||||
$this->draw('PasswordAttribute::Javascript', $attribute);
|
||||
|
||||
$pwd = password_generate();
|
||||
$pwd = str_replace("\\", "\\\\", $pwd);
|
||||
$pwd = str_replace("'", "\\'", $pwd);
|
||||
|
||||
printf("\n<!-- %s -->\n",__METHOD__);
|
||||
echo '<script type="text/javascript" language="javascript">';
|
||||
printf('var i = 0; var component = document.getElementById(\'new_values_%s_\'+i);', $attribute->getName());
|
||||
printf('while (component) { if (!component.value) {');
|
||||
@ -2429,15 +2489,16 @@ class EntryWriter1 extends EntryWriter {
|
||||
printf('alert(\'%s%s\n%s\');', _('A random password was generated for you'), _(':'), $pwd);
|
||||
printf('} i++; component = document.getElementById(\'new_values_%s_\'+i); }', $attribute->getName());
|
||||
echo '</script>';
|
||||
printf("\n<!-- END: %s -->\n",__METHOD__);
|
||||
}
|
||||
|
||||
/******************************/
|
||||
/* Paint a SelectionAttribute */
|
||||
/******************************/
|
||||
|
||||
protected function drawSelectionAttributeValues($attribute) {
|
||||
protected function drawSelectionAttributeValues($attribute,$entry) {
|
||||
if (!$attribute->isVisible() || !$attribute->isMultiple() || ($attribute->getValueCount() > 0)) {
|
||||
$this->draw('Attribute::Values', $attribute);
|
||||
$this->draw('Attribute::Values',$attribute,$entry);
|
||||
} else {
|
||||
$this->draw('StartValueLine', $attribute);
|
||||
$this->draw('Value', $attribute, 0);
|
||||
@ -2463,7 +2524,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
|
||||
protected function drawSelectionAttributeReadWriteValue($attribute, $i) {
|
||||
if ($attribute->isMultiple()) {
|
||||
// for multiple selection, we draw the component only one time
|
||||
# For multiple selection, we draw the component only one time
|
||||
if ($i > 0) return;
|
||||
|
||||
if (($attribute->getSize() > 0) && ($attribute->getSize() < $attribute->getOptionCount())) {
|
||||
@ -2472,13 +2533,16 @@ class EntryWriter1 extends EntryWriter {
|
||||
htmlspecialchars($attribute->getName()), $attribute->getSize());
|
||||
$vals = $attribute->getValues();
|
||||
$j = 0;
|
||||
|
||||
foreach ($attribute->getSelection() as $value => $description) {
|
||||
if (in_array($value, $vals)) $selected[$value] = true;
|
||||
$id = 'new_values_'.htmlspecialchars($attribute->getName()).'_'.($j++);
|
||||
printf('<option id="%s" value="%s" onMouseDown="focus_%s(this);" onClick="blur_%s(this);" %s>%s</option>',
|
||||
$id, $value, htmlspecialchars($attribute->getName()), htmlspecialchars($attribute->getName()),
|
||||
isset($selected[$value]) ? 'selected' : '', $description);
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
foreach ($vals as $val) {
|
||||
if (!isset($selected[$val])) {
|
||||
$id = 'new_values_'.htmlspecialchars($attribute->getName()).'_'.($j++);
|
||||
@ -2486,8 +2550,10 @@ class EntryWriter1 extends EntryWriter {
|
||||
.'%s</option>', $id, $val, htmlspecialchars($attribute->getName()),
|
||||
htmlspecialchars($attribute->getName()), $val);
|
||||
}
|
||||
echo "\n";
|
||||
}
|
||||
echo '</select>';
|
||||
|
||||
} else {
|
||||
$selected = array();
|
||||
$vals = $attribute->getValues();
|
||||
@ -2504,6 +2570,7 @@ class EntryWriter1 extends EntryWriter {
|
||||
isset($selected[$value]) ? 'checked' : '',
|
||||
"<span style=\"white-space: nowrap;\"> $description</span>");
|
||||
}
|
||||
|
||||
foreach ($vals as $val) {
|
||||
if (!isset($selected[$val])) {
|
||||
$id = 'new_values_'.htmlspecialchars($attribute->getName()).'_'.($j++);
|
||||
@ -2516,19 +2583,28 @@ class EntryWriter1 extends EntryWriter {
|
||||
}
|
||||
echo '</table>';
|
||||
}
|
||||
|
||||
} else {
|
||||
$val = $attribute->getValue($i);
|
||||
if (!is_string($val)) $val = '';
|
||||
if ($i < 0) $i = 0;
|
||||
|
||||
if ($attribute->hasProperty('helper')) {
|
||||
if ($attribute->hasProperty('helper'))
|
||||
echo '<table cellspacing="0" cellpadding="0"><tr><td valign="top">';
|
||||
}
|
||||
|
||||
$found = false;
|
||||
$empty_value = false;
|
||||
|
||||
$id = 'new_values_'.htmlspecialchars($attribute->getName()).'_'.$i;
|
||||
|
||||
# If we are a required attribute, and the selection is blank, then the user cannot submit this form.
|
||||
if ($attribute->isRequired() && ! count($attribute->getSelection()))
|
||||
system_message(array(
|
||||
'title'=>_('Template Value Error'),
|
||||
'body'=>sprintf('This template uses a selection list for attribute [<b>%s</b>], however the selection list is empty.<br />You may need to create some dependancy entries in your LDAP server so that this attribute renders with values. Alternatively, you may be able to define the appropriate selection values in the template file.',$attribute->getName()),
|
||||
'type'=>'warn'));
|
||||
|
||||
|
||||
printf('<select id="%s" name="new_values[%s][]" onFocus="focus_%s(this);" onChange="blur_%s(this);">',
|
||||
$id, htmlspecialchars($attribute->getName()), $attribute->getName(), $attribute->getName());
|
||||
|
||||
@ -2537,14 +2613,19 @@ class EntryWriter1 extends EntryWriter {
|
||||
($value == $val) ? 'selected' : '', $description);
|
||||
if ($value == $val) $found = true;
|
||||
if ($value == '') $empty_value = true;
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
if (!$found) {
|
||||
/*if ($val || ($i >= 0) || ($attribute->getEntry() && $attribute->getEntry()->getDn()))*/
|
||||
printf('<option value="%s" selected>%s</option>', $val, $val);
|
||||
if ($val == '') $empty_value = true;
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
if ((strlen($val) > 0) && !$empty_value && ($attribute->getEntry() && $attribute->getEntry()->getDn())) {
|
||||
printf('<option value="">(%s)</option>', _('none, remove value'));
|
||||
echo "\n";
|
||||
}
|
||||
echo '</select>';
|
||||
|
||||
@ -2563,18 +2644,19 @@ class EntryWriter1 extends EntryWriter {
|
||||
return $this->get('Attribute::MenuItem', $attribute, $i);
|
||||
}
|
||||
return '';
|
||||
|
||||
case IdAttributeModifyMemberMenuItem :
|
||||
return '';
|
||||
|
||||
default :
|
||||
return $this->get('Attribute::MenuItem', $attribute, $i);
|
||||
}
|
||||
}
|
||||
|
||||
protected function drawSelectionAttributeIcon($attribute, $val) {
|
||||
if (!$attribute->isMultiple() || $attribute->isReadOnly()) {
|
||||
if (!$attribute->isMultiple() || $attribute->isReadOnly())
|
||||
$this->draw('Attribute::Icon', $attribute, $val);
|
||||
}
|
||||
}
|
||||
|
||||
/***************************/
|
||||
/* Paint a ShadowAttribute */
|
||||
@ -2626,7 +2708,6 @@ class EntryWriter1 extends EntryWriter {
|
||||
protected function drawShadowAttributeShadowDate($attribute, $shadow_date) {
|
||||
$config = $_SESSION[APPCONFIG];
|
||||
|
||||
//$shadow_format_attrs = array_merge($shadow_before_today_attrs,$shadow_after_today_attrs);
|
||||
$shadow_before_today_attrs = arrayLower($attribute->shadow_before_today_attrs);
|
||||
$shadow_after_today_attrs = arrayLower($attribute->shadow_after_today_attrs);
|
||||
$today = date('U');
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/EntryWriter2.php,v 1.2.2.3 2008/01/27 06:48:59 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/EntryWriter2.php,v 1.2.2.4 2008/11/29 11:33:53 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -246,9 +246,9 @@ class EntryWriter2 extends EntryWriter1 {
|
||||
}
|
||||
|
||||
protected function drawAttributeMenu($attribute) {
|
||||
if ($attribute->getHint() /*&& $_SESSION[APPCONFIG]->GetValue('appearance', 'show_hints')*/) {
|
||||
echo '<img src="images/light.png" alt="Hint" /> <span class="hint">'.$attribute->getHint().'</span>';
|
||||
}
|
||||
if ($attribute->getHint())
|
||||
printf('<img src="%s/light.png" alt="Hint" /> <span class="hint">%s</span>',IMGDIR,$attribute->getHint());
|
||||
|
||||
parent::drawAttributeMenu($attribute);
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/HTMLTree.php,v 1.2.2.6 2008/01/27 10:17:28 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/HTMLTree.php,v 1.2.2.10 2008/12/13 02:13:13 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -43,8 +43,8 @@ class HTMLTree extends Tree {
|
||||
printf('<tr><td class="blank" colspan="%s"> </td></tr>',$this->getDepth()+3);
|
||||
|
||||
printf('<tr><td> </td><td><div style="overflow: auto; %s%s"><table class="tree" border=0>',
|
||||
$_SESSION['plaConfig']->GetValue('appearance','tree_width') ? sprintf('width: %spx; ',$_SESSION['plaConfig']->GetValue('appearance','tree_width')) : '',
|
||||
$_SESSION['plaConfig']->GetValue('appearance','tree_height') ? sprintf('height: %spx; ',$_SESSION['plaConfig']->GetValue('appearance','tree_height')) : '');
|
||||
$_SESSION[APPCONFIG]->GetValue('appearance','tree_width') ? sprintf('width: %spx; ',$_SESSION[APPCONFIG]->GetValue('appearance','tree_width')) : '',
|
||||
$_SESSION[APPCONFIG]->GetValue('appearance','tree_height') ? sprintf('height: %spx; ',$_SESSION[APPCONFIG]->GetValue('appearance','tree_height')) : '');
|
||||
|
||||
foreach ($ldapserver->getBaseDN() as $base_dn) {
|
||||
# Did we get a base_dn for this server somehow?
|
||||
@ -55,7 +55,7 @@ class HTMLTree extends Tree {
|
||||
if (! $ldapserver->dnExists($base_dn)) {
|
||||
$javascript_id++;
|
||||
|
||||
printf('<tr><td class="spacer"></td><td class="spacer"></td><td><img src="images/unknown.png" /></td><td colspan="%s">%s</td></tr>',$this->getDepth()+3-3,pretty_print_dn($base_dn));
|
||||
printf('<tr><td class="spacer"></td><td class="spacer"></td><td><img src="%s/unknown.png" /></td><td colspan="%s">%s</td></tr>',IMGDIR,$this->getDepth()+3-3,pretty_print_dn($base_dn));
|
||||
|
||||
/* Move this form and add it to the end of the html - otherwise the javascript
|
||||
* doesnt work when isMassDeleteEnabled returning true.
|
||||
@ -103,8 +103,9 @@ class HTMLTree extends Tree {
|
||||
}
|
||||
} else { // end if $ldapserver->haveAuthInfo()
|
||||
/* We don't have enough information to login to this server
|
||||
* Draw the "login..." link
|
||||
*/
|
||||
* Draw the "login..." link */
|
||||
|
||||
if ($ldapserver->auth_type != 'http')
|
||||
$this->draw_login_link();
|
||||
}
|
||||
|
||||
@ -153,14 +154,14 @@ class HTMLTree extends Tree {
|
||||
$ldapserver = $this->getLdapServer();
|
||||
|
||||
echo '<tr class="server">';
|
||||
printf('<td class="icon"><img src="images/server.png" alt="%s" /></td>',_('Server'));
|
||||
printf('<td class="icon"><img src="%s/server.png" alt="%s" /></td>',IMGDIR,_('Server'));
|
||||
printf('<td class="name" colspan="%s">',$this->getDepth()+3-1);
|
||||
printf('%s',htmlspecialchars($ldapserver->name));
|
||||
|
||||
if ($ldapserver->haveAuthInfo() && $ldapserver->auth_type != 'config') {
|
||||
if ($ldapserver->haveAuthInfo() && ! in_array($ldapserver->auth_type,array('config','http'))) {
|
||||
$m = sprintf(_('Inactivity will log you off at %s'),
|
||||
strftime('%H:%M',time() + ($ldapserver->session_timeout*60)));
|
||||
printf(' <img width=14 height=14 src="images/timeout.png" title="%s" alt="%s"/>',$m,$m);
|
||||
printf(' <img width=14 height=14 src="%s/timeout.png" title="%s" alt="%s"/>',IMGDIR,$m,$m);
|
||||
}
|
||||
echo '</td></tr>';
|
||||
}
|
||||
@ -209,7 +210,7 @@ class HTMLTree extends Tree {
|
||||
if ($_SESSION[APPCONFIG]->isCommandAvailable('export')) return $this->get_export_menu_item();
|
||||
else return '';
|
||||
case 6 :
|
||||
if ($ldapserver->auth_type != 'config') return $this->get_logout_menu_item();
|
||||
if (! in_array($ldapserver->auth_type,array('config','http'))) return $this->get_logout_menu_item();
|
||||
else return '';
|
||||
default :
|
||||
return false;
|
||||
@ -220,56 +221,56 @@ class HTMLTree extends Tree {
|
||||
$ldapserver = $this->getLdapServer();
|
||||
$href = sprintf('cmd.php?cmd=schema&server_id=%s',$ldapserver->server_id);
|
||||
|
||||
return sprintf('<a title="%s %s" href="%s"><img src="%s" alt="%s" /><br />%s</a>',
|
||||
_('View schema for'),$ldapserver->name,htmlspecialchars($href),'images/schema.png',_('schema'),_('schema'));
|
||||
return sprintf('<a title="%s %s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||
_('View schema for'),$ldapserver->name,htmlspecialchars($href),IMGDIR,'schema.png',_('schema'),_('schema'));
|
||||
}
|
||||
|
||||
protected function get_search_menu_item() {
|
||||
$ldapserver = $this->getLdapServer();
|
||||
$href = sprintf('cmd.php?cmd=search&server_id=%s&form=undefined',$ldapserver->server_id);
|
||||
|
||||
return sprintf('<a title="%s %s" href="%s"><img src="%s" alt="%s" /><br />%s</a>',
|
||||
_('search'),$ldapserver->name,htmlspecialchars($href),'images/search.png',_('search'),_('search'));
|
||||
return sprintf('<a title="%s %s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||
_('search'),$ldapserver->name,htmlspecialchars($href),IMGDIR,'search.png',_('search'),_('search'));
|
||||
}
|
||||
|
||||
protected function get_refresh_menu_item() {
|
||||
$ldapserver = $this->getLdapServer();
|
||||
$href = sprintf('cmd.php?cmd=refresh&server_id=%s',$ldapserver->server_id);
|
||||
|
||||
return sprintf('<a title="%s %s" href="%s"><img src="%s" alt="%s" /><br />%s</a>',
|
||||
_('Refresh all expanded containers for'),$ldapserver->name,htmlspecialchars($href),'images/refresh-big.png',_('refresh'),_('refresh'));
|
||||
return sprintf('<a title="%s %s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||
_('Refresh all expanded containers for'),$ldapserver->name,htmlspecialchars($href),IMGDIR,'refresh-big.png',_('refresh'),_('refresh'));
|
||||
}
|
||||
|
||||
protected function get_info_menu_item() {
|
||||
$ldapserver = $this->getLdapServer();
|
||||
$href = sprintf('cmd.php?cmd=server_info&server_id=%s',$ldapserver->server_id);
|
||||
|
||||
return sprintf('<a title="%s" href="%s"><img src="%s" alt="%s" /><br />%s</a>',
|
||||
_('View server-supplied information'),htmlspecialchars($href),'images/info.png',_('info'),_('info'));
|
||||
return sprintf('<a title="%s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||
_('View server-supplied information'),htmlspecialchars($href),IMGDIR,'info.png',_('info'),_('info'));
|
||||
}
|
||||
|
||||
protected function get_import_menu_item() {
|
||||
$ldapserver = $this->getLdapServer();
|
||||
$href = sprintf('cmd.php?cmd=ldif_import_form&server_id=%s',$ldapserver->server_id);
|
||||
|
||||
return sprintf('<a title="%s" href="%s"><img src="%s" alt="%s" /><br />%s</a>',
|
||||
_('Import entries from an LDIF file'),htmlspecialchars($href),'images/import.png',_('import'),_('import'));
|
||||
return sprintf('<a title="%s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||
_('Import entries from an LDIF file'),htmlspecialchars($href),IMGDIR,'import.png',_('import'),_('import'));
|
||||
}
|
||||
|
||||
protected function get_export_menu_item() {
|
||||
$ldapserver = $this->getLdapServer();
|
||||
$href = sprintf('cmd.php?cmd=export_form&server_id=%s',$ldapserver->server_id);
|
||||
|
||||
return sprintf('<a title="%s" href="%s"><img src="%s" alt="%s" /><br />%s</a>',
|
||||
_('Export entries'),htmlspecialchars($href),'images/export.png',_('export'),_('export'));
|
||||
return sprintf('<a title="%s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||
_('Export entries'),htmlspecialchars($href),IMGDIR,'export.png',_('export'),_('export'));
|
||||
}
|
||||
|
||||
protected function get_logout_menu_item() {
|
||||
$ldapserver = $this->getLdapServer();
|
||||
$href = sprintf('cmd.php?cmd=logout&server_id=%s',$ldapserver->server_id);
|
||||
|
||||
return sprintf('<a title="%s" href="%s"><img src="%s" alt="%s" /><br />%s</a>',
|
||||
_('Logout of this server'),htmlspecialchars($href),'images/logout.png',_('logout'),_('logout'));
|
||||
return sprintf('<a title="%s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||
_('Logout of this server'),htmlspecialchars($href),IMGDIR,'logout.png',_('logout'),_('logout'));
|
||||
}
|
||||
|
||||
protected function draw_logged_in_dn() {
|
||||
@ -338,7 +339,7 @@ class HTMLTree extends Tree {
|
||||
$href['expand'] = sprintf('cmd.php?cmd=expand&server_id=%s&dn=%s',$ldapserver->server_id,$encoded_dn);
|
||||
$href['collapse'] = sprintf('cmd.php?cmd=collapse&server_id=%s&dn=%s',$ldapserver->server_id,$encoded_dn);
|
||||
$href['edit'] = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',$ldapserver->server_id,$encoded_dn);
|
||||
$img_src = sprintf('images/%s',$dnEntry->getIcon($ldapserver));
|
||||
$img_src = sprintf('%s/%s',IMGDIR,$dnEntry->getIcon($ldapserver));
|
||||
$rdn = get_rdn($dn);
|
||||
|
||||
echo '<tr class="option">';
|
||||
@ -362,15 +363,15 @@ class HTMLTree extends Tree {
|
||||
# Is this node expanded? (deciding whether to draw "+" or "-")
|
||||
if ($dnEntry->isOpened()) {
|
||||
if (!$child_count && !$ldapserver->isShowCreateEnabled()) {
|
||||
echo '<td class="expander"><img src="images/minus.png" alt="-" /></td>';
|
||||
printf('<td class="expander"><img src="%s/minus.png" alt="-" /></td>',IMGDIR);
|
||||
} else {
|
||||
printf('<td class="expander"><a href="%s"><img src="images/minus.png" alt="-" /></a></td>',$href['collapse']);
|
||||
printf('<td class="expander"><a href="%s"><img src="%s/minus.png" alt="-" /></a></td>',$href['collapse'],IMGDIR);
|
||||
}
|
||||
} else {
|
||||
if (($child_count !== false) && (!$child_count) && (!$ldapserver->isShowCreateEnabled())) {
|
||||
echo '<td class="expander"><img src="images/minus.png" alt="-" /></td>';
|
||||
printf('<td class="expander"><img src="%s/minus.png" alt="-" /></td>',IMGDIR);
|
||||
} else {
|
||||
printf('<td class="expander"><a href="%s"><img src="images/plus.png" alt="+" /></a></td>',$href['expand']);
|
||||
printf('<td class="expander"><a href="%s"><img src="%s/plus.png" alt="+" /></a></td>',$href['expand'],IMGDIR);
|
||||
}
|
||||
}
|
||||
$colspan--;
|
||||
@ -458,7 +459,7 @@ class HTMLTree extends Tree {
|
||||
|
||||
echo '<td class="spacer"></td>';
|
||||
echo '<td class="spacer"></td>';
|
||||
printf('<td class="icon"><a href="%s"><img src="images/star.png" alt="%s" /></a></td>',$href,_('new'));
|
||||
printf('<td class="icon"><a href="%s"><img src="%s/star.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-1-3,$href,_('Create a new entry in'),$rdn,_('Create new entry here'));
|
||||
echo '</tr>';
|
||||
@ -473,7 +474,7 @@ class HTMLTree extends Tree {
|
||||
sprintf('cmd.php?cmd=%s&server_id=%s',get_custom_file($ldapserver->server_id,'login_form',''),$ldapserver->server_id));
|
||||
|
||||
echo '<tr class="option"><td class="spacer"></td>';
|
||||
printf('<td class="icon"><a href="%s"><img src="images/uid.png" alt="%s" /></a></td>',$href,_('login'));
|
||||
printf('<td class="icon"><a href="%s"><img src="%s/uid.png" alt="%s" /></a></td>',$href,IMGDIR,_('login'));
|
||||
printf('<td class="logged_in" colspan="%s"><a href="%s">%s</a></td>',$this->getDepth()+3-2,$href,_('Login').'...');
|
||||
echo '</tr>';
|
||||
|
||||
@ -489,7 +490,7 @@ class HTMLTree extends Tree {
|
||||
protected function draw_logout_link() {
|
||||
$ldapserver = $this->getLdapServer();
|
||||
|
||||
if ($ldapserver->auth_type != 'config') {
|
||||
if (! in_array($ldapserver->auth_type,array('config','http'))) {
|
||||
printf('<tr><td class="spacer"></td><td colspan="%s"><small><a href="cmd.php?cmd=%s&server_id=%s">%s</a></small></td></tr>',
|
||||
$this->getDepth()+3-1,get_custom_file($ldapserver->server_id,'logout',''),$ldapserver->server_id,_('logout'));
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/PLMTree.php,v 1.2 2007/12/15 07:50:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/PLMTree.php,v 1.2.2.1 2008/11/29 11:33:53 wurley Exp $
|
||||
|
||||
require HTDOCDIR.JSDIR.'phplayersmenu/lib/PHPLIB.php';
|
||||
require HTDOCDIR.JSDIR.'phplayersmenu/lib/layersmenu-common.inc.php';
|
||||
@ -41,8 +41,8 @@ class PLMTree extends HTMLTree {
|
||||
if (! isset($tm)) {
|
||||
$tm = new TreeMenu();
|
||||
$tm->setDirroot(JSDIR.'phplayersmenu/');
|
||||
$tm->setIcondir(HTDOCDIR.'/images/');
|
||||
$tm->setIconwww('images/');
|
||||
$tm->setIcondir(IMGDIR);
|
||||
$tm->setIconwww(IMGDIR);
|
||||
$tm->setImgwww(JSDIR.'phplayersmenu/menuimages/');
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/TemplateCreatingEntry.php,v 1.3.2.1 2007/12/26 09:26:33 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/TemplateCreatingEntry.php,v 1.3.2.2 2008/11/28 12:50:20 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -66,6 +66,9 @@ class TemplateCreatingEntry extends DefaultCreatingEntry {
|
||||
}
|
||||
|
||||
public function hasDefaultTemplate() {
|
||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','disable_default_template'))
|
||||
return false;
|
||||
else
|
||||
return $this->default_template;
|
||||
}
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/TemplateEditingEntry.php,v 1.3.2.2 2007/12/29 08:24:11 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/TemplateEditingEntry.php,v 1.3.2.4 2008/11/28 12:50:20 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -19,7 +19,7 @@ class TemplateEditingEntry extends DefaultEditingEntry {
|
||||
parent::__construct($dn);
|
||||
$this->templates = array();
|
||||
$this->valid = false;
|
||||
$this->default_template = false;
|
||||
$this->default_template = true;
|
||||
$this->selected_template = '';
|
||||
}
|
||||
|
||||
@ -81,6 +81,9 @@ class TemplateEditingEntry extends DefaultEditingEntry {
|
||||
}
|
||||
|
||||
public function hasDefaultTemplate() {
|
||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','disable_default_template'))
|
||||
return false;
|
||||
else
|
||||
return $this->default_template;
|
||||
}
|
||||
|
||||
@ -105,12 +108,22 @@ class TemplateEditingEntry extends DefaultEditingEntry {
|
||||
|
||||
$int_attrs_vals = $ldapserver->getDNSysAttrs($this->getDn());
|
||||
if (! $int_attrs_vals) $attrs_vals = array();
|
||||
elseif (! is_array($int_attrs_vals)) $int_attrs_vals = array($attrs_vals);
|
||||
elseif (! is_array($int_attrs_vals)) $int_attrs_vals = array($int_attrs_vals);
|
||||
|
||||
$custom_int_attrs_vals = $ldapserver->getCustomDNSysAttrs($this->getDn());
|
||||
if (! $custom_int_attrs_vals) $attrs_vals = array();
|
||||
elseif (! is_array($custom_int_attrs_vals)) $custom_int_attrs_vals = array($custom_int_attrs_vals);
|
||||
|
||||
$attrs_vals = $ldapserver->getDNAttrs($this->getDn(),false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||
if (! $attrs_vals) $attrs_vals = array();
|
||||
elseif (! is_array($attrs_vals)) $attrs_vals = array($attrs_vals);
|
||||
|
||||
$custom_attrs_vals = $ldapserver->getCustomDNAttrs($this->getDn(),false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||
if (! $custom_attrs_vals) $attrs_vals = array();
|
||||
elseif (! is_array($custom_attrs_vals)) $custom_attrs_vals = array($custom_attrs_vals);
|
||||
|
||||
$int_attrs_vals = array_merge($int_attrs_vals,$custom_int_attrs_vals);
|
||||
$attrs_vals = array_merge($attrs_vals,$custom_attrs_vals);
|
||||
$attrs_vals = array_merge($attrs_vals,$int_attrs_vals);
|
||||
|
||||
$selected_tmpl = isset($this->templates[$this->selected_template])
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/blowfish.php,v 1.4 2007/12/15 07:50:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/blowfish.php,v 1.4.2.1 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* The Cipher_blowfish:: class implements the Cipher interface enryption data
|
||||
@ -13,7 +13,7 @@
|
||||
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
|
||||
*
|
||||
* @author Mike Cochrane <mike@graftonhall.co.nz>
|
||||
* @version $Revision: 1.4 $
|
||||
* @version $Revision: 1.4.2.1 $
|
||||
* @since Horde 2.2
|
||||
* @package horde.cipher
|
||||
*/
|
||||
@ -440,9 +440,9 @@ class Horde_Cipher_blowfish {
|
||||
$unpack = unpack('N*', $block);
|
||||
|
||||
if (! is_array($unpack))
|
||||
pla_error(
|
||||
error(
|
||||
sprintf('BLOWFISH: decryptBock()<br>We expected unpack to produce an array, but instead it produced [%s]. This function was entered with (%s,%s). If you think that this is a bug, then please tell the PLA developers how you got here. You are using PLA [%s,%s]',
|
||||
serialize($unpack),rawurlencode($block),$key,pla_version(),phpversion()));
|
||||
serialize($unpack),rawurlencode($block),$key,pla_version(),phpversion()),'error','index.php');
|
||||
|
||||
list($L, $R) = array_values($unpack);
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/common.php,v 1.80.2.9 2008/01/30 11:14:02 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/common.php,v 1.80.2.17 2008/12/13 08:57:09 wurley Exp $
|
||||
|
||||
/**
|
||||
* Contains code to be executed at the top of each application page.
|
||||
@ -26,7 +26,9 @@ if (! defined('APPCONFIG'))
|
||||
*/
|
||||
$app['direct_scripts'] = array('cmd.php','index.php',
|
||||
'view_jpeg_photo.php','entry_chooser.php',
|
||||
'password_checker.php','download_binary_attr.php');
|
||||
'password_checker.php','download_binary_attr.php',
|
||||
'unserialize.php'
|
||||
);
|
||||
|
||||
foreach ($app['direct_scripts'] as $script) {
|
||||
$scriptOK = false;
|
||||
@ -132,20 +134,31 @@ error_reporting(E_ALL);
|
||||
# Start our session.
|
||||
pla_session_start();
|
||||
|
||||
# Initialise the hooks
|
||||
require_once LIBDIR.'hooks.php';
|
||||
|
||||
# If we get here, and $_SESSION[APPCONFIG] is not set, then redirect the user to the index.
|
||||
if (! isset($_SESSION[APPCONFIG])) {
|
||||
if (isset($_REQUEST['server_id']))
|
||||
header(sprintf('Location: index.php?server_id=%s',$_REQUEST['server_id']));
|
||||
else
|
||||
header('Location: index.php');
|
||||
header(sprintf('Location: index.php?URI=%s',base64_encode($_SERVER['QUERY_STRING'])));
|
||||
die();
|
||||
|
||||
} else {
|
||||
# SF Bug #1903987
|
||||
if (! method_exists($_SESSION[APPCONFIG],'CheckCustom'))
|
||||
error('Unknown situation, $_SESSION[APPCONFIG] exists, but method CheckCustom() does not','error',null,true,true);
|
||||
|
||||
# Check our custom variables.
|
||||
# @todo: Change this so that we dont process a cached session.
|
||||
$_SESSION[APPCONFIG]->CheckCustom();
|
||||
}
|
||||
|
||||
# Check for safe mode.
|
||||
if (ini_get('safe_mode') && ! get_request('cmd','GET'))
|
||||
system_message(array(
|
||||
'title'=>_('PHP Safe Mode'),
|
||||
'body'=>_('You have PHP Safe Mode enabled. PLA may work unexpectedly in Safe Mode.'),
|
||||
'type'=>'info'));
|
||||
|
||||
# Set our timezone, if it is specified in config.php
|
||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','timezone'))
|
||||
date_default_timezone_set($_SESSION[APPCONFIG]->GetValue('appearance','timezone'));
|
||||
@ -163,11 +176,11 @@ if (DEBUG_ENABLED)
|
||||
|
||||
# Set our PHP timelimit.
|
||||
if ($_SESSION[APPCONFIG]->GetValue('session','timelimit'))
|
||||
set_time_limit($_SESSION[APPCONFIG]->GetValue('session','timelimit'));
|
||||
@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'))
|
||||
set_time_limit($_SESSION[APPCONFIG]->GetValue('session','timelimit') * 5);
|
||||
@set_time_limit($_SESSION[APPCONFIG]->GetValue('session','timelimit') * 5);
|
||||
|
||||
/**
|
||||
* Language configuration. Auto or specified?
|
||||
@ -204,7 +217,7 @@ if ($language == 'auto') {
|
||||
(file_exists($language_dir) && is_readable($language_dir))) {
|
||||
|
||||
# Set language
|
||||
putenv('LANG='.$HTTP_LANG); # e.g. LANG=de_DE
|
||||
@putenv('LANG='.$HTTP_LANG); # e.g. LANG=de_DE
|
||||
$HTTP_LANG .= '.UTF-8';
|
||||
setlocale(LC_ALL,$HTTP_LANG); # set LC_ALL to de_DE
|
||||
bindtextdomain('messages',LANGDIR);
|
||||
@ -225,7 +238,7 @@ if ($language == 'auto') {
|
||||
$language = 'en_GB';
|
||||
|
||||
# Set language
|
||||
putenv('LANG='.$language); # e.g. LANG=de_DE
|
||||
@putenv('LANG='.$language); # e.g. LANG=de_DE
|
||||
$language .= '.UTF-8';
|
||||
setlocale(LC_ALL,$language); # set LC_ALL to de_DE
|
||||
bindtextdomain('messages',LANGDIR);
|
||||
@ -261,16 +274,23 @@ if (isset($_REQUEST['server_id'])) {
|
||||
* Look/evaluate our timeout
|
||||
*/
|
||||
if (isset($ldapserver) && is_object($ldapserver) && method_exists($ldapserver,'haveAuthInfo')) {
|
||||
if ($ldapserver->haveAuthInfo() && isset($ldapserver->auth_type) && $ldapserver->auth_type != 'config') {
|
||||
if ($ldapserver->haveAuthInfo() && isset($ldapserver->auth_type) && ! in_array($ldapserver->auth_type,array('config','http'))) {
|
||||
/**
|
||||
* If time out value has been reached:
|
||||
* - log out user
|
||||
* - put $server_id in array of recently timed out servers
|
||||
*/
|
||||
if (function_exists('session_timed_out') && session_timed_out($ldapserver)) {
|
||||
$app['url_timeout'] = sprintf('cmd.php?cmd=timeout&server_id=%s',$_REQUEST['server_id']);
|
||||
printf('<script type="text/javascript" language="javascript">location.href=\'%s\'</script>',
|
||||
htmlspecialchars($app['url_timeout']));
|
||||
|
||||
# If $session_timeout not defined, use ( session_cache_expire() - 1 )
|
||||
$session_timeout = $ldapserver->session_timeout ? $ldapserver->session_timeout : session_cache_expire()-1;
|
||||
|
||||
system_message(array(
|
||||
'title'=>_('Session Timed Out'),
|
||||
'body'=>sprintf('%s %s %s',
|
||||
_('Your Session timed out after'),$session_timeout,
|
||||
_('min. of inactivity. You have been automatically logged out.')),
|
||||
'type'=>'info'),'index.php');
|
||||
die();
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/config_default.php,v 1.27.2.7 2008/01/30 11:16:02 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/config_default.php,v 1.27.2.9 2008/12/12 12:20:22 wurley Exp $
|
||||
|
||||
/**
|
||||
* Configuration processing and defaults.
|
||||
@ -84,6 +84,10 @@ class Config {
|
||||
'desc'=>'Array of attributes that should show a the time when showing the jscalendar',
|
||||
'default'=>array(''));
|
||||
|
||||
$this->default->appearance['disable_default_template'] = array(
|
||||
'desc'=>'Disabled the Default Template',
|
||||
'default'=>false);
|
||||
|
||||
$this->default->appearance['hide_debug_info'] = array(
|
||||
'desc'=>'Hide the features that may provide sensitive debugging information to the browser',
|
||||
'default'=>true);
|
||||
@ -508,10 +512,10 @@ class Config {
|
||||
|
||||
if (! isset($config[$key]))
|
||||
error(sprintf('A call was made in [%s] to GetValue requesting [%s] that isnt predefined.',
|
||||
basename($_SERVER['PHP_SELF']),$key),'error',true);
|
||||
basename($_SERVER['PHP_SELF']),$key),'error',null,true);
|
||||
|
||||
if (! isset($config[$key][$index]))
|
||||
error(sprintf('Requesting an index [%s] in key [%s] that isnt predefined.',$index,$key),'error',true);
|
||||
error(sprintf('Requesting an index [%s] in key [%s] that isnt predefined.',$index,$key),'error',null,true);
|
||||
|
||||
return isset($config[$key][$index]['value']) ? $config[$key][$index]['value'] : $config[$key][$index]['default'];
|
||||
}
|
||||
@ -526,23 +530,23 @@ class Config {
|
||||
if (isset($this->default->$masterkey)) {
|
||||
|
||||
if (! is_array($masterdetails))
|
||||
error(sprintf('Error in configuration file, [%s] should be an ARRAY.',$masterdetails),'error',true);
|
||||
error(sprintf('Error in configuration file, [%s] should be an ARRAY.',$masterdetails),'error',null,true);
|
||||
|
||||
foreach ($masterdetails as $key => $value) {
|
||||
# Test that the key is correct.
|
||||
if (! in_array($key,array_keys($this->default->$masterkey)))
|
||||
error(sprintf('Error in configuration file, [%s] has not been defined as a configurable variable.',$key),'error',true);
|
||||
error(sprintf('Error in configuration file, [%s] has not been defined as a configurable variable.',$key),'error',null,true);
|
||||
|
||||
# Test if its should be an array or not.
|
||||
if (is_array($this->default->{$masterkey}[$key]['default']) && ! is_array($value))
|
||||
error(sprintf('Error in configuration file, %s[\'%s\'] SHOULD be an array of values.',$masterkey,$key),'error',true);
|
||||
error(sprintf('Error in configuration file, %s[\'%s\'] SHOULD be an array of values.',$masterkey,$key),'error',null,true);
|
||||
|
||||
if (! is_array($this->default->{$masterkey}[$key]['default']) && is_array($value))
|
||||
error(sprintf('Error in configuration file, %s[\'%s\'] should NOT be an array of values.',$masterkey,$key),'error',true);
|
||||
error(sprintf('Error in configuration file, %s[\'%s\'] should NOT be an array of values.',$masterkey,$key),'error',null,true);
|
||||
}
|
||||
|
||||
} else {
|
||||
error(sprintf('Error in configuration file, [%s] has not been defined as a MASTER configurable variable.',$masterkey),'error',true);
|
||||
error(sprintf('Error in configuration file, [%s] has not been defined as a MASTER configurable variable.',$masterkey),'error',null,true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/emuhash_functions.php,v 1.6.10.1 2007/12/21 12:11:55 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/emuhash_functions.php,v 1.6.10.2 2008/12/12 12:20:23 wurley Exp $
|
||||
|
||||
/*******************************************************************************
|
||||
* emuhash - partly emulates the php mhash functions
|
||||
@ -64,7 +64,7 @@ if( ! function_exists( 'mhash' ) && ! function_exists( 'mhash_keygen_s2k' ) ) {
|
||||
$pwhandle = fopen( $tmpfile, "w" );
|
||||
|
||||
if( ! $pwhandle )
|
||||
pla_error( "Unable to create a temporary file '$tmpfile' to create hashed password" );
|
||||
error(sprintf('Unable to create a temporary file %s to create hashed password',$tmpfile) ,'error','index.php');
|
||||
|
||||
fwrite( $pwhandle, $password_clear );
|
||||
fclose( $pwhandle );
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/export_functions.php,v 1.36.2.1 2007/12/26 09:26:33 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/export_functions.php,v 1.36.2.2 2008/12/12 12:20:23 wurley Exp $
|
||||
|
||||
/**
|
||||
* Fuctions and classes for exporting ldap entries to others formats
|
||||
@ -249,8 +249,10 @@ class PlaLdapExporter extends PlaAbstractExporter {
|
||||
|
||||
# if no result, there is a something wrong
|
||||
if (! $this->results && $this->ldap_info->ldapserver->errno())
|
||||
pla_error(_('Encountered an error while performing search.'),$this->ldap_info->ldapserver->error(),
|
||||
$this->ldap_info->ldapserver->errno());
|
||||
system_message(array(
|
||||
'title'=>_('Encountered an error while performing search.'),
|
||||
'body'=>ldap_error_msg($this->ldap_info->ldapserver->error(),$this->ldap_info->ldapserver->errno()),
|
||||
'type'=>'error'));
|
||||
|
||||
usort($this->results,'pla_compare_dns');
|
||||
$this->num_entries = count($this->results);
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/functions.php,v 1.303.2.26 2008/01/30 11:17:00 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/functions.php,v 1.303.2.41 2008/12/12 12:52:26 wurley Exp $
|
||||
|
||||
/**
|
||||
* A collection of common generic functions used throughout the application.
|
||||
@ -37,8 +37,6 @@ $app['function_files'] = array(
|
||||
LIBDIR.'template_functions.php',
|
||||
# Functions for hashing passwords with OpenSSL binary (only if mhash not present)
|
||||
LIBDIR.'emuhash_functions.php',
|
||||
# Functions for running various hooks
|
||||
LIBDIR.'hooks.php',
|
||||
# Functions for creating Samba passwords
|
||||
LIBDIR.'createlm.php',
|
||||
# Functions for timeout and automatic logout feature
|
||||
@ -66,6 +64,15 @@ function __autoload($className) {
|
||||
'type'=>'error'));
|
||||
}
|
||||
|
||||
/**
|
||||
* If gettext is not installed, we will emulate it here.
|
||||
*/
|
||||
if (! function_exists('_')) {
|
||||
function _($msg) {
|
||||
return $msg;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Generic Utility Functions
|
||||
*/
|
||||
@ -151,7 +158,7 @@ function pla_error_handler($errno,$errstr,$file,$lineno) {
|
||||
}
|
||||
|
||||
# If this is a more serious error, call the error call.
|
||||
error(sprintf('%s: %s',$errtype,$errstr),'error',true,true);
|
||||
error(sprintf('%s: %s',$errtype,$errstr),'error',null,true,true);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -161,6 +168,11 @@ function pla_error_handler($errno,$errstr,$file,$lineno) {
|
||||
* @return string The current version as read from the VERSION file.
|
||||
*/
|
||||
function pla_version() {
|
||||
static $return = null;
|
||||
|
||||
if ($return)
|
||||
return $return;
|
||||
|
||||
$version_file = realpath(LIBDIR.'../VERSION');
|
||||
if (! file_exists($version_file))
|
||||
$return = 'UNKNOWN';
|
||||
@ -229,27 +241,6 @@ function check_config($config_file) {
|
||||
REQUIRED_PHP_VERSION,phpversion()),
|
||||
'type'=>'error'));
|
||||
|
||||
# Make sure this PHP install has all our required extensions
|
||||
if (! extension_loaded('ldap'))
|
||||
system_message(array(
|
||||
'title'=>_('Missing required extension'),
|
||||
'body'=>'Your install of PHP appears to be missing LDAP support.<br /><br />Please install LDAP support before using phpLDAPadmin.<br /><small>(Dont forget to restart your web server afterwards)</small>',
|
||||
'type'=>'error'));
|
||||
|
||||
# Make sure that we have php-xml loaded.
|
||||
if (! function_exists('xml_parser_create'))
|
||||
system_message(array(
|
||||
'title'=>_('Missing required extension'),
|
||||
'body'=>'Your install of PHP appears to be missing XML support.<br /><br />Please install XML support before using phpLDAPadmin.<br /><small>(Dont forget to restart your web server afterwards)</small>',
|
||||
'type'=>'error'));
|
||||
|
||||
# Make sure their session save path is writable, if they are using a file system session module, that is.
|
||||
if (! strcasecmp('Files',session_module_name() && ! is_writable(realpath(session_save_path()))))
|
||||
system_message(array(
|
||||
'title'=>_('PHP session configuration incorrect'),
|
||||
'body'=>sprintf('Your PHP session configuration is incorrect. Please check the value of session.save_path in your php.ini to ensure that the directory specified there exists and is writable. The current setting of "%s" is un-writable by the web server.',session_save_path()),
|
||||
'type'=>'error'));
|
||||
|
||||
$config = new Config;
|
||||
|
||||
ob_start();
|
||||
@ -353,19 +344,19 @@ function check_config($config_file) {
|
||||
*/
|
||||
function cmd_control_pane() {
|
||||
return array(
|
||||
'home'=>array('link'=>sprintf('<a href="cmd.php?cmd=welcome" title="%s"><img src="images/home-big.png" alt="%s" /><br />%s</a>',_('Home'),_('Home'),_('Home'))),
|
||||
'purge'=>array('link'=>sprintf('<a href="cmd.php?cmd=purge_cache" title="%s"><img src="images/trash-big.png" alt="%s" /><br />%s</a>',
|
||||
_('Purge caches'),_('Purge all cached data in phpLDAPadmin, including server schemas.'),_('Purge caches'))),
|
||||
'external_links:feature'=>array('link'=>sprintf('<a href="%s" target="new" title="%s"><img src="images/request-feature.png" alt="%s" /><br />%s</a>',
|
||||
get_href('add_rfe'),_('Request feature'),_('light'),_('Request feature'))),
|
||||
'external_links:bug'=>array('link'=>sprintf('<a href="%s" target="new" title="%s"><img src="images/bug-big.png" alt="%s" /><br />%s</a>',
|
||||
get_href('add_bug'),_('Report a bug'),_('bug'),_('Report a bug'))),
|
||||
'external_links:donation'=>array('link'=>sprintf('<a href="%s" target="new" title="%s"><img src="images/smile-big.png" alt="%s" /><br />%s</a>',
|
||||
get_href('donate'),_('Donate'),_('Donate'),_('Donate'))),
|
||||
'appearance:hide_debug_info'=>array('link'=>sprintf('<a href="cmd.php?cmd=show_cache" title="%s"><img src="images/debug-cache.png" alt="%s" /><br />%s</a>',
|
||||
_('Show Cache'),_('Show Cache'),_('Show Cache'))),
|
||||
'external_links:help'=>array('link'=>sprintf('<a href="%s" target="new" title="%s"><img src="images/help-big.png" alt="%s" /><br />%s</a>',
|
||||
get_href('documentation'),_('Help'),_('Help'),_('Help')))
|
||||
'home'=>array('link'=>sprintf('<a href="cmd.php?cmd=welcome" title="%s"><img src="%s/home-big.png" alt="%s" /><br />%s</a>',_('Home'),IMGDIR,_('Home'),_('Home'))),
|
||||
'purge'=>array('link'=>sprintf('<a href="cmd.php?cmd=purge_cache" title="%s"><img src="%s/trash-big.png" alt="%s" /><br />%s</a>',
|
||||
_('Purge caches'),IMGDIR,_('Purge all cached data in phpLDAPadmin, including server schemas.'),_('Purge caches'))),
|
||||
'external_links:feature'=>array('link'=>sprintf('<a href="%s" target="new" title="%s"><img src="%s/request-feature.png" alt="%s" /><br />%s</a>',
|
||||
get_href('add_rfe'),_('Request feature'),IMGDIR,_('light'),_('Request feature'))),
|
||||
'external_links:bug'=>array('link'=>sprintf('<a href="%s" target="new" title="%s"><img src="%s/bug-big.png" alt="%s" /><br />%s</a>',
|
||||
get_href('add_bug'),_('Report a bug'),IMGDIR,_('bug'),_('Report a bug'))),
|
||||
'external_links:donation'=>array('link'=>sprintf('<a href="%s" target="new" title="%s"><img src="%s/smile-big.png" alt="%s" /><br />%s</a>',
|
||||
get_href('donate'),_('Donate'),IMGDIR,_('Donate'),_('Donate'))),
|
||||
'appearance:hide_debug_info'=>array('link'=>sprintf('<a href="cmd.php?cmd=show_cache" title="%s"><img src="%s/debug-cache.png" alt="%s" /><br />%s</a>',
|
||||
_('Show Cache'),IMGDIR,_('Show Cache'),_('Show Cache'))),
|
||||
'external_links:help'=>array('link'=>sprintf('<a href="%s" target="new" title="%s"><img src="%s/help-big.png" alt="%s" /><br />%s</a>',
|
||||
get_href('documentation'),_('Help'),IMGDIR,_('Help'),_('Help')))
|
||||
);
|
||||
}
|
||||
|
||||
@ -389,6 +380,14 @@ function debug_dump($variable,$die=false,$onlydebugaddr=false) {
|
||||
die();
|
||||
}
|
||||
|
||||
/**
|
||||
* This function generates a backtrace
|
||||
* @param boolean Whether to stop execution or not.
|
||||
*/
|
||||
function debug_dump_backtrace($msg='Calling BackTrace',$die=false) {
|
||||
error($msg,'note',null,$die,true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Debug Logging to Syslog
|
||||
*
|
||||
@ -498,7 +497,7 @@ function debug_log($msg,$level=0) {
|
||||
/**
|
||||
* Display an error message in the system message panel of the page.
|
||||
*/
|
||||
function error($msg,$type='note',$fatal=false,$backtrace=false) {
|
||||
function error($msg,$type='note',$redirect=null,$fatal=false,$backtrace=false) {
|
||||
global $www;
|
||||
global $counter;
|
||||
|
||||
@ -510,7 +509,10 @@ function error($msg,$type='note',$fatal=false,$backtrace=false) {
|
||||
if (! isset($www['page']))
|
||||
$www['page'] = new page();
|
||||
|
||||
if ($fatal)
|
||||
$www['page']->setsysmsg(array('title'=>_('Error'),'body'=>$msg,'type'=>$type));
|
||||
else
|
||||
system_message(array('title'=>_('Error'),'body'=>$msg,'type'=>$type),$redirect);
|
||||
|
||||
# Spin loop detection
|
||||
if ($counter++ > 20) {
|
||||
@ -525,24 +527,33 @@ function error($msg,$type='note',$fatal=false,$backtrace=false) {
|
||||
|
||||
$body = '<table class="result_table">';
|
||||
$body .= "\n";
|
||||
foreach (debug_backtrace() as $error => $line) {
|
||||
$body .= sprintf('<tr class="hightlight"><td colspan="2"><b><small>%s</small></b></td><td>%s (%s)</td></tr>',
|
||||
_('File'),isset($line['file']) ? $line['file'] : '',isset($line['line']) ? $line['line'] : '');
|
||||
|
||||
foreach (debug_backtrace() as $error => $line) {
|
||||
$_SESSION['backtrace'][$error]['file'] = $line['file'];
|
||||
$_SESSION['backtrace'][$error]['line'] = $line['line'];
|
||||
$body .= sprintf('<tr class="hightlight"><td colspan="2"><b><small>%s</small></b></td><td>%s (%s)</td></tr>',
|
||||
_('File'),isset($line['file']) ? $line['file'] : $last['file'],isset($line['line']) ? $line['line'] : '');
|
||||
|
||||
$_SESSION['backtrace'][$error]['function'] = $line['function'];
|
||||
$body .= sprintf('<tr><td> </td><td><b><small>%s</small></b></td><td><small>%s',
|
||||
_('Function'),$line['function']);
|
||||
|
||||
if (isset($line['args']))
|
||||
if (isset($line['args'])) {
|
||||
$display = strlen(serialize($line['args'])) < 50 ? serialize($line['args']) : 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?var=%s">%s</a>)',
|
||||
'/tools/unserialize.php',
|
||||
htmlspecialchars(serialize($line['args'])),
|
||||
htmlspecialchars(serialize($line['args'])));
|
||||
$body .= sprintf(' (<a href="%s?index=%s" target="backtrace">%s</a>)',
|
||||
'../tools/unserialize.php',$error,htmlspecialchars($display));
|
||||
else
|
||||
$body .= sprintf(' (%s)',htmlspecialchars(serialize($line['args'])));
|
||||
$body .= sprintf(' (%s)',htmlspecialchars($display));
|
||||
}
|
||||
$body .= '</small></td></tr>';
|
||||
$body .= "\n";
|
||||
|
||||
if ($line['file'])
|
||||
$last['file'] = $line['file'];
|
||||
}
|
||||
|
||||
$body .= '</table>';
|
||||
$body .= "\n";
|
||||
$backtraceblock->SetBody($body);
|
||||
@ -609,7 +620,16 @@ function system_message($msg,$redirect=null) {
|
||||
|
||||
$_SESSION['sysmsg'][] = $msg;
|
||||
|
||||
if (get_request('redirect','GET'))
|
||||
debug_dump_backtrace('Redirect Loop Detected',true);
|
||||
|
||||
if ($redirect) {
|
||||
if (preg_match('/\?/',$redirect))
|
||||
$redirect .= '&';
|
||||
else
|
||||
$redirect .= '?';
|
||||
$redirect .= 'redirect=true';
|
||||
|
||||
header("Location: $redirect");
|
||||
die();
|
||||
}
|
||||
@ -1149,17 +1169,17 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid',$increment=false
|
||||
$base_dn = $_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','search_base');
|
||||
|
||||
if (is_null($base_dn))
|
||||
pla_error(sprintf(_('You specified the "auto_uid_number_mechanism" as "search" in your
|
||||
error(sprintf(_('You specified the "auto_uid_number_mechanism" as "search" in your
|
||||
configuration for server <b>%s</b>, but you did not specify the
|
||||
"auto_uid_number_search_base". Please specify it before proceeding.'),$ldapserver->name));
|
||||
"auto_uid_number_search_base". Please specify it before proceeding.'),$ldapserver->name),'error','index.php');
|
||||
|
||||
} else {
|
||||
$base_dn = $startbase;
|
||||
}
|
||||
|
||||
if (! $ldapserver->dnExists($base_dn))
|
||||
pla_error(sprintf(_('Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s'),
|
||||
$ldapserver->name));
|
||||
error(sprintf(_('Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s'),
|
||||
$ldapserver->name),'error','index.php');
|
||||
|
||||
$filter = '(|(uidNumber=*)(gidNumber=*))';
|
||||
$results = array();
|
||||
@ -1170,12 +1190,13 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid',$increment=false
|
||||
$_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','pass'));
|
||||
|
||||
if (! $con)
|
||||
pla_error(sprintf(_('Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.'),$ldapserver->name));
|
||||
error(sprintf(_('Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.'),$ldapserver->name),
|
||||
'error','index.php');
|
||||
|
||||
$search = $ldapserver->search($con,$base_dn,$filter,array('uidNumber','gidNumber'),'sub',false,$_SESSION[APPCONFIG]->GetValue('deref','search'));
|
||||
|
||||
if (! is_array($search))
|
||||
pla_error('Untrapped error.');
|
||||
error(_('Untrapped error.'),'error','index.php');
|
||||
|
||||
foreach ($search as $dn => $attrs) {
|
||||
$attrs = array_change_key_case($attrs);
|
||||
@ -1198,7 +1219,7 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid',$increment=false
|
||||
}
|
||||
break;
|
||||
default :
|
||||
pla_error(sprintf('Unknown type [%s] in search',$type));
|
||||
error(sprintf('Unknown type [%s] in search',$type),'error','index.php');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1234,13 +1255,15 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid',$increment=false
|
||||
$_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','pass'));
|
||||
|
||||
if (! $con)
|
||||
pla_error(sprintf(_('Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.'),$ldapserver->name));
|
||||
error(sprintf(_('Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.'),$ldapserver->name),
|
||||
'error','index.php');
|
||||
|
||||
# assume that uidpool dn is set in config file if no filter given
|
||||
if (empty($filter))
|
||||
if (empty($filter)) {
|
||||
$uidpool_dn = $_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','uidpool_dn');
|
||||
$filter = '(objectclass=*)';
|
||||
|
||||
else {
|
||||
} else {
|
||||
$filter = str_replace(array('&',':::'),array('&',','),$filter);
|
||||
$dns = $ldapserver->search($con,$startbase,$filter,array('dn'),'sub');
|
||||
|
||||
@ -1249,10 +1272,10 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid',$increment=false
|
||||
break;
|
||||
|
||||
case '0':
|
||||
pla_error(_('Uidpool dn not found, please change filter parameter'));
|
||||
error(_('Uidpool dn not found, please change filter parameter'),'error','index.php');
|
||||
|
||||
default:
|
||||
pla_error(_('There is more than one dn for uidpool,please change filter parameter'));
|
||||
error(_('There is more than one dn for uidpool,please change filter parameter'),'error','index.php');
|
||||
}
|
||||
|
||||
list ($key,$attrs) = each($dns);
|
||||
@ -1260,31 +1283,38 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid',$increment=false
|
||||
$uidpool_dn = $attrs['dn'];
|
||||
}
|
||||
|
||||
if (empty($uidpool_dn))
|
||||
pla_error(_('uidpool_dn not found. Please check filter (arg 3) or set up uidpool_dn in config file'));
|
||||
# Check that the UIDPOOL DN exists.
|
||||
if (empty($uidpool_dn) || (! $ldapserver->dnExists($uidpool_dn)))
|
||||
error(_('uidpool_dn not found. Please check filter (arg 3) or set up uidpool_dn in config file'),'error','index.php');
|
||||
|
||||
$attrs = array($type);
|
||||
$key = strtolower($type);
|
||||
$realkey = $type;
|
||||
switch ($type) {
|
||||
case 'uid' : $attr = 'uidnumber';
|
||||
break;
|
||||
case 'gid' : $attr = 'gidnumber';
|
||||
break;
|
||||
default :
|
||||
error(_('Unknown uidpool type.'),'error','index.php');
|
||||
}
|
||||
|
||||
$number = $ldapserver->search($con,$uidpool_dn,$filter,$attrs,'base');
|
||||
list($rkey,$number) = each($number);
|
||||
$number = array_change_key_case($number);
|
||||
$number = $number[$key];
|
||||
$number = $ldapserver->search($con,$uidpool_dn,$filter,array($attr),'base');
|
||||
$numbers = array_change_key_case($number[$uidpool_dn]);
|
||||
|
||||
if (isset($increment) && ($increment == 'true')) {
|
||||
$updatedattr = array ($key => $number + 1);
|
||||
if (! isset($numbers[$attr]))
|
||||
error(_('A query on the uidpool_dn did return a valid uidNumber.'),'error','index.php');
|
||||
else
|
||||
|
||||
if ($increment) {
|
||||
$updatedattr = array($attr => $numbers[$attr] + 1);
|
||||
$ldapserver->modify($uidpool_dn,$updatedattr);
|
||||
}
|
||||
|
||||
return $number;
|
||||
return $numbers[$attr];
|
||||
break;
|
||||
|
||||
# No other cases allowed. The user has an error in the configuration
|
||||
default :
|
||||
pla_error( sprintf( _('You specified an invalid value for auto_uid_number_mechanism ("%s")
|
||||
in your configration. Only "uidpool" and "search" are valid.
|
||||
Please correct this problem.') , $mechanism) );
|
||||
error(sprintf(_('You specified an invalid value for auto_uid_number_mechanism ("%s") in your configration. Only "uidpool" and "search" are valid.
|
||||
Please correct this problem.'),$mechanism),'error','index.php');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1380,7 +1410,7 @@ function get_icon( $ldapserver, $dn ) {
|
||||
$cval = explode( '=', $tmp[0], 2 );
|
||||
$cval = isset( $cval[1] ) ? $cval[1] : false;
|
||||
if( $cval && false === strpos( $cval, ".." ) &&
|
||||
file_exists( realpath( sprintf("./images/countries/%s.png",strtolower($cval)) ) ) )
|
||||
file_exists(realpath(sprintf('%s/countries/%s.png',IMGDIR,strtolower($cval)))))
|
||||
|
||||
return sprintf("countries/%s.png",strtolower($cval));
|
||||
|
||||
@ -1732,56 +1762,28 @@ function support_oid_to_text($oid_id) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Prints an HTML-formatted error string. If you specify the optional
|
||||
* parameters $ldap_err_msg and $ldap_err_no, this function will
|
||||
* lookup the error number and display a verbose message in addition
|
||||
* to the message you pass it.
|
||||
*
|
||||
* @param string $msg The error message to display.
|
||||
* @param string $ldap_err_msg (optional) The error message supplied by the LDAP server
|
||||
* @param string $ldap_err_no (optional) The hexadecimal error number string supplied by the LDAP server
|
||||
* @param bool $fatal (optional) If true, phpLDAPadmin will terminate execution with the PHP die() function.
|
||||
*
|
||||
* @see die
|
||||
* @see ldap_errno
|
||||
* @see pla_verbose_error
|
||||
* Print an LDAP error message
|
||||
*/
|
||||
function pla_error($msg,$ldap_err_msg=null,$ldap_err_no=-1,$fatal=true) {
|
||||
if (defined('DEBUG_ENABLED') && (DEBUG_ENABLED))
|
||||
debug_log('Entered with (%s,%s,%s,%s)',1,__FILE__,__LINE__,__METHOD__,
|
||||
$msg,$ldap_err_msg,$ldap_err_no,$fatal);
|
||||
function ldap_error_msg($msg,$errnum) {
|
||||
$body = '<table border=0>';
|
||||
|
||||
$title = '';
|
||||
$errnum = ('0x'.str_pad(dechex($errnum),2,0,STR_PAD_LEFT));
|
||||
$verbose_error = pla_verbose_error($errnum);
|
||||
|
||||
if (function_exists('syslog_err'))
|
||||
syslog_err($msg);
|
||||
|
||||
if ($ldap_err_msg)
|
||||
$title = sprintf('<b>%s</b>: %s',_('LDAP said'),htmlspecialchars($ldap_err_msg));
|
||||
|
||||
if ($ldap_err_no != -1) {
|
||||
$body = '<table>';
|
||||
|
||||
$ldap_err_no = ('0x'.str_pad(dechex($ldap_err_no),2,0,STR_PAD_LEFT));
|
||||
$verbose_error = pla_verbose_error($ldap_err_no);
|
||||
$body .= sprintf('<tr><td><b>%s</b>:</td><td>%s</td></tr>',_('LDAP said'),htmlspecialchars($msg));
|
||||
|
||||
if ($verbose_error) {
|
||||
$body .= sprintf('<tr><td colspan="2"><b>%s</b>: %s (%s)</td></tr>',_('Error number'),$ldap_err_no,$verbose_error['title']);
|
||||
$body .= sprintf('<tr><td colspan="2"><b>%s</b>: %s</td></tr>',_('Description'),$verbose_error['desc']);
|
||||
$body .= sprintf('<tr><td><b>%s</b>:</td><td>%s (%s)</td></tr>',_('Error number'),$errnum,$verbose_error['title']);
|
||||
$body .= sprintf('<tr><td><b>%s</b>:</td><td>%s</td></tr>',_('Description'),$verbose_error['desc']);
|
||||
|
||||
} else {
|
||||
$body .= sprintf('<tr><td colspan="2"><b>%s</b>: %s</td></tr>',_('Error number'),$ldap_err_no);
|
||||
$body .= sprintf('<tr><td colspan="2"><b>%s</b>: (%s)</td></tr>',_('Description'),_('no description available'));
|
||||
$body .= sprintf('<tr><td><b>%s</b>:</td><td>%s</td></tr>',_('Error number'),$errnum);
|
||||
$body .= sprintf('<tr><td><b>%s</b>:</td><td>(%s)</td></tr>',_('Description'),_('no description available'));
|
||||
}
|
||||
|
||||
$body .= '</table>';
|
||||
|
||||
if (function_exists('syslog_err'))
|
||||
syslog_err(sprintf('%s %s',_('Error number'),$ldap_err_no));
|
||||
|
||||
} else {
|
||||
$body = $msg;
|
||||
}
|
||||
|
||||
system_message(array('title'=>$title ? $title : 'Error','body'=>$body,'type'=>'error'),$fatal ? 'index.php' : null);
|
||||
return $body;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1832,7 +1834,7 @@ function draw_jpeg_photos($ldapserver,$dn,$attr_name='jpegPhoto',$draw_delete_bu
|
||||
|
||||
$jpeg_temp_dir = realpath($_SESSION[APPCONFIG]->GetValue('jpeg','tmpdir').'/');
|
||||
if (! is_writable($jpeg_temp_dir))
|
||||
pla_error(_('Please set $jpeg_temp_dir to a writable directory in the phpLDAPadmin config.php') );
|
||||
error(_('Please set $jpeg_temp_dir to a writable directory in the phpLDAPadmin config.php'),'error','index.php');
|
||||
|
||||
if (! is_array($jpeg_data[$attr_name]))
|
||||
$jpeg_data[$attr_name] = array($jpeg_data[$attr_name]);
|
||||
@ -1841,7 +1843,8 @@ function draw_jpeg_photos($ldapserver,$dn,$attr_name='jpegPhoto',$draw_delete_bu
|
||||
$jpeg_filename = tempnam($jpeg_temp_dir.'/','pla');
|
||||
$outjpeg = @fopen($jpeg_filename,'wb');
|
||||
if (! $outjpeg)
|
||||
pla_error(sprintf(_('Could not write to the $jpeg_temp_dir directory %s. Please verify that your web server can write files there.'),$jpeg_temp_dir));
|
||||
error(sprintf(_('Could not write to the $jpeg_temp_dir directory %s. Please verify that your web server can write files there.'),$jpeg_temp_dir),
|
||||
'error','index.php');
|
||||
fwrite($outjpeg,$jpeg);
|
||||
fclose ($outjpeg);
|
||||
|
||||
@ -1902,7 +1905,7 @@ function draw_jpeg_photos($ldapserver,$dn,$attr_name='jpegPhoto',$draw_delete_bu
|
||||
}
|
||||
closedir($handle);
|
||||
} else {
|
||||
pla_error(sprintf('failed to open dir %s : permission denied', $jpeg_temp_dir), null, -1, false, false);
|
||||
error(sprintf('failed to open dir %s : permission denied',$jpeg_temp_dir),'error');
|
||||
}
|
||||
}
|
||||
|
||||
@ -1932,21 +1935,21 @@ function password_hash( $password_clear, $enc_type ) {
|
||||
case 'ext_des':
|
||||
// extended des crypt. see OpenBSD crypt man page.
|
||||
if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 )
|
||||
pla_error( _('Your system crypt library does not support extended DES encryption.') );
|
||||
error(_('Your system crypt library does not support extended DES encryption.'),'error','index.php');
|
||||
|
||||
$new_value = '{CRYPT}' . crypt( $password_clear, '_' . random_salt(8) );
|
||||
break;
|
||||
|
||||
case 'md5crypt':
|
||||
if( ! defined( 'CRYPT_MD5' ) || CRYPT_MD5 == 0 )
|
||||
pla_error( _('Your system crypt library does not support md5crypt encryption.') );
|
||||
error(_('Your system crypt library does not support md5crypt encryption.'),'error','index.php');
|
||||
|
||||
$new_value = '{CRYPT}' . crypt( $password_clear , '$1$' . random_salt(9) );
|
||||
break;
|
||||
|
||||
case 'blowfish':
|
||||
if( ! defined( 'CRYPT_BLOWFISH' ) || CRYPT_BLOWFISH == 0 )
|
||||
pla_error( _('Your system crypt library does not support blowfish encryption.') );
|
||||
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 = '{CRYPT}' . crypt( $password_clear , '$2a$12$' . random_salt(13) );
|
||||
@ -1965,7 +1968,7 @@ function password_hash( $password_clear, $enc_type ) {
|
||||
$new_value = '{SHA}' . base64_encode( mhash( MHASH_SHA1, $password_clear) );
|
||||
|
||||
} else {
|
||||
pla_error( _('Your PHP install does not have the mhash() function. Cannot do SHA hashes.') );
|
||||
error(_('Your PHP install does not have the mhash() function. Cannot do SHA hashes.'),'error','index.php');
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1976,7 +1979,7 @@ function password_hash( $password_clear, $enc_type ) {
|
||||
$new_value = "{SSHA}".base64_encode( mhash( MHASH_SHA1, $password_clear.$salt ).$salt );
|
||||
|
||||
} else {
|
||||
pla_error( _('Your PHP install does not have the mhash() function. Cannot do SHA hashes.') );
|
||||
error(_('Your PHP install does not have the mhash() function. Cannot do SHA hashes.'),'error','index.php');
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1987,7 +1990,7 @@ function password_hash( $password_clear, $enc_type ) {
|
||||
$new_value = "{SMD5}".base64_encode( mhash( MHASH_MD5, $password_clear.$salt ).$salt );
|
||||
|
||||
} else {
|
||||
pla_error( _('Your PHP install does not have the mhash() function. Cannot do SHA hashes.') );
|
||||
error(_('Your PHP install does not have the mhash() function. Cannot do SHA hashes.'),'error','index.php');
|
||||
}
|
||||
break;
|
||||
|
||||
@ -2026,7 +2029,8 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
||||
// check php mhash support before using it
|
||||
if( function_exists( 'mhash' ) ) {
|
||||
$hash = base64_decode($cryptedpassword);
|
||||
$salt = substr($hash, -4);
|
||||
# OpenLDAP uses a 4 byte salt, SunDS uses an 8 byte salt - both from char 20.
|
||||
$salt = substr($hash,20);
|
||||
$new_hash = base64_encode( mhash( MHASH_SHA1, $plainpassword.$salt).$salt );
|
||||
|
||||
if( strcmp( $cryptedpassword, $new_hash ) == 0 )
|
||||
@ -2035,7 +2039,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
||||
return false;
|
||||
|
||||
} else {
|
||||
pla_error( _('Your PHP install does not have the mhash() function. Cannot do SHA hashes.') );
|
||||
error(_('Your PHP install does not have the mhash() function. Cannot do SHA hashes.'),'error','index.php');
|
||||
}
|
||||
break;
|
||||
|
||||
@ -2053,7 +2057,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
||||
return false;
|
||||
|
||||
} else {
|
||||
pla_error( _('Your PHP install does not have the mhash() function. Cannot do SHA hashes.') );
|
||||
error(_('Your PHP install does not have the mhash() function. Cannot do SHA hashes.'),'error','index.php');
|
||||
}
|
||||
break;
|
||||
|
||||
@ -2080,7 +2084,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
||||
|
||||
// make sure that web server supports blowfish crypt
|
||||
if( ! defined( 'CRYPT_BLOWFISH' ) || CRYPT_BLOWFISH == 0 )
|
||||
pla_error( _('Your system crypt library does not support blowfish encryption.') );
|
||||
error(_('Your system crypt library does not support blowfish encryption.'),'error','index.php');
|
||||
|
||||
list(,$version,$rounds,$salt_hash) = explode('$',$cryptedpassword);
|
||||
|
||||
@ -2095,7 +2099,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
||||
|
||||
// make sure that web server supports md5 crypt
|
||||
if( ! defined( 'CRYPT_MD5' ) || CRYPT_MD5 == 0 )
|
||||
pla_error( _('Your system crypt library does not support md5crypt encryption.') );
|
||||
error(_('Your system crypt library does not support md5crypt encryption.'),'error','index.php');
|
||||
|
||||
list(,$type,$salt,$hash) = explode('$',$cryptedpassword);
|
||||
|
||||
@ -2110,7 +2114,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
||||
|
||||
// make sure that web server supports ext_des
|
||||
if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 )
|
||||
pla_error( _('Your system crypt library does not support extended DES encryption.') );
|
||||
error(_('Your system crypt library does not support extended DES encryption.'),'error','index.php');
|
||||
|
||||
if( crypt($plainpassword, $cryptedpassword ) == $cryptedpassword )
|
||||
return true;
|
||||
@ -2218,7 +2222,7 @@ function draw_chooser_link( $form_element, $include_choose_text=true, $rdn="none
|
||||
|
||||
$title = _('Click to popup a dialog to select an entry (DN) graphically');
|
||||
|
||||
printf('<a href="%s" title="%s"><img class="chooser" src="images/find.png" alt="Find" /></a>',$href,$title);
|
||||
printf('<a href="%s" title="%s"><img class="chooser" src="%s/find.png" alt="Find" /></a>',$href,$title,IMGDIR);
|
||||
if ($include_choose_text)
|
||||
printf('<span class="x-small"><a href="%s" title="%s">%s</a></span>',$href,$title,_('browse'));
|
||||
}
|
||||
@ -2330,7 +2334,7 @@ function dn_unescape($dn) {
|
||||
*/
|
||||
function get_href($type,$extra_info='') {
|
||||
$sf = 'https://sourceforge.net';
|
||||
$pla = 'http://phpldapadmin.wiki.sourceforge.net';
|
||||
$pla = 'http://phpldapadmin.sourceforge.net';
|
||||
$group_id = '61828';
|
||||
$bug_atid = '498546';
|
||||
$rfe_atid = '498549';
|
||||
@ -2921,13 +2925,13 @@ function server_info_list($visible=false) {
|
||||
return $server_info_list;
|
||||
}
|
||||
|
||||
function enc_type_select_list($enc_type,$id,$attribute,$i) {
|
||||
function enc_type_select_list($enc_type,$id,$attributename,$i) {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Entered with (%s,%s,%s,%s)',1,__FILE__,__LINE__,__METHOD__,$enc_type,$id,$attribute,$i);
|
||||
debug_log('Entered with (%s,%s,%s,%s)',1,__FILE__,__LINE__,__METHOD__,$enc_type,$id,$attributename,$i);
|
||||
|
||||
$html = sprintf('<select id="%s_%s_%s" name="%s[%s][%s]">',
|
||||
$id, htmlspecialchars($attribute->getName()), $i,
|
||||
$id, htmlspecialchars($attribute->getName()), $i);
|
||||
$id,htmlspecialchars($attributename),$i,
|
||||
$id,htmlspecialchars($attributename),$i);
|
||||
|
||||
$html .= '<option>clear</option>';
|
||||
foreach (array('crypt','ext_des','md5crypt','blowfish','md5','smd5','sha','ssha') as $option)
|
||||
@ -3201,7 +3205,7 @@ function draw_date_selector_link( $attr ) {
|
||||
|
||||
$href = "javascript:dateSelector('$attr');";
|
||||
$title = _('Click to popup a dialog to select a date graphically');
|
||||
printf('<a href="%s" title="%s"><img class="chooser" src="images/calendar.png" id="f_trigger_%s" style="cursor: pointer;" alt="Calendar" /></a>',$href,$title,$attr);
|
||||
printf('<a href="%s" title="%s"><img class="chooser" src="%s/calendar.png" id="f_trigger_%s" style="cursor: pointer;" alt="Calendar" /></a>',$href,$title,IMGDIR,$attr);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -3223,4 +3227,13 @@ function random_junk() {
|
||||
function htmlid($sid,$dn) {
|
||||
return sprintf('SID%s:%s',$sid,preg_replace('/[\ =,]/','_',$dn));
|
||||
}
|
||||
|
||||
/**
|
||||
* Is compression enabled for output
|
||||
*/
|
||||
function isCompress() {
|
||||
return (isset($_SESSION[APPCONFIG]) && $_SESSION[APPCONFIG]->GetValue('appearance','compress')
|
||||
&& ! ini_get('zlib.output_compression')
|
||||
&& eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING']));
|
||||
}
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/hooks.php,v 1.10.2.1 2007/12/26 09:26:33 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/hooks.php,v 1.10.2.3 2008/11/28 04:44:54 wurley Exp $
|
||||
|
||||
/**
|
||||
* Functions related to hooks management.
|
||||
@ -52,7 +52,6 @@ function sort_array_by_priority($a,$b) {
|
||||
function run_hook($hook_name,$args) {
|
||||
$hooks = isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->hooks : array();
|
||||
|
||||
$debug = 0;
|
||||
syslog_debug("Running hook $hook_name.");
|
||||
|
||||
if (! array_key_exists($hook_name,$hooks)) {
|
||||
@ -109,17 +108,17 @@ function run_hook($hook_name,$args) {
|
||||
* called upon failure.
|
||||
*/
|
||||
function add_hook($hook_name,$priority,$hook_function,$rollback_function) {
|
||||
global $config;
|
||||
|
||||
if (! array_key_exists($hook_name,$config->hooks)) {
|
||||
$config->hooks[$hook_name] = array();
|
||||
}
|
||||
if (! array_key_exists($hook_name,$_SESSION[APPCONFIG]->hooks))
|
||||
$_SESSION[APPCONFIG]->hooks[$hook_name] = array();
|
||||
|
||||
remove_hook($hook_name,-1,$hook_function,'');
|
||||
|
||||
array_push($config->hooks[$hook_name],array('priority' => $priority,'hook_function' => $hook_function,'rollback_function' => $rollback_function));
|
||||
array_push($_SESSION[APPCONFIG]->hooks[$hook_name],array(
|
||||
'priority' => $priority,
|
||||
'hook_function' => $hook_function,
|
||||
'rollback_function' => $rollback_function));
|
||||
|
||||
uasort($config->hooks[$hook_name],"sort_array_by_priority");
|
||||
uasort($_SESSION[APPCONFIG]->hooks[$hook_name],'sort_array_by_priority');
|
||||
}
|
||||
|
||||
/**
|
||||
@ -138,17 +137,15 @@ function add_hook($hook_name,$priority,$hook_function,$rollback_function) {
|
||||
* as a rollback will be removed.
|
||||
*/
|
||||
function remove_hook($hook_name,$priority,$hook_function,$rollback_function) {
|
||||
global $config;
|
||||
if (array_key_exists($hook_name,$_SESSION[APPCONFIG]->hooks)) {
|
||||
reset($_SESSION[APPCONFIG]->hooks[$hook_name]);
|
||||
|
||||
if (array_key_exists($hook_name,$config->hooks)) {
|
||||
reset($config->hooks[$hook_name]);
|
||||
|
||||
while (list($key,$hook) = each($config->hooks[$hook_name])) {
|
||||
while (list($key,$hook) = each($_SESSION[APPCONFIG]->hooks[$hook_name])) {
|
||||
if (($priority >= 0 && $priority == $hook['priority']) ||
|
||||
($hook_function && $hook_function == $hook['hook_function']) ||
|
||||
($rollback_function && $rollback_function == $hook['rollback_function'])) {
|
||||
|
||||
unset($config->hooks[$hook_name][$key]);
|
||||
unset($_SESSION[APPCONFIG]->hooks[$hook_name][$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -160,22 +157,18 @@ function remove_hook($hook_name,$priority,$hook_function,$rollback_function) {
|
||||
* @param hook_name Name of hook to clear.
|
||||
*/
|
||||
function clear_hooks($hook_name) {
|
||||
global $config;
|
||||
if (!isset($config) && isset($_SESSION[APPCONFIG]))
|
||||
$config = $_SESSION[APPCONFIG];
|
||||
|
||||
if (array_key_exists($hook_name,$config->hooks))
|
||||
unset($config->hooks[$hook_name]);
|
||||
if (array_key_exists($hook_name,$_SESSION[APPCONFIG]->hooks))
|
||||
unset($_SESSION[APPCONFIG]->hooks[$hook_name]);
|
||||
}
|
||||
|
||||
# Evaluating user-made hooks
|
||||
if (is_dir(HOOKSDIR.'functions')) {
|
||||
$dir = dir(HOOKSDIR.'functions');
|
||||
|
||||
while (false !== ($entry = $dir->read())) {
|
||||
$filename = sprintf('%s/%s/%s',HOOKSDIR,'functions',$entry);
|
||||
while (false !== ($hookfile = $dir->read())) {
|
||||
$filename = sprintf('%s/%s/%s',HOOKSDIR,'functions',$hookfile);
|
||||
|
||||
if (is_file($filename) and eregi('php[0-9]?$',$entry))
|
||||
if (is_file($filename) and eregi('php[0-9]?$',$hookfile))
|
||||
require_once "$filename";
|
||||
}
|
||||
|
||||
|
26
lib/page.php
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/page.php,v 1.3.2.14 2008/01/27 11:57:39 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/page.php,v 1.3.2.16 2008/12/12 09:20:06 wurley Exp $
|
||||
|
||||
/**
|
||||
* Page Rendering Functions
|
||||
@ -28,7 +28,7 @@ class page {
|
||||
|
||||
# Default Values for configurable items.
|
||||
$this->_default['stylecss'] = CSSDIR.'style.css';
|
||||
$this->_default['logo'] = IMGDIR.'logo_small.jpg';
|
||||
$this->_default['logo'] = IMGDIR.'logo-small.png';
|
||||
$this->_default['sysmsg']['error'] = IMGDIR.'warning.png';
|
||||
$this->_default['sysmsg']['warn'] = IMGDIR.'notice.png';
|
||||
$this->_default['sysmsg']['info'] = IMGDIR.'light-big.png';
|
||||
@ -45,11 +45,7 @@ class page {
|
||||
}
|
||||
|
||||
header('Content-type: text/html; charset="UTF-8"');
|
||||
if (isset($_SESSION[APPCONFIG])
|
||||
&& $_SESSION[APPCONFIG]->GetValue('appearance','compress')
|
||||
&& eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])
|
||||
&& ! ini_get('zlib.output_compression')) {
|
||||
|
||||
if (isCompress()) {
|
||||
header('Content-Encoding: gzip');
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
@ -304,11 +300,7 @@ class page {
|
||||
echo $object->draw('body');
|
||||
}
|
||||
|
||||
if ($compress && ob_get_level() && isset($_SESSION[APPCONFIG])
|
||||
&& $_SESSION[APPCONFIG]->GetValue('appearance','compress')
|
||||
&& ! ini_get('zlib.output_compression')
|
||||
&& eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])) {
|
||||
|
||||
if ($compress && ob_get_level() && isCompress()) {
|
||||
$output = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
@ -324,7 +316,9 @@ class page {
|
||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED)
|
||||
debug_log('Entered with ()',129,__FILE__,__LINE__,__METHOD__);
|
||||
|
||||
printf('<tr class="foot"><td colspan=3>%s</td></tr>',pla_version());
|
||||
printf('<tr class="foot"><td><small>%s</small></td><td colspan=2>%s</td></tr>',
|
||||
isCompress() ? '[C]' : ' ',
|
||||
pla_version());
|
||||
}
|
||||
|
||||
public function display($filter=array()) {
|
||||
@ -384,11 +378,7 @@ class page {
|
||||
echo '</html>';
|
||||
|
||||
# compress output
|
||||
if (ob_get_level() && isset($_SESSION[APPCONFIG])
|
||||
&& $_SESSION[APPCONFIG]->GetValue('appearance','compress')
|
||||
&& ! ini_get('zlib.output_compression')
|
||||
&& eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])) {
|
||||
|
||||
if (ob_get_level() && isCompress()) {
|
||||
$output = ob_get_contents();
|
||||
ob_end_clean();
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/schema_functions.php,v 1.92 2007/12/15 07:50:32 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/schema_functions.php,v 1.92.2.1 2008/11/29 09:23:11 wurley Exp $
|
||||
|
||||
/**
|
||||
* Classes and functions for fetching and parsing schema from an LDAP server.
|
||||
@ -61,6 +61,8 @@ class ObjectClass extends SchemaItem {
|
||||
var $must_attrs;
|
||||
# Arrays of attribute names that this objectClass allows, but does not require
|
||||
var $may_attrs;
|
||||
# Arrays of attribute names that this objectClass has been forced to MAY attrs, due to configuration
|
||||
var $force_may;
|
||||
# Boolean value indicating whether this objectClass is obsolete
|
||||
var $is_obsolete;
|
||||
# Array of objectClasses which inherit from this one (must be set at runtime explicitly by the caller)
|
||||
@ -76,6 +78,7 @@ class ObjectClass extends SchemaItem {
|
||||
$this->sup_classes = array();
|
||||
$this->type = $ldapserver->schema_oclass_default;
|
||||
$this->must_attrs = array();
|
||||
$this->force_may = array();
|
||||
$this->may_attrs = array();
|
||||
$this->is_obsolete = false;
|
||||
$this->children_objectclasses = array();
|
||||
@ -265,11 +268,17 @@ class ObjectClass extends SchemaItem {
|
||||
|
||||
foreach ($attrs as $string) {
|
||||
$attr = new ObjectClass_ObjectClassAttribute($string,$this->name);
|
||||
|
||||
if ($ldapserver->isForceMay($attr->name)) {
|
||||
array_push($this->force_may,$attr);
|
||||
array_push($this->may_attrs,$attr);
|
||||
|
||||
} else
|
||||
array_push($this->must_attrs,$attr);
|
||||
}
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Case MUST returned (%s)',8,__FILE__,__LINE__,__METHOD__,$this->must_attrs);
|
||||
debug_log('Case MUST returned (%s) (%s)',8,__FILE__,__LINE__,__METHOD__,$this->must_attrs,$this->force_may);
|
||||
break;
|
||||
|
||||
case 'MAY':
|
||||
@ -304,8 +313,8 @@ class ObjectClass extends SchemaItem {
|
||||
$this->description = preg_replace("/\'$/",'',$this->description);
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Returning () - NAME (%s), DESCRIPTION (%s), MUST (%s), MAY (%s)',9,__FILE__,__LINE__,__METHOD__,
|
||||
$this->name,$this->description,$this->must_attrs,$this->may_attrs);
|
||||
debug_log('Returning () - NAME (%s), DESCRIPTION (%s), MUST (%s), MAY (%s), FORCE MAY (%s)',9,__FILE__,__LINE__,__METHOD__,
|
||||
$this->name,$this->description,$this->must_attrs,$this->may_attrs,$this->force_may);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -547,6 +556,17 @@ class ObjectClass extends SchemaItem {
|
||||
|
||||
$this->may_attrs = array_values(array_unique(array_merge($this->may_attrs,$new_may_attrs)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if an array is listed in the force_may attrs
|
||||
*/
|
||||
function isForceMay($attr) {
|
||||
foreach ($this->force_may as $forcemay)
|
||||
if ($forcemay->getName() == $attr)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -628,6 +648,8 @@ class AttributeType extends SchemaItem {
|
||||
var $used_in_object_classes;
|
||||
# A list of object class names that require this attribute type.
|
||||
var $required_by_object_classes;
|
||||
# This attribute has been forced a MAY attribute by the configuration.
|
||||
var $forced_as_may;
|
||||
|
||||
/**
|
||||
* Initialize the class' member variables
|
||||
@ -654,10 +676,11 @@ class AttributeType extends SchemaItem {
|
||||
$this->type = null;
|
||||
$this->used_in_object_classes = array();
|
||||
$this->required_by_object_classes = array();
|
||||
$this->forced_as_may = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new AttributeType objcet from a raw LDAP AttributeType string.
|
||||
* Creates a new AttributeType object from a raw LDAP AttributeType string.
|
||||
*/
|
||||
function AttributeType($raw_ldap_attr_string) {
|
||||
if (DEBUG_ENABLED)
|
||||
@ -1108,6 +1131,13 @@ class AttributeType extends SchemaItem {
|
||||
function getRequiredByObjectClasses() {
|
||||
return $this->required_by_object_classes;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function will mark this attribute as a forced MAY attribute
|
||||
*/
|
||||
function setForceMay() {
|
||||
$this->forced_as_may = true;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/search_results_list.php,v 1.7.2.3 2008/01/13 05:37:02 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/search_results_list.php,v 1.7.2.5 2008/11/30 13:19:49 wurley Exp $
|
||||
|
||||
/**
|
||||
* @package phpLDAPadmin
|
||||
@ -20,7 +20,7 @@ foreach ($results as $dn => $dndetails) {
|
||||
echo '<table class="result" border=0>';
|
||||
|
||||
echo '<tr class="list_title">';
|
||||
printf('<td class="icon"><img src="images/%s" alt="icon" /></td>',get_icon($ldapserver,$dn));
|
||||
printf('<td class="icon"><img src="%s/%s" alt="icon" /></td>',IMGDIR,get_icon($ldapserver,$dn));
|
||||
|
||||
$formatted_dn = get_rdn($dn);
|
||||
if (!$_SESSION[APPCONFIG]->isCommandAvailable('schema')) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/search_results_table.php,v 1.9.2.3 2008/01/13 05:37:02 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/search_results_table.php,v 1.9.2.4 2008/11/29 11:33:53 wurley Exp $
|
||||
|
||||
/**
|
||||
* Incoming variables (among others)
|
||||
@ -31,7 +31,7 @@ foreach ($results as $dn => $dndetails) {
|
||||
|
||||
$edit_url = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode($dn));
|
||||
$attrs_display = array();
|
||||
$attrs_display[''] = sprintf('<center><a href="%s"><img src="images/%s" alt="icon" /></a></center>',$edit_url,get_icon($ldapserver,$dn));
|
||||
$attrs_display[''] = sprintf('<center><a href="%s"><img src="%s/%s" alt="icon" /></a></center>',$edit_url,IMGDIR,get_icon($ldapserver,$dn));
|
||||
|
||||
if ($_SESSION[APPCONFIG]->isCommandAvailable('schema')) {
|
||||
$dn_display = strlen($dn) > 40
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/server_functions.php,v 1.51.2.7 2008/01/31 12:34:26 wurley Exp $ */
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/server_functions.php,v 1.51.2.15 2008/12/13 08:57:41 wurley Exp $
|
||||
|
||||
/**
|
||||
* Classes and functions for LDAP server configuration and capability
|
||||
@ -77,7 +77,7 @@ class LDAPserver {
|
||||
$return = false;
|
||||
|
||||
# For session or cookie auth_types, we check the session or cookie to see if a user has logged in.
|
||||
if (in_array($this->auth_type,array('session','cookie','http'))) {
|
||||
if (in_array($this->auth_type,array('session','cookie'))) {
|
||||
|
||||
/* we don't look at getLoggedInPass() cause it may be null for anonymous binds
|
||||
* getLoggedInDN() will never return null if someone is really logged in. */
|
||||
@ -88,11 +88,30 @@ class LDAPserver {
|
||||
|
||||
/* whether or not the login_dn or pass is specified, we return
|
||||
* true here. (if they are blank, we do an anonymous bind anyway) */
|
||||
} elseif ($this->auth_type == 'http') {
|
||||
|
||||
# This is temp, to avoid multiple displays of this message
|
||||
static $shown = false;
|
||||
|
||||
if (! $this->getLoggedInDN() && ! $shown) {
|
||||
system_message(array(
|
||||
'title'=>_('No HTTP AUTH information'),
|
||||
'body'=>_('Your configuration file has authentication set to http_auth, however, there was none presented to phpLDAPadmin'),
|
||||
'type'=>'error'));
|
||||
|
||||
$shown = true;
|
||||
}
|
||||
|
||||
if ($this->getLoggedInDN())
|
||||
$return = true;
|
||||
else
|
||||
$return = false;
|
||||
|
||||
} elseif ($this->auth_type == 'config') {
|
||||
$return = true;
|
||||
|
||||
} else {
|
||||
error(sprintf(_('Error: You have an error in your config file. The only three allowed values for auth_type in the $servers section are \'session\', \'cookie\', and \'config\'. You entered \'%s\', which is not allowed.'),htmlspecialchars($this->auth_type)),'error',true);
|
||||
error(sprintf(_('Error: You have an error in your config file. The only three allowed values for auth_type in the $servers section are \'session\', \'cookie\', and \'config\'. You entered \'%s\', which is not allowed.'),htmlspecialchars($this->auth_type)),'error',null,true);
|
||||
}
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
@ -160,6 +179,15 @@ class LDAPserver {
|
||||
$this->connection[$connect_id]['login_pass'] ? md5($this->connection[$connect_id]['login_pass']) : '');
|
||||
}
|
||||
|
||||
} elseif ($this->auth_type == 'http') {
|
||||
if (! $dn && ! $pass)
|
||||
$connect_id = 'anonymous';
|
||||
|
||||
else {
|
||||
$this->connection[$connect_id]['login_dn'] = $dn;
|
||||
$this->connection[$connect_id]['login_pass'] = $pass;
|
||||
}
|
||||
|
||||
} else {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('This IS some other login',80,__FILE__,__LINE__,__METHOD__);
|
||||
@ -262,7 +290,7 @@ class LDAPserver {
|
||||
# Try to fire up TLS is specified in the config
|
||||
if ($this->isTLSEnabled()) {
|
||||
function_exists('ldap_start_tls') or error(_('Your PHP install does not support TLS.'),'error');
|
||||
@ldap_start_tls($resource) or error(_('Could not start TLS. Please check your LDAP server configuration.'),'error',true);
|
||||
@ldap_start_tls($resource) or error(_('Could not start TLS. Please check your LDAP server configuration.'),'error',null,true);
|
||||
}
|
||||
|
||||
$bind_result = false;
|
||||
@ -309,9 +337,9 @@ class LDAPserver {
|
||||
|
||||
# invalid regex?
|
||||
if (is_null($authz_id)) {
|
||||
pla_error(sprintf(_('It seems that sasl_authz_id_regex "%s"." contains invalid PCRE regular expression.'),
|
||||
$this->connection[$connect_id]['sasl_authz_id_regex']).
|
||||
((isset($php_errormsg)) ? ' Error message: '.$php_errormsg : ''));
|
||||
error(sprintf(_('It seems that sasl_authz_id_regex "%s"." contains invalid PCRE regular expression.'),
|
||||
$this->connection[$connect_id]['sasl_authz_id_regex']).((isset($php_errormsg)) ? ' Error message: '.$php_errormsg : '')
|
||||
,'error','index.php');
|
||||
}
|
||||
}
|
||||
|
||||
@ -696,8 +724,8 @@ class LDAPserver {
|
||||
|
||||
# This error message is not localized as only developers should ever see it
|
||||
if (! in_array($schema_to_fetch,$valid_schema_to_fetch))
|
||||
pla_error(sprintf('Bad parameter provided to function to %s::getRawSchema(). "%s" is not valid for the schema_to_fetch parameter.',
|
||||
get_class($this),htmlspecialchars($schema_to_fetch)));
|
||||
error(sprintf('Bad parameter provided to function to %s::getRawSchema(). "%s" is not valid for the schema_to_fetch parameter.',
|
||||
get_class($this),htmlspecialchars($schema_to_fetch)),'error','index.php');
|
||||
|
||||
# Try to get the schema DN from the specified entry.
|
||||
$schema_dn = $this->getSchemaDN($dn);
|
||||
@ -841,7 +869,7 @@ class LDAPserver {
|
||||
|
||||
# We need to have objectclasses and attribues, so display an error, asking the user to get us this information.
|
||||
if (in_array($schema_to_fetch,$schema_error_message_array)) {
|
||||
pla_error(sprintf('Our attempts to find your SCHEMA for "%s" have FAILED.<br /><br />%s',$schema_to_fetch,$schema_error_message));
|
||||
error(sprintf('Our attempts to find your SCHEMA for "%s" have FAILED.<br /><br />%s',$schema_to_fetch,$schema_error_message),'error','index.php');
|
||||
|
||||
} else {
|
||||
$return = false;
|
||||
@ -856,8 +884,8 @@ class LDAPserver {
|
||||
# Did we get something unrecognizable?
|
||||
if (gettype($schema_search) != 'resource') {
|
||||
if (in_array($schema_to_fetch,$schema_error_message_array)) {
|
||||
pla_error(sprintf('Our attempts to find your SCHEMA for "%s" has return UNEXPECTED results.<br /><br /><small>(We expected a "resource" for $schema_search, instead, we got (%s))</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_search)));
|
||||
error(sprintf('Our attempts to find your SCHEMA for "%s" has return UNEXPECTED results.<br /><br /><small>(We expected a "resource" for $schema_search, instead, we got (%s))</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_search)),'error','index.php');
|
||||
|
||||
} else {
|
||||
$return = false;
|
||||
@ -879,8 +907,8 @@ class LDAPserver {
|
||||
|
||||
if(! isset($schema_entries[0][$schema_to_fetch])) {
|
||||
if (in_array($schema_to_fetch,$schema_error_message_array)) {
|
||||
pla_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>',
|
||||
$schema_to_fetch,gettype($schema_search),$schema_error_message,serialize($schema_entries)));
|
||||
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>',
|
||||
$schema_to_fetch,gettype($schema_search),$schema_error_message,serialize($schema_entries)),'error','index.php');
|
||||
|
||||
} else {
|
||||
$return = false;
|
||||
@ -1243,8 +1271,8 @@ class LDAPserver {
|
||||
}
|
||||
|
||||
if (! isset($attrs[strtolower($sup_attr_name)])){
|
||||
pla_error(sprintf('Schema error: attributeType "%s" inherits from "%s", but attributeType "%s" does not exist.',
|
||||
$attr->getName(),$sup_attr_name,$sup_attr_name));
|
||||
error(sprintf('Schema error: attributeType "%s" inherits from "%s", but attributeType "%s" does not exist.',
|
||||
$attr->getName(),$sup_attr_name,$sup_attr_name),'error','index.php');
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1325,6 +1353,15 @@ class LDAPserver {
|
||||
}
|
||||
}
|
||||
|
||||
# Force May
|
||||
foreach ($object_class->force_may as $attr_name) {
|
||||
if (isset($attrs[strtolower($attr_name->name)]))
|
||||
$attrs[strtolower($attr_name->name)]->setForceMay();
|
||||
|
||||
else {
|
||||
#echo "Warning, attr not set: $attr_name<br />";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$return = $attrs;
|
||||
@ -1521,7 +1558,10 @@ class LDAPserver {
|
||||
function rename($dn,$new_rdn,$container,$deleteoldrdn) {
|
||||
$this->lastop = 'write';
|
||||
if (! @ldap_rename($this->connect(true,$this->lastop,false,false),$dn,$new_rdn,$container,$deleteoldrdn)) {
|
||||
pla_error(_('Could not rename the entry'),$this->error(),$this->errno(),false);
|
||||
system_message(array(
|
||||
'title'=>_('Could not rename the entry.'),
|
||||
'body'=>ldap_error_msg($this->error(),$this->errno()),
|
||||
'type'=>'error'));
|
||||
|
||||
} else {
|
||||
# Update the tree
|
||||
@ -1778,7 +1818,7 @@ class LDAPserver {
|
||||
if ($attr = ldap_first_attribute($resource,$entry_id,$attrs)) {
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Processing ATTR [%s].',64,__FILE__,__LINE__,__METHOD__,$attr);
|
||||
debug_log('Processing First ATTR [%s].',64,__FILE__,__LINE__,__METHOD__,$attr);
|
||||
|
||||
# Iterate over the attributes
|
||||
while ($attr) {
|
||||
@ -1797,6 +1837,10 @@ class LDAPserver {
|
||||
$return[$dn][$attr] = $values;
|
||||
|
||||
$attr = ldap_next_attribute($resource,$entry_id,$attrs);
|
||||
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Processing Next ATTR [%s].',64,__FILE__,__LINE__,__METHOD__,$attr);
|
||||
|
||||
} # end while attr
|
||||
}
|
||||
|
||||
@ -1972,7 +2016,7 @@ class LDAPserver {
|
||||
break;
|
||||
|
||||
default:
|
||||
pla_error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($this->auth_type)));
|
||||
error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($this->auth_type)),'error','index.php');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2044,7 +2088,7 @@ class LDAPserver {
|
||||
break;
|
||||
|
||||
default:
|
||||
pla_error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($auth_type)));
|
||||
error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($auth_type)),'error','index.php');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -2153,7 +2197,7 @@ class LDAPserver {
|
||||
|
||||
# See what the server schema says about this attribute
|
||||
$schema_attr = $this->getSchemaAttribute($attr_name);
|
||||
if (! $schema_attr) {
|
||||
if (! is_object($schema_attr)) {
|
||||
|
||||
/* Strangely, some attributeTypes may not show up in the server
|
||||
* schema. This behavior has been observed in MS Active Directory.*/
|
||||
@ -2172,6 +2216,7 @@ class LDAPserver {
|
||||
strcasecmp($attr_name,'networkaddress') == 0 ||
|
||||
strcasecmp($attr_name,'objectGUID') == 0 ||
|
||||
strcasecmp($attr_name,'objectSID') == 0 ||
|
||||
strcasecmp($attr_name,'jpegPhoto') == 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' ||
|
||||
@ -2338,7 +2383,7 @@ class LDAPserver {
|
||||
break;
|
||||
|
||||
default:
|
||||
pla_error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($this->auth_type)));
|
||||
error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($this->auth_type)),'error','index.php');
|
||||
}
|
||||
}
|
||||
|
||||
@ -2385,11 +2430,11 @@ class LDAPserver {
|
||||
break;
|
||||
|
||||
case 'http':
|
||||
if (isset($_SERVER['PHP_AUTH_USER']))
|
||||
{
|
||||
if (isset($_SERVER['PHP_AUTH_USER'])) {
|
||||
if ($this->isLoginAttrEnabled()) {
|
||||
if ($this->isLoginStringEnabled()) {
|
||||
$return = str_replace('<username>',$_SERVER['PHP_AUTH_USER'],$this->getLoginString());
|
||||
|
||||
} else {
|
||||
if ($this->login_dn)
|
||||
$this->connect(true,'user',false,true,$this->login_dn,$this->login_pass);
|
||||
@ -2406,38 +2451,40 @@ class LDAPserver {
|
||||
$result = $this->search(null,$base_dn,$filter,array('dn'));
|
||||
$result = array_pop($result);
|
||||
$return = $result['dn'];
|
||||
if ($return) break;
|
||||
if ($return)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$return = $_SERVER['PHP_AUTH_USER'];
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
} else
|
||||
$return = false;
|
||||
|
||||
if ($return) {
|
||||
$dn = $return;
|
||||
$pass = '';
|
||||
if (isset($_SERVER['PHP_AUTH_PW'])) $pass = $_SERVER['PHP_AUTH_PW'];
|
||||
|
||||
if (isset($_SERVER['PHP_AUTH_PW']))
|
||||
$pass = $_SERVER['PHP_AUTH_PW'];
|
||||
|
||||
if ($this->userIsAllowedLogin($dn)) {
|
||||
$ds = $this->connect(false,'user',true,true,$dn,$pass);
|
||||
|
||||
if (! is_resource($ds)) {
|
||||
system_message(array(
|
||||
'title'=>_('Authenticate to server'),
|
||||
'body'=>_('Bad username or password. Please try again.'),
|
||||
'type'=>'error'),
|
||||
sprintf('cmd.php?cmd=login_form&server_id=%s',$this->server_id));
|
||||
syslog_notice("Authentification FAILED for $dn");
|
||||
}
|
||||
|
||||
$this->auth_type = 'config';
|
||||
$this->login_dn = $dn;
|
||||
$this->login_pass = $pass;
|
||||
|
||||
} else {
|
||||
$this->auth_type = 'session';
|
||||
$return = false;
|
||||
}
|
||||
}
|
||||
@ -2449,7 +2496,7 @@ class LDAPserver {
|
||||
break;
|
||||
|
||||
default:
|
||||
pla_error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($auth_type)));
|
||||
error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($auth_type)),'error','index.php');
|
||||
}
|
||||
}
|
||||
|
||||
@ -2509,6 +2556,108 @@ class LDAPserver {
|
||||
return $return_attrs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the user defined operational attributes for an entry. Given a DN, this function fetches that entry's
|
||||
* operational (ie, system or internal) attributes.
|
||||
*
|
||||
* These attributes should be treated as internal attributes.
|
||||
*
|
||||
* The returned associative array is of this form:
|
||||
* <code>
|
||||
* Array (
|
||||
* [nsroleDN] => Array (
|
||||
* [0] => "cn=nsManagedDisabledRole,dc=example,dc=com",
|
||||
* [1] => "cn=nsDisabledRole,dc=example,dc=com",
|
||||
* [2] => "cn=nsAdminRole,dc=example,dc=com"
|
||||
* )
|
||||
* [passwordExpirationTime]=> Array (
|
||||
* [0] => "20080314183611Z"
|
||||
* )
|
||||
* [passwordAllowChangeTime] => Array (
|
||||
* [0] => "20080116175354Z"
|
||||
* )
|
||||
* )
|
||||
* </code>
|
||||
*
|
||||
* @param string $dn The DN of the entry whose interal attributes are desired.
|
||||
* @param int $deref For aliases and referrals, this parameter specifies whether to
|
||||
* follow references to the referenced DN or to fetch the attributes for
|
||||
* the referencing DN. See http://php.net/ldap_search for the 4 valid
|
||||
* options.
|
||||
* @return array An associative array whose keys are attribute names and whose values
|
||||
* are arrays of values for the aforementioned attribute.
|
||||
*/
|
||||
function getCustomDNSysAttrs($dn,$deref=LDAP_DEREF_NEVER) {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Entered with (%s,%s)',17,__FILE__,__LINE__,__METHOD__,$dn,$deref);
|
||||
|
||||
$attrs = $this->custom_sys_attrs;
|
||||
$search = $this->search(null,$dn,'(objectClass=*)',$attrs,'base',false,$deref);
|
||||
|
||||
$return_attrs = array();
|
||||
foreach ($search as $dn => $attrs)
|
||||
foreach ($attrs as $attr => $value) {
|
||||
if (is_array($value)) {
|
||||
foreach ($value as $val) $return_attrs[$attr][] = $val;
|
||||
} else {
|
||||
$return_attrs[$attr][] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $return_attrs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the user defined operational attributes for an entry. Given a DN, this function fetches that entry's
|
||||
* operational (ie, system or internal) attributes.
|
||||
*
|
||||
* These attributes should be treated as regular attributes, not as internal attributes.
|
||||
*
|
||||
* The returned associative array is of this form:
|
||||
* <code>
|
||||
* Array (
|
||||
* [nsroleDN] => Array (
|
||||
* [0] => "cn=nsManagedDisabledRole,dc=example,dc=com",
|
||||
* [1] => "cn=nsDisabledRole,dc=example,dc=com",
|
||||
* [2] => "cn=nsAdminRole,dc=example,dc=com"
|
||||
* )
|
||||
* [passwordExpirationTime]=> Array (
|
||||
* [0] => "20080314183611Z"
|
||||
* )
|
||||
* [passwordAllowChangeTime] => Array (
|
||||
* [0] => "20080116175354Z"
|
||||
* )
|
||||
* )
|
||||
* </code>
|
||||
*
|
||||
* @param string $dn The DN of the entry whose interal attributes are desired.
|
||||
* @param int $deref For aliases and referrals, this parameter specifies whether to
|
||||
* follow references to the referenced DN or to fetch the attributes for
|
||||
* the referencing DN. See http://php.net/ldap_search for the 4 valid
|
||||
* options.
|
||||
* @return array An associative array whose keys are attribute names and whose values
|
||||
* are arrays of values for the aforementioned attribute.
|
||||
*/
|
||||
function getCustomDNAttrs($dn,$deref=LDAP_DEREF_NEVER) {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Entered with (%s,%s)',17,__FILE__,__LINE__,__METHOD__,$dn,$deref);
|
||||
|
||||
$attrs = $this->custom_attrs;
|
||||
$search = $this->search(null,$dn,'(objectClass=*)',$attrs,'base',false,$deref);
|
||||
|
||||
$return_attrs = array();
|
||||
foreach ($search as $dn => $attrs)
|
||||
foreach ($attrs as $attr => $value) {
|
||||
if (is_array($value)) {
|
||||
foreach ($value as $val) $return_attrs[$attr][] = $val;
|
||||
} else {
|
||||
$return_attrs[$attr][] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $return_attrs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the attributes/values of an entry. Returns an associative array whose
|
||||
* keys are attribute value names and whose values are arrays of values for
|
||||
@ -2733,7 +2882,8 @@ class LDAPserver {
|
||||
$_SESSION[APPCONFIG]->ldapservers->GetValue($this->server_id,'unique_attrs','pass'));
|
||||
|
||||
if (! $con)
|
||||
pla_error(sprintf(_('Unable to bind to <b>%s</b> with your with unique_attrs credentials. Please check your configuration file.'),$this->name));
|
||||
error(sprintf(_('Unable to bind to <b>%s</b> with your with unique_attrs credentials. Please check your configuration file.'),$this->name),
|
||||
'error','index.php');
|
||||
|
||||
# Build our search filter to double check each attribute.
|
||||
$searchfilter = '(|';
|
||||
@ -2895,6 +3045,20 @@ class LDAPserver {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function determines if the specified attribute is contained in the force_may list
|
||||
* as configured in config.php.
|
||||
*
|
||||
* @return bool True if the specified attribute is in the $force_may list and false
|
||||
* otherwise.
|
||||
*/
|
||||
function isForceMay($attr_name) {
|
||||
if (DEBUG_ENABLED)
|
||||
debug_log('Entered with (%s)',17,__FILE__,__LINE__,__METHOD__,$attr_name);
|
||||
|
||||
return in_array($attr_name,$this->force_may);
|
||||
}
|
||||
}
|
||||
|
||||
class LDAPservers {
|
||||
@ -3052,6 +3216,15 @@ class LDAPservers {
|
||||
'desc'=>'Password for DN to use when evaluating numbers',
|
||||
'default'=>null);
|
||||
|
||||
$this->default->auto_number['uidpool_dn'] = array(
|
||||
'desc'=>'DN to use for the uidPool',
|
||||
'default'=>'cn=uidPool,dc=example,dc=com');
|
||||
|
||||
$this->default->force_may['attrs'] = array(
|
||||
'desc'=>'Attributes to force as MAY attributes, even though the schema may indicate that they are MUST attributes',
|
||||
'var' => 'force_may',
|
||||
'default'=>array());
|
||||
|
||||
$this->default->unique_attrs['dn'] = array(
|
||||
'desc'=>'DN to use when evaluating uniqueness',
|
||||
'default'=>null);
|
||||
@ -3098,6 +3271,16 @@ class LDAPservers {
|
||||
'desc' => 'SASL properties',
|
||||
'var' => 'sasl_props',
|
||||
'default' => null);
|
||||
|
||||
$this->default->server['custom_attrs'] = array(
|
||||
'desc' => 'Custom operational attributes to be treated as regular attributes',
|
||||
'var' => 'custom_attrs',
|
||||
'default' => array(''));
|
||||
|
||||
$this->default->server['custom_sys_attrs'] = array(
|
||||
'desc' => 'Custom operational attributes to be treated as internal attributes',
|
||||
'var' => 'custom_sys_attrs',
|
||||
'default' => array(''));
|
||||
}
|
||||
|
||||
function SetValue($server_id,$key,$index,$value) {
|
||||
@ -3106,21 +3289,21 @@ class LDAPservers {
|
||||
$server_id,$key,$index,$value);
|
||||
|
||||
if (! isset($this->default->$key))
|
||||
pla_error("ERROR: Setting a key [$key] that isnt predefined.");
|
||||
error("ERROR: Setting a key [$key] that isnt predefined.",'error','index.php');
|
||||
else
|
||||
$default = $this->default->$key;
|
||||
|
||||
if (! isset($default[$index]))
|
||||
pla_error("ERROR: Setting a index [$index] that isnt predefined.");
|
||||
error("ERROR: Setting a index [$index] that isnt predefined.",'error','index.php');
|
||||
else
|
||||
$default = $default[$index];
|
||||
|
||||
# Test if its should be an array or not.
|
||||
if (is_array($default['default']) && ! is_array($value))
|
||||
pla_error("Error in configuration file, {$key}['$index'] SHOULD be an array of values.");
|
||||
error("Error in configuration file, {$key}['$index'] SHOULD be an array of values.",'error','index.php');
|
||||
|
||||
if (! is_array($default['default']) && is_array($value))
|
||||
pla_error("Error in configuration file, {$key}['$index'] should NOT be an array of values.");
|
||||
error("Error in configuration file, {$key}['$index'] should NOT be an array of values.",'error','index.php');
|
||||
|
||||
# Some special processing.
|
||||
# @todo: Add ldaps port details here.
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/session_functions.php,v 1.18.2.4 2008/01/13 06:35:51 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/session_functions.php,v 1.18.2.5 2008/12/12 12:20:23 wurley Exp $
|
||||
|
||||
/**
|
||||
* A collection of functions to handle sessions throughout phpLDAPadmin.
|
||||
@ -117,7 +117,7 @@ function pla_session_start() {
|
||||
@header('Cache-control: private'); // IE 6 Fix
|
||||
|
||||
if (pla_session_id_paranoid && ! pla_session_verify_id())
|
||||
pla_error('Session inconsistent or session timeout');
|
||||
error('Session inconsistent or session timeout','error','index.php');
|
||||
|
||||
# Check we have the correct version of the SESSION cache
|
||||
if (isset($_SESSION['cache']) || isset($_SESSION[pla_session_id_init])) {
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/template_functions.php,v 1.43.2.3 2008/01/04 14:29:44 wurley Exp $ */
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/template_functions.php,v 1.43.2.8 2008/12/12 12:20:23 wurley Exp $
|
||||
|
||||
/**
|
||||
* Classes and functions for the template engine.ation and capability
|
||||
@ -42,9 +42,10 @@ class xml2array {
|
||||
$this->strXmlData = xml_parse($this->resParser,$strInputXML);
|
||||
|
||||
if (! $this->strXmlData)
|
||||
die(sprintf('XML error: %s at line %d',
|
||||
die(sprintf('XML error: %s at line %d in file %s',
|
||||
xml_error_string(xml_get_error_code($this->resParser)),
|
||||
xml_get_current_line_number($this->resParser)));
|
||||
xml_get_current_line_number($this->resParser),
|
||||
$file));
|
||||
|
||||
xml_parser_free($this->resParser);
|
||||
|
||||
@ -113,7 +114,7 @@ class Templates {
|
||||
while( ( $file = readdir( $dir ) ) !== false ) {
|
||||
if (! preg_match('/.xml$/',$file)) continue;
|
||||
|
||||
if ($_SESSION['plaConfig']->GetValue('appearance','custom_templates_only')
|
||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','custom_templates_only')
|
||||
&& ! preg_match('/^custom_/',$file))
|
||||
continue;
|
||||
|
||||
@ -141,7 +142,7 @@ class Templates {
|
||||
if (! preg_match('/.xml$/',$file))
|
||||
continue;
|
||||
|
||||
if ($_SESSION['plaConfig']->GetValue('appearance','custom_templates_only')
|
||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','custom_templates_only')
|
||||
&& ! preg_match('/^custom_/',$file))
|
||||
continue;
|
||||
|
||||
@ -682,7 +683,7 @@ class Templates {
|
||||
$args[0] = $_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','search_base');
|
||||
|
||||
$container = $ldapserver->getContainerParent($container,$args[0]);
|
||||
$vals = get_next_number($ldapserver,$container,$args[1],(!empty($args[2]) && ($args[2] == 'true')) ? true : false,(!empty($args[3])) ? $args[3] : false);
|
||||
$vals = get_next_number($ldapserver,$container,$args[1],(!empty($args[2]) && ($args[2] == 'false')) ? false : true,(!empty($args[3])) ? $args[3] : false);
|
||||
# operate calculus on next number.
|
||||
if (!empty($args[4])) {
|
||||
$mod = split(';',$args[4]);
|
||||
@ -981,8 +982,8 @@ class Templates {
|
||||
if (isset($_POST['form'][$varname]))
|
||||
$function_args[] = $_POST['form'][$varname];
|
||||
else
|
||||
pla_error(sprintf(_('Your template calls php.Function for a default value, however (%s) is NOT available in the POST FORM variables. The following variables are available [%s].'),$varname,
|
||||
(isset($_POST['form']) ? implode('|',array_keys($_POST['form'])) : 'NONE')));
|
||||
error(sprintf(_('Your template calls php.Function for a default value, however (%s) is NOT available in the POST FORM variables. The following variables are available [%s].'),$varname,
|
||||
(isset($_POST['form']) ? implode('|',array_keys($_POST['form'])) : 'NONE')),'error','index.php');
|
||||
} else {
|
||||
$function_args[] = $arg;
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/timeout_functions.php,v 1.10.2.2 2008/01/27 05:11:41 wurley Exp $
|
||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/timeout_functions.php,v 1.10.2.4 2008/12/13 08:57:09 wurley Exp $
|
||||
|
||||
/**
|
||||
* A collection of functions used throughout phpLDAPadmin for the timeout and automatic logout feature
|
||||
@ -42,7 +42,6 @@ function unset_lastactivity($ldapserver) {
|
||||
* Check if custom session timeout has been reached for server $ldapserver.
|
||||
* If it has:
|
||||
* - automatically log out user by calling $ldapserver->unsetLoginDN()
|
||||
* - if $server_id is equal to right frame $server_id, load timeout.php page in the right frame
|
||||
* - return true
|
||||
*
|
||||
* @param object $ldapserver The LDAPServer object of the server which the user has logged in.
|
||||
@ -69,7 +68,7 @@ function session_timed_out($ldapserver) {
|
||||
|
||||
if (in_array($ldapserver->auth_type,array('cookie','session'))) {
|
||||
syslog_notice('Logout for '.$ldapserver->getLoggedInDN());
|
||||
$ldapserver->unsetLoginDN() or pla_error(_('Could not logout.'));
|
||||
$ldapserver->unsetLoginDN() or error(_('Could not logout.'),'error','index.php');
|
||||
}
|
||||
|
||||
return true;
|
||||
|