RELEASE 1.1.0.6
4
INSTALL
@ -1,5 +1,5 @@
|
|||||||
For install instructions in non-English languages, see the wiki:
|
For install instructions in non-English languages, see the wiki:
|
||||||
http://phpldapadmin.wiki.sourceforge.net
|
http://phpldapadmin.sourceforge.net
|
||||||
|
|
||||||
* Requirements
|
* Requirements
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ For install instructions in non-English languages, see the wiki:
|
|||||||
* For additional help
|
* For additional help
|
||||||
|
|
||||||
See the wiki:
|
See the wiki:
|
||||||
http://phpldapadmin.wiki.sourceforge.net
|
http://phpldapadmin.sourceforge.net
|
||||||
|
|
||||||
Join our mailing list:
|
Join our mailing list:
|
||||||
https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel
|
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 */
|
An AttributeFactory defines which class to use to represent a given attribute */
|
||||||
// $config->custom->appearance['attribute_factory'] = "AttributeFactory";
|
// $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 */
|
/* Configure what objects are shown in left hand tree */
|
||||||
// $config->custom->appearance['tree_filter'] = '(objectclass=*)';
|
// $config->custom->appearance['tree_filter'] = '(objectclass=*)';
|
||||||
|
|
||||||
/* The height and width of the tree. If these values are not set, then
|
/* 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'] = null;
|
||||||
# $config->custom->appearance['tree_height'] = 600;
|
# $config->custom->appearance['tree_height'] = 600;
|
||||||
// $config->custom->appearance['tree_width'] = null;
|
// $config->custom->appearance['tree_width'] = null;
|
||||||
@ -270,7 +276,8 @@ $ldapservers->SetValue($i,'server','name','My LDAP Server');
|
|||||||
authentication with dn.
|
authentication with dn.
|
||||||
This is useful, when users should be able to log in with their uid, but
|
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
|
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);
|
// $ldapservers->SetValue($i,'login','fallback_dn',false);
|
||||||
|
|
||||||
/* If you specified 'cookie' or 'session' as the auth_type above, and you
|
/* 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');
|
// $ldapservers->SetValue($i,'auto_number','min','1000');
|
||||||
|
|
||||||
/* The DN of the uidPool entry when 'uidpool' mechanism is used above. */
|
/* 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
|
/* 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
|
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 */
|
has children. Certain servers are known to allow it, certain are not */
|
||||||
// $ldapservers->SetValue($i,'server','branch_rename',false);
|
// $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. *
|
* If you want to configure additional LDAP servers, do so below. *
|
||||||
* Remove the commented lines and use this section as a template for all *
|
* 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. */
|
/* 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 */
|
/* Configure filter for member search. This only applies to "modify group members" feature */
|
||||||
// $config->custom->modify_member['filter'] = '(objectclass=Person)';
|
// $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
|
<?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
|
* Adds an attribute/value pair to an object
|
||||||
@ -19,11 +19,12 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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'))
|
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['val'] = get_request('val','POST');
|
||||||
$entry['binary'] = get_request('binary','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']);
|
$entry['attr']['encode'] = rawurlencode($entry['attr']['string']);
|
||||||
|
|
||||||
if ((strlen($entry['binary']) <= 0) && (strlen($entry['val']) <= 0))
|
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):
|
* 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',
|
$href = htmlspecialchars(sprintf('cmd.php?cmd=search&search=true&form=advanced&server_id=%s&filter=%s=%s',
|
||||||
$ldapserver->server_id,$entry['attr']['string'],$badattr));
|
$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 (strlen($entry['binary']) > 0) {
|
||||||
if ($_FILES['val']['size'] == 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 (! is_uploaded_file($_FILES['val']['tmp_name'])) {
|
||||||
if (isset($_FILES['val']['error']))
|
if (isset($_FILES['val']['error']))
|
||||||
|
|
||||||
switch($_FILES['val']['error']) {
|
switch($_FILES['val']['error']) {
|
||||||
case 0: # No error; possible file attack!
|
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;
|
break;
|
||||||
|
|
||||||
case 1: # Uploaded file exceeds the upload_max_filesize directive in php.ini
|
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;
|
break;
|
||||||
|
|
||||||
case 2: # Uploaded file exceeds the MAX_FILE_SIZE directive specified in the html form
|
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;
|
break;
|
||||||
|
|
||||||
case 3: # Uploaded file was only partially uploaded
|
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;
|
break;
|
||||||
|
|
||||||
case 4: # No file was uploaded
|
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;
|
break;
|
||||||
|
|
||||||
default: # A default error, just in case! :)
|
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;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
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'];
|
$binaryfile['name'] = $_FILES['val']['tmp_name'];
|
||||||
@ -125,7 +126,10 @@ if ($result) {
|
|||||||
die();
|
die();
|
||||||
|
|
||||||
} else {
|
} 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
|
<?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.
|
* Displays a form for adding an attribute/value to an LDAP entry.
|
||||||
@ -15,8 +15,9 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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']['string'] = get_request('dn','GET');
|
||||||
$entry['rdn'] = get_rdn($entry['dn']['string']);
|
$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>',
|
printf('<h3 class="subtitle">%s: <b>%s</b> %s: <b>%s</b></h3>',
|
||||||
_('Server'),$ldapserver->name,_('Distinguished Name'),htmlspecialchars($entry['dn']['string']));
|
_('Server'),$ldapserver->name,_('Distinguished Name'),htmlspecialchars($entry['dn']['string']));
|
||||||
|
|
||||||
|
$dn = array();
|
||||||
$dn['attrs'] = $ldapserver->getDNAttrs($entry['dn']['string']);
|
$dn['attrs'] = $ldapserver->getDNAttrs($entry['dn']['string']);
|
||||||
$dn['oclasses'] = $ldapserver->getDNAttr($entry['dn']['string'],'objectClass');
|
$dn['oclasses'] = $ldapserver->getDNAttr($entry['dn']['string'],'objectClass');
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Adds an objectClass to the specified dn.
|
||||||
@ -20,11 +20,12 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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'))
|
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']['encode'] = get_request('dn');
|
||||||
$entry['dn']['string'] = urldecode($entry['dn']['encode']);
|
$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',
|
$href['search'] = htmlspecialchars(sprintf('cmd.php?cmd=search&search=true&form=advanced&server_id=%s&filter=%s=%s',
|
||||||
$ldapserver->server_id,$attr,$badattr));
|
$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;
|
$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);
|
$result = $ldapserver->attrModify($entry['dn']['string'],$new_entry);
|
||||||
|
|
||||||
if (! $result)
|
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 {
|
else {
|
||||||
$modified_attrs = array_keys($entry['new']['attrs']);
|
$modified_attrs = array_keys($entry['new']['attrs']);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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,
|
* This page may simply add the objectClass and take you back to the edit page,
|
||||||
@ -20,14 +20,15 @@
|
|||||||
*/
|
*/
|
||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
|
$entry = array();
|
||||||
$entry['oclass']['new'] = get_request('new_oclass','REQUEST');
|
$entry['oclass']['new'] = get_request('new_oclass','REQUEST');
|
||||||
$entry['dn']['string'] = get_request('dn','REQUEST');
|
$entry['dn']['string'] = get_request('dn','REQUEST');
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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'])
|
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.
|
/* 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
|
* 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']));
|
$result = $ldapserver->attrModify($entry['dn']['string'],array('objectClass'=>$entry['oclass']['new']));
|
||||||
|
|
||||||
if (! $result)
|
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 {
|
else {
|
||||||
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s&modified_attrs[]=objectClass',
|
$href = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s&modified_attrs[]=objectClass',
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Adds a value to an attribute for a given dn.
|
||||||
@ -18,12 +18,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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'))
|
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.
|
# The DN and ATTR we are working with.
|
||||||
|
$entry = array();
|
||||||
$entry['dn']['encode'] = get_request('dn','POST',true);
|
$entry['dn']['encode'] = get_request('dn','POST',true);
|
||||||
$entry['dn']['string'] = rawurldecode($entry['dn']['encode']);
|
$entry['dn']['string'] = rawurldecode($entry['dn']['encode']);
|
||||||
$entry['attr']['encode'] = get_request('attr','POST',true);
|
$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;
|
$entry['value']['bin'] = get_request('binary','POST') ? true : false;
|
||||||
|
|
||||||
if ($ldapserver->isAttrReadOnly($entry['attr']['string']))
|
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:
|
* 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',
|
$href = htmlspecialchars(sprintf('cmd.php?cmd=search&search=true&form=advanced&server_id=%s&filter=%s=%s',
|
||||||
$ldapserver->server_id,$entry['attr']['string'],$badattr));
|
$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.
|
# 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);
|
$add_result = $ldapserver->attrModify($entry['dn']['string'],$new_entry);
|
||||||
|
|
||||||
if (! $add_result) {
|
if (! $add_result) {
|
||||||
pla_error(_('Could not perform ldap_mod_add operation.'),
|
system_message(array(
|
||||||
$ldapserver->error(),$ldapserver->errno());
|
'title'=>_('Could not perform ldap_mod_add operation.'),
|
||||||
|
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||||
|
'type'=>'error'));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
run_hook('post_attr_modify',
|
run_hook('post_attr_modify',
|
||||||
array('server_id'=>$ldapserver->server_id,'dn'=>$entry['dn']['string'],'attr_name'=>$entry['attr']['string'],'new_value'=>$new_entry));
|
array('server_id'=>$ldapserver->server_id,'dn'=>$entry['dn']['string'],'attr_name'=>$entry['attr']['string'],'new_value'=>$new_entry));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* Displays a form to allow the user to enter a new value to add
|
||||||
@ -13,9 +13,10 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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.
|
# The DN and ATTR we are working with.
|
||||||
|
$entry = array();
|
||||||
$entry['dn']['encode'] = get_request('dn','GET',true);
|
$entry['dn']['encode'] = get_request('dn','GET',true);
|
||||||
$entry['dn']['string'] = urldecode($entry['dn']['encode']);
|
$entry['dn']['string'] = urldecode($entry['dn']['encode']);
|
||||||
$entry['dn']['html'] = htmlspecialchars($entry['dn']['string']);
|
$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']))
|
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');
|
$tree = get_cached_item($ldapserver->server_id,'tree');
|
||||||
$entry['ldap'] = null;
|
$entry['ldap'] = null;
|
||||||
@ -52,7 +53,7 @@ eval('$reader = new '.$_SESSION[APPCONFIG]->GetValue('appearance','entry_reader'
|
|||||||
$reader->visit('Start', $entry['ldap']);
|
$reader->visit('Start', $entry['ldap']);
|
||||||
|
|
||||||
if (! $entry['ldap'] || $entry['ldap']->isReadOnly())
|
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 */
|
/* attribute values */
|
||||||
@ -71,11 +72,13 @@ if (!$ldap['attr']) {
|
|||||||
$ldap['count'] = $ldap['attr']->getValueCount();
|
$ldap['count'] = $ldap['attr']->getValueCount();
|
||||||
|
|
||||||
if ($ldap['attr']->isReadOnly())
|
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'))
|
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'))
|
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;
|
$entry['attr']['oclass'] = (strcasecmp($entry['attr']['string'],'objectClass') == 0) ? true : false;
|
||||||
|
|
||||||
@ -156,8 +159,8 @@ if ($entry['attr']['oclass']) {
|
|||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
|
|
||||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','show_hints'))
|
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>',
|
printf('<tr><td colspan=2><small><br /><img src="%s/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'));
|
IMGDIR,_('Note: You may be required to enter new attributes that these objectClass(es) require'));
|
||||||
echo '</table>';
|
echo '</table>';
|
||||||
echo '</center>';
|
echo '</center>';
|
||||||
echo '</form>';
|
echo '</form>';
|
||||||
@ -165,7 +168,7 @@ if ($entry['attr']['oclass']) {
|
|||||||
} else {
|
} else {
|
||||||
# Draw a blank field
|
# Draw a blank field
|
||||||
echo '<table border=0><tr><td>';
|
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>';
|
echo '</td></tr><tr><td>';
|
||||||
|
|
||||||
if ($ldap['schema']->getDescription())
|
if ($ldap['schema']->getDescription())
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Compare two DNs - the destination DN is editable.
|
||||||
@ -8,27 +8,28 @@
|
|||||||
|
|
||||||
require_once './common.php';
|
require_once './common.php';
|
||||||
|
|
||||||
$dn_src = isset($_POST['dn_src']) ? $_POST['dn_src'] : null;
|
$dn_src = get_request('dn_src');
|
||||||
$dn_dst = isset($_POST['dn_dst']) ? $_POST['dn_dst'] : null;
|
$dn_dst = get_request('dn_dst');
|
||||||
|
|
||||||
$encoded_dn_src = rawurlencode($dn_src);
|
$encoded_dn_src = rawurlencode($dn_src);
|
||||||
$encoded_dn_dst = rawurlencode($dn_dst);
|
$encoded_dn_dst = rawurlencode($dn_dst);
|
||||||
|
|
||||||
$server_id_src = (isset($_POST['server_id_src']) ? $_POST['server_id_src'] : '');
|
$server_id_src = get_request('server_id_src');
|
||||||
$server_id_dst = (isset($_POST['server_id_dst']) ? $_POST['server_id_dst'] : '');
|
$server_id_dst = get_request('server_id_dst');
|
||||||
|
|
||||||
$ldapserver_src = $_SESSION[APPCONFIG]->ldapservers->Instance($server_id_src);
|
$ldapserver_src = $_SESSION[APPCONFIG]->ldapservers->Instance($server_id_src);
|
||||||
if (! $ldapserver_src->haveAuthInfo())
|
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);
|
$ldapserver_dst = $_SESSION[APPCONFIG]->ldapservers->Instance($server_id_dst);
|
||||||
if (! $ldapserver_src->haveAuthInfo())
|
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))
|
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))
|
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_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'));
|
$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)
|
if (count($vals) > 1)
|
||||||
for ($i=1; $i<=count($vals); $i++)
|
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
|
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))
|
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 '</small>';
|
||||||
echo '</td>';
|
echo '</td>';
|
||||||
@ -322,8 +323,7 @@ foreach ($attrs_all as $attr) {
|
|||||||
|
|
||||||
if ($side == 'dst') {
|
if ($side == 'dst') {
|
||||||
printf('<input style="width: 260px" type="password" name="new_values[userpassword]" value="%s" />',htmlspecialchars($user_password));
|
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 />';
|
echo '<br />';
|
||||||
@ -383,8 +383,8 @@ foreach ($attrs_all as $attr) {
|
|||||||
# Is this value is a structural objectClass, make it read-only
|
# Is this value is a structural objectClass, make it read-only
|
||||||
if (0 == strcasecmp($attr,'objectClass')) {
|
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>',
|
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));
|
_('View the schema description for this objectClass'),$ldapserver->server_id,htmlspecialchars($val),IMGDIR);
|
||||||
|
|
||||||
$schema_object = $ldapserver->getSchemaObjectClass($val);
|
$schema_object = $ldapserver->getSchemaObjectClass($val);
|
||||||
|
|
||||||
@ -400,14 +400,14 @@ foreach ($attrs_all as $attr) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_dn_string($val) || $ldapserver->isDNAttr($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>',
|
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));
|
sprintf(_('Go to %s'),htmlspecialchars($val)),$ldapserver->server_id,rawurlencode($val),IMGDIR);
|
||||||
|
|
||||||
elseif (is_mail_string($val))
|
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))
|
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 ($ldapserver->isMultiLineAttr($attr,$val)) {
|
||||||
if ($side == 'dst')
|
if ($side == 'dst')
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Compares to DN entries side by side.
|
||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
require_once './common.php';
|
require_once './common.php';
|
||||||
|
|
||||||
$dn = (isset($_GET['dn']) ? $_GET['dn'] : '');
|
$dn = get_request('dn','GET');
|
||||||
$rdn = get_rdn($dn);
|
$rdn = get_rdn($dn);
|
||||||
$select_server_html = server_select_list($ldapserver->server_id,true,'server_id_dst');
|
$select_server_html = server_select_list($ldapserver->server_id,true,'server_id_dst');
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Copies a given object to create a new one.
|
||||||
@ -17,8 +17,9 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_move'))
|
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['src']['id'] = get_request('server_id');
|
||||||
$entry['dst']['id'] = get_request('dest_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']);
|
$entry['dst']['ldapserver'] = $_SESSION[APPCONFIG]->ldapservers->Instance($entry['dst']['id']);
|
||||||
|
|
||||||
if ($entry['dst']['ldapserver']->isReadOnly())
|
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())
|
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['src']['dn'] = get_request('old_dn');
|
||||||
$entry['dst']['dn'] = get_request('new_dn');
|
$entry['dst']['dn'] = get_request('new_dn');
|
||||||
@ -38,19 +39,19 @@ $entry['src']['remove'] = (get_request('remove') == 'yes') ? true : false;
|
|||||||
|
|
||||||
# Error checking
|
# Error checking
|
||||||
if (strlen(trim($entry['dst']['dn'])) == 0)
|
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'])
|
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']))
|
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'])))
|
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']) {
|
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
|
# Build a tree similar to that of the tree browser to give to r_copy_dn
|
||||||
$snapshot_tree = array();
|
$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);
|
$add_result = $ldapserver_dst->add($dn_dst,$new_entry);
|
||||||
if (! $add_result) {
|
if (! $add_result) {
|
||||||
echo '</small><br /><br />';
|
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 {
|
} else {
|
||||||
run_hook('post_entry_create',
|
run_hook('post_entry_create',
|
||||||
array('server_id'=>$ldapserver_dst->server_id,'dn'=>$dn_dst,'attrs'=>$new_entry));
|
array('server_id'=>$ldapserver_dst->server_id,'dn'=>$dn_dst,'attrs'=>$new_entry));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Copies a given object to create a new one.
|
||||||
@ -15,8 +15,9 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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['dn'] = get_request('dn','GET');
|
||||||
$entry['rdn'] = get_rdn($entry['dn']);
|
$entry['rdn'] = get_rdn($entry['dn']);
|
||||||
|
|
||||||
@ -99,7 +100,7 @@ echo '</table></form>';
|
|||||||
echo "\n";
|
echo "\n";
|
||||||
|
|
||||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','show_hints'))
|
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>';
|
echo '</center>';
|
||||||
?>
|
?>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Creates a new object.
|
||||||
@ -19,12 +19,12 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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'))
|
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');
|
$entryfactoryclass = $_SESSION[APPCONFIG]->GetValue('appearance','entry_factory');
|
||||||
eval('$entry_factory = new '.$entryfactoryclass.'();');
|
eval('$entry_factory = new '.$entryfactoryclass.'();');
|
||||||
@ -36,7 +36,7 @@ $entry->accept($reader);
|
|||||||
$container = $entry->getContainer();
|
$container = $entry->getContainer();
|
||||||
|
|
||||||
if (!$container || !$ldapserver->dnExists($container))
|
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');
|
$tree = get_cached_item($ldapserver->server_id,'tree');
|
||||||
if ($tree) {
|
if ($tree) {
|
||||||
@ -46,18 +46,18 @@ if ($tree) {
|
|||||||
|
|
||||||
$container_entry = $tree->getEntry($container);
|
$container_entry = $tree->getEntry($container);
|
||||||
if ($container_entry->isLeaf())
|
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);
|
$entry->setRdnAttributeName($rdn_attr);
|
||||||
if (!$entry->getRdnAttribute())
|
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();
|
$new_dn = $entry->getDn();
|
||||||
if (! $new_dn)
|
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();
|
$new_entry = array();
|
||||||
$attrs = $entry->getAttributes();
|
$attrs = $entry->getAttributes();
|
||||||
@ -69,8 +69,9 @@ foreach ($attrs as $attr) {
|
|||||||
$new_vals[] = $val;
|
$new_vals[] = $val;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($attr->isRequired() && !$new_vals)
|
if ($attr->isRequired() && !$new_vals && !$ldapserver->isIgnoredAttr($attr->getName()))
|
||||||
pla_error(sprintf(_('You left the value blank for required attribute (%s).'), htmlspecialchars($attr->getName())));
|
error(sprintf(_('You left the value blank for required attribute (%s).'),htmlspecialchars($attr->getName())),'error','index.php');
|
||||||
|
|
||||||
|
|
||||||
if ($new_vals)
|
if ($new_vals)
|
||||||
$new_entry[$attr->getName()] = $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
|
# Check to see if this is a unique Attribute
|
||||||
if ($badattr = $ldapserver->checkUniqueAttr($new_dn,$attr,$vals)) {
|
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);
|
$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 {
|
} 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 */
|
/* Global Page */
|
||||||
table.page {
|
table.page {
|
||||||
@ -96,7 +96,7 @@ table.page table.control td.logo img.logo {
|
|||||||
text-align: right;
|
text-align: right;
|
||||||
|
|
||||||
width: 100px;
|
width: 100px;
|
||||||
height: 60px;
|
height: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Global Page - LDAP Tree */
|
/* Global Page - LDAP Tree */
|
||||||
@ -276,6 +276,7 @@ table.tree td.rdn a:hover {
|
|||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #841212;
|
color: #841212;
|
||||||
background-color: #FFF0C0;
|
background-color: #FFF0C0;
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.tree td.rdn span.count {
|
table.tree td.rdn span.count {
|
||||||
@ -300,13 +301,6 @@ table.tree td.link a:hover {
|
|||||||
text-decoration: none;
|
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 {
|
table.tree td.links a:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: blue;
|
color: blue;
|
||||||
@ -438,6 +432,7 @@ table.entry input {
|
|||||||
}
|
}
|
||||||
|
|
||||||
table.entry input.value {
|
table.entry input.value {
|
||||||
|
color: #000000;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
width: 350px;
|
width: 350px;
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
@ -447,15 +442,16 @@ table.entry div.helper {
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
|
color: #888;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
color: #888;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
table.entry input.roval {
|
table.entry input.roval {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
width: 350px;
|
width: 350px;
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
|
color: #000000;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -463,12 +459,14 @@ table.entry textarea.value {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
width: 350px;
|
width: 350px;
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
table.entry textarea.roval {
|
table.entry textarea.roval {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
width: 350px;
|
width: 350px;
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
|
color: #000000;
|
||||||
border: none;
|
border: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -604,41 +602,50 @@ table.entry tr.updated td.ew2_val {
|
|||||||
#login {
|
#login {
|
||||||
background: url('../images/uid.png') no-repeat 0 1px;
|
background: url('../images/uid.png') no-repeat 0 1px;
|
||||||
background-color: #FAFAFF;
|
background-color: #FAFAFF;
|
||||||
|
color: #000000;
|
||||||
padding-left: 17px;
|
padding-left: 17px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#login:focus {
|
#login:focus {
|
||||||
background-color: #F0F0FF;
|
background-color: #F0F0FF;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#login:disabled {
|
#login:disabled {
|
||||||
background-color: #DDDDFF;
|
background-color: #DDDDFF;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#password {
|
#password {
|
||||||
background: url('../images/key.png') no-repeat 0 1px;
|
background: url('../images/key.png') no-repeat 0 1px;
|
||||||
background-color: #FAFAFF;
|
background-color: #FAFAFF;
|
||||||
|
color: #000000;
|
||||||
padding-left: 17px;
|
padding-left: 17px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#password:focus {
|
#password:focus {
|
||||||
background-color: #F0F0FF;
|
background-color: #F0F0FF;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#password:disabled {
|
#password:disabled {
|
||||||
background-color: #DDDDFF;
|
background-color: #DDDDFF;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#generic {
|
#generic {
|
||||||
background-color: #FAFAFF;
|
background-color: #FAFAFF;
|
||||||
|
color: #000000;
|
||||||
padding-left: 17px;
|
padding-left: 17px;
|
||||||
}
|
}
|
||||||
#generic:focus {
|
#generic:focus {
|
||||||
background-color: #F0F0FF;
|
background-color: #F0F0FF;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#generic:disabled {
|
#generic:disabled {
|
||||||
background-color: #DDDDFF;
|
background-color: #DDDDFF;
|
||||||
|
color: #000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* After input results */
|
/* After input results */
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Deletes a DN and presents a "job's done" message.
|
||||||
@ -15,24 +15,25 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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'))
|
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');
|
$entry['dn'] = get_request('dn');
|
||||||
|
|
||||||
if (! $entry['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']))
|
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.
|
# Check the user-defined custom callback first.
|
||||||
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$entry['dn'])))
|
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$entry['dn'])))
|
||||||
$result = $ldapserver->delete($entry['dn']);
|
$result = $ldapserver->delete($entry['dn']);
|
||||||
else
|
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) {
|
if ($result) {
|
||||||
# Custom callback
|
# Custom callback
|
||||||
@ -46,7 +47,9 @@ if ($result) {
|
|||||||
sprintf('index.php?server_id=%s',$ldapserver->server_id));
|
sprintf('index.php?server_id=%s',$ldapserver->server_id));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
pla_error(sprintf(_('Could not delete the entry: %s'),'<b>'.pretty_print_dn($entry['dn']).'</b>'),
|
system_message(array(
|
||||||
$ldapserver->error(),$ldapserver->errno());
|
'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
|
<?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.
|
* Deletes an attribute from an entry with NO confirmation.
|
||||||
@ -15,23 +15,24 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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'))
|
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']['string'] = get_request('dn');
|
||||||
$entry['dn']['encode'] = rawurlencode($entry['dn']['string']);
|
$entry['dn']['encode'] = rawurlencode($entry['dn']['string']);
|
||||||
$entry['attr'] = get_request('attr');
|
$entry['attr'] = get_request('attr');
|
||||||
|
|
||||||
if (! $entry['dn']['string'])
|
if (! $entry['dn']['string'])
|
||||||
pla_error(_('No DN specified'));
|
error(_('No DN specified'),'error','index.php');
|
||||||
|
|
||||||
if (! $entry['attr'])
|
if (! $entry['attr'])
|
||||||
pla_error(_('No attribute name specified.'));
|
error(_('No attribute name specified.'),'error','index.php');
|
||||||
|
|
||||||
if ($ldapserver->isAttrReadOnly($entry['attr']))
|
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 = array();
|
||||||
$update_array[$entry['attr']] = array();
|
$update_array[$entry['attr']] = array();
|
||||||
@ -47,6 +48,9 @@ if ($result) {
|
|||||||
die();
|
die();
|
||||||
|
|
||||||
} else {
|
} 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
|
<?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
|
* delete_form.php
|
||||||
@ -16,8 +16,9 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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']['string'] = get_request('dn','GET');
|
||||||
$entry['dn']['html'] = htmlspecialchars($entry['dn']['string']);
|
$entry['dn']['html'] = htmlspecialchars($entry['dn']['string']);
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -12,27 +12,32 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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.'));
|
|
||||||
|
|
||||||
$dn = rawurldecode($_GET['dn']);
|
if (! $ldapserver->haveAuthInfo())
|
||||||
$attr = $_GET['attr'];
|
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?
|
# 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))
|
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'));
|
$search = $ldapserver->search(null,$dn,'(objectClass=*)',array($attr),'base',false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||||
|
|
||||||
# Dump the binary data to the browser
|
# 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-type: octet-stream');
|
||||||
header("Content-disposition: attachment; filename=$attr");
|
header("Content-disposition: attachment; filename=$attr");
|
||||||
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
|
||||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||||
|
|
||||||
if ($value_num && is_array($search[$attr][$dn]))
|
if ($value_num && is_array($search[$attr][$dn]))
|
||||||
echo $search[$dn][$attr][$value_num];
|
echo $search[$dn][$attr][$value_num];
|
||||||
else
|
else
|
||||||
|
@ -1,41 +1,42 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$entry['dn'] = get_request('dn','REQUEST');
|
$entry = array();
|
||||||
$entry['server_id'] = get_request('server_id','REQUEST');
|
$entry['dn'] = get_request('dn','REQUEST');
|
||||||
$entry['code'] = get_request('code','REQUEST');
|
$entry['server_id'] = get_request('server_id','REQUEST');
|
||||||
$entry['action'] = get_request('action','REQUEST');
|
$entry['code'] = get_request('code','REQUEST');
|
||||||
|
$entry['action'] = get_request('action','REQUEST');
|
||||||
|
|
||||||
$tree = Tree::getInstance($entry['server_id']);
|
$tree = Tree::getInstance($entry['server_id']);
|
||||||
if (! $tree)
|
if (! $tree)
|
||||||
die();
|
|
||||||
|
|
||||||
$dnentry = $tree->getEntry($entry['dn']);
|
|
||||||
if (! $dnentry) {
|
|
||||||
$tree->addEntry($entry['dn']);
|
|
||||||
$dnentry = $this->getEntry($entry['dn']);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! $dnentry)
|
|
||||||
die();
|
|
||||||
|
|
||||||
if ($entry['action'] == 0) {
|
|
||||||
$dnentry->close();
|
|
||||||
|
|
||||||
} elseif ($entry['action'] == 2) {
|
|
||||||
$dnentry->open();
|
|
||||||
|
|
||||||
} else {
|
|
||||||
$dnentry->open();
|
|
||||||
if ($entry['dn']) {
|
|
||||||
echo $tree->draw_children($dnentry,$entry['code']);
|
|
||||||
} else {
|
|
||||||
$tree->draw(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
die();
|
die();
|
||||||
|
|
||||||
|
$dnentry = $tree->getEntry($entry['dn']);
|
||||||
|
if (! $dnentry) {
|
||||||
|
$tree->addEntry($entry['dn']);
|
||||||
|
$dnentry = $this->getEntry($entry['dn']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! $dnentry)
|
||||||
|
die();
|
||||||
|
|
||||||
|
if ($entry['action'] == 0) {
|
||||||
|
$dnentry->close();
|
||||||
|
|
||||||
|
} elseif ($entry['action'] == 2) {
|
||||||
|
$dnentry->open();
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$dnentry->open();
|
||||||
|
if ($entry['dn']) {
|
||||||
|
echo $tree->draw_children($dnentry,$entry['code']);
|
||||||
|
} else {
|
||||||
|
$tree->draw(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
die();
|
||||||
?>
|
?>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Display a selection (popup window) to pick a DN.
|
||||||
@ -10,6 +10,7 @@
|
|||||||
include './common.php';
|
include './common.php';
|
||||||
include HTDOCDIR.'header.php';
|
include HTDOCDIR.'header.php';
|
||||||
|
|
||||||
|
$entry = array();
|
||||||
$entry['container'] = get_request('container','GET');
|
$entry['container'] = get_request('container','GET');
|
||||||
$entry['element'] = get_request('form_element','GET');
|
$entry['element'] = get_request('form_element','GET');
|
||||||
$entry['rdn'] = get_request('rdn','GET');
|
$entry['rdn'] = get_request('rdn','GET');
|
||||||
@ -38,7 +39,7 @@ if ($entry['container']) {
|
|||||||
if (isset($ldapserver) && ! is_null($entry['container'])) {
|
if (isset($ldapserver) && ! is_null($entry['container'])) {
|
||||||
|
|
||||||
if (! $ldapserver->haveAuthInfo())
|
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'));
|
$entry['children'] = $ldapserver->getContainerContents($entry['container'],0,'(objectClass=*)',$_SESSION[APPCONFIG]->GetValue('deref','tree'));
|
||||||
sort($entry['children']);
|
sort($entry['children']);
|
||||||
@ -61,7 +62,7 @@ if (isset($ldapserver) && ! is_null($entry['container'])) {
|
|||||||
|
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo '<td class="blank"> </td>';
|
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...'));
|
printf('<td colspan=2><a href="%s">%s</a></td>',$href['up'],_('Back Up...'));
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
|
|
||||||
@ -76,7 +77,7 @@ if (isset($ldapserver) && ! is_null($entry['container'])) {
|
|||||||
|
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo '<td class="blank"> </td>';
|
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));
|
printf('<td colspan=2><a href="%s">%s</a></td>',$href['return'],htmlspecialchars($dn));
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
@ -107,7 +108,7 @@ if (isset($ldapserver) && ! is_null($entry['container'])) {
|
|||||||
|
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
echo '<td class="blank"> </td>';
|
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));
|
printf('<td colspan=2><a href="%s">%s</a></td>',$href['return'],htmlspecialchars($dn));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -15,8 +15,9 @@ ini_set('session.cache_limiter','');
|
|||||||
require LIBDIR.'export_functions.php';
|
require LIBDIR.'export_functions.php';
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('export'))
|
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['base_dn'] = get_request('dn');
|
||||||
$entry['format'] = get_request('format','POST',false,'unix');
|
$entry['format'] = get_request('format','POST',false,'unix');
|
||||||
$entry['scope'] = get_request('scope','POST',false,'base');
|
$entry['scope'] = get_request('scope','POST',false,'base');
|
||||||
@ -40,8 +41,8 @@ if ($entry['sys_attr']) {
|
|||||||
array_push($attributes,'+');
|
array_push($attributes,'+');
|
||||||
}
|
}
|
||||||
|
|
||||||
(! is_null($entry['exporter_id'])) or pla_error(_('You must choose an export format.'));
|
(! is_null($entry['exporter_id'])) or error(_('You must choose an export format.'),'error','index.php');
|
||||||
isset($exporters[$entry['exporter_id']]) or pla_error(_('Invalid export format'));
|
isset($exporters[$entry['exporter_id']]) or error(_('Invalid export format'),'error','index.php');
|
||||||
|
|
||||||
# Initialisation of other variables
|
# Initialisation of other variables
|
||||||
$friendly_rdn = get_rdn($entry['base_dn'],1);
|
$friendly_rdn = get_rdn($entry['base_dn'],1);
|
||||||
@ -85,13 +86,13 @@ switch ($entry['exporter_id']) {
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
# truly speaking,this default case will never be reached. See check at the bottom.
|
# 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
|
# set the CLRN
|
||||||
$exporter->setOutputFormat($br);
|
$exporter->setOutputFormat($br);
|
||||||
|
|
||||||
if (isset($_REQUEST['compress']) && $_REQUEST['compress'] = 'on')
|
if (get_request('compress','REQUEST') == 'on')
|
||||||
$exporter->compress(true);
|
$exporter->compress(true);
|
||||||
|
|
||||||
# prevent script from bailing early for long search
|
# prevent script from bailing early for long search
|
||||||
@ -99,7 +100,10 @@ if (isset($_REQUEST['compress']) && $_REQUEST['compress'] = 'on')
|
|||||||
|
|
||||||
# send the header
|
# send the header
|
||||||
if ($entry['file']) {
|
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('Content-type: application/download');
|
||||||
header(sprintf('Content-Disposition: filename="%s.%s"',$friendly_rdn,$exporters[$entry['exporter_id']]['extension'].($exporter->isCompressed()?'.gz':'')));
|
header(sprintf('Content-Disposition: filename="%s.%s"',$friendly_rdn,$exporters[$entry['exporter_id']]['extension'].($exporter->isCompressed()?'.gz':'')));
|
||||||
$exporter->export();
|
$exporter->export();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* export_form.php
|
||||||
@ -13,6 +13,7 @@ require './common.php';
|
|||||||
|
|
||||||
require LIBDIR.'export_functions.php';
|
require LIBDIR.'export_functions.php';
|
||||||
|
|
||||||
|
$entry = array();
|
||||||
$entry['format'] = get_request('format','GET',false,get_line_end_format());
|
$entry['format'] = get_request('format','GET',false,get_line_end_format());
|
||||||
$entry['scope'] = get_request('scope','GET',false,'base');
|
$entry['scope'] = get_request('scope','GET',false,'base');
|
||||||
$entry['id'] = get_request('exporter_id','GET',false,0);
|
$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
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -40,6 +40,10 @@ if (! is_readable(LIBDIR.'functions.php')) {
|
|||||||
if (ob_get_level())
|
if (ob_get_level())
|
||||||
ob_end_clean();
|
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';
|
require LIBDIR.'functions.php';
|
||||||
|
|
||||||
# Define the path to our configuration file.
|
# Define the path to our configuration file.
|
||||||
@ -48,9 +52,30 @@ if (defined('CONFDIR'))
|
|||||||
else
|
else
|
||||||
$app['config_file'] = 'config.php';
|
$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
|
# Make sure this PHP install has gettext, we use it for language translation
|
||||||
if (! extension_loaded('gettext'))
|
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.
|
* Helper functions.
|
||||||
@ -59,10 +84,10 @@ if (! extension_loaded('gettext'))
|
|||||||
if (isset($app['function_files']) && is_array($app['function_files']))
|
if (isset($app['function_files']) && is_array($app['function_files']))
|
||||||
foreach ($app['function_files'] as $file_name ) {
|
foreach ($app['function_files'] as $file_name ) {
|
||||||
if (! file_exists($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))
|
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();
|
ob_start();
|
||||||
require $file_name;
|
require $file_name;
|
||||||
@ -71,10 +96,10 @@ if (isset($app['function_files']) && is_array($app['function_files']))
|
|||||||
|
|
||||||
# Configuration File check
|
# Configuration File check
|
||||||
if (! file_exists($app['config_file'])) {
|
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'])) {
|
} 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.
|
# If our config file fails the sanity check, then stop now.
|
||||||
@ -87,5 +112,8 @@ if (! check_config($app['config_file'])) {
|
|||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($uri = get_request('URI','GET'))
|
||||||
|
header(sprintf('Location: cmd.php?%s',base64_decode($uri)));
|
||||||
|
|
||||||
include './cmd.php';
|
include './cmd.php';
|
||||||
?>
|
?>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Imports an LDIF file to the specified server_id.
|
||||||
@ -16,8 +16,9 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('import'))
|
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['continuous_mode'] = get_request('continuous_mode') ? true : false;
|
||||||
$entry['ldif'] = get_request('ldif');
|
$entry['ldif'] = get_request('ldif');
|
||||||
|
|
||||||
@ -31,20 +32,20 @@ if ($entry['ldif']) {
|
|||||||
$entry['size'] = $_FILES['ldif_file']['size'];
|
$entry['size'] = $_FILES['ldif_file']['size'];
|
||||||
|
|
||||||
if (! is_array($_FILES['ldif_file'])) {
|
if (! is_array($_FILES['ldif_file'])) {
|
||||||
pla_error(_('Missing uploaded file.'),null,-1,false);
|
error(_('Missing uploaded file.'),'error');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (! file_exists($file)) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
if ($entry['size'] <= 0) {
|
if ($entry['size'] <= 0) {
|
||||||
pla_error(_('Uploaded LDIF file is empty.'),null,-1,false);
|
error(_('Uploaded LDIF file is empty.'),'error');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} 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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,7 +183,7 @@ function display_pla_parse_error($exception,$faultyEntry) {
|
|||||||
$errorMessage = $actionErrorMsg[$faultyEntry->getChangeType()];
|
$errorMessage = $actionErrorMsg[$faultyEntry->getChangeType()];
|
||||||
|
|
||||||
echo '<center>';
|
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>';
|
echo '<td>';
|
||||||
printf('<center><h2>%s</h2></center>',_('LDIF Parse Error'));
|
printf('<center><h2>%s</h2></center>',_('LDIF Parse Error'));
|
||||||
echo '<br />';
|
echo '<br />';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* Displays a form to allow the user to upload and import
|
||||||
@ -13,10 +13,10 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if (! ini_get('file_uploads'))
|
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())
|
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="title" colspan=0>%s</h3>',_('Import LDIF File'));
|
||||||
printf('<h3 class="subtitle" colspan=0>%s: <b>%s</b></h3>',_('Server'),htmlspecialchars($ldapserver->name));
|
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>';
|
echo '<tr><td colspan=2> </td></tr>';
|
||||||
printf('<tr><td>%s</td></tr>',_('Or paste your LDIF here'));
|
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>';
|
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>',
|
printf('<tr><td> </td><td class="small"><input type="checkbox" name="continuous_mode" value="1" />%s</td></tr>',
|
||||||
_("Don't stop on errors"));
|
_("Don't stop on errors"));
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* 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->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);
|
set_lastactivity($ldapserver);
|
||||||
|
|
||||||
if (! $anon_bind) {
|
if (! $anon_bind) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* 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';
|
require './common.php';
|
||||||
|
|
||||||
if (! in_array($ldapserver->auth_type, array('cookie','session')))
|
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);
|
printf('<h3 class="title">%s %s</h3>',_('Authenticate to server'),$ldapserver->name);
|
||||||
|
|
||||||
# Check for a secure connection
|
# Check for a secure connection
|
||||||
if (! isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') {
|
if (! isset($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS']) != 'on') {
|
||||||
echo '<br />';
|
echo '<br />';
|
||||||
echo '<center>';
|
echo '<center>';
|
||||||
echo '<span style="color:red">';
|
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" />';
|
echo '<input type="hidden" name="cmd" value="login" />';
|
||||||
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
|
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
|
||||||
|
|
||||||
if (isset($_GET['redirect']))
|
if (get_request('redirect','GET',false,false))
|
||||||
printf('<input type="hidden" name="redirect" value="%s" />',rawurlencode($_GET['redirect']));
|
printf('<input type="hidden" name="redirect" value="%s" />',rawurlencode(get_request('redirect','GET')));
|
||||||
|
|
||||||
echo '<center>';
|
echo '<center>';
|
||||||
echo '<table class="forminput">';
|
echo '<table class="forminput">';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me
|
||||||
@ -16,18 +16,18 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if (! $ldapserver->haveAuthInfo())
|
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'))) {
|
if (in_array($ldapserver->auth_type, array('cookie','session','http'))) {
|
||||||
syslog_notice (sprintf('Logout for %s',$ldapserver->getLoggedInDN()));
|
syslog_notice (sprintf('Logout for %s',$ldapserver->getLoggedInDN()));
|
||||||
if($ldapserver->auth_type!='http')
|
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);
|
unset_lastactivity($ldapserver);
|
||||||
|
|
||||||
@session_destroy();
|
@session_destroy();
|
||||||
|
|
||||||
} else
|
} 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(
|
system_message(array(
|
||||||
'title'=>_('Logout'),
|
'title'=>_('Logout'),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Enables user to mass delete multiple entries using checkboxes.
|
||||||
@ -19,23 +19,23 @@
|
|||||||
|
|
||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if( $ldapserver->isReadOnly() )
|
if ($ldapserver->isReadOnly())
|
||||||
pla_error(_('Unable to delete, server is in READY-ONLY mode.'));
|
error(_('You cannot perform updates while server is in read-only mode'),'error','index.php');
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('entry_delete', 'mass_delete'))
|
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')));
|
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;
|
$confirmed = isset($_POST['confirmed']) ? true : false;
|
||||||
isset($_POST['mass_delete']) or
|
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'];
|
$mass_delete = $_POST['mass_delete'];
|
||||||
|
|
||||||
is_array($mass_delete) or
|
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
|
$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'));
|
printf('<h3 class="title">%s</h3>',_('Mass Deleting'));
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ if ($confirmed == true) {
|
|||||||
$failed_dns = array();
|
$failed_dns = array();
|
||||||
|
|
||||||
if (! is_array($mass_delete))
|
if (! is_array($mass_delete))
|
||||||
pla_error(_('Malformed mass_delete array.'));
|
error(_('Malformed mass_delete array.'),'error','index.php');
|
||||||
|
|
||||||
if (count($mass_delete) == 0) {
|
if (count($mass_delete) == 0) {
|
||||||
echo '<br />';
|
echo '<br />';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Displays a form to allow the user to modify group members.
|
||||||
@ -18,12 +18,12 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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())
|
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'];
|
$attr = get_request('attr','GET');
|
||||||
$dn = isset($_GET['dn']) ? $_GET['dn'] : null;
|
$dn = get_request('dn','GET');
|
||||||
$encoded_dn = rawurlencode($dn);
|
$encoded_dn = rawurlencode($dn);
|
||||||
$encoded_attr = rawurlencode($attr);
|
$encoded_attr = rawurlencode($attr);
|
||||||
|
|
||||||
@ -39,7 +39,7 @@ if ($current_members)
|
|||||||
else
|
else
|
||||||
$num_current_members = 0;
|
$num_current_members = 0;
|
||||||
|
|
||||||
sort($current_members);
|
usort($current_members,'pla_compare_dns');
|
||||||
|
|
||||||
# Loop through all base dn's and search possible member entries
|
# Loop through all base dn's and search possible member entries
|
||||||
foreach ($ldapserver->getBaseDN() as $base_dn) {
|
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>:',
|
printf('%s <b>%s</b> %s <b>%s</b>:',
|
||||||
_('There are'),$num_current_members,_('members in group'),htmlspecialchars($rdn));
|
_('There are'),$num_current_members,_('members in group'),htmlspecialchars($rdn));
|
||||||
|
|
||||||
|
$possible_members = array();
|
||||||
for ($i=0; $i<count($possible_values); $i++) {
|
for ($i=0; $i<count($possible_values); $i++) {
|
||||||
if (preg_match("/^$attr$/i",$_SESSION[APPCONFIG]->GetValue('modify_member','posixgroupattr')))
|
if (preg_match("/^$attr$/i",$_SESSION[APPCONFIG]->GetValue('modify_member','posixgroupattr')))
|
||||||
$possible_members[$i] = $possible_values[$i][$_SESSION[APPCONFIG]->GetValue('modify_member','posixattr')];
|
$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')];
|
$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.
|
* 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 '<table class="modify_members">';
|
||||||
|
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
printf('<td><img src="images/user.png" alt="Users" /> %s</td>',_('Available members'));
|
printf('<td><img src="%s/user.png" alt="Users" /> %s</td>',IMGDIR,_('Available members'));
|
||||||
printf('<td><img src="images/uniquegroup.png" alt="Members" /> %s</td>',_('Group members'));
|
printf('<td><img src="%s/uniquegroup.png" alt="Members" /> %s</td>',IMGDIR,_('Group members'));
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
|
|
||||||
# Generate select box from all possible members
|
# Generate select box from all possible members
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -11,6 +11,7 @@ require './common.php';
|
|||||||
include HTDOCDIR.'header.php';
|
include HTDOCDIR.'header.php';
|
||||||
|
|
||||||
echo '<body>';
|
echo '<body>';
|
||||||
|
$entry = array();
|
||||||
$entry['hash'] = get_request('hash','REQUEST');
|
$entry['hash'] = get_request('hash','REQUEST');
|
||||||
$entry['password'] = get_request('check_password','REQUEST');
|
$entry['password'] = get_request('check_password','REQUEST');
|
||||||
$entry['action'] = get_request('action','REQUEST');
|
$entry['action'] = get_request('action','REQUEST');
|
||||||
@ -34,7 +35,7 @@ echo '<table class="forminput" width=100% border=0>';
|
|||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
printf('<td class="heading">%s</td>',_('Compare'));
|
printf('<td class="heading">%s</td>',_('Compare'));
|
||||||
printf('<td><input type="%s" name="hash" id="hash" value="%s" /></td>',
|
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>';
|
||||||
|
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -10,7 +10,7 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('purge'))
|
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');
|
$purge_session_keys = array('cache');
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* Recursively deletes the specified DN and all of its children
|
||||||
@ -15,17 +15,18 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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'))
|
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['dn'] = $_POST['dn'];
|
$entry = array();
|
||||||
|
$entry['dn'] = get_request('dn');
|
||||||
if (! $entry['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']))
|
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="title">'._('Deleting %s').'</h3>',htmlspecialchars(get_rdn($entry['dn'])));
|
||||||
printf('<h3 class="subtitle">%s</h3>',_('Recursive delete progress'));
|
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>');
|
printf(_('Entry %s and sub-tree deleted successfully.'),'<b>'.htmlspecialchars($entry['dn']).'</b>');
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
pla_error(sprintf(_('Could not delete the entry: %s'),htmlspecialchars($entry['dn'])),
|
system_message(array(
|
||||||
$ldapserver->error(),$ldapserver->errno());
|
'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) {
|
function pla_rdelete($ldapserver,$dn) {
|
||||||
@ -60,8 +63,10 @@ function pla_rdelete($ldapserver,$dn) {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
pla_error(sprintf(_('Failed to delete entry %s'),htmlspecialchars($dn)),
|
system_message(array(
|
||||||
$ldapserver->error(),$ldapserver->errno());
|
'title'=>_('Could not delete the entry.').sprintf(' (%s)',pretty_print_dn($entry['dn'])),
|
||||||
|
'body'=>ldap_error_msg($ldapserver->error(),$ldapserver->errno()),
|
||||||
|
'type'=>'error'));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -77,8 +82,10 @@ function pla_rdelete($ldapserver,$dn) {
|
|||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
pla_error(sprintf(_('Failed to delete entry %s'),htmlspecialchars($dn)),
|
system_message(array(
|
||||||
$ldapserver->error(),$ldapserver->errno());
|
'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
|
<?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
|
* This script alters the session variable 'tree', by re-querying
|
||||||
@ -14,7 +14,7 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('server_refresh'))
|
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']);
|
unset($_SESSION['cache'][$ldapserver->server_id]['tree']);
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Renames a DN to a different name.
|
||||||
@ -18,25 +18,25 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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'))
|
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()) {
|
if (! $ldapserver->isBranchRenameEnabled()) {
|
||||||
# we search all children, not only the visible children in the tree
|
# we search all children, not only the visible children in the tree
|
||||||
$children = $ldapserver->getContainerContents($dn);
|
$children = $ldapserver->getContainerContents($dn);
|
||||||
if (count($children) > 0)
|
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);
|
$container = get_container($dn);
|
||||||
$new_dn = sprintf('%s,%s',$new_rdn,$container);
|
$new_dn = sprintf('%s,%s',$new_rdn,$container);
|
||||||
|
|
||||||
if ($new_dn == $dn)
|
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 = explode('=',$dn);
|
||||||
$old_dn_attr = $old_dn_attr[0];
|
$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);
|
$new_dn_value = explode('=',$new_rdn,2);
|
||||||
|
|
||||||
if (count($new_dn_value) != 2 || ! isset($new_dn_value[1]))
|
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_attr = $new_dn_value[0];
|
||||||
$new_dn_value = $new_dn_value[1];
|
$new_dn_value = $new_dn_value[1];
|
||||||
@ -58,7 +58,7 @@ if ($success) {
|
|||||||
$success = $ldapserver->rename($dn,$new_rdn,$container,$deleteoldrdn);
|
$success = $ldapserver->rename($dn,$new_rdn,$container,$deleteoldrdn);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
pla_error(_('Could not rename the entry') );
|
error(_('Could not rename the entry'),'error','index.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($success) {
|
if ($success) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Displays a form for renaming an LDAP entry.
|
||||||
@ -17,9 +17,9 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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())
|
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'];
|
$dn = $_GET['dn'];
|
||||||
$rdn = get_rdn($dn);
|
$rdn = get_rdn($dn);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* Displays the schema for the specified server_id
|
||||||
@ -17,8 +17,9 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('schema'))
|
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['view'] = get_request('view','GET','false','objectClasses');
|
||||||
$entry['value'] = get_request('viewvalue','GET');
|
$entry['value'] = get_request('viewvalue','GET');
|
||||||
|
|
||||||
@ -63,7 +64,7 @@ echo '<br />';
|
|||||||
switch($entry['view']) {
|
switch($entry['view']) {
|
||||||
|
|
||||||
case 'syntaxes':
|
case 'syntaxes':
|
||||||
$highlight_oid = isset($_GET['highlight_oid']) ? $_GET['highlight_oid'] : false;
|
$highlight_oid = get_request('highlight_oid','GET',false,false);
|
||||||
|
|
||||||
echo '<center>';
|
echo '<center>';
|
||||||
print '<table class="result_table" border=0>';
|
print '<table class="result_table" border=0>';
|
||||||
@ -73,7 +74,7 @@ switch($entry['view']) {
|
|||||||
|
|
||||||
$schema_syntaxes = $ldapserver->SchemaSyntaxes(null,true);
|
$schema_syntaxes = $ldapserver->SchemaSyntaxes(null,true);
|
||||||
if (! $schema_syntaxes)
|
if (! $schema_syntaxes)
|
||||||
pla_error($schema_error_str);
|
error($schema_error_str,'error','index.php');
|
||||||
|
|
||||||
foreach ($schema_syntaxes as $syntax) {
|
foreach ($schema_syntaxes as $syntax) {
|
||||||
$counter++;
|
$counter++;
|
||||||
@ -108,14 +109,15 @@ switch($entry['view']) {
|
|||||||
'usage' => _('Usage'),
|
'usage' => _('Usage'),
|
||||||
'maximum_length' => _('Maximum Length'),
|
'maximum_length' => _('Maximum Length'),
|
||||||
'aliases' => _('Aliases'),
|
'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_attrs = $ldapserver->SchemaAttributes();
|
||||||
$schema_object_classes = $ldapserver->SchemaObjectClasses();
|
$schema_object_classes = $ldapserver->SchemaObjectClasses();
|
||||||
|
|
||||||
if (! $schema_attrs || ! $schema_object_classes)
|
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'));
|
printf('<small>%s:</small>',_('Jump to an attribute type'));
|
||||||
echo '<form action="cmd.php" method="get">';
|
echo '<form action="cmd.php" method="get">';
|
||||||
@ -279,6 +281,10 @@ switch($entry['view']) {
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'force_as_may':
|
||||||
|
printf('<td>%s</td>',$attr->forced_as_may ? _('Yes') : _('No'));
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
}
|
}
|
||||||
@ -292,7 +298,7 @@ switch($entry['view']) {
|
|||||||
case 'matching_rules':
|
case 'matching_rules':
|
||||||
$schema_matching_rules = $ldapserver->MatchingRules(null,true);
|
$schema_matching_rules = $ldapserver->MatchingRules(null,true);
|
||||||
if (! $schema_matching_rules)
|
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'));
|
printf('<small>%s</small><br />',_('Jump to a matching rule'));
|
||||||
|
|
||||||
@ -371,7 +377,7 @@ switch($entry['view']) {
|
|||||||
case 'objectClasses':
|
case 'objectClasses':
|
||||||
$schema_oclasses = $ldapserver->SchemaObjectClasses();
|
$schema_oclasses = $ldapserver->SchemaObjectClasses();
|
||||||
if (! $schema_oclasses)
|
if (! $schema_oclasses)
|
||||||
pla_error($schema_error_str);
|
error($schema_error_str,'error','index.php');
|
||||||
|
|
||||||
printf('<small>%s:</small>',_('Jump to an objectClass'));
|
printf('<small>%s:</small>',_('Jump to an objectClass'));
|
||||||
|
|
||||||
@ -485,6 +491,11 @@ switch($entry['view']) {
|
|||||||
$href = htmlspecialchars(sprintf($entry['href']['objectClasses'],strtolower($attr->getSource())));
|
$href = htmlspecialchars(sprintf($entry['href']['objectClasses'],strtolower($attr->getSource())));
|
||||||
printf('<small>(%s <a href="%s">%s</a>)</small>',_('Inherited from'),$href,$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 '</li>';
|
||||||
}
|
}
|
||||||
echo '</ul>';
|
echo '</ul>';
|
||||||
@ -502,5 +513,5 @@ switch($entry['view']) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (! is_null($entry['value']) && ! $entry['viewed'])
|
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
|
<?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
|
* Perform LDAP searches and draw the advanced/simple search forms
|
||||||
@ -24,6 +24,7 @@ define('SIZE_LIMIT_EXCEEDED',4);
|
|||||||
$result_formats = array('list','table');
|
$result_formats = array('list','table');
|
||||||
|
|
||||||
# Our incoming variables
|
# Our incoming variables
|
||||||
|
$entry = array();
|
||||||
$entry['format'] = get_request('format','GET','false',$_SESSION[APPCONFIG]->GetValue('search','display'));
|
$entry['format'] = get_request('format','GET','false',$_SESSION[APPCONFIG]->GetValue('search','display'));
|
||||||
$entry['form'] = get_request('form','GET',false,get_request('form','SESSION'));
|
$entry['form'] = get_request('form','GET',false,get_request('form','SESSION'));
|
||||||
|
|
||||||
@ -117,15 +118,15 @@ echo '<br />';
|
|||||||
if ($entry['search']) {
|
if ($entry['search']) {
|
||||||
if ($entry['form'] == 'advanced') {
|
if ($entry['form'] == 'advanced') {
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('search','advanced_search'))
|
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') {
|
} elseif ($entry['form'] == 'predefined') {
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('search','predefined_search'))
|
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') {
|
} elseif ($entry['form'] == 'simple') {
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('search','simple_search'))
|
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') {
|
if ($entry['form'] == 'advanced') {
|
||||||
@ -247,7 +248,10 @@ if ($entry['search']) {
|
|||||||
$entry['scope'],$entry['orderby']['array'],$_SESSION[APPCONFIG]->GetValue('deref','search'));
|
$entry['scope'],$entry['orderby']['array'],$_SESSION[APPCONFIG]->GetValue('deref','search'));
|
||||||
|
|
||||||
if ((! $results) && $ldapserver->errno())
|
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();
|
$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',
|
$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))));
|
$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> ]',
|
printf('<td style="text-align: right"><small>[ <a href="%s"><img src="%s/save.png" alt="Save" /> %s</a> ]',
|
||||||
$href,_('export results'));
|
$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) {
|
foreach ($result_formats as $f) {
|
||||||
echo ' ';
|
echo ' ';
|
||||||
@ -380,7 +384,7 @@ if ($entry['search']) {
|
|||||||
elseif ($entry['format'] == 'table')
|
elseif ($entry['format'] == 'table')
|
||||||
require LIBDIR.'search_results_table.php';
|
require LIBDIR.'search_results_table.php';
|
||||||
else
|
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 />';
|
echo '<br />';
|
||||||
if (trim($pager_html))
|
if (trim($pager_html))
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* Fetches and displays all information that it can from the specified server
|
||||||
@ -13,7 +13,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('server_info'))
|
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
|
# The attributes we'll examine when searching the LDAP server's RootDSE
|
||||||
$root_dse_attributes = array(
|
$root_dse_attributes = array(
|
||||||
@ -94,8 +94,8 @@ foreach ($attrs as $attr => $values) {
|
|||||||
print '<tr>';
|
print '<tr>';
|
||||||
|
|
||||||
if (preg_match('/^[0-9]+\.[0-9]+/',$value)) {
|
if (preg_match('/^[0-9]+\.[0-9]+/',$value)) {
|
||||||
printf('<td width=5%%><img src="images/rfc.png" title="%s" alt="%s" /></td>',
|
printf('<td width=5%%><img src="%s/rfc.png" title="%s" alt="%s" /></td>',
|
||||||
htmlspecialchars($value), htmlspecialchars($value));
|
IMGDIR,htmlspecialchars($value), htmlspecialchars($value));
|
||||||
|
|
||||||
if ($oidtext = support_oid_to_text($value))
|
if ($oidtext = support_oid_to_text($value))
|
||||||
if (isset($oidtext['ref']))
|
if (isset($oidtext['ref']))
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* This script shows the contents of the cache for debugging purposes
|
||||||
@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
|
$entry = array();
|
||||||
$entry['key'] = get_request('key','REQUEST');
|
$entry['key'] = get_request('key','REQUEST');
|
||||||
$entry['index'] = get_request('index','REQUEST');
|
$entry['index'] = get_request('index','REQUEST');
|
||||||
|
|
||||||
@ -80,7 +81,7 @@ if (! $_SESSION[APPCONFIG]->GetValue('appearance','hide_debug_info')) {
|
|||||||
poststr += "&index=" + encodeURI(xx);
|
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');
|
makePOSTRequest('cmd.php',poststr,'alertCacheContents','cancelCacheContents');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Template render engine.
|
||||||
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
require_once './common.php';
|
require_once './common.php';
|
||||||
|
|
||||||
|
$entry = array();
|
||||||
$entry['dn']['encode'] = get_request('dn','REQUEST');
|
$entry['dn']['encode'] = get_request('dn','REQUEST');
|
||||||
$entry['dn']['string'] = rawurldecode($entry['dn']['encode']);
|
$entry['dn']['string'] = rawurldecode($entry['dn']['encode']);
|
||||||
$entry['template'] = get_request('template','REQUEST',false,'');
|
$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 we have a DN, then this is to edit the entry.
|
||||||
if ($entry['dn']['string']) {
|
if ($entry['dn']['string']) {
|
||||||
$ldapserver->dnExists($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');
|
$tree = get_cached_item($ldapserver->server_id,'tree');
|
||||||
|
|
||||||
@ -51,7 +52,7 @@ if ($entry['dn']['string']) {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
if ($ldapserver->isReadOnly())
|
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
|
# Create a new empty entry
|
||||||
$entryfactoryclass = $_SESSION[APPCONFIG]->GetValue('appearance','entry_factory');
|
$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
|
<?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.
|
* Updates or deletes a value from a specified attribute for a specified dn.
|
||||||
@ -26,24 +26,25 @@
|
|||||||
|
|
||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
|
$entry = array();
|
||||||
$entry['dn']['string'] = get_request('dn');
|
$entry['dn']['string'] = get_request('dn');
|
||||||
$entry['dn']['encode'] = rawurlencode($entry['dn']['string']);
|
$entry['dn']['encode'] = rawurlencode($entry['dn']['string']);
|
||||||
|
|
||||||
# If cancel was submited, got back to the edit display.
|
# 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']));
|
header(sprintf('Location: cmd.php?cmd=template_engine&server_id=%s&dn=%s',$ldapserver->server_id,$entry['dn']['encode']));
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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['update'] = get_request('update_array','POST',false,array());
|
||||||
$entry['skip'] = get_request('skip_array','POST',false,array());
|
$entry['skip'] = get_request('skip_array','POST',false,array());
|
||||||
$failed_attrs = array();
|
$failed_attrs = array();
|
||||||
|
|
||||||
if (! is_array($entry['update']))
|
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',
|
run_hook ('pre_update',
|
||||||
array('server_id'=>$ldapserver->server_id,'dn'=>$entry['dn']['string'],'update_array'=>$entry['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();
|
$entry['update'][$attr] = array();
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_delete'))
|
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
|
} else { # Skip change
|
||||||
$entry['update'][$attr] = $val;
|
$entry['update'][$attr] = $val;
|
||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value')
|
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value')
|
||||||
&& ! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_delete_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 {
|
} else {
|
||||||
@ -77,7 +79,7 @@ foreach ($entry['update'] as $attr => $val) {
|
|||||||
|
|
||||||
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value')
|
if (! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_add_value')
|
||||||
&& ! $_SESSION[APPCONFIG]->isCommandAvailable('attribute_delete_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',
|
$href['search'] = sprintf('cmd.php?cmd=search&search=true&form=advanced&server_id=%s&filter=%s=%s',
|
||||||
$ldapserver->server_id,$attr_name,$badattr);
|
$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.'),
|
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']));
|
$attr_name,$badattr,$entry['dn']['string'],$href['search']),'error','index.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (run_hook('pre_attr_modify',
|
if (run_hook('pre_attr_modify',
|
||||||
@ -100,8 +102,9 @@ foreach ($entry['update'] as $attr_name => $val) {
|
|||||||
$failed_attrs[$attr_name] = $val;
|
$failed_attrs[$attr_name] = $val;
|
||||||
|
|
||||||
} elseif ($ldapserver->isAttrReadOnly($attr)) {
|
} elseif ($ldapserver->isAttrReadOnly($attr)) {
|
||||||
pla_error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),
|
error(sprintf(_('The attribute "%s" is flagged as read-only in the phpLDAPadmin configuration.'),
|
||||||
htmlspecialchars($attr_name)));
|
htmlspecialchars($attr_name)),'error','index.php');
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// binary values
|
// binary values
|
||||||
if (isset($_SESSION['submitform'][$attr_name])) {
|
if (isset($_SESSION['submitform'][$attr_name])) {
|
||||||
@ -175,6 +178,9 @@ if ($result) {
|
|||||||
die();
|
die();
|
||||||
|
|
||||||
} else {
|
} 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
|
<?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
|
* Takes the results of clicking "Save" in template_engine.php and determines which
|
||||||
@ -16,17 +16,18 @@
|
|||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
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 */
|
/* get entry */
|
||||||
/***************/
|
/***************/
|
||||||
|
|
||||||
|
$entry = array();
|
||||||
$entry['dn']['string'] = get_request('dn');
|
$entry['dn']['string'] = get_request('dn');
|
||||||
$entry['dn']['encode'] = rawurlencode($entry['dn']['string']);
|
$entry['dn']['encode'] = rawurlencode($entry['dn']['string']);
|
||||||
|
|
||||||
if (! $entry['dn']['string'] || ! $ldapserver->dnExists($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');
|
$tree = get_cached_item($ldapserver->server_id,'tree');
|
||||||
$entry['ldap'] = null;
|
$entry['ldap'] = null;
|
||||||
@ -40,7 +41,7 @@ if ($tree) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (! $entry['ldap'] || $entry['ldap']->isReadOnly())
|
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 */
|
/* old values */
|
||||||
@ -96,9 +97,9 @@ $attr_to_delete = array();
|
|||||||
|
|
||||||
// if objectClass attribute is modified
|
// if objectClass attribute is modified
|
||||||
if (isset($entry['values']['new']['objectClass'])) {
|
if (isset($entry['values']['new']['objectClass'])) {
|
||||||
if (!isset($entry['values']['old']['objectClass'])) {
|
if (!isset($entry['values']['old']['objectClass']))
|
||||||
pla_error(_('An entry should have one structural objectClass.'));
|
error(_('An entry should have one structural objectClass.'),'error','index.php');
|
||||||
}
|
|
||||||
// deleted objectClasses
|
// deleted objectClasses
|
||||||
foreach ($entry['values']['old']['objectClass'] as $oldOC) {
|
foreach ($entry['values']['old']['objectClass'] as $oldOC) {
|
||||||
if (!in_array($oldOC, $entry['values']['new']['objectClass'])) {
|
if (!in_array($oldOC, $entry['values']['new']['objectClass'])) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -9,27 +9,29 @@
|
|||||||
|
|
||||||
require './common.php';
|
require './common.php';
|
||||||
|
|
||||||
|
$file = array();
|
||||||
$file['name'] = get_request('file','GET');
|
$file['name'] = get_request('file','GET');
|
||||||
|
|
||||||
/* Security check (we don't want anyone tryting to get at /etc/passwd or something)
|
/* Security check (we don't want anyone tryting to get at /etc/passwd or something)
|
||||||
* Slashes and dots are not permitted in these names.
|
* Slashes and dots are not permitted in these names.
|
||||||
*/
|
*/
|
||||||
if (! preg_match('/^pla/',$file['name']) || preg_match('/[\.\/\\\\]/',$file['name']))
|
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
|
/* Little security measure here (prevents users from accessing
|
||||||
files, like /etc/passwd for example).*/
|
files, like /etc/passwd for example).*/
|
||||||
$file['name'] = basename(addcslashes($file['name'],'/\\'));
|
$file['name'] = basename(addcslashes($file['name'],'/\\'));
|
||||||
$file['name'] = sprintf('%s/%s',$_SESSION[APPCONFIG]->GetValue('jpeg','tmpdir'),$file['name']);
|
$file['name'] = sprintf('%s/%s',$_SESSION[APPCONFIG]->GetValue('jpeg','tmpdir'),$file['name']);
|
||||||
if (! file_exists($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['handle'] = fopen($file['name'],'r');
|
||||||
$file['data'] = fread($file['handle'],filesize($file['name']));
|
$file['data'] = fread($file['handle'],filesize($file['name']));
|
||||||
fclose($file['handle']);
|
fclose($file['handle']);
|
||||||
|
|
||||||
if (ob_get_level())
|
$obStatus = ob_get_status();
|
||||||
ob_clean();
|
if (isset($obStatus['type']) && $obStatus['type'] && $obStatus['status'])
|
||||||
|
ob_end_clean();
|
||||||
|
|
||||||
Header('Content-type: image/jpeg');
|
Header('Content-type: image/jpeg');
|
||||||
Header('Content-disposition: inline; filename=jpeg_photo.jpg');
|
Header('Content-disposition: inline; filename=jpeg_photo.jpg');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -13,7 +13,7 @@ require './common.php';
|
|||||||
|
|
||||||
echo '<center>';
|
echo '<center>';
|
||||||
echo '<br /><br />';
|
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 '<br /><br />';
|
||||||
echo _('Use the menu to the left to navigate');
|
echo _('Use the menu to the left to navigate');
|
||||||
echo '<br /><br />';
|
echo '<br /><br />';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -101,7 +101,7 @@ class AJAXTree extends PLMTree {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo '<a href="'.$edit_href.'" onclick="return displayMainPage(\''.$edit_href_params.'\');" title="'.$dn.'" >';
|
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 '</a>';
|
||||||
echo ' ';
|
echo ' ';
|
||||||
echo '<a href="'.$edit_href.'" onclick="return displayMainPage(\''.$edit_href_params.'\');" title="'.$dn.'" class="phplm">';
|
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);
|
$first_child = $this->get_plm_before_first_child($parent_entry,$code);
|
||||||
$last_child = $this->get_plm_after_last_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;
|
echo $first_child;
|
||||||
|
|
||||||
for ($i=0; $i<count($children); $i++) {
|
for ($i=0; $i<count($children); $i++) {
|
||||||
@ -141,6 +145,12 @@ class AJAXTree extends PLMTree {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo $last_child;
|
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_open.png\';
|
||||||
//folderLayer.src = \'js/phplayersmenu/menuimages/tree_folder_closed.png\';
|
//folderLayer.src = \'js/phplayersmenu/menuimages/tree_folder_closed.png\';
|
||||||
nodeLayer.src = \'images/ajax-spinner.gif\';
|
nodeLayer.src = \''.IMGDIR.'ajax-spinner.gif\';
|
||||||
|
|
||||||
// perform action
|
// perform action
|
||||||
if (action == 2) {
|
if (action == 2) {
|
||||||
@ -310,7 +320,7 @@ class AJAXTree extends PLMTree {
|
|||||||
}
|
}
|
||||||
function displayMainPage(urlParameters) {
|
function displayMainPage(urlParameters) {
|
||||||
var mainPageDiv = getMainPageDiv();
|
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\');
|
makeGETRequest(\'cmd.php\', urlParameters+\'&meth=get_body\', \'alertMainPage\', \'cancelMainPage\');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -337,7 +347,7 @@ class AJAXTree extends PLMTree {
|
|||||||
$output .= $this->get_indentation($level);
|
$output .= $this->get_indentation($level);
|
||||||
$output .= '<img align="top" border="0" class="imgs" src="js/phplayersmenu/menuimages/tree_split.png" alt="--" />';
|
$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 .= '<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 .= '</a>';
|
||||||
$output .= ' ';
|
$output .= ' ';
|
||||||
$output .= '<a href="'.htmlspecialchars($href).'" title="'._('Create new entry here').'" class="phplm">';
|
$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 .= $this->get_indentation($level);
|
||||||
$output .= '<img align="top" border="0" class="imgs" src="js/phplayersmenu/menuimages/tree_corner.png" alt="--" />';
|
$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 .= '<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 .= '</a>';
|
||||||
$output .= ' ';
|
$output .= ' ';
|
||||||
$output .= '<a href="'.htmlspecialchars($href).'" title="'._('Create new entry here').'" class="phplm">';
|
$output .= '<a href="'.htmlspecialchars($href).'" title="'._('Create new entry here').'" class="phplm">';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -253,10 +253,7 @@ class Attribute {
|
|||||||
|
|
||||||
public function isRdn() {
|
public function isRdn() {
|
||||||
if ($this->entry) {
|
if ($this->entry) {
|
||||||
//$rdn = get_rdn($this->entry->getDn());
|
return (preg_grep('/'.$this->name.'/',$this->entry->getRdnAttributeName()));
|
||||||
//$attr = $this->name;
|
|
||||||
//return preg_match("/^${attr}=/", $rdn);
|
|
||||||
return ($this->name == $this->entry->getRdnAttributeName());
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -145,8 +145,8 @@ class DefaultCreatingEntry extends Entry {
|
|||||||
|
|
||||||
public function getRdnAttributeName() {
|
public function getRdnAttributeName() {
|
||||||
$attr = $this->getRdnAttribute();
|
$attr = $this->getRdnAttribute();
|
||||||
if ($attr) return $attr->getName();
|
if ($attr) return array($attr->getName());
|
||||||
else return '';
|
else return array('');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getRdnAttribute() {
|
public function getRdnAttribute() {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -32,10 +32,20 @@ class DefaultEditingEntry extends Entry {
|
|||||||
if (!$int_attrs_vals) $int_attrs_vals = array();
|
if (!$int_attrs_vals) $int_attrs_vals = array();
|
||||||
elseif (!is_array($int_attrs_vals)) $int_attrs_vals = array($int_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'));
|
$attrs_vals = $ldapserver->getDNAttrs($this->getDn(),false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||||
if (! $attrs_vals) $attrs_vals = array();
|
if (! $attrs_vals) $attrs_vals = array();
|
||||||
elseif (! is_array($attrs_vals)) $attrs_vals = array($attrs_vals);
|
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);
|
$attrs_vals = array_merge($attrs_vals, $int_attrs_vals);
|
||||||
uksort($attrs_vals,'sortAttrs'); # Sort these entries
|
uksort($attrs_vals,'sortAttrs'); # Sort these entries
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -58,10 +58,17 @@ abstract class Entry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function getRdnAttributeName() {
|
public function getRdnAttributeName() {
|
||||||
$attr = '';
|
$attr = array();
|
||||||
if ($this->dn) {
|
if ($this->dn) {
|
||||||
$i = strpos($this->dn, '=');
|
$i = strpos($this->dn, ',');
|
||||||
if ($i !== false) $attr = substr($this->dn, 0, $i);
|
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;
|
return $attr;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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_CREATION_CONTEXT', '1');
|
||||||
define('ENTRY_READER_EDITING_CONTEXT', '2');
|
define('ENTRY_READER_EDITING_CONTEXT', '2');
|
||||||
@ -113,7 +113,11 @@ class EntryReader extends Visitor {
|
|||||||
// @todo editing objectclasses
|
// @todo editing objectclasses
|
||||||
if (($this->context == ENTRY_READER_CREATION_CONTEXT) && ($name == 'objectClass')) return;
|
if (($this->context == ENTRY_READER_CREATION_CONTEXT) && ($name == 'objectClass')) return;
|
||||||
|
|
||||||
$old_vals = $this->get('OldValues', $attribute);
|
if ($this->context == ENTRY_READER_EDITING_CONTEXT)
|
||||||
|
$old_vals = $this->get('OldValues', $attribute);
|
||||||
|
else
|
||||||
|
$old_vals = array();
|
||||||
|
|
||||||
$new_vals = $this->get('NewValues', $attribute);
|
$new_vals = $this->get('NewValues', $attribute);
|
||||||
|
|
||||||
if (isset($_POST['old_values'][$name])) {
|
if (isset($_POST['old_values'][$name])) {
|
||||||
@ -205,7 +209,7 @@ class EntryReader extends Visitor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_null($val)) {
|
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;
|
return $val;
|
||||||
@ -255,7 +259,7 @@ class EntryReader extends Visitor {
|
|||||||
if (function_exists($matches[1])) {
|
if (function_exists($matches[1])) {
|
||||||
$val = call_user_func($matches[1], $matches[2], $attribute, $i, $val);
|
$val = call_user_func($matches[1], $matches[2], $attribute, $i, $val);
|
||||||
} else {
|
} 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
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -246,9 +246,9 @@ class EntryWriter2 extends EntryWriter1 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected function drawAttributeMenu($attribute) {
|
protected function drawAttributeMenu($attribute) {
|
||||||
if ($attribute->getHint() /*&& $_SESSION[APPCONFIG]->GetValue('appearance', 'show_hints')*/) {
|
if ($attribute->getHint())
|
||||||
echo '<img src="images/light.png" alt="Hint" /> <span class="hint">'.$attribute->getHint().'</span>';
|
printf('<img src="%s/light.png" alt="Hint" /> <span class="hint">%s</span>',IMGDIR,$attribute->getHint());
|
||||||
}
|
|
||||||
parent::drawAttributeMenu($attribute);
|
parent::drawAttributeMenu($attribute);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @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 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>',
|
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[APPCONFIG]->GetValue('appearance','tree_width') ? sprintf('width: %spx; ',$_SESSION[APPCONFIG]->GetValue('appearance','tree_width')) : '',
|
||||||
$_SESSION['plaConfig']->GetValue('appearance','tree_height') ? sprintf('height: %spx; ',$_SESSION['plaConfig']->GetValue('appearance','tree_height')) : '');
|
$_SESSION[APPCONFIG]->GetValue('appearance','tree_height') ? sprintf('height: %spx; ',$_SESSION[APPCONFIG]->GetValue('appearance','tree_height')) : '');
|
||||||
|
|
||||||
foreach ($ldapserver->getBaseDN() as $base_dn) {
|
foreach ($ldapserver->getBaseDN() as $base_dn) {
|
||||||
# Did we get a base_dn for this server somehow?
|
# Did we get a base_dn for this server somehow?
|
||||||
@ -55,7 +55,7 @@ class HTMLTree extends Tree {
|
|||||||
if (! $ldapserver->dnExists($base_dn)) {
|
if (! $ldapserver->dnExists($base_dn)) {
|
||||||
$javascript_id++;
|
$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
|
/* Move this form and add it to the end of the html - otherwise the javascript
|
||||||
* doesnt work when isMassDeleteEnabled returning true.
|
* doesnt work when isMassDeleteEnabled returning true.
|
||||||
@ -103,9 +103,10 @@ class HTMLTree extends Tree {
|
|||||||
}
|
}
|
||||||
} else { // end if $ldapserver->haveAuthInfo()
|
} else { // end if $ldapserver->haveAuthInfo()
|
||||||
/* We don't have enough information to login to this server
|
/* We don't have enough information to login to this server
|
||||||
* Draw the "login..." link
|
* Draw the "login..." link */
|
||||||
*/
|
|
||||||
$this->draw_login_link();
|
if ($ldapserver->auth_type != 'http')
|
||||||
|
$this->draw_login_link();
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->draw_mass_deletion_submit_button();
|
$this->draw_mass_deletion_submit_button();
|
||||||
@ -153,14 +154,14 @@ class HTMLTree extends Tree {
|
|||||||
$ldapserver = $this->getLdapServer();
|
$ldapserver = $this->getLdapServer();
|
||||||
|
|
||||||
echo '<tr class="server">';
|
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('<td class="name" colspan="%s">',$this->getDepth()+3-1);
|
||||||
printf('%s',htmlspecialchars($ldapserver->name));
|
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'),
|
$m = sprintf(_('Inactivity will log you off at %s'),
|
||||||
strftime('%H:%M',time() + ($ldapserver->session_timeout*60)));
|
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>';
|
echo '</td></tr>';
|
||||||
}
|
}
|
||||||
@ -209,7 +210,7 @@ class HTMLTree extends Tree {
|
|||||||
if ($_SESSION[APPCONFIG]->isCommandAvailable('export')) return $this->get_export_menu_item();
|
if ($_SESSION[APPCONFIG]->isCommandAvailable('export')) return $this->get_export_menu_item();
|
||||||
else return '';
|
else return '';
|
||||||
case 6 :
|
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 '';
|
else return '';
|
||||||
default :
|
default :
|
||||||
return false;
|
return false;
|
||||||
@ -220,56 +221,56 @@ class HTMLTree extends Tree {
|
|||||||
$ldapserver = $this->getLdapServer();
|
$ldapserver = $this->getLdapServer();
|
||||||
$href = sprintf('cmd.php?cmd=schema&server_id=%s',$ldapserver->server_id);
|
$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>',
|
return sprintf('<a title="%s %s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||||
_('View schema for'),$ldapserver->name,htmlspecialchars($href),'images/schema.png',_('schema'),_('schema'));
|
_('View schema for'),$ldapserver->name,htmlspecialchars($href),IMGDIR,'schema.png',_('schema'),_('schema'));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function get_search_menu_item() {
|
protected function get_search_menu_item() {
|
||||||
$ldapserver = $this->getLdapServer();
|
$ldapserver = $this->getLdapServer();
|
||||||
$href = sprintf('cmd.php?cmd=search&server_id=%s&form=undefined',$ldapserver->server_id);
|
$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>',
|
return sprintf('<a title="%s %s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||||
_('search'),$ldapserver->name,htmlspecialchars($href),'images/search.png',_('search'),_('search'));
|
_('search'),$ldapserver->name,htmlspecialchars($href),IMGDIR,'search.png',_('search'),_('search'));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function get_refresh_menu_item() {
|
protected function get_refresh_menu_item() {
|
||||||
$ldapserver = $this->getLdapServer();
|
$ldapserver = $this->getLdapServer();
|
||||||
$href = sprintf('cmd.php?cmd=refresh&server_id=%s',$ldapserver->server_id);
|
$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>',
|
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),'images/refresh-big.png',_('refresh'),_('refresh'));
|
_('Refresh all expanded containers for'),$ldapserver->name,htmlspecialchars($href),IMGDIR,'refresh-big.png',_('refresh'),_('refresh'));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function get_info_menu_item() {
|
protected function get_info_menu_item() {
|
||||||
$ldapserver = $this->getLdapServer();
|
$ldapserver = $this->getLdapServer();
|
||||||
$href = sprintf('cmd.php?cmd=server_info&server_id=%s',$ldapserver->server_id);
|
$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>',
|
return sprintf('<a title="%s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||||
_('View server-supplied information'),htmlspecialchars($href),'images/info.png',_('info'),_('info'));
|
_('View server-supplied information'),htmlspecialchars($href),IMGDIR,'info.png',_('info'),_('info'));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function get_import_menu_item() {
|
protected function get_import_menu_item() {
|
||||||
$ldapserver = $this->getLdapServer();
|
$ldapserver = $this->getLdapServer();
|
||||||
$href = sprintf('cmd.php?cmd=ldif_import_form&server_id=%s',$ldapserver->server_id);
|
$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>',
|
return sprintf('<a title="%s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||||
_('Import entries from an LDIF file'),htmlspecialchars($href),'images/import.png',_('import'),_('import'));
|
_('Import entries from an LDIF file'),htmlspecialchars($href),IMGDIR,'import.png',_('import'),_('import'));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function get_export_menu_item() {
|
protected function get_export_menu_item() {
|
||||||
$ldapserver = $this->getLdapServer();
|
$ldapserver = $this->getLdapServer();
|
||||||
$href = sprintf('cmd.php?cmd=export_form&server_id=%s',$ldapserver->server_id);
|
$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>',
|
return sprintf('<a title="%s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||||
_('Export entries'),htmlspecialchars($href),'images/export.png',_('export'),_('export'));
|
_('Export entries'),htmlspecialchars($href),IMGDIR,'export.png',_('export'),_('export'));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function get_logout_menu_item() {
|
protected function get_logout_menu_item() {
|
||||||
$ldapserver = $this->getLdapServer();
|
$ldapserver = $this->getLdapServer();
|
||||||
$href = sprintf('cmd.php?cmd=logout&server_id=%s',$ldapserver->server_id);
|
$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>',
|
return sprintf('<a title="%s" href="%s"><img src="%s/%s" alt="%s" /><br />%s</a>',
|
||||||
_('Logout of this server'),htmlspecialchars($href),'images/logout.png',_('logout'),_('logout'));
|
_('Logout of this server'),htmlspecialchars($href),IMGDIR,'logout.png',_('logout'),_('logout'));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function draw_logged_in_dn() {
|
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['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['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);
|
$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);
|
$rdn = get_rdn($dn);
|
||||||
|
|
||||||
echo '<tr class="option">';
|
echo '<tr class="option">';
|
||||||
@ -362,15 +363,15 @@ class HTMLTree extends Tree {
|
|||||||
# Is this node expanded? (deciding whether to draw "+" or "-")
|
# Is this node expanded? (deciding whether to draw "+" or "-")
|
||||||
if ($dnEntry->isOpened()) {
|
if ($dnEntry->isOpened()) {
|
||||||
if (!$child_count && !$ldapserver->isShowCreateEnabled()) {
|
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 {
|
} 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 {
|
} else {
|
||||||
if (($child_count !== false) && (!$child_count) && (!$ldapserver->isShowCreateEnabled())) {
|
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 {
|
} 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--;
|
$colspan--;
|
||||||
@ -458,7 +459,7 @@ class HTMLTree extends Tree {
|
|||||||
|
|
||||||
echo '<td class="spacer"></td>';
|
echo '<td class="spacer"></td>';
|
||||||
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>',
|
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'));
|
$this->getDepth()+3-$level-1-3,$href,_('Create a new entry in'),$rdn,_('Create new entry here'));
|
||||||
echo '</tr>';
|
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));
|
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>';
|
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').'...');
|
printf('<td class="logged_in" colspan="%s"><a href="%s">%s</a></td>',$this->getDepth()+3-2,$href,_('Login').'...');
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
|
|
||||||
@ -489,7 +490,7 @@ class HTMLTree extends Tree {
|
|||||||
protected function draw_logout_link() {
|
protected function draw_logout_link() {
|
||||||
$ldapserver = $this->getLdapServer();
|
$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>',
|
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'));
|
$this->getDepth()+3-1,get_custom_file($ldapserver->server_id,'logout',''),$ldapserver->server_id,_('logout'));
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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/PHPLIB.php';
|
||||||
require HTDOCDIR.JSDIR.'phplayersmenu/lib/layersmenu-common.inc.php';
|
require HTDOCDIR.JSDIR.'phplayersmenu/lib/layersmenu-common.inc.php';
|
||||||
@ -41,8 +41,8 @@ class PLMTree extends HTMLTree {
|
|||||||
if (! isset($tm)) {
|
if (! isset($tm)) {
|
||||||
$tm = new TreeMenu();
|
$tm = new TreeMenu();
|
||||||
$tm->setDirroot(JSDIR.'phplayersmenu/');
|
$tm->setDirroot(JSDIR.'phplayersmenu/');
|
||||||
$tm->setIcondir(HTDOCDIR.'/images/');
|
$tm->setIcondir(IMGDIR);
|
||||||
$tm->setIconwww('images/');
|
$tm->setIconwww(IMGDIR);
|
||||||
$tm->setImgwww(JSDIR.'phplayersmenu/menuimages/');
|
$tm->setImgwww(JSDIR.'phplayersmenu/menuimages/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -66,7 +66,10 @@ class TemplateCreatingEntry extends DefaultCreatingEntry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function hasDefaultTemplate() {
|
public function hasDefaultTemplate() {
|
||||||
return $this->default_template;
|
if ($_SESSION[APPCONFIG]->GetValue('appearance','disable_default_template'))
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return $this->default_template;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getAttributes() {
|
public function getAttributes() {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -19,7 +19,7 @@ class TemplateEditingEntry extends DefaultEditingEntry {
|
|||||||
parent::__construct($dn);
|
parent::__construct($dn);
|
||||||
$this->templates = array();
|
$this->templates = array();
|
||||||
$this->valid = false;
|
$this->valid = false;
|
||||||
$this->default_template = false;
|
$this->default_template = true;
|
||||||
$this->selected_template = '';
|
$this->selected_template = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,7 +81,10 @@ class TemplateEditingEntry extends DefaultEditingEntry {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function hasDefaultTemplate() {
|
public function hasDefaultTemplate() {
|
||||||
return $this->default_template;
|
if ($_SESSION[APPCONFIG]->GetValue('appearance','disable_default_template'))
|
||||||
|
return false;
|
||||||
|
else
|
||||||
|
return $this->default_template;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getAttributes() {
|
public function getAttributes() {
|
||||||
@ -105,12 +108,22 @@ class TemplateEditingEntry extends DefaultEditingEntry {
|
|||||||
|
|
||||||
$int_attrs_vals = $ldapserver->getDNSysAttrs($this->getDn());
|
$int_attrs_vals = $ldapserver->getDNSysAttrs($this->getDn());
|
||||||
if (! $int_attrs_vals) $attrs_vals = array();
|
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'));
|
$attrs_vals = $ldapserver->getDNAttrs($this->getDn(),false,$_SESSION[APPCONFIG]->GetValue('deref','view'));
|
||||||
if (! $attrs_vals) $attrs_vals = array();
|
if (! $attrs_vals) $attrs_vals = array();
|
||||||
elseif (! is_array($attrs_vals)) $attrs_vals = array($attrs_vals);
|
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);
|
$attrs_vals = array_merge($attrs_vals,$int_attrs_vals);
|
||||||
|
|
||||||
$selected_tmpl = isset($this->templates[$this->selected_template])
|
$selected_tmpl = isset($this->templates[$this->selected_template])
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* 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.
|
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
|
||||||
*
|
*
|
||||||
* @author Mike Cochrane <mike@graftonhall.co.nz>
|
* @author Mike Cochrane <mike@graftonhall.co.nz>
|
||||||
* @version $Revision: 1.4 $
|
* @version $Revision: 1.4.2.1 $
|
||||||
* @since Horde 2.2
|
* @since Horde 2.2
|
||||||
* @package horde.cipher
|
* @package horde.cipher
|
||||||
*/
|
*/
|
||||||
@ -440,9 +440,9 @@ class Horde_Cipher_blowfish {
|
|||||||
$unpack = unpack('N*', $block);
|
$unpack = unpack('N*', $block);
|
||||||
|
|
||||||
if (! is_array($unpack))
|
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]',
|
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);
|
list($L, $R) = array_values($unpack);
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* 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',
|
$app['direct_scripts'] = array('cmd.php','index.php',
|
||||||
'view_jpeg_photo.php','entry_chooser.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) {
|
foreach ($app['direct_scripts'] as $script) {
|
||||||
$scriptOK = false;
|
$scriptOK = false;
|
||||||
@ -132,20 +134,31 @@ error_reporting(E_ALL);
|
|||||||
# Start our session.
|
# Start our session.
|
||||||
pla_session_start();
|
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 we get here, and $_SESSION[APPCONFIG] is not set, then redirect the user to the index.
|
||||||
if (! isset($_SESSION[APPCONFIG])) {
|
if (! isset($_SESSION[APPCONFIG])) {
|
||||||
if (isset($_REQUEST['server_id']))
|
header(sprintf('Location: index.php?URI=%s',base64_encode($_SERVER['QUERY_STRING'])));
|
||||||
header(sprintf('Location: index.php?server_id=%s',$_REQUEST['server_id']));
|
|
||||||
else
|
|
||||||
header('Location: index.php');
|
|
||||||
die();
|
die();
|
||||||
|
|
||||||
} else {
|
} 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.
|
# Check our custom variables.
|
||||||
# @todo: Change this so that we dont process a cached session.
|
# @todo: Change this so that we dont process a cached session.
|
||||||
$_SESSION[APPCONFIG]->CheckCustom();
|
$_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
|
# Set our timezone, if it is specified in config.php
|
||||||
if ($_SESSION[APPCONFIG]->GetValue('appearance','timezone'))
|
if ($_SESSION[APPCONFIG]->GetValue('appearance','timezone'))
|
||||||
date_default_timezone_set($_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.
|
# Set our PHP timelimit.
|
||||||
if ($_SESSION[APPCONFIG]->GetValue('session','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 mode is set, increase the time_limit, since we probably need it.
|
||||||
if (DEBUG_ENABLED && $_SESSION[APPCONFIG]->GetValue('session','timelimit'))
|
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?
|
* Language configuration. Auto or specified?
|
||||||
@ -204,7 +217,7 @@ if ($language == 'auto') {
|
|||||||
(file_exists($language_dir) && is_readable($language_dir))) {
|
(file_exists($language_dir) && is_readable($language_dir))) {
|
||||||
|
|
||||||
# Set language
|
# Set language
|
||||||
putenv('LANG='.$HTTP_LANG); # e.g. LANG=de_DE
|
@putenv('LANG='.$HTTP_LANG); # e.g. LANG=de_DE
|
||||||
$HTTP_LANG .= '.UTF-8';
|
$HTTP_LANG .= '.UTF-8';
|
||||||
setlocale(LC_ALL,$HTTP_LANG); # set LC_ALL to de_DE
|
setlocale(LC_ALL,$HTTP_LANG); # set LC_ALL to de_DE
|
||||||
bindtextdomain('messages',LANGDIR);
|
bindtextdomain('messages',LANGDIR);
|
||||||
@ -225,7 +238,7 @@ if ($language == 'auto') {
|
|||||||
$language = 'en_GB';
|
$language = 'en_GB';
|
||||||
|
|
||||||
# Set language
|
# Set language
|
||||||
putenv('LANG='.$language); # e.g. LANG=de_DE
|
@putenv('LANG='.$language); # e.g. LANG=de_DE
|
||||||
$language .= '.UTF-8';
|
$language .= '.UTF-8';
|
||||||
setlocale(LC_ALL,$language); # set LC_ALL to de_DE
|
setlocale(LC_ALL,$language); # set LC_ALL to de_DE
|
||||||
bindtextdomain('messages',LANGDIR);
|
bindtextdomain('messages',LANGDIR);
|
||||||
@ -261,16 +274,23 @@ if (isset($_REQUEST['server_id'])) {
|
|||||||
* Look/evaluate our timeout
|
* Look/evaluate our timeout
|
||||||
*/
|
*/
|
||||||
if (isset($ldapserver) && is_object($ldapserver) && method_exists($ldapserver,'haveAuthInfo')) {
|
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:
|
* If time out value has been reached:
|
||||||
* - log out user
|
* - log out user
|
||||||
* - put $server_id in array of recently timed out servers
|
* - put $server_id in array of recently timed out servers
|
||||||
*/
|
*/
|
||||||
if (function_exists('session_timed_out') && session_timed_out($ldapserver)) {
|
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>',
|
# If $session_timeout not defined, use ( session_cache_expire() - 1 )
|
||||||
htmlspecialchars($app['url_timeout']));
|
$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();
|
die();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Configuration processing and defaults.
|
||||||
@ -84,6 +84,10 @@ class Config {
|
|||||||
'desc'=>'Array of attributes that should show a the time when showing the jscalendar',
|
'desc'=>'Array of attributes that should show a the time when showing the jscalendar',
|
||||||
'default'=>array(''));
|
'default'=>array(''));
|
||||||
|
|
||||||
|
$this->default->appearance['disable_default_template'] = array(
|
||||||
|
'desc'=>'Disabled the Default Template',
|
||||||
|
'default'=>false);
|
||||||
|
|
||||||
$this->default->appearance['hide_debug_info'] = array(
|
$this->default->appearance['hide_debug_info'] = array(
|
||||||
'desc'=>'Hide the features that may provide sensitive debugging information to the browser',
|
'desc'=>'Hide the features that may provide sensitive debugging information to the browser',
|
||||||
'default'=>true);
|
'default'=>true);
|
||||||
@ -508,10 +512,10 @@ class Config {
|
|||||||
|
|
||||||
if (! isset($config[$key]))
|
if (! isset($config[$key]))
|
||||||
error(sprintf('A call was made in [%s] to GetValue requesting [%s] that isnt predefined.',
|
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]))
|
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'];
|
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 (isset($this->default->$masterkey)) {
|
||||||
|
|
||||||
if (! is_array($masterdetails))
|
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) {
|
foreach ($masterdetails as $key => $value) {
|
||||||
# Test that the key is correct.
|
# Test that the key is correct.
|
||||||
if (! in_array($key,array_keys($this->default->$masterkey)))
|
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.
|
# Test if its should be an array or not.
|
||||||
if (is_array($this->default->{$masterkey}[$key]['default']) && ! is_array($value))
|
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))
|
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 {
|
} 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
|
<?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
|
* emuhash - partly emulates the php mhash functions
|
||||||
@ -64,7 +64,7 @@ if( ! function_exists( 'mhash' ) && ! function_exists( 'mhash_keygen_s2k' ) ) {
|
|||||||
$pwhandle = fopen( $tmpfile, "w" );
|
$pwhandle = fopen( $tmpfile, "w" );
|
||||||
|
|
||||||
if( ! $pwhandle )
|
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 );
|
fwrite( $pwhandle, $password_clear );
|
||||||
fclose( $pwhandle );
|
fclose( $pwhandle );
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* 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 no result, there is a something wrong
|
||||||
if (! $this->results && $this->ldap_info->ldapserver->errno())
|
if (! $this->results && $this->ldap_info->ldapserver->errno())
|
||||||
pla_error(_('Encountered an error while performing search.'),$this->ldap_info->ldapserver->error(),
|
system_message(array(
|
||||||
$this->ldap_info->ldapserver->errno());
|
'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');
|
usort($this->results,'pla_compare_dns');
|
||||||
$this->num_entries = count($this->results);
|
$this->num_entries = count($this->results);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* A collection of common generic functions used throughout the application.
|
||||||
@ -37,8 +37,6 @@ $app['function_files'] = array(
|
|||||||
LIBDIR.'template_functions.php',
|
LIBDIR.'template_functions.php',
|
||||||
# Functions for hashing passwords with OpenSSL binary (only if mhash not present)
|
# Functions for hashing passwords with OpenSSL binary (only if mhash not present)
|
||||||
LIBDIR.'emuhash_functions.php',
|
LIBDIR.'emuhash_functions.php',
|
||||||
# Functions for running various hooks
|
|
||||||
LIBDIR.'hooks.php',
|
|
||||||
# Functions for creating Samba passwords
|
# Functions for creating Samba passwords
|
||||||
LIBDIR.'createlm.php',
|
LIBDIR.'createlm.php',
|
||||||
# Functions for timeout and automatic logout feature
|
# Functions for timeout and automatic logout feature
|
||||||
@ -66,6 +64,15 @@ function __autoload($className) {
|
|||||||
'type'=>'error'));
|
'type'=>'error'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If gettext is not installed, we will emulate it here.
|
||||||
|
*/
|
||||||
|
if (! function_exists('_')) {
|
||||||
|
function _($msg) {
|
||||||
|
return $msg;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generic Utility Functions
|
* 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.
|
# 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.
|
* @return string The current version as read from the VERSION file.
|
||||||
*/
|
*/
|
||||||
function pla_version() {
|
function pla_version() {
|
||||||
|
static $return = null;
|
||||||
|
|
||||||
|
if ($return)
|
||||||
|
return $return;
|
||||||
|
|
||||||
$version_file = realpath(LIBDIR.'../VERSION');
|
$version_file = realpath(LIBDIR.'../VERSION');
|
||||||
if (! file_exists($version_file))
|
if (! file_exists($version_file))
|
||||||
$return = 'UNKNOWN';
|
$return = 'UNKNOWN';
|
||||||
@ -229,27 +241,6 @@ function check_config($config_file) {
|
|||||||
REQUIRED_PHP_VERSION,phpversion()),
|
REQUIRED_PHP_VERSION,phpversion()),
|
||||||
'type'=>'error'));
|
'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;
|
$config = new Config;
|
||||||
|
|
||||||
ob_start();
|
ob_start();
|
||||||
@ -353,19 +344,19 @@ function check_config($config_file) {
|
|||||||
*/
|
*/
|
||||||
function cmd_control_pane() {
|
function cmd_control_pane() {
|
||||||
return array(
|
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'))),
|
'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="images/trash-big.png" alt="%s" /><br />%s</a>',
|
'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'),_('Purge all cached data in phpLDAPadmin, including server schemas.'),_('Purge caches'))),
|
_('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="images/request-feature.png" alt="%s" /><br />%s</a>',
|
'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'),_('light'),_('Request feature'))),
|
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="images/bug-big.png" alt="%s" /><br />%s</a>',
|
'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'),_('bug'),_('Report a bug'))),
|
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="images/smile-big.png" alt="%s" /><br />%s</a>',
|
'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'),_('Donate'),_('Donate'))),
|
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="images/debug-cache.png" alt="%s" /><br />%s</a>',
|
'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'),_('Show Cache'),_('Show Cache'))),
|
_('Show Cache'),IMGDIR,_('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>',
|
'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'),_('Help'),_('Help')))
|
get_href('documentation'),_('Help'),IMGDIR,_('Help'),_('Help')))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -389,6 +380,14 @@ function debug_dump($variable,$die=false,$onlydebugaddr=false) {
|
|||||||
die();
|
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
|
* 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.
|
* 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 $www;
|
||||||
global $counter;
|
global $counter;
|
||||||
|
|
||||||
@ -510,7 +509,10 @@ function error($msg,$type='note',$fatal=false,$backtrace=false) {
|
|||||||
if (! isset($www['page']))
|
if (! isset($www['page']))
|
||||||
$www['page'] = new page();
|
$www['page'] = new page();
|
||||||
|
|
||||||
$www['page']->setsysmsg(array('title'=>_('Error'),'body'=>$msg,'type'=>$type));
|
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
|
# Spin loop detection
|
||||||
if ($counter++ > 20) {
|
if ($counter++ > 20) {
|
||||||
@ -525,24 +527,33 @@ function error($msg,$type='note',$fatal=false,$backtrace=false) {
|
|||||||
|
|
||||||
$body = '<table class="result_table">';
|
$body = '<table class="result_table">';
|
||||||
$body .= "\n";
|
$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',
|
$body .= sprintf('<tr><td> </td><td><b><small>%s</small></b></td><td><small>%s',
|
||||||
_('Function'),$line['function']);
|
_('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'))
|
if (file_exists(LIBDIR.'../tools/unserialize.php'))
|
||||||
$body .= sprintf(' (<a href="%s?var=%s">%s</a>)',
|
$body .= sprintf(' (<a href="%s?index=%s" target="backtrace">%s</a>)',
|
||||||
'/tools/unserialize.php',
|
'../tools/unserialize.php',$error,htmlspecialchars($display));
|
||||||
htmlspecialchars(serialize($line['args'])),
|
|
||||||
htmlspecialchars(serialize($line['args'])));
|
|
||||||
else
|
else
|
||||||
$body .= sprintf(' (%s)',htmlspecialchars(serialize($line['args'])));
|
$body .= sprintf(' (%s)',htmlspecialchars($display));
|
||||||
|
}
|
||||||
$body .= '</small></td></tr>';
|
$body .= '</small></td></tr>';
|
||||||
$body .= "\n";
|
$body .= "\n";
|
||||||
|
|
||||||
|
if ($line['file'])
|
||||||
|
$last['file'] = $line['file'];
|
||||||
}
|
}
|
||||||
|
|
||||||
$body .= '</table>';
|
$body .= '</table>';
|
||||||
$body .= "\n";
|
$body .= "\n";
|
||||||
$backtraceblock->SetBody($body);
|
$backtraceblock->SetBody($body);
|
||||||
@ -609,7 +620,16 @@ function system_message($msg,$redirect=null) {
|
|||||||
|
|
||||||
$_SESSION['sysmsg'][] = $msg;
|
$_SESSION['sysmsg'][] = $msg;
|
||||||
|
|
||||||
|
if (get_request('redirect','GET'))
|
||||||
|
debug_dump_backtrace('Redirect Loop Detected',true);
|
||||||
|
|
||||||
if ($redirect) {
|
if ($redirect) {
|
||||||
|
if (preg_match('/\?/',$redirect))
|
||||||
|
$redirect .= '&';
|
||||||
|
else
|
||||||
|
$redirect .= '?';
|
||||||
|
$redirect .= 'redirect=true';
|
||||||
|
|
||||||
header("Location: $redirect");
|
header("Location: $redirect");
|
||||||
die();
|
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');
|
$base_dn = $_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','search_base');
|
||||||
|
|
||||||
if (is_null($base_dn))
|
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
|
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 {
|
} else {
|
||||||
$base_dn = $startbase;
|
$base_dn = $startbase;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $ldapserver->dnExists($base_dn))
|
if (! $ldapserver->dnExists($base_dn))
|
||||||
pla_error(sprintf(_('Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s'),
|
error(sprintf(_('Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s'),
|
||||||
$ldapserver->name));
|
$ldapserver->name),'error','index.php');
|
||||||
|
|
||||||
$filter = '(|(uidNumber=*)(gidNumber=*))';
|
$filter = '(|(uidNumber=*)(gidNumber=*))';
|
||||||
$results = array();
|
$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'));
|
$_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','pass'));
|
||||||
|
|
||||||
if (! $con)
|
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'));
|
$search = $ldapserver->search($con,$base_dn,$filter,array('uidNumber','gidNumber'),'sub',false,$_SESSION[APPCONFIG]->GetValue('deref','search'));
|
||||||
|
|
||||||
if (! is_array($search))
|
if (! is_array($search))
|
||||||
pla_error('Untrapped error.');
|
error(_('Untrapped error.'),'error','index.php');
|
||||||
|
|
||||||
foreach ($search as $dn => $attrs) {
|
foreach ($search as $dn => $attrs) {
|
||||||
$attrs = array_change_key_case($attrs);
|
$attrs = array_change_key_case($attrs);
|
||||||
@ -1198,7 +1219,7 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid',$increment=false
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default :
|
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'));
|
$_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','pass'));
|
||||||
|
|
||||||
if (! $con)
|
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
|
# 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');
|
$uidpool_dn = $_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','uidpool_dn');
|
||||||
|
$filter = '(objectclass=*)';
|
||||||
|
|
||||||
else {
|
} else {
|
||||||
$filter = str_replace(array('&',':::'),array('&',','),$filter);
|
$filter = str_replace(array('&',':::'),array('&',','),$filter);
|
||||||
$dns = $ldapserver->search($con,$startbase,$filter,array('dn'),'sub');
|
$dns = $ldapserver->search($con,$startbase,$filter,array('dn'),'sub');
|
||||||
|
|
||||||
@ -1249,10 +1272,10 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid',$increment=false
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case '0':
|
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:
|
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);
|
list ($key,$attrs) = each($dns);
|
||||||
@ -1260,31 +1283,38 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid',$increment=false
|
|||||||
$uidpool_dn = $attrs['dn'];
|
$uidpool_dn = $attrs['dn'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($uidpool_dn))
|
# Check that the UIDPOOL DN exists.
|
||||||
pla_error(_('uidpool_dn not found. Please check filter (arg 3) or set up uidpool_dn in config file'));
|
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);
|
switch ($type) {
|
||||||
$key = strtolower($type);
|
case 'uid' : $attr = 'uidnumber';
|
||||||
$realkey = $type;
|
break;
|
||||||
|
case 'gid' : $attr = 'gidnumber';
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
error(_('Unknown uidpool type.'),'error','index.php');
|
||||||
|
}
|
||||||
|
|
||||||
$number = $ldapserver->search($con,$uidpool_dn,$filter,$attrs,'base');
|
$number = $ldapserver->search($con,$uidpool_dn,$filter,array($attr),'base');
|
||||||
list($rkey,$number) = each($number);
|
$numbers = array_change_key_case($number[$uidpool_dn]);
|
||||||
$number = array_change_key_case($number);
|
|
||||||
$number = $number[$key];
|
|
||||||
|
|
||||||
if (isset($increment) && ($increment == 'true')) {
|
if (! isset($numbers[$attr]))
|
||||||
$updatedattr = array ($key => $number + 1);
|
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);
|
$ldapserver->modify($uidpool_dn,$updatedattr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $number;
|
return $numbers[$attr];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
# No other cases allowed. The user has an error in the configuration
|
# No other cases allowed. The user has an error in the configuration
|
||||||
default :
|
default :
|
||||||
pla_error( sprintf( _('You specified an invalid value for auto_uid_number_mechanism ("%s")
|
error(sprintf(_('You specified an invalid value for auto_uid_number_mechanism ("%s") in your configration. Only "uidpool" and "search" are valid.
|
||||||
in your configration. Only "uidpool" and "search" are valid.
|
Please correct this problem.'),$mechanism),'error','index.php');
|
||||||
Please correct this problem.') , $mechanism) );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1380,7 +1410,7 @@ function get_icon( $ldapserver, $dn ) {
|
|||||||
$cval = explode( '=', $tmp[0], 2 );
|
$cval = explode( '=', $tmp[0], 2 );
|
||||||
$cval = isset( $cval[1] ) ? $cval[1] : false;
|
$cval = isset( $cval[1] ) ? $cval[1] : false;
|
||||||
if( $cval && false === strpos( $cval, ".." ) &&
|
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));
|
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
|
* Print an LDAP error message
|
||||||
* 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
|
|
||||||
*/
|
*/
|
||||||
function pla_error($msg,$ldap_err_msg=null,$ldap_err_no=-1,$fatal=true) {
|
function ldap_error_msg($msg,$errnum) {
|
||||||
if (defined('DEBUG_ENABLED') && (DEBUG_ENABLED))
|
$body = '<table border=0>';
|
||||||
debug_log('Entered with (%s,%s,%s,%s)',1,__FILE__,__LINE__,__METHOD__,
|
|
||||||
$msg,$ldap_err_msg,$ldap_err_no,$fatal);
|
|
||||||
|
|
||||||
$title = '';
|
$errnum = ('0x'.str_pad(dechex($errnum),2,0,STR_PAD_LEFT));
|
||||||
|
$verbose_error = pla_verbose_error($errnum);
|
||||||
|
|
||||||
if (function_exists('syslog_err'))
|
$body .= sprintf('<tr><td><b>%s</b>:</td><td>%s</td></tr>',_('LDAP said'),htmlspecialchars($msg));
|
||||||
syslog_err($msg);
|
|
||||||
|
|
||||||
if ($ldap_err_msg)
|
if ($verbose_error) {
|
||||||
$title = sprintf('<b>%s</b>: %s',_('LDAP said'),htmlspecialchars($ldap_err_msg));
|
$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']);
|
||||||
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);
|
|
||||||
|
|
||||||
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']);
|
|
||||||
} 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 .= '</table>';
|
|
||||||
|
|
||||||
if (function_exists('syslog_err'))
|
|
||||||
syslog_err(sprintf('%s %s',_('Error number'),$ldap_err_no));
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$body = $msg;
|
$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'));
|
||||||
}
|
}
|
||||||
|
|
||||||
system_message(array('title'=>$title ? $title : 'Error','body'=>$body,'type'=>'error'),$fatal ? 'index.php' : null);
|
$body .= '</table>';
|
||||||
|
|
||||||
|
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').'/');
|
$jpeg_temp_dir = realpath($_SESSION[APPCONFIG]->GetValue('jpeg','tmpdir').'/');
|
||||||
if (! is_writable($jpeg_temp_dir))
|
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]))
|
if (! is_array($jpeg_data[$attr_name]))
|
||||||
$jpeg_data[$attr_name] = 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');
|
$jpeg_filename = tempnam($jpeg_temp_dir.'/','pla');
|
||||||
$outjpeg = @fopen($jpeg_filename,'wb');
|
$outjpeg = @fopen($jpeg_filename,'wb');
|
||||||
if (! $outjpeg)
|
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);
|
fwrite($outjpeg,$jpeg);
|
||||||
fclose ($outjpeg);
|
fclose ($outjpeg);
|
||||||
|
|
||||||
@ -1902,7 +1905,7 @@ function draw_jpeg_photos($ldapserver,$dn,$attr_name='jpegPhoto',$draw_delete_bu
|
|||||||
}
|
}
|
||||||
closedir($handle);
|
closedir($handle);
|
||||||
} else {
|
} 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':
|
case 'ext_des':
|
||||||
// extended des crypt. see OpenBSD crypt man page.
|
// extended des crypt. see OpenBSD crypt man page.
|
||||||
if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 )
|
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) );
|
$new_value = '{CRYPT}' . crypt( $password_clear, '_' . random_salt(8) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'md5crypt':
|
case 'md5crypt':
|
||||||
if( ! defined( 'CRYPT_MD5' ) || CRYPT_MD5 == 0 )
|
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) );
|
$new_value = '{CRYPT}' . crypt( $password_clear , '$1$' . random_salt(9) );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'blowfish':
|
case 'blowfish':
|
||||||
if( ! defined( 'CRYPT_BLOWFISH' ) || CRYPT_BLOWFISH == 0 )
|
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
|
// hardcoded to second blowfish version and set number of rounds
|
||||||
$new_value = '{CRYPT}' . crypt( $password_clear , '$2a$12$' . random_salt(13) );
|
$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) );
|
$new_value = '{SHA}' . base64_encode( mhash( MHASH_SHA1, $password_clear) );
|
||||||
|
|
||||||
} else {
|
} 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;
|
break;
|
||||||
|
|
||||||
@ -1976,7 +1979,7 @@ function password_hash( $password_clear, $enc_type ) {
|
|||||||
$new_value = "{SSHA}".base64_encode( mhash( MHASH_SHA1, $password_clear.$salt ).$salt );
|
$new_value = "{SSHA}".base64_encode( mhash( MHASH_SHA1, $password_clear.$salt ).$salt );
|
||||||
|
|
||||||
} else {
|
} 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;
|
break;
|
||||||
|
|
||||||
@ -1987,7 +1990,7 @@ function password_hash( $password_clear, $enc_type ) {
|
|||||||
$new_value = "{SMD5}".base64_encode( mhash( MHASH_MD5, $password_clear.$salt ).$salt );
|
$new_value = "{SMD5}".base64_encode( mhash( MHASH_MD5, $password_clear.$salt ).$salt );
|
||||||
|
|
||||||
} else {
|
} 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;
|
break;
|
||||||
|
|
||||||
@ -2026,7 +2029,8 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
|||||||
// check php mhash support before using it
|
// check php mhash support before using it
|
||||||
if( function_exists( 'mhash' ) ) {
|
if( function_exists( 'mhash' ) ) {
|
||||||
$hash = base64_decode($cryptedpassword);
|
$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 );
|
$new_hash = base64_encode( mhash( MHASH_SHA1, $plainpassword.$salt).$salt );
|
||||||
|
|
||||||
if( strcmp( $cryptedpassword, $new_hash ) == 0 )
|
if( strcmp( $cryptedpassword, $new_hash ) == 0 )
|
||||||
@ -2035,7 +2039,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
} else {
|
} 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;
|
break;
|
||||||
|
|
||||||
@ -2053,7 +2057,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
} else {
|
} 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;
|
break;
|
||||||
|
|
||||||
@ -2080,7 +2084,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
|||||||
|
|
||||||
// make sure that web server supports blowfish crypt
|
// make sure that web server supports blowfish crypt
|
||||||
if( ! defined( 'CRYPT_BLOWFISH' ) || CRYPT_BLOWFISH == 0 )
|
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);
|
list(,$version,$rounds,$salt_hash) = explode('$',$cryptedpassword);
|
||||||
|
|
||||||
@ -2095,7 +2099,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
|||||||
|
|
||||||
// make sure that web server supports md5 crypt
|
// make sure that web server supports md5 crypt
|
||||||
if( ! defined( 'CRYPT_MD5' ) || CRYPT_MD5 == 0 )
|
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);
|
list(,$type,$salt,$hash) = explode('$',$cryptedpassword);
|
||||||
|
|
||||||
@ -2110,7 +2114,7 @@ function password_check( $cryptedpassword, $plainpassword ) {
|
|||||||
|
|
||||||
// make sure that web server supports ext_des
|
// make sure that web server supports ext_des
|
||||||
if ( ! defined( 'CRYPT_EXT_DES' ) || CRYPT_EXT_DES == 0 )
|
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 )
|
if( crypt($plainpassword, $cryptedpassword ) == $cryptedpassword )
|
||||||
return true;
|
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');
|
$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)
|
if ($include_choose_text)
|
||||||
printf('<span class="x-small"><a href="%s" title="%s">%s</a></span>',$href,$title,_('browse'));
|
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='') {
|
function get_href($type,$extra_info='') {
|
||||||
$sf = 'https://sourceforge.net';
|
$sf = 'https://sourceforge.net';
|
||||||
$pla = 'http://phpldapadmin.wiki.sourceforge.net';
|
$pla = 'http://phpldapadmin.sourceforge.net';
|
||||||
$group_id = '61828';
|
$group_id = '61828';
|
||||||
$bug_atid = '498546';
|
$bug_atid = '498546';
|
||||||
$rfe_atid = '498549';
|
$rfe_atid = '498549';
|
||||||
@ -2921,13 +2925,13 @@ function server_info_list($visible=false) {
|
|||||||
return $server_info_list;
|
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)
|
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]">',
|
$html = sprintf('<select id="%s_%s_%s" name="%s[%s][%s]">',
|
||||||
$id, htmlspecialchars($attribute->getName()), $i,
|
$id,htmlspecialchars($attributename),$i,
|
||||||
$id, htmlspecialchars($attribute->getName()), $i);
|
$id,htmlspecialchars($attributename),$i);
|
||||||
|
|
||||||
$html .= '<option>clear</option>';
|
$html .= '<option>clear</option>';
|
||||||
foreach (array('crypt','ext_des','md5crypt','blowfish','md5','smd5','sha','ssha') as $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');";
|
$href = "javascript:dateSelector('$attr');";
|
||||||
$title = _('Click to popup a dialog to select a date graphically');
|
$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) {
|
function htmlid($sid,$dn) {
|
||||||
return sprintf('SID%s:%s',$sid,preg_replace('/[\ =,]/','_',$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
|
<?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.
|
* Functions related to hooks management.
|
||||||
@ -52,7 +52,6 @@ function sort_array_by_priority($a,$b) {
|
|||||||
function run_hook($hook_name,$args) {
|
function run_hook($hook_name,$args) {
|
||||||
$hooks = isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->hooks : array();
|
$hooks = isset($_SESSION[APPCONFIG]) ? $_SESSION[APPCONFIG]->hooks : array();
|
||||||
|
|
||||||
$debug = 0;
|
|
||||||
syslog_debug("Running hook $hook_name.");
|
syslog_debug("Running hook $hook_name.");
|
||||||
|
|
||||||
if (! array_key_exists($hook_name,$hooks)) {
|
if (! array_key_exists($hook_name,$hooks)) {
|
||||||
@ -109,17 +108,17 @@ function run_hook($hook_name,$args) {
|
|||||||
* called upon failure.
|
* called upon failure.
|
||||||
*/
|
*/
|
||||||
function add_hook($hook_name,$priority,$hook_function,$rollback_function) {
|
function add_hook($hook_name,$priority,$hook_function,$rollback_function) {
|
||||||
global $config;
|
if (! array_key_exists($hook_name,$_SESSION[APPCONFIG]->hooks))
|
||||||
|
$_SESSION[APPCONFIG]->hooks[$hook_name] = array();
|
||||||
if (! array_key_exists($hook_name,$config->hooks)) {
|
|
||||||
$config->hooks[$hook_name] = array();
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_hook($hook_name,-1,$hook_function,'');
|
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.
|
* as a rollback will be removed.
|
||||||
*/
|
*/
|
||||||
function remove_hook($hook_name,$priority,$hook_function,$rollback_function) {
|
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)) {
|
while (list($key,$hook) = each($_SESSION[APPCONFIG]->hooks[$hook_name])) {
|
||||||
reset($config->hooks[$hook_name]);
|
|
||||||
|
|
||||||
while (list($key,$hook) = each($config->hooks[$hook_name])) {
|
|
||||||
if (($priority >= 0 && $priority == $hook['priority']) ||
|
if (($priority >= 0 && $priority == $hook['priority']) ||
|
||||||
($hook_function && $hook_function == $hook['hook_function']) ||
|
($hook_function && $hook_function == $hook['hook_function']) ||
|
||||||
($rollback_function && $rollback_function == $hook['rollback_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.
|
* @param hook_name Name of hook to clear.
|
||||||
*/
|
*/
|
||||||
function clear_hooks($hook_name) {
|
function clear_hooks($hook_name) {
|
||||||
global $config;
|
if (array_key_exists($hook_name,$_SESSION[APPCONFIG]->hooks))
|
||||||
if (!isset($config) && isset($_SESSION[APPCONFIG]))
|
unset($_SESSION[APPCONFIG]->hooks[$hook_name]);
|
||||||
$config = $_SESSION[APPCONFIG];
|
|
||||||
|
|
||||||
if (array_key_exists($hook_name,$config->hooks))
|
|
||||||
unset($config->hooks[$hook_name]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Evaluating user-made hooks
|
# Evaluating user-made hooks
|
||||||
if (is_dir(HOOKSDIR.'functions')) {
|
if (is_dir(HOOKSDIR.'functions')) {
|
||||||
$dir = dir(HOOKSDIR.'functions');
|
$dir = dir(HOOKSDIR.'functions');
|
||||||
|
|
||||||
while (false !== ($entry = $dir->read())) {
|
while (false !== ($hookfile = $dir->read())) {
|
||||||
$filename = sprintf('%s/%s/%s',HOOKSDIR,'functions',$entry);
|
$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";
|
require_once "$filename";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
26
lib/page.php
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* Page Rendering Functions
|
||||||
@ -28,7 +28,7 @@ class page {
|
|||||||
|
|
||||||
# Default Values for configurable items.
|
# Default Values for configurable items.
|
||||||
$this->_default['stylecss'] = CSSDIR.'style.css';
|
$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']['error'] = IMGDIR.'warning.png';
|
||||||
$this->_default['sysmsg']['warn'] = IMGDIR.'notice.png';
|
$this->_default['sysmsg']['warn'] = IMGDIR.'notice.png';
|
||||||
$this->_default['sysmsg']['info'] = IMGDIR.'light-big.png';
|
$this->_default['sysmsg']['info'] = IMGDIR.'light-big.png';
|
||||||
@ -45,11 +45,7 @@ class page {
|
|||||||
}
|
}
|
||||||
|
|
||||||
header('Content-type: text/html; charset="UTF-8"');
|
header('Content-type: text/html; charset="UTF-8"');
|
||||||
if (isset($_SESSION[APPCONFIG])
|
if (isCompress()) {
|
||||||
&& $_SESSION[APPCONFIG]->GetValue('appearance','compress')
|
|
||||||
&& eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])
|
|
||||||
&& ! ini_get('zlib.output_compression')) {
|
|
||||||
|
|
||||||
header('Content-Encoding: gzip');
|
header('Content-Encoding: gzip');
|
||||||
|
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
@ -304,11 +300,7 @@ class page {
|
|||||||
echo $object->draw('body');
|
echo $object->draw('body');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($compress && ob_get_level() && isset($_SESSION[APPCONFIG])
|
if ($compress && ob_get_level() && isCompress()) {
|
||||||
&& $_SESSION[APPCONFIG]->GetValue('appearance','compress')
|
|
||||||
&& ! ini_get('zlib.output_compression')
|
|
||||||
&& eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])) {
|
|
||||||
|
|
||||||
$output = ob_get_contents();
|
$output = ob_get_contents();
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
|
|
||||||
@ -324,7 +316,9 @@ class page {
|
|||||||
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED)
|
if (defined('DEBUG_ENABLED') && DEBUG_ENABLED)
|
||||||
debug_log('Entered with ()',129,__FILE__,__LINE__,__METHOD__);
|
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()) {
|
public function display($filter=array()) {
|
||||||
@ -384,11 +378,7 @@ class page {
|
|||||||
echo '</html>';
|
echo '</html>';
|
||||||
|
|
||||||
# compress output
|
# compress output
|
||||||
if (ob_get_level() && isset($_SESSION[APPCONFIG])
|
if (ob_get_level() && isCompress()) {
|
||||||
&& $_SESSION[APPCONFIG]->GetValue('appearance','compress')
|
|
||||||
&& ! ini_get('zlib.output_compression')
|
|
||||||
&& eregi('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])) {
|
|
||||||
|
|
||||||
$output = ob_get_contents();
|
$output = ob_get_contents();
|
||||||
ob_end_clean();
|
ob_end_clean();
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* Classes and functions for fetching and parsing schema from an LDAP server.
|
||||||
@ -61,6 +61,8 @@ class ObjectClass extends SchemaItem {
|
|||||||
var $must_attrs;
|
var $must_attrs;
|
||||||
# Arrays of attribute names that this objectClass allows, but does not require
|
# Arrays of attribute names that this objectClass allows, but does not require
|
||||||
var $may_attrs;
|
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
|
# Boolean value indicating whether this objectClass is obsolete
|
||||||
var $is_obsolete;
|
var $is_obsolete;
|
||||||
# Array of objectClasses which inherit from this one (must be set at runtime explicitly by the caller)
|
# 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->sup_classes = array();
|
||||||
$this->type = $ldapserver->schema_oclass_default;
|
$this->type = $ldapserver->schema_oclass_default;
|
||||||
$this->must_attrs = array();
|
$this->must_attrs = array();
|
||||||
|
$this->force_may = array();
|
||||||
$this->may_attrs = array();
|
$this->may_attrs = array();
|
||||||
$this->is_obsolete = false;
|
$this->is_obsolete = false;
|
||||||
$this->children_objectclasses = array();
|
$this->children_objectclasses = array();
|
||||||
@ -265,11 +268,17 @@ class ObjectClass extends SchemaItem {
|
|||||||
|
|
||||||
foreach ($attrs as $string) {
|
foreach ($attrs as $string) {
|
||||||
$attr = new ObjectClass_ObjectClassAttribute($string,$this->name);
|
$attr = new ObjectClass_ObjectClassAttribute($string,$this->name);
|
||||||
array_push($this->must_attrs,$attr);
|
|
||||||
|
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)
|
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;
|
break;
|
||||||
|
|
||||||
case 'MAY':
|
case 'MAY':
|
||||||
@ -304,8 +313,8 @@ class ObjectClass extends SchemaItem {
|
|||||||
$this->description = preg_replace("/\'$/",'',$this->description);
|
$this->description = preg_replace("/\'$/",'',$this->description);
|
||||||
|
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
debug_log('Returning () - NAME (%s), DESCRIPTION (%s), MUST (%s), MAY (%s)',9,__FILE__,__LINE__,__METHOD__,
|
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->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)));
|
$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;
|
var $used_in_object_classes;
|
||||||
# A list of object class names that require this attribute type.
|
# A list of object class names that require this attribute type.
|
||||||
var $required_by_object_classes;
|
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
|
* Initialize the class' member variables
|
||||||
@ -654,10 +676,11 @@ class AttributeType extends SchemaItem {
|
|||||||
$this->type = null;
|
$this->type = null;
|
||||||
$this->used_in_object_classes = array();
|
$this->used_in_object_classes = array();
|
||||||
$this->required_by_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) {
|
function AttributeType($raw_ldap_attr_string) {
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
@ -1108,6 +1131,13 @@ class AttributeType extends SchemaItem {
|
|||||||
function getRequiredByObjectClasses() {
|
function getRequiredByObjectClasses() {
|
||||||
return $this->required_by_object_classes;
|
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
|
<?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
|
* @package phpLDAPadmin
|
||||||
@ -20,7 +20,7 @@ foreach ($results as $dn => $dndetails) {
|
|||||||
echo '<table class="result" border=0>';
|
echo '<table class="result" border=0>';
|
||||||
|
|
||||||
echo '<tr class="list_title">';
|
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);
|
$formatted_dn = get_rdn($dn);
|
||||||
if (!$_SESSION[APPCONFIG]->isCommandAvailable('schema')) {
|
if (!$_SESSION[APPCONFIG]->isCommandAvailable('schema')) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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)
|
* 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));
|
$edit_url = sprintf('cmd.php?cmd=template_engine&server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode($dn));
|
||||||
$attrs_display = array();
|
$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')) {
|
if ($_SESSION[APPCONFIG]->isCommandAvailable('schema')) {
|
||||||
$dn_display = strlen($dn) > 40
|
$dn_display = strlen($dn) > 40
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* Classes and functions for LDAP server configuration and capability
|
||||||
@ -77,7 +77,7 @@ class LDAPserver {
|
|||||||
$return = false;
|
$return = false;
|
||||||
|
|
||||||
# For session or cookie auth_types, we check the session or cookie to see if a user has logged in.
|
# 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
|
/* 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. */
|
* 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
|
/* whether or not the login_dn or pass is specified, we return
|
||||||
* true here. (if they are blank, we do an anonymous bind anyway) */
|
* 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') {
|
} elseif ($this->auth_type == 'config') {
|
||||||
$return = true;
|
$return = true;
|
||||||
|
|
||||||
} else {
|
} 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)
|
if (DEBUG_ENABLED)
|
||||||
@ -160,6 +179,15 @@ class LDAPserver {
|
|||||||
$this->connection[$connect_id]['login_pass'] ? md5($this->connection[$connect_id]['login_pass']) : '');
|
$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 {
|
} else {
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
debug_log('This IS some other login',80,__FILE__,__LINE__,__METHOD__);
|
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
|
# Try to fire up TLS is specified in the config
|
||||||
if ($this->isTLSEnabled()) {
|
if ($this->isTLSEnabled()) {
|
||||||
function_exists('ldap_start_tls') or error(_('Your PHP install does not support TLS.'),'error');
|
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;
|
$bind_result = false;
|
||||||
@ -309,9 +337,9 @@ class LDAPserver {
|
|||||||
|
|
||||||
# invalid regex?
|
# invalid regex?
|
||||||
if (is_null($authz_id)) {
|
if (is_null($authz_id)) {
|
||||||
pla_error(sprintf(_('It seems that sasl_authz_id_regex "%s"." contains invalid PCRE regular expression.'),
|
error(sprintf(_('It seems that sasl_authz_id_regex "%s"." contains invalid PCRE regular expression.'),
|
||||||
$this->connection[$connect_id]['sasl_authz_id_regex']).
|
$this->connection[$connect_id]['sasl_authz_id_regex']).((isset($php_errormsg)) ? ' Error message: '.$php_errormsg : '')
|
||||||
((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
|
# This error message is not localized as only developers should ever see it
|
||||||
if (! in_array($schema_to_fetch,$valid_schema_to_fetch))
|
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.',
|
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)));
|
get_class($this),htmlspecialchars($schema_to_fetch)),'error','index.php');
|
||||||
|
|
||||||
# Try to get the schema DN from the specified entry.
|
# Try to get the schema DN from the specified entry.
|
||||||
$schema_dn = $this->getSchemaDN($dn);
|
$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.
|
# 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)) {
|
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 {
|
} else {
|
||||||
$return = false;
|
$return = false;
|
||||||
@ -856,8 +884,8 @@ class LDAPserver {
|
|||||||
# Did we get something unrecognizable?
|
# Did we get something unrecognizable?
|
||||||
if (gettype($schema_search) != 'resource') {
|
if (gettype($schema_search) != 'resource') {
|
||||||
if (in_array($schema_to_fetch,$schema_error_message_array)) {
|
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>',
|
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)));
|
$schema_to_fetch,gettype($schema_search),$schema_error_message,serialize($schema_search)),'error','index.php');
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$return = false;
|
$return = false;
|
||||||
@ -879,8 +907,8 @@ class LDAPserver {
|
|||||||
|
|
||||||
if(! isset($schema_entries[0][$schema_to_fetch])) {
|
if(! isset($schema_entries[0][$schema_to_fetch])) {
|
||||||
if (in_array($schema_to_fetch,$schema_error_message_array)) {
|
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>',
|
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)));
|
$schema_to_fetch,gettype($schema_search),$schema_error_message,serialize($schema_entries)),'error','index.php');
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$return = false;
|
$return = false;
|
||||||
@ -1243,8 +1271,8 @@ class LDAPserver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (! isset($attrs[strtolower($sup_attr_name)])){
|
if (! isset($attrs[strtolower($sup_attr_name)])){
|
||||||
pla_error(sprintf('Schema error: attributeType "%s" inherits from "%s", but attributeType "%s" does not exist.',
|
error(sprintf('Schema error: attributeType "%s" inherits from "%s", but attributeType "%s" does not exist.',
|
||||||
$attr->getName(),$sup_attr_name,$sup_attr_name));
|
$attr->getName(),$sup_attr_name,$sup_attr_name),'error','index.php');
|
||||||
return;
|
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;
|
$return = $attrs;
|
||||||
@ -1521,7 +1558,10 @@ class LDAPserver {
|
|||||||
function rename($dn,$new_rdn,$container,$deleteoldrdn) {
|
function rename($dn,$new_rdn,$container,$deleteoldrdn) {
|
||||||
$this->lastop = 'write';
|
$this->lastop = 'write';
|
||||||
if (! @ldap_rename($this->connect(true,$this->lastop,false,false),$dn,$new_rdn,$container,$deleteoldrdn)) {
|
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 {
|
} else {
|
||||||
# Update the tree
|
# Update the tree
|
||||||
@ -1778,7 +1818,7 @@ class LDAPserver {
|
|||||||
if ($attr = ldap_first_attribute($resource,$entry_id,$attrs)) {
|
if ($attr = ldap_first_attribute($resource,$entry_id,$attrs)) {
|
||||||
|
|
||||||
if (DEBUG_ENABLED)
|
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
|
# Iterate over the attributes
|
||||||
while ($attr) {
|
while ($attr) {
|
||||||
@ -1797,6 +1837,10 @@ class LDAPserver {
|
|||||||
$return[$dn][$attr] = $values;
|
$return[$dn][$attr] = $values;
|
||||||
|
|
||||||
$attr = ldap_next_attribute($resource,$entry_id,$attrs);
|
$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
|
} # end while attr
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1972,7 +2016,7 @@ class LDAPserver {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2044,7 +2088,7 @@ class LDAPserver {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
pla_error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($auth_type)));
|
error(sprintf(_('Unknown auth_type: %s'),htmlspecialchars($auth_type)),'error','index.php');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2153,7 +2197,7 @@ class LDAPserver {
|
|||||||
|
|
||||||
# See what the server schema says about this attribute
|
# See what the server schema says about this attribute
|
||||||
$schema_attr = $this->getSchemaAttribute($attr_name);
|
$schema_attr = $this->getSchemaAttribute($attr_name);
|
||||||
if (! $schema_attr) {
|
if (! is_object($schema_attr)) {
|
||||||
|
|
||||||
/* Strangely, some attributeTypes may not show up in the server
|
/* Strangely, some attributeTypes may not show up in the server
|
||||||
* schema. This behavior has been observed in MS Active Directory.*/
|
* schema. This behavior has been observed in MS Active Directory.*/
|
||||||
@ -2172,6 +2216,7 @@ class LDAPserver {
|
|||||||
strcasecmp($attr_name,'networkaddress') == 0 ||
|
strcasecmp($attr_name,'networkaddress') == 0 ||
|
||||||
strcasecmp($attr_name,'objectGUID') == 0 ||
|
strcasecmp($attr_name,'objectGUID') == 0 ||
|
||||||
strcasecmp($attr_name,'objectSID') == 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.10' ||
|
||||||
$syntax == '1.3.6.1.4.1.1466.115.121.1.28' ||
|
$syntax == '1.3.6.1.4.1.1466.115.121.1.28' ||
|
||||||
$syntax == '1.3.6.1.4.1.1466.115.121.1.5' ||
|
$syntax == '1.3.6.1.4.1.1466.115.121.1.5' ||
|
||||||
@ -2338,7 +2383,7 @@ class LDAPserver {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
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;
|
break;
|
||||||
|
|
||||||
case 'http':
|
case 'http':
|
||||||
if (isset($_SERVER['PHP_AUTH_USER']))
|
if (isset($_SERVER['PHP_AUTH_USER'])) {
|
||||||
{
|
|
||||||
if ($this->isLoginAttrEnabled()) {
|
if ($this->isLoginAttrEnabled()) {
|
||||||
if ($this->isLoginStringEnabled()) {
|
if ($this->isLoginStringEnabled()) {
|
||||||
$return = str_replace('<username>',$_SERVER['PHP_AUTH_USER'],$this->getLoginString());
|
$return = str_replace('<username>',$_SERVER['PHP_AUTH_USER'],$this->getLoginString());
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if ($this->login_dn)
|
if ($this->login_dn)
|
||||||
$this->connect(true,'user',false,true,$this->login_dn,$this->login_pass);
|
$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 = $this->search(null,$base_dn,$filter,array('dn'));
|
||||||
$result = array_pop($result);
|
$result = array_pop($result);
|
||||||
$return = $result['dn'];
|
$return = $result['dn'];
|
||||||
if ($return) break;
|
if ($return)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$return = $_SERVER['PHP_AUTH_USER'];
|
$return = $_SERVER['PHP_AUTH_USER'];
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
} else
|
||||||
$return = false;
|
$return = false;
|
||||||
|
|
||||||
if ($return) {
|
if ($return) {
|
||||||
$dn = $return;
|
$dn = $return;
|
||||||
$pass = '';
|
$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)) {
|
if ($this->userIsAllowedLogin($dn)) {
|
||||||
$ds = $this->connect(false,'user',true,true,$dn,$pass);
|
$ds = $this->connect(false,'user',true,true,$dn,$pass);
|
||||||
|
|
||||||
if (! is_resource($ds)) {
|
if (! is_resource($ds)) {
|
||||||
system_message(array(
|
system_message(array(
|
||||||
'title'=>_('Authenticate to server'),
|
'title'=>_('Authenticate to server'),
|
||||||
'body'=>_('Bad username or password. Please try again.'),
|
'body'=>_('Bad username or password. Please try again.'),
|
||||||
'type'=>'error'),
|
'type'=>'error'),
|
||||||
sprintf('cmd.php?cmd=login_form&server_id=%s',$this->server_id));
|
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_dn = $dn;
|
||||||
$this->login_pass = $pass;
|
$this->login_pass = $pass;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$this->auth_type = 'session';
|
|
||||||
$return = false;
|
$return = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2449,7 +2496,7 @@ class LDAPserver {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
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;
|
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
|
* 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
|
* 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'));
|
$_SESSION[APPCONFIG]->ldapservers->GetValue($this->server_id,'unique_attrs','pass'));
|
||||||
|
|
||||||
if (! $con)
|
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.
|
# Build our search filter to double check each attribute.
|
||||||
$searchfilter = '(|';
|
$searchfilter = '(|';
|
||||||
@ -2895,6 +3045,20 @@ class LDAPserver {
|
|||||||
|
|
||||||
return null;
|
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 {
|
class LDAPservers {
|
||||||
@ -3052,6 +3216,15 @@ class LDAPservers {
|
|||||||
'desc'=>'Password for DN to use when evaluating numbers',
|
'desc'=>'Password for DN to use when evaluating numbers',
|
||||||
'default'=>null);
|
'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(
|
$this->default->unique_attrs['dn'] = array(
|
||||||
'desc'=>'DN to use when evaluating uniqueness',
|
'desc'=>'DN to use when evaluating uniqueness',
|
||||||
'default'=>null);
|
'default'=>null);
|
||||||
@ -3098,6 +3271,16 @@ class LDAPservers {
|
|||||||
'desc' => 'SASL properties',
|
'desc' => 'SASL properties',
|
||||||
'var' => 'sasl_props',
|
'var' => 'sasl_props',
|
||||||
'default' => null);
|
'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) {
|
function SetValue($server_id,$key,$index,$value) {
|
||||||
@ -3106,21 +3289,21 @@ class LDAPservers {
|
|||||||
$server_id,$key,$index,$value);
|
$server_id,$key,$index,$value);
|
||||||
|
|
||||||
if (! isset($this->default->$key))
|
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
|
else
|
||||||
$default = $this->default->$key;
|
$default = $this->default->$key;
|
||||||
|
|
||||||
if (! isset($default[$index]))
|
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
|
else
|
||||||
$default = $default[$index];
|
$default = $default[$index];
|
||||||
|
|
||||||
# Test if its should be an array or not.
|
# Test if its should be an array or not.
|
||||||
if (is_array($default['default']) && ! is_array($value))
|
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))
|
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.
|
# Some special processing.
|
||||||
# @todo: Add ldaps port details here.
|
# @todo: Add ldaps port details here.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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.
|
* A collection of functions to handle sessions throughout phpLDAPadmin.
|
||||||
@ -117,7 +117,7 @@ function pla_session_start() {
|
|||||||
@header('Cache-control: private'); // IE 6 Fix
|
@header('Cache-control: private'); // IE 6 Fix
|
||||||
|
|
||||||
if (pla_session_id_paranoid && ! pla_session_verify_id())
|
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
|
# Check we have the correct version of the SESSION cache
|
||||||
if (isset($_SESSION['cache']) || isset($_SESSION[pla_session_id_init])) {
|
if (isset($_SESSION['cache']) || isset($_SESSION[pla_session_id_init])) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* Classes and functions for the template engine.ation and capability
|
||||||
@ -42,9 +42,10 @@ class xml2array {
|
|||||||
$this->strXmlData = xml_parse($this->resParser,$strInputXML);
|
$this->strXmlData = xml_parse($this->resParser,$strInputXML);
|
||||||
|
|
||||||
if (! $this->strXmlData)
|
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_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);
|
xml_parser_free($this->resParser);
|
||||||
|
|
||||||
@ -113,7 +114,7 @@ class Templates {
|
|||||||
while( ( $file = readdir( $dir ) ) !== false ) {
|
while( ( $file = readdir( $dir ) ) !== false ) {
|
||||||
if (! preg_match('/.xml$/',$file)) continue;
|
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))
|
&& ! preg_match('/^custom_/',$file))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -141,7 +142,7 @@ class Templates {
|
|||||||
if (! preg_match('/.xml$/',$file))
|
if (! preg_match('/.xml$/',$file))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if ($_SESSION['plaConfig']->GetValue('appearance','custom_templates_only')
|
if ($_SESSION[APPCONFIG]->GetValue('appearance','custom_templates_only')
|
||||||
&& ! preg_match('/^custom_/',$file))
|
&& ! preg_match('/^custom_/',$file))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -682,7 +683,7 @@ class Templates {
|
|||||||
$args[0] = $_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','search_base');
|
$args[0] = $_SESSION[APPCONFIG]->ldapservers->GetValue($ldapserver->server_id,'auto_number','search_base');
|
||||||
|
|
||||||
$container = $ldapserver->getContainerParent($container,$args[0]);
|
$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.
|
# operate calculus on next number.
|
||||||
if (!empty($args[4])) {
|
if (!empty($args[4])) {
|
||||||
$mod = split(';',$args[4]);
|
$mod = split(';',$args[4]);
|
||||||
@ -981,8 +982,8 @@ class Templates {
|
|||||||
if (isset($_POST['form'][$varname]))
|
if (isset($_POST['form'][$varname]))
|
||||||
$function_args[] = $_POST['form'][$varname];
|
$function_args[] = $_POST['form'][$varname];
|
||||||
else
|
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,
|
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')));
|
(isset($_POST['form']) ? implode('|',array_keys($_POST['form'])) : 'NONE')),'error','index.php');
|
||||||
} else {
|
} else {
|
||||||
$function_args[] = $arg;
|
$function_args[] = $arg;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?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
|
* 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.
|
* Check if custom session timeout has been reached for server $ldapserver.
|
||||||
* If it has:
|
* If it has:
|
||||||
* - automatically log out user by calling $ldapserver->unsetLoginDN()
|
* - 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
|
* - return true
|
||||||
*
|
*
|
||||||
* @param object $ldapserver The LDAPServer object of the server which the user has logged in.
|
* @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'))) {
|
if (in_array($ldapserver->auth_type,array('cookie','session'))) {
|
||||||
syslog_notice('Logout for '.$ldapserver->getLoggedInDN());
|
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;
|
return true;
|
||||||
|