RELEASE 0.9.7

This commit is contained in:
Deon George 2009-06-30 19:29:51 +10:00
parent d12096bbd3
commit df48b8ff9b
152 changed files with 19452 additions and 7789 deletions

View File

@ -28,10 +28,10 @@ in the "doc" directory.
# mkdir /var/www/tmp, and then
# chown root:daemon /var/www/tmp
# chmod 1755 /var/www/tmp
Where tmp is the $jpeg_temp_dir configured in config.php
Where tmp is the $config->custom->tmpdir['jpeg'] configured in config.php
* Windows
For jpeg photos to work properly, be sure to change $jpeg_temp_dir
For jpeg photos to work properly, be sure to change $config->custom->tmpdir['jpeg']
from "/tmp" to "c:\\temp" or similar.

View File

@ -1 +1 @@
0.9.5
0.9.7

View File

@ -1,141 +1,163 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_attr.php,v 1.10 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_attr.php,v 1.15 2005/09/25 16:11:44 wurley Exp $
/*
* add_attr.php
/**
* Adds an attribute/value pair to an object
*
* Variables that come in via common.php
* - server_id
* Variables that come in as POST vars:
* - dn
* - server_id
* - attr
* - val
* - binary
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
require 'templates/template_config.php';
require TMPLDIR.'template_config.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$server_id = $_POST['server_id'];
$attr = $_POST['attr'];
$val = isset( $_POST['val'] ) ? $_POST['val'] : false;;
$dn = $_POST['dn'] ;
$is_binary_val = isset( $_POST['binary'] ) ? true : false;
$encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr );
$is_binary_val = isset( $_POST['binary'] ) ? true : false;
if( ! $is_binary_val && $val == "" ) {
pla_error( $lang['left_attr_blank'] );
}
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
// special case for binary attributes (like jpegPhoto and userCertificate):
// special case for binary attributes (like jpegPhoto and userCertificate):
// we must go read the data from the file and override $val with the binary data
// Secondly, we must check if the ";binary" option has to be appended to the name
// of the attribute.
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $server_id, $dn, $attr, array($val) ) ) {
$search_href='search.php?search=true&form=advanced&server_id=' . $server_id . '&filter=' . $attr . '=' . $badattr;
pla_error(sprintf( $lang['unique_attr_failed'] , $attr,$badattr,$dn,$search_href ) );
if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, array($val) ) ) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',$ldapserver->server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
}
if( $is_binary_val ) {
if( 0 == $_FILES['val']['size'] )
pla_error( $lang['file_empty'] );
if( ! is_uploaded_file( $_FILES['val']['tmp_name'] ) ) {
if( isset( $_FILES['val']['error'] ) )
switch($_FILES['val']['error']){
case 0: //no error; possible file attack!
pla_error( $lang['invalid_file'] );
case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini
pla_error( $lang['uploaded_file_too_big'] );
case 2: //uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form
pla_error( $lang['uploaded_file_too_big'] );
case 3: //uploaded file was only partially uploaded
pla_error( $lang['uploaded_file_partial'] );
case 4: //no file was uploaded
pla_error( $lang['left_attr_blank'] );
default: //a default error, just in case! :)
pla_error( $lang['invalid_file'] );
break;
}
else
pla_error( $lang['invalid_file'] );
}
$file = $_FILES['val']['tmp_name'];
$f = fopen( $file, 'r' );
$binary_data = fread( $f, filesize( $file ) );
fclose( $f );
$val = $binary_data;
if( 0 == $_FILES['val']['size'] )
pla_error( $lang['file_empty'] );
if( is_binary_option_required( $server_id, $attr ) )
$attr .=";binary";
if( ! is_uploaded_file( $_FILES['val']['tmp_name'] ) ) {
if( isset( $_FILES['val']['error'] ) )
switch($_FILES['val']['error']) {
case 0: //no error; possible file attack!
pla_error( $lang['invalid_file'] );
break;
case 1: //uploaded file exceeds the upload_max_filesize directive in php.ini
pla_error( $lang['uploaded_file_too_big'] );
break;
case 2: //uploaded file exceeds the MAX_FILE_SIZE directive specified in the html form
pla_error( $lang['uploaded_file_too_big'] );
break;
case 3: //uploaded file was only partially uploaded
pla_error( $lang['uploaded_file_partial'] );
break;
case 4: //no file was uploaded
pla_error( $lang['left_attr_blank'] );
break;
default: //a default error, just in case! :)
pla_error( $lang['invalid_file'] );
break;
}
else
pla_error( $lang['invalid_file'] );
}
$file = $_FILES['val']['tmp_name'];
$f = fopen( $file, 'r' );
$binary_data = fread( $f, filesize( $file ) );
fclose( $f );
$val = $binary_data;
if( is_binary_option_required( $ldapserver, $attr ) )
$attr .= ";binary";
}
// Automagically hash new userPassword attributes according to the
// chosen in config.php.
if( 0 == strcasecmp( $attr, 'userpassword' ) )
{
if( isset( $servers[$server_id]['default_hash'] ) &&
$servers[$server_id]['default_hash'] != '' )
{
$enc_type = $servers[$server_id]['default_hash'];
/* Automagically hash new userPassword attributes according to the
chosen in config.php. */
if( 0 == strcasecmp( $attr, 'userpassword' ) ) {
if (trim($ldapserver->default_hash) != '' ) {
$enc_type = $ldapserver->default_hash;
$val = password_hash( $val, $enc_type );
}
}
elseif( ( 0 == strcasecmp( $attr , 'sambantpassword' ) || 0 == strcasecmp( $attr , 'sambalmpassword') ) ){
$mkntPassword = new MkntPasswdUtil();
$mkntPassword->createSambaPasswords( $val );
$val = $mkntPassword->valueOf($attr);
elseif( in_array( $attr,array('sambantpassword','sambalmpassword') ) ){
$mkntPassword = new MkntPasswdUtil();
$mkntPassword->createSambaPasswords( $val );
$val = $mkntPassword->valueOf($attr);
}
$ds = pla_ldap_connect( $server_id ) or pla_error( $lang['could_not_connect'] );
$new_entry = array( $attr => $val );
$result = @ldap_mod_add( $ds, $dn, $new_entry );
$result = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
if ($result)
header(sprintf('Location: edit.php?server_id=%s&dn=%s&modified_attrs[]=%s',
$ldapserver->server_id,$encoded_dn,$encoded_attr));
if( $result )
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=$encoded_attr" );
else
pla_error( $lang['failed_to_add_attr'], ldap_error( $ds ) , ldap_errno( $ds ) );
pla_error( $lang['failed_to_add_attr'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()) );
// check if we need to append the ;binary option to the name
// of some binary attribute
/**
* Check if we need to append the ;binary option to the name
* of some binary attribute
*
* @param object $ldapserver Server Object that the attribute is in.
* @param attr $attr Attribute to test to see if it requires ;binary added to it.
* @return bool
*/
function is_binary_option_required( $server_id, $attr ){
function is_binary_option_required( $ldapserver, $attr ) {
// list of the binary attributes which need the ";binary" option
$binary_attributes_with_options = array(
// Superior: Ldapv3 Syntaxes (1.3.6.1.4.1.1466.115.121.1)
'1.3.6.1.4.1.1466.115.121.1.8' => "userCertificate",
'1.3.6.1.4.1.1466.115.121.1.8' => "caCertificate",
'1.3.6.1.4.1.1466.115.121.1.10' => "crossCertificatePair",
'1.3.6.1.4.1.1466.115.121.1.9' => "certificateRevocationList",
'1.3.6.1.4.1.1466.115.121.1.9' => "authorityRevocationList",
// Superior: Netscape Ldap attributes types (2.16.840.1.113730.3.1)
'2.16.840.1.113730.3.1.40' => "userSMIMECertificate"
);
// quick check by attr name (short circuits the schema check if possible)
//foreach( $binary_attributes_with_options as $oid => $name )
//if( 0 == strcasecmp( $attr, $name ) )
// list of the binary attributes which need the ";binary" option
$binary_attributes_with_options = array(
// Superior: Ldapv3 Syntaxes (1.3.6.1.4.1.1466.115.121.1)
'1.3.6.1.4.1.1466.115.121.1.8' => "userCertificate",
'1.3.6.1.4.1.1466.115.121.1.8' => "caCertificate",
'1.3.6.1.4.1.1466.115.121.1.10' => "crossCertificatePair",
'1.3.6.1.4.1.1466.115.121.1.9' => "certificateRevocationList",
'1.3.6.1.4.1.1466.115.121.1.9' => "authorityRevocationList",
// Superior: Netscape Ldap attributes types (2.16.840.1.113730.3.1)
'2.16.840.1.113730.3.1.40' => "userSMIMECertificate"
);
// quick check by attr name (short circuits the schema check if possible)
//foreach( $binary_attributes_with_options as $oid => $name )
//if( 0 == strcasecmp( $attr, $name ) )
//return true;
$schema_attr = get_schema_attribute( $server_id, $attr );
if( ! $schema_attr )
return false;
$schema_attr = get_schema_attribute( $ldapserver, $attr );
if( ! $schema_attr )
return false;
$syntax = $schema_attr->getSyntaxOID();
if( isset( $binary_attributes_with_options[ $syntax ] ) )
return true;
$syntax = $schema_attr->getSyntaxOID();
if( isset( $binary_attributes_with_options[ $syntax ] ) )
return true;
return false;
return false;
}
?>

View File

@ -1,29 +1,30 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_attr_form.php,v 1.9 2004/09/15 12:31:52 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_attr_form.php,v 1.12 2005/07/22 05:42:18 wurley Exp $
/*
* add_attr_form.php
/**
* Displays a form for adding an attribute/value to an LDAP entry.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
$rdn = get_rdn( $dn );
$server_name = $servers[$server_id]['name'];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$friendly_attrs = process_friendly_attr_table();
include './header.php'; ?>
@ -31,22 +32,24 @@ include './header.php'; ?>
<body>
<h3 class="title"><?php echo sprintf( $lang['add_new_attribute'], htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<?php
<?php $attrs = get_object_attrs( $ldapserver, $dn );
$attrs = get_object_attrs( $server_id, $dn );
$oclasses = get_object_attr( $server_id, $dn, 'objectClass' );
$oclasses = get_object_attr( $ldapserver, $dn, 'objectClass' );
if( ! is_array( $oclasses ) )
$oclasses = array( $oclasses );
$avail_attrs = array();
$schema_oclasses = get_schema_objectclasses( $server_id, $dn );
$schema_oclasses = get_schema_objectclasses( $ldapserver, $dn );
foreach( $oclasses as $oclass ) {
$schema_oclass = get_schema_objectclass( $server_id, $oclass, $dn );
$schema_oclass = get_schema_objectclass( $ldapserver, $oclass, $dn );
if( $schema_oclass && 0 == strcasecmp( 'objectclass', get_class( $schema_oclass ) ) )
$avail_attrs = array_merge( $schema_oclass->getMustAttrNames( $schema_oclasses ),
$schema_oclass->getMayAttrNames( $schema_oclasses ),
$avail_attrs );
$schema_oclass->getMayAttrNames( $schema_oclasses ),
$avail_attrs );
}
$avail_attrs = array_unique( $avail_attrs );
@ -55,99 +58,117 @@ sort( $avail_attrs );
$avail_binary_attrs = array();
foreach( $avail_attrs as $i => $attr ) {
if( is_attr_binary( $server_id, $attr ) ) {
if( is_attr_binary( $ldapserver, $attr ) ) {
$avail_binary_attrs[] = $attr;
unset( $avail_attrs[ $i ] );
}
}
?>
<br />
<center>
<?php echo $lang['add_new_attribute'];
<?php echo $lang['add_new_attribute']; ?>
if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
<?php if( is_array( $avail_attrs ) && count( $avail_attrs ) > 0 ) { ?>
<br />
<br />
<br />
<br />
<form action="add_attr.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<form action="add_attr.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<select name="attr"><?php
$attr_select_html = '';
usort($avail_attrs,"sortAttrs");
foreach( $avail_attrs as $a ) {
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) {
$attr_display = htmlspecialchars( $friendly_attrs[ strtolower( $a ) ] ) . " (" .
<select name="attr">
<?php $attr_select_html = '';
usort($avail_attrs,"sortAttrs");
foreach( $avail_attrs as $a ) {
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) {
$attr_display = htmlspecialchars( $friendly_attrs[ strtolower( $a ) ] ) . " (" .
htmlspecialchars($a) . ")";
} else {
$attr_display = htmlspecialchars( $a );
}
echo $attr_display;
$attr_select_html .= "<option>$attr_display</option>\n";
echo "<option value=\"" . htmlspecialchars($a) . "\">$attr_display</option>";
} ?>
</select>
<input type="text" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
</form>
<?php } else { ?>
<br />
<br />
<small>(<?php echo $lang['no_new_attrs_available']; ?>)</small>
<br />
<br />
<?php } ?>
<?php echo $lang['add_new_binary_attr']; ?>
<?php if( count( $avail_binary_attrs ) > 0 ) { ?>
} else {
$attr_display = htmlspecialchars( $a );
}
echo $attr_display;
$attr_select_html .= "<option>$attr_display</option>\n";
echo "<option value=\"" . htmlspecialchars($a) . "\">$attr_display</option>";
} ?>
</select>
<input type="text" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
</form>
<?php } else { ?>
<br />
<br />
<small>(<?php echo $lang['no_new_attrs_available']; ?>)</small>
<br />
<br />
<?php } ?>
<?php echo $lang['add_new_binary_attr'];
if( count( $avail_binary_attrs ) > 0 ) { ?>
<!-- Form to add a new BINARY attribute to this entry -->
<form action="add_attr.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="binary" value="true" />
<br />
<select name="attr">
<?php
$attr_select_html = '';
usort($avail_binary_attrs,"sortAttrs");
foreach( $avail_binary_attrs as $a ) {
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) {
$attr_display = htmlspecialchars( $friendly_attrs[ strtolower( $a ) ] ) . " (" .
<?php $attr_select_html = '';
usort($avail_binary_attrs,"sortAttrs");
foreach( $avail_binary_attrs as $a ) {
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $a ) ] ) ) {
$attr_display = htmlspecialchars( $friendly_attrs[ strtolower( $a ) ] ) . " (" .
htmlspecialchars($a) . ")";
} else {
$attr_display = htmlspecialchars( $a );
}
echo $attr_display;
$attr_select_html .= "<option>$attr_display</option>\n";
echo "<option value=\"" . htmlspecialchars($a) . "\">$attr_display</option>";
} ?>
} else {
$attr_display = htmlspecialchars( $a );
}
echo $attr_display;
$attr_select_html .= "<option>$attr_display</option>\n";
echo "<option value=\"" . htmlspecialchars($a) . "\">$attr_display</option>";
} ?>
</select>
<input type="file" name="val" size="20" />
<input type="submit" name="submit" value="<?php echo $lang['add']; ?>" class="update_dn" />
<?php
if( ! ini_get( 'file_uploads' ) )
echo "<br><small><b>" . $lang['warning_file_uploads_disabled'] . "</b></small><br>";
else
echo "<br><small><b>" . sprintf( $lang['max_file_size'], ini_get( 'upload_max_filesize' ) ) . "</b></small><br>";
?>
<?php if( ! ini_get( 'file_uploads' ) )
echo "<br><small><b>" . $lang['warning_file_uploads_disabled'] . "</b></small><br>";
else
echo "<br><small><b>" . sprintf( $lang['max_file_size'], ini_get( 'upload_max_filesize' ) ) . "</b></small><br>";
?>
</form>
<?php } else { ?>
<br />
<br />
<small>(<?php echo $lang['no_new_binary_attrs_available']; ?>)</small>
<?php } ?>
</center>
@ -159,16 +180,18 @@ foreach( $avail_attrs as $i => $attr ) {
/**
* Given an attribute $x, this returns true if it is NOT already specified
* in the current entry, returns false otherwise.
*
* @param attr $x
* @return bool
* @ignore
*/
function not_an_attr( $x )
{
function not_an_attr( $x ) {
global $attrs;
//return ! isset( $attrs[ strtolower( $x ) ] );
foreach( $attrs as $attr => $values )
if( 0 == strcasecmp( $attr, $x ) )
return false;
return true;
}
?>

View File

@ -1,36 +1,39 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_oclass.php,v 1.11 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_oclass.php,v 1.16 2005/07/22 06:34:55 wurley Exp $
/*
* add_oclass.php
/**
* Adds an objectClass to the specified dn.
* Variables that come in as POST vars:
*
* Note, this does not do any schema violation checking. That is
* performed in add_oclass_form.php.
*
* Vars that come in as POST:
* - dn (rawurlencoded)
* Variables that come in via common.php
* - server_id
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - new_oclass
* - new_attrs (array, if any)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = rawurldecode( $_POST['dn'] );
$encoded_dn = rawurlencode( $dn );
$new_oclass = $_POST['new_oclass'];
$server_id = $_POST['server_id'];
$new_oclass = unserialize( rawurldecode( $_POST['new_oclass'] ) );
$new_attrs = $_POST['new_attrs'];
if( is_attr_read_only( $server_id, 'objectClass' ) )
pla_error( "ObjectClasses are flagged as read only in the phpLDAPadmin configuration." );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
$encoded_dn = rawurlencode( $dn );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( is_attr_read_only( $ldapserver, 'objectClass' ) )
pla_error( "ObjectClasses are flagged as read only in the phpLDAPadmin configuration." );
$new_entry = array();
$new_entry['objectClass'] = $new_oclass;
@ -42,29 +45,20 @@ if( is_array( $new_attrs ) && count( $new_attrs ) > 0 )
foreach( $new_attrs as $attr => $val ) {
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $server_id, $dn, $attr, array($val) ) ) {
$search_href='search.php?search=true&form=advanced&server_id=' . $server_id . '&filter=' . $attr . '=' . $badattr;
pla_error(sprintf( $lang['unique_attr_failed'] , $attr,$badattr,$dn,$search_href ) );
if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, array($val) ) ) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',
$ldapserver->server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
}
$new_entry[ $attr ] = $val;
}
//echo "<pre>";
//print_r( $new_entry );
//exit;
$add_res = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$add_res = @ldap_mod_add( $ds, $dn, $new_entry );
if (! $add_res)
pla_error($lang['could_not_perform_ldap_mod_add'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
if( ! $add_res )
{
pla_error( $lang['could_not_perform_ldap_mod_add'], ldap_error( $ds ), ldap_errno( $ds ) );
}
else
{
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=objectclass" );
}
header(sprintf('Location: edit.php?server_id=%s&dn=%s&modified_attrs[]=objectclass',$ldapserver->server_id,$encoded_dn));
?>

View File

@ -1,9 +1,7 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_oclass_form.php,v 1.15 2004/10/22 13:58:59 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_oclass_form.php,v 1.20 2005/07/22 06:34:55 wurley Exp $
/*
* add_oclass_form.php
/**
* This page may simply add the objectClass and take you back to the edit page,
* but, in one condition it may prompt the user for input. That condition is this:
*
@ -11,40 +9,46 @@
* attributes with 1 or more not defined by the object. In that case, we will
* present a form for the user to add those attributes to the object.
*
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* Variables that come in via common.php
* - server_id
* Variables that come in as REQUEST vars:
* - dn (rawurlencoded)
* - new_oclass
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$dn = rawurldecode( $_POST['dn'] );
$encoded_dn = rawurlencode( $dn );
$new_oclass = $_POST['new_oclass'];
$server_id = $_POST['server_id'];
if( is_server_read_only( $server_id ) )
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$new_oclass = $_REQUEST['new_oclass'];
$dn = rawurldecode( $_REQUEST['dn'] );
$encoded_dn = rawurlencode( $dn );
/* 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
* newly required attrs. */
$entry = get_object_attrs( $server_id, $dn, true );
$entry = get_object_attrs( $ldapserver, $dn, true );
$current_attrs = array();
foreach( $entry as $attr => $junk )
$current_attrs[] = strtolower($attr);
// grab the required attributes for the new objectClass
$oclass = get_schema_objectclass( $server_id, $new_oclass );
if( $oclass )
$must_attrs = $oclass->getMustAttrs();
else
$must_attrs = array();
$schema_oclasses = get_schema_objectclasses( $ldapserver );
$must_attrs = array();
foreach( $new_oclass as $oclass_name ) {
$oclass = get_schema_objectclass( $ldapserver, $oclass_name );
if( $oclass )
$must_attrs = array_merge( $must_attrs, $oclass->getMustAttrNames( $schema_oclasses ) );
}
$must_attrs = array_unique( $must_attrs );
// We don't want any of the attr meta-data, just the string
//foreach( $must_attrs as $i => $attr )
@ -54,52 +58,57 @@ else
// but that the object does not currently contain
$needed_attrs = array();
foreach( $must_attrs as $attr ) {
$attr = get_schema_attribute( $server_id, $attr->getName() );
//echo "<pre>"; var_dump( $attr ); echo "</pre>";
// First, check if one of this attr's aliases is already an attribute of this entry
foreach( $attr->getAliases() as $alias_attr_name )
if( in_array( strtolower( $alias_attr_name ), $current_attrs ) )
// Skip this attribute since it's already in the entry
continue;
if( in_array( strtolower($attr->getName()), $current_attrs ) )
continue;
$attr = get_schema_attribute( $ldapserver, $attr );
// We made it this far, so the attribute needs to be added to this entry in order
// to add this objectClass
$needed_attrs[] = $attr;
//echo "<pre>"; var_dump( $attr ); echo "</pre>";
// First, check if one of this attr's aliases is already an attribute of this entry
foreach( $attr->getAliases() as $alias_attr_name )
if( in_array( strtolower( $alias_attr_name ), $current_attrs ) )
// Skip this attribute since it's already in the entry
continue;
if( in_array( strtolower($attr->getName()), $current_attrs ) )
continue;
// We made it this far, so the attribute needs to be added to this entry in order
// to add this objectClass
$needed_attrs[] = $attr;
}
if( count( $needed_attrs ) > 0 )
{
if( count( $needed_attrs ) > 0 ) {
include './header.php'; ?>
<body>
<h3 class="title"><?php echo $lang['new_required_attrs']; ?></h3>
<h3 class="subtitle"><?php echo $lang['requires_to_add'] . ' ' . count($needed_attrs) .
' ' . $lang['new_attributes']; ?></h3>
<h3 class="subtitle"><?php echo $lang['requires_to_add'] . ' ' . count($needed_attrs) .
' ' . $lang['new_attributes']; ?></h3>
<small>
<?php
echo $lang['new_required_attrs_instructions'];
<?php echo $lang['new_required_attrs_instructions'];
echo ' ' . count( $needed_attrs ) . ' ' . $lang['new_attributes'] . ' ';
echo $lang['that_this_oclass_requires']; ?>
</small>
<br />
<br />
<form action="add_oclass.php" method="post">
<input type="hidden" name="new_oclass" value="<?php echo htmlspecialchars( $new_oclass ); ?>" />
<input type="hidden" name="new_oclass" value="<?php echo rawurlencode( serialize( $new_oclass ) ); ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<table class="edit_dn" cellspacing="0">
<tr><th colspan="2"><?php echo $lang['new_required_attrs']; ?></th></tr>
<?php foreach( $needed_attrs as $count => $attr ) { ?>
<tr><td class="attr"><b><?php echo htmlspecialchars($attr->getName()); ?></b></td></tr>
<tr><td class="val"><input type="text" name="new_attrs[<?php echo htmlspecialchars($attr->getName()); ?>]" value="" size="40" /></tr>
<?php } ?>
<tr><td class="val"><input type="text" name="new_attrs[<?php echo htmlspecialchars($attr->getName()); ?>]" value="" size="40" /></tr>
<?php } ?>
</table>
<br />
@ -110,18 +119,15 @@ if( count( $needed_attrs ) > 0 )
</body>
</html>
<?php
}
else
{
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$add_res = @ldap_mod_add( $ds, $dn, array( 'objectClass' => $new_oclass ) );
if( ! $add_res )
pla_error( "Could not perform ldap_mod_add operation.", ldap_error( $ds ), ldap_errno( $ds ) );
<?php } else {
$add_res = @ldap_mod_add( $ldapserver->connect(), $dn, array( 'objectClass' => $new_oclass ) );
if (! $add_res)
pla_error("Could not perform ldap_mod_add operation.",
ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
else
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=objectClass" );
header(sprintf('Location: edit.php?server_id=%s&dn=%s&modified_attrs[]=objectClass',
$ldapserver->server_id,$encoded_dn));
}
?>

View File

@ -1,71 +1,74 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_value.php,v 1.13 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_value.php,v 1.18 2005/07/22 05:42:18 wurley Exp $
/*
* add_value.php
/**
* Adds a value to an attribute for a given dn.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - attr (rawurlencoded) the attribute to which we are adding a value
* - server_id
* - attr (rawurlencoded) the attribute to which we are adding a value
* - new_value (form element)
* - binary
* - binary
*
* On success, redirect to the edit_dn page.
* On failure, echo an error.
* On success, redirect to the edit_dn page. On failure, echo an error.
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$dn = rawurldecode( $_POST['dn'] );
$encoded_dn = rawurlencode( $dn );
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$attr = $_POST['attr'];
$encoded_attr = rawurlencode( $attr );
$server_id = $_POST['server_id'];
$new_value = $_POST['new_value'];
$dn = rawurldecode( $_POST['dn'] );
$is_binary_val = isset( $_POST['binary'] ) ? true : false;
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( is_attr_read_only( $server_id, $attr ) )
pla_error( "The attribute '" . htmlspecialchars( $attr ) . "' is flagged as read only in the phpLDAPadmin configuration." );
$encoded_dn = rawurlencode( $dn );
$encoded_attr = rawurlencode( $attr );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( is_attr_read_only( $ldapserver, $attr ) )
pla_error(sprintf($lang['attr_is_read_only'],htmlspecialchars( $attr )));
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
// special case for binary attributes:
// special case for binary attributes:
// we must go read the data from the file.
if( $is_binary_val )
{
if( $is_binary_val ) {
$file = $_FILES['new_value']['tmp_name'];
$f = fopen( $file, 'r' );
$binary_value = fread( $f, filesize( $file ) );
fclose( $f );
$new_value = $binary_value;
}
$new_entry = array( $attr => $new_value );
$new_entry = array( $attr => $new_value );
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $server_id, $dn, $attr, $new_entry ) ) {
$search_href='search.php?search=true&form=advanced&server_id=' . $server_id . '&filter=' . $attr . '=' . $badattr;
pla_error(sprintf( $lang['unique_attr_failed'] , $attr,$badattr,$dn,$search_href ) );
if( $badattr = checkUniqueAttr( $ldapserver, $dn, $attr, $new_entry ) ) {
$search_href = sprintf('search.php?search=true&form=advanced&server_id=%s&filter=%s=%s',$ldapserver->server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
}
// Call the custom callback for each attribute modification
// and verify that it should be modified.
if( preAttrAdd( $server_id, $dn, $attr, $new_entry ) ) {
if( run_hook ( 'pre_attr_add', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn, 'attr_name' => $attr,
'new_value' => $new_entry ) ) ) {
$add_result = @ldap_mod_add( $ds, $dn, $new_entry );
$add_result = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
if( ! $add_result )
pla_error( $lang['could_not_perform_ldap_mod_add'], ldap_error( $ds ), ldap_errno( $ds ) );
if (! $add_result)
pla_error($lang['could_not_perform_ldap_mod_add'],
ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
}
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=$encoded_attr" );
header(sprintf('Location: edit.php?server_id=%s&dn=%s&modified_attrs[]=%s',
$ldapserver->server_id,$encoded_dn,$encoded_attr));
?>

View File

@ -1,49 +1,53 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_value_form.php,v 1.26 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/add_value_form.php,v 1.32 2005/07/22 06:34:55 wurley Exp $
/*
* add_value_form.php
/**
* Displays a form to allow the user to enter a new value to add
* to the existing list of values for a multi-valued attribute.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - attr (rawurlencoded) the attribute to which we are adding a value
* - server_id
* - attr (rawurlencoded) the attribute to which we are adding a value
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$attr = $_GET['attr'];
$dn = isset( $_GET['dn'] ) ? $_GET['dn'] : null;
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( null != $dn ) {
$rdn = get_rdn( $dn );
} else {
$rdn = null;
}
$server_name = $servers[$server_id]['name'];
$attr = $_GET['attr'];
$encoded_attr = rawurlencode( $attr );
$current_values = get_object_attr( $server_id, $dn, $attr );
$num_current_values = ( is_array($current_values) ? count($current_values) : 1 );
if (! is_null($dn))
$rdn = get_rdn( $dn );
else
$rdn = null;
$current_values = get_object_attr( $ldapserver, $dn, $attr );
$num_current_values = ( is_array($current_values) ? count($current_values) : 0 );
$is_object_class = ( 0 == strcasecmp( $attr, 'objectClass' ) ) ? true : false;
$is_jpeg_photo = is_jpeg_photo( $server_id, $attr ); //( 0 == strcasecmp( $attr, 'jpegPhoto' ) ) ? true : false;
$is_jpeg_photo = is_jpeg_photo( $ldapserver, $attr ); //( 0 == strcasecmp( $attr, 'jpegPhoto' ) ) ? true : false;
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( $is_object_class ) {
if( $is_object_class ) {
// fetch all available objectClasses and remove those from the list that are already defined in the entry
$schema_oclasses = get_schema_objectclasses( $server_id );
$schema_oclasses = get_schema_objectclasses( $ldapserver );
foreach( $current_values as $oclass )
unset( $schema_oclasses[ strtolower( $oclass ) ] );
} else {
$schema_attr = get_schema_attribute( $server_id, $attr );
$schema_attr = get_schema_attribute( $ldapserver, $attr );
}
include './header.php'; ?>
@ -52,62 +56,77 @@ include './header.php'; ?>
<h3 class="title">
<?php echo $lang['add_new']; ?>
<b><?php echo htmlspecialchars($attr); ?></b>
<b><?php echo htmlspecialchars($attr); ?></b>
<?php echo $lang['value_to']; ?>
<b><?php echo htmlspecialchars($rdn); ?></b></h3>
<h3 class="subtitle">
<?php echo $lang['server']; ?>:
<b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp;
<?php echo $lang['server']; ?>:
<b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp;
<?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( $dn ); ?></b></h3>
<?php echo $lang['current_list_of']; ?> <b><?php echo $num_current_values; ?></b>
<?php echo $lang['current_list_of']; ?> <b><?php echo $num_current_values; ?></b>
<?php echo $lang['values_for_attribute']; ?> <b><?php echo htmlspecialchars($attr); ?></b>:
<?php if( $is_jpeg_photo ) { ?>
<table><td>
<?php draw_jpeg_photos( $server_id, $dn, $attr, false ); ?>
</td></table>
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<?php if ($num_current_values) { ?>
<?php if( $is_jpeg_photo ) { ?>
<table><tr><td>
<?php draw_jpeg_photos( $ldapserver, $dn, $attr, false ); ?>
</td></tr></table>
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<p><small>
<?php echo $lang['inappropriate_matching_note']; ?>
</small></p>
<!-- End of temporary warning -->
<?php } else if( is_attr_binary( $server_id, $attr ) ) { ?>
<?php } else if( is_attr_binary( $ldapserver, $attr ) ) { ?>
<ul>
<?php if( is_array( $vals ) ) { for( $i=1; $i<=count($vals); $i++ ) {
$href = "download_binary_attr.php?server_id=$server_id&amp;dn=$encoded_dn&amp;attr=$attr&amp;value_num=" . ($i-1); ?>
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value'] . ' ' . $i; ?>)</a></li>
<?php } } else {
$href = "download_binary_attr.php?server_id=$server_id&amp;dn=$encoded_dn&amp;attr=$attr"; ?>
<?php if( is_array( $vals ) ) {
for( $i=1; $i<=count($vals); $i++ ) {
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s&amp;value_num=%s',
$ldapserver->server_id,$encoded_dn,$attr,$i-1); ?>
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value'] . ' ' . $i; ?>)</a></li>
<?php }
} else {
$href = sprintf('download_binary_attr.php?server_id=%s&amp;dn=%s&amp;attr=%s',$ldapserver->server_id,$encoded_dn,$attr); ?>
<li><a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value']; ?></a></li>
<?php } ?>
</ul>
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<!-- Temporary warning until we find a way to add jpegPhoto values without an INAPROPRIATE_MATCHING error -->
<p><small>
<?php echo $lang['inappropriate_matching_note']; ?>
</small></p>
<!-- End of temporary warning -->
<?php } else { ?>
<ul class="current_values">
<?php if( is_array( $current_values ) ) /*$num_current_values > 1 )*/ {
foreach( $current_values as $val ) { ?>
<ul class="current_values">
<?php if( is_array( $current_values ) ) /*$num_current_values > 1 )*/ {
foreach( $current_values as $val ) { ?>
<li><nobr><?php echo htmlspecialchars(($val)); ?></nobr></li>
<?php } ?>
<?php } ?>
<?php } else { ?>
<?php } else { ?>
<li><nobr><?php echo htmlspecialchars(($current_values)); ?></nobr></li>
<?php } ?>
<?php } ?>
</ul>
</ul>
<?php } ?>
<?php } else { ?>
<br />
<br />
<?php } ?>
<?php echo $lang['enter_value_to_add']; ?>
<br />
@ -116,53 +135,58 @@ include './header.php'; ?>
<?php if( $is_object_class ) { ?>
<form action="add_oclass_form.php" method="post" class="new_value">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<select name="new_oclass">
<select name="new_oclass[]" multiple="true" size="15">
<?php foreach( $schema_oclasses as $name => $oclass ) {
// exclude any structural ones, as they'll only generate an LDAP_OBJECT_CLASS_VIOLATION
if ($oclass->type == "structural") continue;
?>
if ($oclass->type == "structural") continue; ?>
<option value="<?php echo $oclass->getName(); ?>"><?php echo $oclass->getName(); ?></option>
<?php } ?>
</select> <input type="submit" value="<?php echo $lang['add_new_objectclass']; ?>" />
</select>
<br />
<?php if( show_hints() ) { ?>
<input type="submit" value="<?php echo $lang['add_new_objectclass']; ?>" />
<br />
<?php if ($config->GetValue('appearance','show_hints')) { ?>
<small>
<br />
<img src="images/light.png" /><span class="hint"><?php echo $lang['new_required_attrs_note']; ?></span>
</small>
<?php } ?>
<?php }
<?php } else { ?>
} else { ?>
<form action="add_value.php" method="post" class="new_value" name="new_value_form"<?php
if( is_attr_binary( $server_id, $attr ) ) echo "enctype=\"multipart/form-data\""; ?>>
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<form action="add_value.php" method="post" class="new_value" name="new_value_form"<?php
if( is_attr_binary( $ldapserver, $attr ) ) echo "enctype=\"multipart/form-data\""; ?>>
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $encoded_dn; ?>" />
<input type="hidden" name="attr" value="<?php echo $encoded_attr; ?>" />
<?php if( is_attr_binary( $server_id, $attr ) ) { ?>
<input type="file" name="new_value" />
<input type="hidden" name="binary" value="true" />
<?php } else { ?>
<?php if( is_multi_line_attr( $attr, $server_id ) ) { ?>
<textarea name="new_value" rows="3" cols="30"></textarea>
<?php } else { ?>
<input type="text" <?php
if( $schema_attr->getMaxLength() )
echo "maxlength=\"" . $schema_attr->getMaxLength() . "\" ";
?>name="new_value" size="40" value="" /><?php
// draw the "browse" button next to this input box if this attr houses DNs:
if( is_dn_attr( $server_id, $attr ) ) draw_chooser_link( "new_value_form.new_value", false ); ?>
<?php } ?>
<?php } ?>
<?php if( is_attr_binary( $ldapserver, $attr ) ) { ?>
<input type="file" name="new_value" />
<input type="hidden" name="binary" value="true" />
<?php } else {
if( is_multi_line_attr( $attr, $ldapserver->server_id ) ) { ?>
<textarea name="new_value" rows="3" cols="30"></textarea>
<?php } else { ?>
<input type="text" <?php if( $schema_attr->getMaxLength() ) echo "maxlength=\"" . $schema_attr->getMaxLength() . "\" "; ?>name="new_value" size="40" value="" />
<?php // draw the "browse" button next to this input box if this attr houses DNs:
if( is_dn_attr( $ldapserver, $attr ) )
draw_chooser_link( "new_value_form.new_value", false ); ?>
<?php }
} ?>
<input type="submit" name="submit" value="<?php echo $lang['add_new_value']; ?>" />
<br />
@ -176,7 +200,7 @@ include './header.php'; ?>
<?php } ?>
<?php if( $schema_attr->getMaxLength() ) { ?>
<small><b><?php echo $lang['maximum_length']; ?>:</b> <?php echo number_format( $schema_attr->getMaxLength() ); ?> <?php echo $lang['characters']; ?></small><br />
<small><b><?php echo $lang['maximum_length']; ?>:</b> <?php echo number_format( $schema_attr->getMaxLength() ); ?> <?php echo $lang['characters']; ?></small><br />
<?php } ?>
</form>

View File

@ -1,4 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/blowfish.php,v 1.3 2005/02/25 13:44:05 wurley Exp $
/**
* The Cipher_blowfish:: class implements the Cipher interface enryption data
@ -12,10 +13,13 @@
* did not receive this file, see http://www.fsf.org/copyleft/lgpl.html.
*
* @author Mike Cochrane <mike@graftonhall.co.nz>
* @version $Revision: 1.1 $
* @version $Revision: 1.3 $
* @since Horde 2.2
* @package horde.cipher
*/
/**
* @package horde.cipher
*/
// Change for phpMyAdmin by lem9:
//class Horde_Cipher_blowfish extends Horde_Cipher {
@ -386,7 +390,7 @@ class Horde_Cipher_blowfish {
$parts = $this->_encryptBlock($L, $R);
return pack("NN", $parts['L'], $parts['R']);
}
/**
* Encrypt a block on data.
*

View File

@ -1,10 +1,15 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/check_lang_files.php,v 1.9 2004/05/23 21:53:08 i18phpldapadmin Exp $
?>
<?php
// phpldapadmin/check_lang_files.php, $Revision: 1.9 $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/check_lang_files.php,v 1.11 2005/02/25 13:44:05 wurley Exp $
/**
* Test script to check that $lang variables in each language file.
* @package phpLDAPadmin
*/
/**
*/
echo "<html><head><title>phpldapadmin - check of translation</title></head><body>";
$CHECKLANG=$_REQUEST['CHECKLANG'];
include realpath( './lang/en.php' );
$english_lang = $lang;
@ -39,6 +44,8 @@ if( false === $unused_keys )
echo "</ol>\n";
echo "<h1>Incomplete or Erroneous Language Files</h1>\n\n";
if ($CHECKLANG)
printf("<h1>Checking language files %s</h1>\n\n",$CHECKLANG);
echo "<h1><A HREF='?'>check all languages</A></h1>\n";
flush();
while( ( $file = readdir( $dir ) ) !== false ) {
@ -48,13 +55,13 @@ while( ( $file = readdir( $dir ) ) !== false ) {
// Sanity check. Is this really a PHP file?
if( ! preg_match( "/\.php$/", $file ) )
continue;
echo "<h2><A HREF='?CHECKLANG=$file'>$file</A></h2>\n";
echo "<ol>\n";
unset( $lang );
$lang = array();
include realpath( $lang_dir.'/'.$file );
$has_errors = false;
if ($CHECKLANG=="" || $file===$CHECKLANG ){
echo "<h2><A HREF='?CHECKLANG=$file'>$file</A></h2>\n";
echo "<ol>\n";
foreach( $english_lang as $key => $string )
if( ! isset( $lang[ $key ] ) ) {
$has_errors = true;

View File

@ -1,44 +1,42 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/collapse.php,v 1.11 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/collapse.php,v 1.13 2005/07/22 05:55:19 wurley Exp $
/*
* collapse.php
/**
* This script alters the session variable 'tree', collapsing it
* at the dn specified in the query string.
* at the dn specified in the query string.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* Note: this script is equal and opposite to expand.php
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
$encoded_dn = rawurlencode($dn);
initialize_session_tree();
if( array_key_exists( $dn, $_SESSION['tree'][$server_id] ) )
unset( $_SESSION['tree'][$server_id][$dn] );
if (array_key_exists($dn,$_SESSION['tree'][$ldapserver->server_id]))
unset($_SESSION['tree'][$ldapserver->server_id][$dn]);
// This is for Opera. By putting "random junk" in the query string, it thinks
// that it does not have a cached version of the page, and will thus
// fetch the page rather than display the cached version
/* This is for Opera. By putting "random junk" in the query string, it thinks
that it does not have a cached version of the page, and will thus
fetch the page rather than display the cached version */
$time = gettimeofday();
$random_junk = md5( strtotime( 'now' ) . $time['usec'] );
$random_junk = md5(strtotime('now') . $time['usec']);
// If cookies were disabled, build the url parameter for the session id.
// It will be append to the url to be redirect
$id_session_param="";
if(SID != ""){
$id_session_param = "&".session_name()."=".session_id();
}
/* If cookies were disabled, build the url parameter for the session id.
It will be append to the url to be redirect */
$id_session_param = "";
if (SID != "")
$id_session_param = "&".session_name()."=".session_id();
header( "Location:tree.php?foo=$random_junk#{$server_id}_{$encoded_dn}$id_session_param" );
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',$random_junk,$ldapserver->server_id,$encoded_dn,$id_session_param));
?>

View File

@ -1,157 +1,140 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/common.php,v 1.55 2004/10/14 20:32:48 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/common.php,v 1.68 2005/09/25 16:11:44 wurley Exp $
/*
* common.php
/**
* Contains code to be executed at the top of each phpLDAPadmin page.
* include this file at the top of every PHP file.
*
* This file will "pre-initialise" a PLA environment so that any PHP file will have a consistent
* environment with other PLA PHP files.
*
* This code WILL NOT check that all required functions are usable/readable, etc. This process has
* been moved to index.php (which really is only called once when a browser hits PLA for the first time).
*
* The list of ADDITIONAL function files is now defined in functions.php.
*
* @package phpLDAPadmin
*/
// Work-around to get PLA to work in PHP5
if( phpversion() >= "5" )
ini_set( "zend.ze1_compatibility_mode", 1 );
@DEFINE(LIBDIR,'./');
// Turn on all notices and warnings. This helps us write cleaner code (we hope at least)
if( phpversion() >= "5" )
// E_DEBUG is PHP5 specific and prevents warnings about using 'var' to declar class members
error_reporting( 'E_DEBUG' );
else
// For PHP4
error_reporting( E_ALL );
# Turn on all notices and warnings. This helps us write cleaner code (we hope at least)
if (phpversion() >= "5") {
# Work-around to get PLA to work in PHP5
ini_set( "zend.ze1_compatibility_mode", 1 );
# E_DEBUG is PHP5 specific and prevents warnings about using 'var' to declar class members
error_reporting( 'E_DEBUG' );
} else
# For PHP4
error_reporting( E_ALL );
// For PHP5 backward/forward compatibility
if( ! defined( 'E_STRICT' ) ) {
define( 'E_STRICT', 2048 );
}
# For PHP5 backward/forward compatibility
if (! defined('E_STRICT'))
define('E_STRICT',2048);
/** The minimum version of PHP required to run phpLDAPadmin. */
@define( 'REQUIRED_PHP_VERSION', '4.1.0' );
/** The default setting for $search_deref if unspecified or misconfigured by user. */
@define( 'DEFAULT_SEARCH_DEREF_SETTING', LDAP_DEREF_ALWAYS );
/** The default setting for $tree_deref if unspecified or misconfigured by user. */
@define( 'DEFAULT_TREE_DEREF_SETTING', LDAP_DEREF_NEVER );
/** The default setting for $export_deref if unspecified or misconfigured by user. */
@define( 'DEFAULT_EXPORT_DEREF_SETTING', LDAP_DEREF_NEVER );
/** The default setting for $view_deref if unspecified or misconfigured by user. */
@define( 'DEFAULT_VIEW_DEREF_SETTING', LDAP_DEREF_NEVER );
// General functions needed to proceed (pla_ldap_search(), pla_error(), get_object_attrs(), etc.)
# General functions needed to proceed (pla_ldap_search(), pla_error(), get_object_attrs(), etc.)
ob_start();
if( ! file_exists( realpath( './functions.php' ) ) ) {
ob_end_clean();
die( "Fatal error: Required file 'functions.php' does not exist." );
}
if( ! is_readable( realpath( './functions.php' ) ) ) {
ob_end_clean();
die( "Cannot read the file 'functions.php' its permissions are too strict." );
}
require_once realpath( './functions.php' );
require_once realpath(LIBDIR.'functions.php');
ob_end_clean();
// Our custom error handler receives all error notices that pass the error_reporting()
// level set above.
set_error_handler( 'pla_error_handler' );
/* Our custom error handler receives all error notices that pass the error_reporting()
level set above. */
set_error_handler('pla_error_handler');
// Creates the language array which will be populated with localized strings
// based on the user-configured language.
/* Creates the language array which will be populated with localized strings
based on the user-configured language. */
$lang = array();
// config.php might not exist (if the user hasn't configured PLA yet)
// Only include it if it does exist.
if( file_exists( realpath( './config.php' ) ) ) {
ob_start();
is_readable( realpath( './config.php' ) ) or pla_error( "Could not read config.php, its permissions are too strict." );
include realpath( './config.php' );
ob_end_clean();
/*
* functions.php should have defined our pla_function_files array, listing all our
* required functions (order IS important).
* index.php should have checked they exist and are usable - we'll assume that the user
* has been via index.php, and fixed any problems already.
*/
ob_start();
foreach ($pla_function_files as $file_name) {
require_once realpath ($file_name);
}
$required_files = array(
// The base English language strings
'./lang/recoded/en.php',
// Functions for managing the session (pla_session_start(), etc.)
'./session_functions.php',
// Functions for reading the server schema (get_schema_object_classes(), etc.)
'./schema_functions.php',
// Functions that can be defined by the user (preEntryDelete(), postEntryDelete(), etc.)
'./custom_functions.php',
// Functions for hashing passwords with OpenSSL binary (only if mhash not present)
'./emuhash_functions.php' );
# Now read in config_default.php, which also reads in config.php
require_once realpath(LIBDIR.'config_default.php');
ob_end_clean();
/**
* At this point we have read all our additional function PHP files and our configuration.
*/
// Include each required file and check for sanity.
foreach( $required_files as $file_name ) {
file_exists( realpath( $file_name ) )
or pla_error( "Fatal error: Required file '$file_name' does not exist." );
is_readable( realpath( $file_name ) )
or pla_error( "Fatal error: Cannot read the file '$file_name', its permissions are too strict." );
ob_start();
require_once realpath( $file_name );
ob_end_clean();
}
# Check our custom variables.
$config->CheckCustom();
if( pla_session_start() )
postSessionInit();
if (pla_session_start())
run_hook('post_session_init',array());
// Language configuration. Auto or specified?
// Shall we attempt to auto-determine the language?
if( isset( $language ) ) {
if( 0 == strcasecmp( $language, "auto" ) ) {
/*
* Language configuration. Auto or specified?
* Shall we attempt to auto-determine the language?
*/
$language = $config->GetValue('appearance','language');
if ($language == "auto") {
// Make sure their browser correctly reports language. If not, skip this.
if( isset( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ) {
# Make sure their browser correctly reports language. If not, skip this.
if( isset( $_SERVER['HTTP_ACCEPT_LANGUAGE'] ) ) {
// get the languages which are spetcified in the HTTP header
$HTTP_LANGS1 = preg_split ("/[;,]+/", $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
$HTTP_LANGS2 = preg_split ("/[;,]+/", $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
foreach( $HTTP_LANGS2 as $key => $value ) {
$value=preg_split ("/[-]+/", $value );
$HTTP_LANGS2[$key]=$value[0];
}
$HTTP_LANGS = array_merge ($HTTP_LANGS1, $HTTP_LANGS2);
foreach( $HTTP_LANGS as $HTTP_LANG) {
// try to grab one after the other the language file
if( file_exists( realpath( "lang/recoded/$HTTP_LANG.php" ) ) &&
is_readable( realpath( "lang/recoded/$HTTP_LANG.php" ) ) ) {
ob_start();
include realpath( "lang/recoded/$HTTP_LANG.php" );
ob_end_clean();
break;
}
# get the languages which are spetcified in the HTTP header
$HTTP_LANGS1 = preg_split ("/[;,]+/", $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
$HTTP_LANGS2 = preg_split ("/[;,]+/", $_SERVER['HTTP_ACCEPT_LANGUAGE'] );
foreach( $HTTP_LANGS2 as $key => $value ) {
$value=preg_split ("/[-]+/", $value );
$HTTP_LANGS2[$key]=$value[0];
}
$HTTP_LANGS = array_merge ($HTTP_LANGS1, $HTTP_LANGS2);
foreach( $HTTP_LANGS as $HTTP_LANG) {
# try to grab one after the other the language file
if( file_exists( realpath( "lang/recoded/$HTTP_LANG.php" ) ) &&
is_readable( realpath( "lang/recoded/$HTTP_LANG.php" ) ) ) {
ob_start();
include realpath( "lang/recoded/$HTTP_LANG.php" );
ob_end_clean();
break;
}
}
} else {
// grab the language file configured in config.php
if( $language != null ) {
if( 0 == strcmp( $language, 'english' ) )
$language = 'en';
if( file_exists( realpath( "lang/recoded/$language.php" ) ) &&
is_readable( realpath( "lang/recoded/$language.php" ) ) ) {
ob_start();
include realpath( "lang/recoded/$language.php" );
ob_end_clean();
} else {
pla_error( "Could not read language file 'lang/recoded/$language.php'. Either the file
does not exist, or its permissions do not allow phpLDAPadmin to read it." );
}
}
} else {
# grab the language file configured in config.php
if( $language != null ) {
if( 0 == strcmp( $language, 'english' ) )
$language = 'en';
if( file_exists( realpath( "lang/recoded/$language.php" ) ) &&
is_readable( realpath( "lang/recoded/$language.php" ) ) ) {
ob_start();
include realpath( "lang/recoded/$language.php" );
ob_end_clean();
} else {
pla_error( "Could not read language file 'lang/recoded/$language.php'. Either the file
does not exist, or its permissions do not allow phpLDAPadmin to read it." );
}
}
}
// If config.php doesn't create the templates array, create it here.
if( ! isset( $templates ) || ! is_array( $templates ) )
# If config.php doesn't create the templates array, create it here.
if (! isset($templates) || ! is_array($templates))
$templates = array();
// Always including the 'custom' template (the most generic and flexible)
$templates['custom'] =
array( 'desc' => 'Custom',
'icon' => 'images/object.png',
'handler' => 'custom.php' );
# Always including the 'custom' template (the most generic and flexible)
$templates['custom'] =
array('desc' => 'Custom',
'icon' => 'images/object.png',
'handler' => 'custom.php' );
// Strip slashes from GET, POST, and COOKIE variables if this
// PHP install is configured to automatically addslashes()
if ( get_magic_quotes_gpc() && ( ! isset( $slashes_stripped ) || ! $slashes_stripped ) ) {
/*
* Strip slashes from GET, POST, and COOKIE variables if this
* PHP install is configured to automatically addslashes()
*/
if (get_magic_quotes_gpc() && (! isset($slashes_stripped) || ! $slashes_stripped)) {
array_stripslashes($_REQUEST);
array_stripslashes($_GET);
array_stripslashes($_POST);
array_stripslashes($_COOKIE);
@ -159,4 +142,13 @@ if ( get_magic_quotes_gpc() && ( ! isset( $slashes_stripped ) || ! $slashes_stri
$slashes_stripped = true;
}
/*
* Update $_SESSION['activity']
* for timeout and automatic logout feature
*/
if (isset($_REQUEST['server_id'])) {
$ldapserver = $ldapservers->Instance($_REQUEST['server_id']);
if ($ldapserver->haveAuthInfo())
set_lastactivity($ldapserver);
}
?>

579
compare.php Normal file
View File

@ -0,0 +1,579 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/compare.php,v 1.10 2005/09/25 16:11:44 wurley Exp $
/**
* Compare two DNs - the destination DN is editable.
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$dn_src = isset($_POST['dn_src']) ? $_POST['dn_src'] : null;
$dn_dst = isset($_POST['dn_dst']) ? $_POST['dn_dst'] : null;
$encoded_dn_src = rawurlencode($dn_src);
$encoded_dn_dst = rawurlencode($dn_dst);
$server_id_src = (isset($_POST['server_id_src']) ? $_POST['server_id_src'] : '');
$server_id_dst = (isset($_POST['server_id_dst']) ? $_POST['server_id_dst'] : '');
$ldapserver_src = $ldapservers->Instance($server_id_src);
if ( ! $ldapserver_src->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$ldapserver_dst = $ldapservers->Instance($server_id_dst);
if ( ! $ldapserver_src->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
dn_exists($ldapserver_src,$dn_src) or pla_error(sprintf($lang['no_such_entry'],pretty_print_dn($dn_src)));
dn_exists($ldapserver_dst,$dn_dst) or pla_error(sprintf($lang['no_such_entry'],pretty_print_dn($dn_dst)));
$friendly_attrs = process_friendly_attr_table();
$attrs_src = get_object_attrs($ldapserver_src,$dn_src,false,$config->GetValue('deref','view'));
$attrs_dst = get_object_attrs($ldapserver_dst,$dn_dst,false,$config->GetValue('deref','view'));
# Get a list of all attributes.
$attrs_all = array_keys($attrs_src);
foreach ($attrs_dst as $key => $val)
if (! in_array($key,$attrs_all))
$attrs_all[] = $key;
include './header.php';
?>
<body>
<table class="comp_dn" border=0>
<tr><td colspan=6>
<h3 class="title"><?php echo $lang['comparing']; ?></h3>
</td></tr>
<tr>
<td colspan=2 width=20%>
<h3 class="subtitle"><?php echo $lang['attribute']; ?><br />&nbsp;</h3>
</td>
<td colspan=2 width=40%>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver_src->name; ?></b><br /><?php echo $lang['distinguished_name'];?>: <b><?php echo htmlspecialchars(($dn_src)); ?></b></h3>
</td>
<td colspan=2 width=40%>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver_dst->name; ?></b><br /><?php echo $lang['distinguished_name'];?>: <b><?php echo htmlspecialchars(($dn_dst)); ?></b></h3>
</td>
</tr>
<tr>
<td colspan=6 align=right>
<form action="compare.php" method="post" name="compare_form">
<input type="hidden" name="server_id_src" value="<?php echo $ldapserver_dst->server_id; ?>" />
<input type="hidden" name="server_id_dst" value="<?php echo $ldapserver_src->server_id; ?>" />
<input type="hidden" name="dn_src" value="<?php echo htmlspecialchars( $dn_dst ); ?>" />
<input type="hidden" name="dn_dst" value="<?php echo htmlspecialchars( $dn_src ); ?>" />
<input type="submit" value="<?php echo $lang['switch_entry']; ?>" />
</form>
</td>
</tr>
<?php
if(! $attrs_all || ! is_array($attrs_all)) {
printf('<tr><td colspan="2">(%s)</td></tr>',$lang['no_attributes']);
print '</table>';
print '</html>';
die();
}
sort($attrs_all);
# Work through each of the attributes.
foreach ($attrs_all as $attr) {
flush();
# If this is the DN, get the next attribute.
if (! strcasecmp($attr,'dn'))
continue;
# Has the config.php specified that this attribute is to be hidden or shown?
if (is_attr_hidden($ldapserver_src,$attr) || is_attr_hidden($ldapserver_dst,$attr))
continue;
?>
<!-- Begin Attribute -->
<tr>
<?php foreach (array('src','dst') as $side) { ?>
<?php
if ($side == 'dst' && ! $ldapserver_dst->isReadOnly()) { ?>
<form action="update_confirm.php" method="post" name="edit_form">
<input type="hidden" name="server_id" value="<?php echo $ldapserver_dst->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn_dst; ?>" />
<?php }
$schema_attr_src = get_schema_attribute($ldapserver_src,$attr,$dn_src);
$schema_attr_dst = get_schema_attribute($ldapserver_dst,$attr,$dn_dst);
# Setup the $attr_note, which will be displayed to the right of the attr name (if any)
$attr_note = '';
$required_note = '';
# is there a user-friendly translation available for this attribute?
if (isset($friendly_attrs[strtolower($attr)])) {
$attr_display = $friendly_attrs[strtolower($attr)];
$attr_note = sprintf('<acronym title="%s">alias</acronym>',sprintf($lang['alias_for'],$attr_display,$attr));
} else {
$attr_note = '';
$attr_display = $attr;
}
# is this attribute required by an objectClass?
$required_by = '';
switch ($side) {
case 'src':
$ldapserver = $ldapserver_src;
if ($schema_attr_src)
foreach ($schema_attr_src->getRequiredByObjectClasses() as $required)
if (isset($attrs_src['objectClass']) && in_array(strtolower($required),arrayLower($attrs_src['objectClass'])))
$required_by .= $required . ' ';
# It seems that some LDAP servers (Domino) returns attributes in lower case?
elseif( isset($attrs_src['objectclass']) && in_array(strtolower($required),arrayLower($attrs_src['objectclass'])))
$required_by .= $required . ' ';
break;
case 'dst':
$ldapserver = $ldapserver_dst;
if ($schema_attr_dst)
foreach ($schema_attr_dst->getRequiredByObjectClasses() as $required)
if (isset($attrs_dst['objectClass']) && in_array(strtolower($required),arrayLower($attrs_dst['objectClass'])))
$required_by .= $required . ' ';
# It seems that some LDAP servers (Domino) returns attributes in lower case?
elseif (isset($attrs_dst['objectclass']) && in_array(strtolower($required),arrayLower($attrs_dst['objectclass'])))
$required_by .= $required . ' ';
break;
}
if ($side == 'src') { ?>
<td class="attr">
<?php $schema_href="schema.php?server_id=$server_id_src&amp;view=attributes&amp;viewvalue=".real_attr_name($attr); ?>
<b><a title="<?php echo sprintf($lang['attr_name_tooltip'],$attr) ?>" href="<?php echo $schema_href; ?>"><?php echo $attr_display; ?></a></b>
</td>
<td class="attr_note">
<sup><small><?php echo $attr_note; ?></small></sup>
</td>
<?php }
if ($required_by) {
$required_note .= sprintf('<acronym title="%s">%s</acronym>',sprintf($lang['required_for'],$required_by),$lang['required']);
?>
<td colspan=2 class="attr_note">
<sup><small><?php echo $required_note; ?></small></sup>
</td>
<?php } else { ?>
<td colspan=2 class="attr_note">&nbsp;</td>
<?php } ?>
<?php if (is_attr_read_only($ldapserver,$attr)) { ?>
<small>(<acronym title="<?php echo $lang['read_only_tooltip']; ?>"><?php echo $lang['read_only']; ?></acronym>)</small>
<?php } ?>
</td>
<?php } ?>
</tr>
<!-- End of Attribute -->
<!-- Begin Values -->
<tr>
<?php
foreach (array('src','dst') as $side) {
$vals = null; ?>
<?php
# If this attribute isnt set, then show a blank.
$toJump = 0;
switch ($side) {
case 'src':
print '<td colspan=2>&nbsp</td><td class="attr">';
if (! isset($attrs_src[$attr])) {
echo "<small>&lt;". $lang['no_value']."&gt;</small></td>";
$toJump = 1;
continue;
} else
$vals = $attrs_src[$attr];
$ldapserver = $ldapserver_src;
break;
case 'dst':
print '<td colspan=2>&nbsp</td><td class="val">';
if (! isset($attrs_dst[$attr])) {
echo "<small>&lt;". $lang['no_value']."&gt;</small></td>";
$toJump = 1;
continue;
} else
$vals = $attrs_dst[$attr];
$ldapserver = $ldapserver_dst;
break;
}
if ($toJump) continue;
/*
* Is this attribute a jpegPhoto?
*/
if (is_jpeg_photo($ldapserver,$attr)) {
switch ($side) {
case 'src':
// Don't draw the delete buttons if there is more than one jpegPhoto
// (phpLDAPadmin can't handle this case yet)
draw_jpeg_photos( $ldapserver, $dn_src, $attr, false );
break;
case 'dst':
if( $ldapserver_dst->isReadOnly() || is_attr_read_only( $ldapserver_dst, $attr ) )
draw_jpeg_photos( $ldapserver, $dn_dst, $attr, false );
else
draw_jpeg_photos( $ldapserver, $dn_dst, $attr, true );
break;
}
// proceed to the next attribute
echo "</td>\n";
continue;
}
/*
* Is this attribute binary?
*/
if( is_attr_binary( $ldapserver, $attr ) ) {
switch ($side) {
case 'src':
$href = sprintf("download_binary_attr.php?server_id=%s&dn=%s&attr=%s",$ldapserver->server_id,$encoded_dn_src,$attr);
break;
case 'dst':
$href = sprintf("download_binary_attr.php?server_id=%s&dn=%s&attr=%s",$ldapserver->server_id,$encoded_dn_dst,$attr);
break;
}
?>
<small>
<?php echo $lang['binary_value']; ?><br />
<?php if( count( $vals ) > 1 ) { for( $i=1; $i<=count($vals); $i++ ) { ?>
<a href="<?php echo $href . "&amp;value_num=$i"; ?>"><img
src="images/save.png" /> <?php echo $lang['download_value']; ?>(<?php echo $i; ?>)</a><br />
<?php } } else { ?>
<a href="<?php echo $href; ?>"><img src="images/save.png" /> <?php echo $lang['download_value']; ?></a><br />
<?php }
if( $side == 'dst' && ! $ldapserver_dst->isReadOnly() && ! is_attr_read_only( $ldapserver, $attr ) ) { ?>
<a href="javascript:deleteAttribute( '<?php echo $attr; ?>' );" style="color:red;"><img src="images/trash.png" /> <?php echo $lang['delete_attribute']; ?></a>
<?php } ?>
</small>
</td>
<?php continue;
}
/*
* Note: at this point, the attribute must be text-based (not binary or jpeg)
*/
/*
* If this server is in read-only mode or this attribute is configured as read_only,
* simply draw the attribute values and continue.
*/
if( $side == 'dst' && ($ldapserver->isReadOnly() || is_attr_read_only( $ldapserver, $attr )) ) {
if( is_array( $vals ) ) {
foreach( $vals as $i => $val ) {
if( trim( $val ) == "" )
echo "<span style=\"color:red\">[" . $lang['empty'] . "]</span><br />\n";
elseif( 0 == strcasecmp( $attr, 'userPassword' ) && $config->GetValue('appearance','obfuscate_password_display'))
echo preg_replace( '/./', '*', $val ) . "<br />";
else
echo htmlspecialchars( $val ) . "<br />";
}
} else {
if( 0 == strcasecmp( $attr, 'userPassword' ) && $config->GetValue('appearance','obfuscate_password_display'))
echo preg_replace( '/./', '*', $vals ) . "<br />";
else
echo $vals . "<br />";
}
echo "</td>";
continue;
}
/*
* Is this a userPassword attribute?
*/
if( ! strcasecmp( $attr, 'userpassword' ) ) {
$user_password = $vals[0];
$enc_type = get_enc_type( $user_password );
// Set the default hashing type if the password is blank (must be newly created)
if( $user_password == '' ) {
$enc_type = get_default_hash( $server_id );
}
if ($side == 'dst') { ?>
<input type="hidden" name="old_values[userpassword]" value="<?php echo htmlspecialchars($user_password); ?>" />
<!-- Special case of enc_type to detect changes when user changes enc_type but not the password value -->
<input size="38" type="hidden" name="old_enc_type" value="<?php echo ($enc_type==''?'clear':$enc_type); ?>" />
<?php }
if( $config->GetValue('appearance','obfuscate_password_display') || is_null( $enc_type ) ) {
echo htmlspecialchars( preg_replace( "/./", "*", $user_password ) );
} else {
echo htmlspecialchars( $user_password );
} ?>
<br />
<?php if ($side == 'dst') { ?>
<input style="width: 260px" type="password" name="new_values[userpassword]" value="<?php echo htmlspecialchars( $user_password ); ?>" />
<?php echo enc_type_select_list($enc_type);
} ?>
<br />
<script language="javascript">
<!--
function passwordComparePopup()
{
mywindow = open( 'password_checker.php', 'myname', 'resizable=no,width=450,height=200,scrollbars=1' );
mywindow.location.href = 'password_checker.php?hash=<?php echo base64_encode($user_password); ?>&base64=true';
if( mywindow.opener == null )
mywindow.opener = self;
}
-->
</script>
<small><a href="javascript:passwordComparePopup()"><?php echo $lang['t_check_pass']; ?></a></small>
</td>
<?php continue;
}
/*
* Is this a boolean attribute?
*/
if( is_attr_boolean( $ldapserver, $attr) ) {
$val = $vals[0];
if ($side = 'dst') {?>
<input type="hidden" name="old_values[<?php echo htmlspecialchars( $attr ); ?>]" value="<?php echo htmlspecialchars($val); ?>" />
<select name="new_values[<?php echo htmlspecialchars( $attr ); ?>]">
<option value="TRUE"<?php echo ($val=='TRUE' ? ' selected' : ''); ?>><?php echo $lang['true']; ?></option>
<option value="FALSE"<?php echo ($val=='FALSE' ? ' selected' : ''); ?>><?php echo $lang['false']; ?></option>
<option value="">(<?php echo $lang['none_remove_value']; ?>)</option>
</select>
<?php } ?>
</td>
<?php continue;
}
/*
* End of special case attributes (non plain text).
*/
foreach( $vals as $i => $val ) {
if ($side == 'dst') {
$input_name = "new_values[" . htmlspecialchars( $attr ) . "][$i]";
// We smack an id="..." tag in here that doesn't have [][] in it to allow the
// draw_chooser_link() to identify it after the user clicks.
$input_id = "new_values_" . htmlspecialchars($attr) . "_" . $i; ?>
<!-- The old_values array will let update.php know if the entry contents changed
between the time the user loaded this page and saved their changes. -->
<input type="hidden" name="old_values[<?php echo htmlspecialchars( $attr ); ?>][<?php echo $i; ?>]" value="<?php echo htmlspecialchars($val); ?>" />
<?php }
// Is this value is a structural objectClass, make it read-only
if( 0 == strcasecmp( $attr, 'objectClass' ) ) { ?>
<a title="<?php echo $lang['view_schema_for_oclass']; ?>" href="schema.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;view=objectClasses&amp;viewvalue=<?php echo htmlspecialchars( $val ); ?>"><img src="images/info.png" /></a>
<?php $schema_object = get_schema_objectclass( $ldapserver, $val);
if ($schema_object->type == 'structural') {
echo "$val <small>(<acronym title=\"" . sprintf( $lang['structural_object_class_cannot_remove'] ) . "\">" . $lang['structural'] . "</acronym>)</small><br />";
if ($side == 'dst') {?>
<input type="hidden" name="<?php echo $input_name; ?>" id="<?php echo $input_id; ?>" value="<?php echo htmlspecialchars($val); ?>" />
<?php }
continue;
}
}
if( is_dn_string( $val ) || is_dn_attr( $ldapserver, $attr ) ) { ?>
<a title="<?php echo sprintf( $lang['go_to_dn'], htmlspecialchars($val) ); ?>" href="edit.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;dn=<?php echo rawurlencode($val); ?>"><img style="vertical-align: top" src="images/go.png" /></a>
<?php } elseif( is_mail_string( $val ) ) { ?>
<a href="mailto:<?php echo htmlspecialchars($val); ?>"><img style="vertical-align: center" src="images/mail.png" /></a>
<?php } elseif( is_url_string( $val ) ) { ?>
<a href="<?php echo htmlspecialchars($val); ?>" target="new"><img style="vertical-align: center" src="images/dc.png" /></a>
<?php }
if( is_multi_line_attr( $attr, $val, $ldapserver->server_id ) ) {
if ($side == 'dst') {?>
<textarea class="val" rows="3" cols="30" name="<?php echo $input_name; ?>" id="<?php echo $input_id; ?>"><?php echo htmlspecialchars($val); ?></textarea>
<?php } else {
echo htmlspecialchars($val);
}
} else {
if ($side == 'dst') {?>
<input type="text" class="val" name="<?php echo $input_name; ?>" id="<?php echo $input_id; ?>" value="<?php echo htmlspecialchars($val); ?>" />
<?php } else {
echo htmlspecialchars($val);
}
}
// draw a link for popping up the entry browser if this is the type of attribute
// that houses DNs.
if( is_dn_attr( $ldapserver, $attr ) )
draw_chooser_link( "edit_form.$input_id", false ); ?>
<br />
<?php } ?>
</td>
<?php } /* end foreach value */ ?>
</tr>
<?php
/* Draw the "add value" link under the list of values for this attributes */
if (! $ldapserver_dst->isReadOnly()) {
// First check if the required objectClass is in this DN
$isOK = 0;
$src_oclass = array();
$attr_object = get_schema_attribute( $ldapserver_dst, $attr, $dn_dst );
foreach ($attr_object->used_in_object_classes as $oclass) {
if (in_array(strtolower($oclass),arrayLower($attrs_dst['objectClass']))) {
$isOK = 1;
break;
} else {
// Find oclass that the source has that provides this attribute.
if (in_array($oclass,$attrs_src['objectClass']))
$src_oclass[] = $oclass;
}
}
print "<tr><td colspan=2></td><td colspan=2>&nbsp</td><td>&nbsp;</td><td>";
if (! $isOK) {
if (count($src_oclass) == 1) {
$add_href = "add_oclass_form.php?server_id=$ldapserver_dst->server_id&dn=$encoded_dn_dst&new_oclass=$src_oclass[0]";
} else {
$add_href = "add_value_form.php?server_id=$ldapserver_dst->server_id&dn=$encoded_dn_dst&attr=objectClass";
}
if ($attr == 'objectClass')
printf('<div class="add_oclass">(<a href="%s" title="%s">%s</a>)</div>',$add_href,$lang['add_oclass_and_attrs'],$lang['add_value']);
else
printf('<div class="add_oclass">(<a href="%s" title="%s">%s</a>)</div>',$add_href,sprintf($lang['need_oclass'], implode(" ",$src_oclass)),$lang['add_new_objectclass']);
} else {
if(! $schema_attr_dst->getIsSingleValue() || (! isset($vals))) {
$add_href = "add_value_form.php?server_id=$ldapserver_dst->server_id&dn=$encoded_dn_dst&attr=" . rawurlencode( $attr );
printf('<div class="add_value">(<a href="%s" title="%s">%s</a>)</div>',
$add_href,sprintf($lang['add_value_tooltip'],$attr),$lang['add_value']);
}
}
}
print "</td></tr>"; ?>
</td>
<?php flush(); ?>
</tr>
<?php } /* End foreach( $attrs as $attr => $vals ) */
if( ! $ldapserver_dst->isReadOnly( ) ) { ?>
<td colspan="2">&nbsp</td><td colspan=2><center><input type="submit" value="<?php echo $lang['save_changes']; ?>" /></center></td></tr></form>
<?php } ?>
</table>
<?php /* If this entry has a binary attribute, we need to provide a form for it to submit when deleting it. */ ?>
<script language="javascript">
//<!--
function deleteAttribute( attrName )
{
if( confirm( "<?php echo $lang['really_delete_attribute']; ?> '" + attrName + "'?" ) ) {
document.delete_attribute_form.attr.value = attrName;
document.delete_attribute_form.submit();
}
}
//-->
</script>
<!-- This form is submitted by JavaScript when the user clicks "Delete attribute" on a binary attribute -->
<form name="delete_attribute_form" action="delete_attr.php" method="post">
<input type="hidden" name="server_id" value="<?php echo $ldapserver_dst->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn_dst; ?>" />
<input type="hidden" name="attr" value="FILLED IN BY JAVASCRIPT" />
</form>
</body>
</html>

79
compare_form.php Normal file
View File

@ -0,0 +1,79 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/compare_form.php,v 1.2 2005/07/22 05:47:43 wurley Exp $
/**
* Compares to DN entries side by side.
*
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$dn = (isset($_GET['dn']) ? $_GET['dn'] : '');
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
$container = get_container( $dn );
$attrs = get_object_attrs( $ldapserver, $dn );
$select_server_html = server_select_list($ldapserver->server_id,true,'server_id_dst');
include './header.php'; ?>
<body>
<h3 class="title"><?php echo $lang['compare_dn']. '&nbsp;' . $rdn; ?></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b>
<?php if ($dn) { ?>
&nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b>
<?php } ?>
</h3>
<center>
<?php echo $lang['compare']; ?> <b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo $lang['with']; ?>:<br />
<br />
<form action="compare.php" method="post" name="compare_form">
<input type="hidden" name="server_id_src" value="<?php echo $ldapserver->server_id; ?>" />
<table style="border-spacing: 10px">
<tr>
<?php if (! $dn) { ?>
<td><acronym title="<?php echo $lang['compf_dn_tooltip']; ?>"><?php echo $lang['compf_source_dn']; ?></acronym>:</td>
<td>
<input type="text" name="dn_src" size="45" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php draw_chooser_link( 'compare_form.dn_src', 'true', $rdn ); ?></td>
</td>
<?php } else { ?>
<input type="hidden" name="dn_src" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php } ?>
</tr>
<tr>
<td><acronym title="<?php echo $lang['compf_dn_tooltip']; ?>"><?php echo $lang['copyf_dest_dn']; ?></acronym>:</td>
<td>
<input type="text" name="dn_dst" size="45" value="" />
<?php draw_chooser_link( 'compare_form.dn_dst', 'true', '' ); ?></td>
</td>
</tr>
<tr>
<td><?php echo $lang['copyf_dest_server']?>:</td>
<td><?php echo $select_server_html; ?></td>
</tr>
<tr>
<td colspan="2" align="right"><input type="submit" value="<?php echo $lang['compare']; ?>" /></td>
</tr>
</table>
</form>
</center>
</body>
</html>

View File

@ -1,389 +1,340 @@
<?php
/*
* The phpLDAPadmin config file
*
* This is where you customize phpLDAPadmin. The most important
* part is immediately below: The "LDAP Servers" section.
* You must specify at least one LDAP server there. You may add
* as many as you like. You can also specify your language, and
* many other options.
*
*/
/**
* phpLDAPadmin can encrypt the content of sensitive cookies if you set this
* to a big random string.
* The phpLDAPadmin config file
*
* This is where you can customise some of the phpLDAPadmin defaults
* that are defined in config_default.php.
*
* To override a default, use the $config->custom variable to do so.
* For example, the default for defining the language in config_default.php
*
* $this->default->appearance['lang'] = array(
* 'desc'=>'Language',
* 'default'=>'auto');
*
* to override this, use $config->custom->appearance['lang'] = 'en';
*
* This file is also used to configure your LDAP server connections.
*
* You must specify at least one LDAP server there. You may add
* as many as you like. You can also specify your language, and
* many other options.
*/
$blowfish_secret = '';
// Your LDAP servers
/** **/
/** Miscellaneous Configuration overrides **/
/** **/
/* If you are asked to put pla in debug mode, this is how you do it: */
// $config->custom->debug['level'] = 2;
// $config->custom->debug['syslog'] = true;
/* phpLDAPadmin can encrypt the content of sensitive cookies if you set this
to a big random string. */
$config->custom->session['blowfish'] = '';
/* The language setting. If you set this to 'auto', phpLDAPadmin will
attempt to determine your language automatically. Otherwise, available
lanaguages are: 'ct', 'de', 'en', 'es', 'fr', 'it', 'nl', and 'ru'
Localization is not complete yet, but most strings have been translated.
Please help by writing language files. See lang/en.php for an example. */
// $config->custom->appearance['language'] = 'auto';
/* The temporary storage directory where we will put jpegPhoto data
This directory must be readable and writable by your web server. */
// $config->custom->jpeg['tmpdir'] = "c:\\temp"; // Example for Windows systems
$config->custom->jpeg['tmpdir'] = "/tmp"; // Example for Unix systems
/** **/
/** Your LDAP servers **/
/** **/
$i=0;
$servers = array();
$servers[$i]['name'] = 'My LDAP Server'; /* A convenient name that will appear in
the tree viewer and throughout phpLDAPadmin to
identify this LDAP server to users. */
$servers[$i]['host'] = 'ldap.example.com'; /* Examples:
'ldap.example.com',
'ldaps://ldap.example.com/',
'ldapi://%2fusr%local%2fvar%2frun%2fldapi'
(Unix socket at /usr/local/var/run/ldap)
Note: Leave 'host' blank to make phpLDAPadmin
ignore this server. */
$servers[$i]['base'] = 'dc=example,dc=com'; /* The base DN of your LDAP server. Leave this
blank to have phpLDAPadmin auto-detect it for you. */
$servers[$i]['port'] = 389; /* The port your LDAP server listens on
(no quotes). 389 is standard. */
$servers[$i]['auth_type'] = 'config'; /* Three options for auth_type:
1. 'cookie': you will login via a web form,
and a client-side cookie will store your
login dn and password.
2. 'session': same as cookie but your login dn
and password are stored on the web server in
a persistent session variable.
3. 'config': specify your login dn and password
here in this config file. No login will be
required to use phpLDAPadmin for this server.
Choose wisely to protect your authentication
information appropriately for your situation. If
you choose 'cookie', your cookie contents will be
encrypted using blowfish and the secret your specify
above as $blowfish_secret. */
$servers[$i]['login_dn'] = 'cn=Manager,dc=example,dc=com';
/* The DN of the user for phpLDAPadmin to bind with.
For anonymous binds or 'cookie' or 'session' auth_types,
leave the login_dn and login_pass blank. If you specify a
login_attr in conjunction with a cookie or session auth_type,
then you can also specify the login_dn/login_pass here for
searching the directory for users (ie, if your LDAP server
does not allow anonymous binds. */
$servers[$i]['login_pass'] = 'secret'; /* Your LDAP password. If you specified an empty login_dn above, this
MUST also be blank. */
$servers[$i]['tls'] = false; /* Use TLS (Transport Layer Security) to connect to the LDAP
server. */
$servers[$i]['low_bandwidth'] = false; /* If the link between your web server and this LDAP server is
slow, it is recommended that you set 'low_bandwidth' to true.
This will cause phpLDAPadmin to forego some "fancy" features
to conserve bandwidth. */
$servers[$i]['default_hash'] = 'crypt'; /* Default password hashing algorithm.
One of md5, ssha, sha, md5crpyt, smd5, blowfish, crypt or
leave blank for now default algorithm. */
$servers[$i]['login_attr'] = 'dn'; /* If you specified 'cookie' or 'session' as the auth_type above,
you can optionally specify here an attribute
to use when logging in. If you enter 'uid'
and login as 'dsmith', phpLDAPadmin will
search for (uid=dsmith) and log in as that user. Leave
blank or specify 'dn' to use full DN for
logging in. Note also that if your LDAP server requires
you to login to perform searches, you can enter
the DN to use when searching in 'login_dn' and
'login_pass' above. You may also specify 'string', in which case
you can provide a string to use for logging users
in. See 'login_string' directly below. */
$servers[$i]['login_string'] = 'uid=<username>,ou=People,dc=example,dc=com';
/* If you specified 'cookie' or 'session' as the auth_type above,
and you specified 'string' for 'login_attr' above, you must provide
a string here for logging users in. If, for example, I
I have a lot of user entries with DNs like
"uid=dsmith,ou=People,dc=example,dc=com", then I can specify a string
"uid=<username>,ou=People,dc=example,dc=com" and my users can login with
their user names alone, i.e., "dsmith" in this case. */
$servers[$i]['login_class'] = ''; /* If 'login_attr' is used above such that phpLDAPadmin will
search for your DN at login, you may restrict the search to
a specific objectClass. E.g., set this to 'posixAccount' or
'inetOrgPerson', depending upon your setup. */
$servers[$i]['read_only'] = false; /* Specify true If you want phpLDAPadmin to not
display or permit any modification to the
LDAP server. */
$servers[$i]['show_create'] = true; /* Specify false if you do not want phpLDAPadmin to
draw the 'Create new' links in the tree viewer. */
$servers[$i]['enable_auto_uid_numbers'] = false;
/* This feature allows phpLDAPadmin to
automatically determine the next
available uidNumber for a new entry. */
$servers[$i]['auto_uid_number_mechanism'] = 'search';
/* The mechanism to use when finding the next available uidNumber.
Two possible values: 'uidpool' or 'search'. The 'uidpool'
mechanism uses an existing uidPool entry in your LDAP server
to blindly lookup the next available uidNumber. The 'search'
mechanism searches for entries with a uidNumber value and finds
the first available uidNumber (slower). */
$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com';
/* The DN of the search base when the 'search'
mechanism is used above. */
$servers[$i]['auto_uid_number_min'] = 1000;
/* The minimum number to use when searching for the next
available UID number (only when 'search' is used for
auto_uid_number_mechanism' */
$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
/* The DN of the uidPool entry when 'uidpool'
mechanism is used above. */
$servers[$i]['auto_uid_number_search_dn'] = '';
/* If you set this, then phpldapadmin will bind to LDAP with this user
ID when searching for the uidnumber. The idea is, this user id would
have full (readonly) access to uidnumber in your ldap directory (the
logged in user may not), so that you can be guaranteed to get a unique
uidnumber for your directory. */
$servers[$i]['auto_uid_number_search_dn_pass'] = '';
/* The password for the dn above. */
$servers[$i]['disable_anon_bind'] = false;
/* Disable the anonymous login. */
$servers[$i]['custom_pages_prefix'] = 'custom_';
/* Use customized page with prefix when available. */
$ldapservers = new LDAPServers;
$servers[$i]['unique_attrs_dn'] = '';
/* If you set this, then phpldapadmin will bind to LDAP with this user
when testing for unique attributes (as set in unique_attrs array). If you
want to enforce unique attributes, than this id should have full (readonly)
access to the attributes in question (the logged in user may not have
enough access) */
$servers[$i]['unique_attrs_dn_pass'] = '';
/* The password for the dn above */
/* A convenient name that will appear in the tree viewer and throughout phpLDAPadmin to
identify this LDAP server to users. */
$ldapservers->SetValue($i,'server','name','My LDAP Server');
/* Examples:
'ldap.example.com',
'ldaps://ldap.example.com/',
'ldapi://%2fusr%local%2fvar%2frun%2fldapi' (Unix socket at /usr/local/var/run/ldap) */
// $ldapservers->SetValue($i,'server','host','127.0.0.1');
/* The port your LDAP server listens on (no quotes). 389 is standard. */
// $ldapservers->SetValue($i,'server','port','389');
/* Array of base DNs of your LDAP server. Leave this blank to have phpLDAPadmin auto-detect it for you. */
// $ldapservers->SetValue($i,'server','base',array(''));
/* Three options for auth_type:
1. 'cookie': you will login via a web form, and a client-side cookie will store your
login dn and password.
2. 'session': same as cookie but your login dn and password are stored on the web server in
a persistent session variable.
3. 'config': specify your login dn and password here in this config file. No login will be
required to use phpLDAPadmin for this server.
Choose wisely to protect your authentication information appropriately for your situation. If
you choose 'cookie', your cookie contents will be encrypted using blowfish and the secret your specify
above as session['blowfish']. */
// $ldapservers->SetValue($i,'server','auth_type','cookie');
/* The DN of the user for phpLDAPadmin to bind with. For anonymous binds or 'cookie' or 'session' auth_types,
leave the login_dn and login_pass blank. If you specify a login_attr in conjunction with a cookie or
session auth_type, then you can also specify the login_dn/login_pass here for searching the directory for
users (ie, if your LDAP server does not allow anonymous binds. */
// $ldapservers->SetValue($i,'login','dn','cn=Manager,dc=example,dc=com');
/* Your LDAP password. If you specified an empty login_dn above, this MUST also be blank. */
// $ldapservers->SetValue($i,'login','pass','secret');
/* Use TLS (Transport Layer Security) to connect to the LDAP server. */
// $ldapservers->SetValue($i,'server','tls',false);
/* If the link between your web server and this LDAP server is slow, it is recommended that you set
'low_bandwidth' to true. This will cause phpLDAPadmin to forego some "fancy" features to conserve bandwidth. */
// $ldapservers->SetValue($i,'server','low_bandwidth',false);
/* Default password hashing algorithm. One of md5, ssha, sha, md5crpyt, smd5, blowfish, crypt or
leave blank for now default algorithm. */
// $ldapservers->SetValue($i,'appearance','password_hash','md5');
/* If you specified 'cookie' or 'session' as the auth_type above, you can optionally specify here an attribute
to use when logging in. If you enter 'uid' and login as 'dsmith', phpLDAPadmin will search for (uid=dsmith)
and log in as that user. Leave blank or specify 'dn' to use full DN for logging in. Note also that if your
LDAP server requires you to login to perform searches, you can enter the DN to use when searching in 'login_dn'
and 'login_pass' above. You may also specify 'string', in which case you can provide a string to use for
logging users in. See 'login_string' directly below. */
// $ldapservers->SetValue($i,'login','attr','uid');
/* If you specified 'cookie' or 'session' as the auth_type above, and you specified 'string' for 'login_attr'
above, you must provide a string here for logging users in. If, for example, I have a lot of user entries with
DNs like "uid=dsmith,ou=People,dc=example,dc=com", then I can specify a string
"uid=<username>,ou=People,dc=example,dc=com" and my users can login with their user names alone, ie: "dsmith"
in this case. */
// $ldapservers->SetValue($i,'login','string','uid=<username>,ou=People,dc=example,dc=com');
/* If 'login_attr' is used above such that phpLDAPadmin will search for your DN at login, you may restrict the
search to a specific objectClass. E.g., set this to 'posixAccount' or 'inetOrgPerson', depending upon your setup. */
// $ldapservers->SetValue($i,'login','class','');
/* Specify true If you want phpLDAPadmin to not display or permit any modification to the LDAP server. */
// $ldapservers->SetValue($i,'server','read_only',false);
/* Specify false if you do not want phpLDAPadmin to draw the 'Create new' links in the tree viewer. */
// $ldapservers->SetValue($i,'appearance','show_create',true);
/* This feature allows phpLDAPadmin to automatically determine the next available uidNumber for a new entry. */
// $ldapservers->SetValue($i,'auto_number','enable',true);
/* The mechanism to use when finding the next available uidNumber. Two possible values: 'uidpool' or 'search'.
The 'uidpool' mechanism uses an existing uidPool entry in your LDAP server to blindly lookup the next available
uidNumber. The 'search' mechanism searches for entries with a uidNumber value and finds the first available
uidNumber (slower). */
// $ldapservers->SetValue($i,'auto_number','mechanism','search');
/* The DN of the search base when the 'search' mechanism is used above. */
// $ldapservers->SetValue($i,'auto_number','search_base','ou=People,dc=example,dc=com');
/* The minimum number to use when searching for the next available UID number (only when 'search' is used for
auto_uid_number_mechanism' */
// $ldapservers->SetValue($i,'auto_number','min','1000');
/* The DN of the uidPool entry when 'uidpool' mechanism is used above. */
// $servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
/* If you set this, then phpldapadmin will bind to LDAP with this user ID when searching for the uidnumber. The
idea is, this user id would have full (readonly) access to uidnumber in your ldap directory (the logged in user
may not), so that you can be guaranteed to get a unique uidnumber for your directory. */
// $ldapservers->SetValue($i,'auto_number','dn','');
/* The password for the dn above. */
// $ldapservers->SetValue($i,'auto_number','pass','');
/* Disable the anonymous login. */
// $ldapservers->SetValue($i,'login','anon_bind',true);
/* Use customized page with prefix when available. */
// $ldapservers->SetValue($i,'custom','pages_prefix','custom_');
/* If you set this, then phpldapadmin will bind to LDAP with this user when testing for unique attributes (as set
in unique_attrs array). If you want to enforce unique attributes, than this id should have full (readonly) access
to the attributes in question (the logged in user may not have enough access) */
// $ldapservers->SetValue($i,'unique_attrs','dn','');
/* The password for the dn above */
// $ldapservers->SetValue($i,'unique_attrs','pass','');
/* If you set this, then only these DNs are allowed to log in. This array can contain individual users, groups or
ldap search filter(s). Keep in mind that the user has not authenticated yet, so this will be an anonymous search
to the LDAP server, so make your ACLs allow these searches to return results! */
// $ldapservers->SetValue($i,'login','allowed_dns',array(
// 'uid=stran,ou=People,dc=example,dc=com',
// '(&(gidNumber=811)(objectClass=groupOfNames))',
// '(|(uidNumber=200)(uidNumber=201))',
// 'cn=callcenter,ou=Group,dc=example,dc=com'));
/* Set this if you dont want this LDAP server to show in the tree */
// $ldapservers->SetValue($i,'appearance','visible',true);
/* This is the time out value in minutes for the server. After as many minutes of inactivity you will be
automatically logged out. If not set, the default value will be ( session_cache_expire()-1 ) */
// $ldapservers->SetValue($i,'login','timeout',30);
/* Set this if you want phpldapadmin to perform rename operation on entry which has children. Certain servers are known
to allow it, certain are not */
// $ldapservers->SetValue($i,'server','branch_rename',false);
/* If you want to configure additional LDAP servers, do so below. */
// If you want to configure additional LDAP servers, do so below.
$i++;
$servers[$i]['name'] = 'Another server';
$servers[$i]['host'] = '';
$servers[$i]['base'] = 'dc=example,dc=com';
$servers[$i]['port'] = 389;
$servers[$i]['auth_type'] = 'config';
$servers[$i]['login_dn'] = '';
$servers[$i]['login_pass'] = '';
$servers[$i]['tls'] = false;
$servers[$i]['low_bandwidth'] = false;
$servers[$i]['default_hash'] = 'crypt';
$servers[$i]['login_attr'] = 'dn';
$servers[$i]['login_class'] = '';
$servers[$i]['read_only'] = false;
$servers[$i]['show_create'] = true;
$servers[$i]['enable_auto_uid_numbers'] = false;
$servers[$i]['auto_uid_number_mechanism'] = 'search';
$servers[$i]['auto_uid_number_search_base'] = 'ou=People,dc=example,dc=com';
$servers[$i]['auto_uid_number_min'] = 1000;
$servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
$ldapservers->SetValue($i,'server','name','LDAP Server');
$ldapservers->SetValue($i,'server','host','127.0.0.1');
$ldapservers->SetValue($i,'server','port','389');
$ldapservers->SetValue($i,'server','base',array(''));
$ldapservers->SetValue($i,'server','auth_type','cookie');
$ldapservers->SetValue($i,'login','dn','');
$ldapservers->SetValue($i,'login','pass','');
$ldapservers->SetValue($i,'server','tls',false);
$ldapservers->SetValue($i,'server','low_bandwidth',false);
$ldapservers->SetValue($i,'appearance','password_hash','md5');
$ldapservers->SetValue($i,'login','attr','uid');
$ldapservers->SetValue($i,'login','string','');
$ldapservers->SetValue($i,'login','class','');
$ldapservers->SetValue($i,'server','read_only',false);
$ldapservers->SetValue($i,'appearance','show_create',true);
$ldapservers->SetValue($i,'auto_number','enable',true);
$ldapservers->SetValue($i,'auto_number','mechanism','search');
$ldapservers->SetValue($i,'auto_number','search_base','');
$ldapservers->SetValue($i,'auto_number','min','1000');
$ldapservers->SetValue($i,'auto_number','dn','');
$ldapservers->SetValue($i,'auto_number','pass','');
$ldapservers->SetValue($i,'login','anon_bind',true);
$ldapservers->SetValue($i,'custom','pages_prefix','custom_');
$ldapservers->SetValue($i,'unique_attrs','dn','');
$ldapservers->SetValue($i,'unique_attrs','pass','');
$ldapservers->SetValue($i,'appearance','visible',false);
// If you want to configure more LDAP servers, copy and paste the above (including the "$i++;")
// The temporary storage directory where we will put jpegPhoto data
// This directory must be readable and writable by your web server
$jpeg_temp_dir = "/tmp"; // Example for Unix systems
//$jpeg_temp_dir = "c:\\temp"; // Example for Windows systems
/** **/
/** Appearance and Behavior **/
/** **/
// Set this to true if you want to hide the Request New Feature and Report bugs.
$hide_configuration_management = false;
// A format string used to display enties in the tree viewer (left-hand side)
// You can use special tokens to draw the entries as you wish. You can even mix in HTML to format the string
// Here are all the tokens you can use:
// %rdn - draw the RDN of the entry (ie, "cn=Dave")
// %dn - draw the DN of the entry (ie, "cn=Dave,ou=People,dc=example,dc=com"
// %rdnValue - draw the value of the RDN (ie, instead of "cn=Dave", just draw "Dave")
// %[attrname]- draw the value (or values) of the specified attribute.
// examle: %gidNumber
$tree_display_format = '%rdn';
//
// Examples:
//
// To draw the gidNumber and uidNumber to the right of the RDN in a small, gray font:
//$tree_display_format = '%rdn <small style="color:gray">( %gidNumber / %uidNumber )</span>';
// To draw the full DN of each entry:
//$tree_display_format = '%dn';
// To draw the objectClasses to the right in parenthesis:
//$tree_display_format = '%rdn <small style="color: gray">( %objectClass )</small>';
// To draw the user-friendly RDN value (ie, instead of "cn=Dave", just draw "Dave"):
//$tree_display_format = '%rdnValue';
// Aliases and Referrrals
//
// Similar to ldapsearh's -a option, the following options allow you to configure
// how phpLDAPadmin will treat aliases and referrals in the LDAP tree.
// For the following four settings, avaialable options include:
//
// LDAP_DEREF_NEVER - aliases are never dereferenced (eg, the contents of
// the alias itself are shown and not the referenced entry).
// LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but
// not when locating the base object of the search.
// LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base
// object but not during the search.
// LDAP_DEREF_ALWAYS - aliases should be dereferenced always (eg, the contents
// of the referenced entry is shown and not the aliasing entry)
// How to handle references and aliases in the search form. See above for options.
$search_deref = LDAP_DEREF_ALWAYS;
// How to handle references and aliases in the tree viewer. See above for options.
$tree_deref = LDAP_DEREF_NEVER;
// How to handle references and aliases for exports. See above for options.
$export_deref = LDAP_DEREF_NEVER;
// How to handle references and aliases when viewing entries. See above for options.
$view_deref = LDAP_DEREF_NEVER;
// The language setting. If you set this to 'auto', phpLDAPadmin will
// attempt to determine your language automatically. Otherwise, available
// lanaguages are: 'ct', 'de', 'en', 'es', 'fr', 'it', 'nl', and 'ru'
// Localization is not complete yet, but most strings have been translated.
// Please help by writing language files. See lang/en.php for an example.
$language = 'auto';
// Set to true if you want to draw a checkbox next to each entry in the tree viewer
// to be able to delete multiple entries at once
$enable_mass_delete = false;
// Set to true if you want LDAP data to be displayed read-only (without input fields)
// when a user logs in to a server anonymously
$anonymous_bind_implies_read_only = true;
// Set to true if you want phpLDAPadmin to redirect anonymous
// users to a search form with no tree viewer on the left after
// logging in.
$anonymous_bind_redirect_no_tree = false;
// If you used auth_type 'form' in the servers list, you can adjust how long the cookie will last
// (default is 0 seconds, which expires when you close the browser)
$cookie_time = 0; // seconds
// How many pixels wide do you want your left frame view (for the tree browser)
$tree_width = 320; // pixels
// How long to keep jpegPhoto temporary files in the jpeg_temp_dir directory (in seconds)
$jpeg_tmp_keep_time = 120; // seconds
// Would you like to see helpful hint text occacsionally?
$show_hints = true; // set to false to disable hints
// When using the search page, limit result size to this many entries
$search_result_size_limit = 50;
// By default, when searching you may display a list or a table of results.
// Set this to 'table' to see table formatted results.
// Set this to 'list' to see "Google" style formatted search results.
$default_search_display = 'list';
// If true, display all password hash values as "******". Note that clear-text
// passwords will always be displayed as "******", regardless of this setting.
$obfuscate_password_display = false;
/** **/
/** Simple Search Form Config **/
/** **/
// Which attributes to include in the drop-down menu of the simple search form (comma-separated)
// Change this to suit your needs for convenient searching. Be sure to change the corresponding
// list below ($search_attributes_display)
$search_attributes = "uid, cn, gidNumber, objectClass, telephoneNumber, mail, street";
// This list corresponds to the list directly above. If you want to present more readable names
// for your search attributes, do so here. Both lists must have the same number of entries.
$search_attributes_display = "User Name, Common Name, Group ID, Object Class, Phone Number, Email, Address";
// The list of attributes to display in each search result entry.
// Note that you can add * to the list to display all attributes
$search_result_attributes = "cn, sn, uid, postalAddress, telephoneNumber";
// You can re-arrange the order of the search criteria on the simple search form by modifying this array
// You cannot however change the names of the criteria. Criteria names will be translated at run-time.
$search_criteria_options = array( "equals", "starts with", "contains", "ends with", "sounds like" );
// If you want certain attributes to be editable as multi-line, include them in this list
// A multi-line textarea will be drawn instead of a single-line text field
$multi_line_attributes = array( "postalAddress", "homePostalAddress", "personalSignature" );
// A list of syntax OIDs which support multi-line attribute values:
$multi_line_syntax_oids = array(
// octet string syntax OID:
"1.3.6.1.4.1.1466.115.121.1.40",
// postal address syntax OID:
"1.3.6.1.4.1.1466.115.121.1.41" );
/* If you want to configure more LDAP servers, copy and paste the above (including the "$i++;")
Dont forget to change 'visible' to true! */
/** **/
/** User-friendly attribute translation **/
/** **/
$friendly_attrs = array();
/* Use this array to map attribute names to user friendly names. For example, if you
don't want to see "facsimileTelephoneNumber" but rather "Fax". */
// Use this array to map attribute names to user friendly names. For example, if you
// don't want to see "facsimileTelephoneNumber" but rather "Fax".
$friendly_attrs = array();
$friendly_attrs[ 'facsimileTelephoneNumber' ] = 'Fax';
$friendly_attrs[ 'telephoneNumber' ] = 'Phone';
/** **/
/** Support for attrs display order **/
/** **/
/* Use this array if you want to have your attributes displayed in a specific order.
You can use default attribute names or their fridenly names.
For example, "sn" will be displayed right after "givenName". All the other attributes
that are not specified in this array will be displayed after in alphabetical order. */
// $attrs_display_order = array(
// "givenName",
// "sn",
// "cn",
// "displayName",
// "uid",
// "uidNumber",
// "gidNumber",
// "homeDirectory",
// "mail",
// "userPassword"
// );
/** **/
/** Hidden attributes **/
/** **/
// You may want to hide certain attributes from being displayed in the editor screen
// Do this by adding the desired attributes to this list (and uncomment it). This
// only affects the editor screen. Attributes will still be visible in the schema
// browser and elsewhere. An example is provided below:
// NOTE: The user must be able to read the hidden_except_dn entry to be excluded.
/* You may want to hide certain attributes from being displayed in the editor screen
Do this by adding the desired attributes to this list (and uncomment it). This
only affects the editor screen. Attributes will still be visible in the schema
browser and elsewhere. An example is provided below:
NOTE: The user must be able to read the hidden_except_dn entry to be excluded. */
//$hidden_attrs = array( 'jpegPhoto', 'objectClass' );
//$hidden_except_dn = "cn=PLA UnHide,ou=Groups,c=AU";
// Hidden attributes in read-only mode. If undefined, it will be equal to $hidden_attrs.
//$hidden_attrs_ro = array( 'objectClass','shadowWarning', 'shadowLastChange', 'shadowMax',
// 'shadowFlag', 'shadowInactive', 'shadowMin', 'shadowExpire' );
/* Hidden attributes in read-only mode. If undefined, it will be equal to $hidden_attrs. */
// $hidden_attrs_ro = array( 'objectClass','shadowWarning', 'shadowLastChange', 'shadowMax',
// 'shadowFlag', 'shadowInactive', 'shadowMin', 'shadowExpire');
/** **/
/** Read-only attributes **/
/** **/
// You may want to phpLDAPadmin to display certain attributes as read only, meaning
// that users will not be presented a form for modifying those attributes, and they
// will not be allowed to be modified on the "back-end" either. You may configure
// this list here:
// NOTE: The user must be able to read the read_only_except_dn entry to be excluded.
/* You may want to phpLDAPadmin to display certain attributes as read only, meaning
that users will not be presented a form for modifying those attributes, and they
will not be allowed to be modified on the "back-end" either. You may configure
this list here:
NOTE: The user must be able to read the read_only_except_dn entry to be excluded. */
//$read_only_attrs = array( 'objectClass' );
//$read_only_except_dn = "cn=PLA ReadWrite,ou=Groups,c=AU";
// An example of how to specify multiple read-only attributes:
/* An example of how to specify multiple read-only attributes: */
// $read_only_attrs = array( 'jpegPhoto', 'objectClass', 'someAttribute' );
/** **/
/** Unique attributes **/
/** **/
// You may want phpLDAPadmin to enforce some attributes to have unique values (ie:
// not belong to other entries in your tree. This (together with "unique_attrs_dn"
// and "unique_attrs_dn_pass" option will not let updates to occur with other attributes
// have the same value.
// NOTE: Currently the unique_attrs is NOT enforced when copying a dn. (Need to present a user with
// the option of changing the unique attributes.
/* You may want phpLDAPadmin to enforce some attributes to have unique values (ie:
not belong to other entries in your tree. This (together with "unique_attrs_dn"
and "unique_attrs_dn_pass" option will not let updates to occur with other attributes
have the same value.
NOTE: Currently the unique_attrs is NOT enforced when copying a dn. (Need to present a user with
the option of changing the unique attributes. */
//$unique_attrs = array('uid','uidNumber','mail');
/** **/
/** Predefined Queries (canned views) **/
/** **/
// To make searching easier, you may setup predefined queries below (activate the lines by removing "//")
/* To make searching easier, you may setup predefined queries below: */
$q=0;
$queries = array();
$queries[$q]['name'] = 'Samba Users'; /* The name that will appear in the simple search form */
$queries[$q]['server'] = '0'; /* The ldap server to query, must be defined in the $servers list above */
$queries[$q]['base'] = 'dc=example,dc=com'; /* The base to search on */
$queries[$q]['scope'] = 'sub'; /* The search scope (sub, base, one) */
$queries[$q]['filter'] = '(&(|(objectClass=sambaAccount)(objectClass=sambaSamAccount))(objectClass=posixAccount)(!(uid=*$)))';
/* The LDAP filter to use */
$queries[$q]['attributes'] = 'uid, smbHome, uidNumber';
/* The attributes to return */
// Add more pre-defined queries by copying the text below
/* The name that will appear in the simple search form */
$queries[$q]['name'] = 'User List';
/* The base to search on */
$queries[$q]['base'] = 'dc=example,dc=com';
/* The search scope (sub, base, one) */
$queries[$q]['scope'] = 'sub';
/* The LDAP filter to use */
$queries[$q]['filter'] = '(&(objectClass=posixAccount)(uid=*))';
/* The attributes to return */
$queries[$q]['attributes'] = 'cn, uid, homeDirectory';
/* If you want to configure more pre-defined queries, copy and paste the above (including the "$q++;") */
$q++;
$queries[$q]['name'] = 'Samba Users';
$queries[$q]['base'] = 'dc=example,dc=com';
$queries[$q]['scope'] = 'sub';
$queries[$q]['filter'] = '(&(|(objectClass=sambaAccount)(objectClass=sambaSamAccount))(objectClass=posixAccount)(!(uid=*$)))';
$queries[$q]['attributes'] = 'uid, smbHome, uidNumber';
$q++;
$queries[$q]['name'] = 'Samba Computers';
$queries[$q]['server'] = '0';
$queries[$q]['base'] = 'dc=example,dc=com';
$queries[$q]['scope'] = 'sub';
$queries[$q]['filter'] = '(&(objectClass=sambaAccount)(uid=*$))';
$queries[$q]['attributes'] = 'uid, homeDirectory';
?>

376
config_default.php Normal file
View File

@ -0,0 +1,376 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/config_default.php,v 1.11 2005/09/25 16:11:44 wurley Exp $
/**
* Configuration processing and defaults.
* @author The phpLDAPadmin development team
* @package phpLDAPadmin
* @todo Add validation of set variables to enforce limits or particular values.
*/
# The minimum version of PHP required to run phpLDAPadmin.
@define( 'REQUIRED_PHP_VERSION', '4.1.0' );
class Config {
var $custom;
var $default;
function Config() {
$this->custom = new stdClass;
$this->default = new stdClass;
## Appearance Attributes
/** Anonymous implies read only
* Set to true if you want LDAP data to be displayed read-only (without input fields)
* when a user logs in to a server anonymously
*/
$this->default->appearance['anonymous_bind_implies_read_only'] = array(
'desc'=>'Display as read only if user logs in with anonymous bind',
'default'=>true);
//$anonymous_bind_implies_read_only = true;
/* Anonymous redirect
* Set to true if you want phpLDAPadmin to redirect anonymous
* users to a search form with no tree viewer on the left after
* logging in.
*/
$this->default->appearance['anonymous_bind_redirect_no_tree'] = array(
'desc'=>'Redirect user to search form if anonymous',
'default'=>false);
//$anonymous_bind_redirect_no_tree = false;
$this->default->appearance['date'] = array(
'desc'=>'Date format whenever dates are shown',
'default'=>'%A %e %B %Y');
//$date_format = "%A %e %B %Y";
$this->default->appearance['hide_configuration_management'] = array(
'desc'=>'Hide the Sourceforge related links',
'default'=>false);
//$hide_configuration_management = false;
/** Language
* The language setting. If you set this to 'auto', phpLDAPadmin will
* attempt to determine your language automatically. Otherwise, available
* lanaguages are: 'ct', 'de', 'en', 'es', 'fr', 'it', 'nl', and 'ru'
* Localization is not complete yet, but most strings have been translated.
* Please help by writing language files. See lang/en.php for an example.
*/
$this->default->appearance['language'] = array(
'desc'=>'Language',
'default'=>'auto');
//$language = 'auto';
/** Mass Delete
* Set to true if you want to draw a checkbox next to each entry in the tree viewer
* to be able to delete multiple entries at once
*/
$this->default->appearance['mass_delete'] = array(
'desc'=>'Enable mass delete in tree viewer',
'default'=>false);
//$enable_mass_delete = false;
/**
* If you want certain attributes to be editable as multi-line, include them in this list
* A multi-line textarea will be drawn instead of a single-line text field
*/
$this->default->appearance['multi_line_attributes'] = array(
'desc'=>'Attributes to show as multiline attributes',
'default'=>array("postalAddress","homePostalAddress","personalSignature"));
//$multi_line_attributes = array( "postalAddress", "homePostalAddress", "personalSignature" );
/**
* A list of syntax OIDs which support multi-line attribute values:
*/
$this->default->appearance['multi_line_syntax_oids'] = array(
'desc'=>'Attributes to show as multiline attributes',
'default'=>array(
// octet string syntax OID:
"1.3.6.1.4.1.1466.115.121.1.40",
// postal address syntax OID:
"1.3.6.1.4.1.1466.115.121.1.41"));
//$multi_line_syntax_oids ...
/** Obfuscate Password
* If true, display all password hash values as "******". Note that clear-text
* passwords will always be displayed as "******", regardless of this setting.
*/
$this->default->appearance['obfuscate_password_display'] = array(
'desc'=>'Obfuscate the display of passwords',
'default'=>false);
//$obfuscate_password_display = false;
$this->default->appearance['show_clear_password'] = array(
'desc'=>'Whether to show clear passwords if we dont obfuscate them',
'default'=>false);
$this->default->appearance['page_title'] = array(
'desc'=>'Change the page title to this text',
'default'=>'');
$this->default->appearance['show_hints'] = array(
'desc'=>'Show helpful hints',
'default'=>true);
//$show_hints = true; // set to false to disable hints
/** Tree display
* A format string used to display enties in the tree viewer (left-hand side)
* You can use special tokens to draw the entries as you wish. You can even mix in HTML to format the string
* Here are all the tokens you can use:
* %rdn - draw the RDN of the entry (ie, "cn=Dave")
* %dn - draw the DN of the entry (ie, "cn=Dave,ou=People,dc=example,dc=com"
* %rdnValue - draw the value of the RDN (ie, instead of "cn=Dave", just draw "Dave")
* %[attrname]- draw the value (or values) of the specified attribute.
* example: %gidNumber
*
* Examples:
*
* To draw the gidNumber and uidNumber to the right of the RDN in a small, gray font:
* '%rdn <small style="color:gray">( %gidNumber / %uidNumber )</span>'
* To draw the full DN of each entry:
* '%dn'
* To draw the objectClasses to the right in parenthesis:
* '%rdn <small style="color: gray">( %objectClass )</small>'
* To draw the user-friendly RDN value (ie, instead of "cn=Dave", just draw "Dave"):
* '%rdnValue'
*/
$this->default->appearance['tree_display_format'] = array(
'desc'=>'LDAP attribute to show in the tree',
'default'=>'%rdn');
//$tree_display_format = '%rdn';
$this->default->appearance['tree_width'] = array(
'desc'=>'Pixel width of the left frame view (tree browser)',
'default'=>320);
//$tree_width = 320; // pixels
/** Caching
*/
$this->default->cache['schema'] = array(
'desc'=>'Cache schema activity',
'default'=>true);
$this->default->cache['template'] = array(
'desc'=>'Cache Template configuration',
'default'=>true);
/** Aliases and Referrrals
* Similar to ldapsearch's -a option, the following options allow you to configure
* how phpLDAPadmin will treat aliases and referrals in the LDAP tree.
* For the following four settings, avaialable options include:
*
* LDAP_DEREF_NEVER - aliases are never dereferenced (eg, the contents of
* the alias itself are shown and not the referenced entry).
* LDAP_DEREF_SEARCHING - aliases should be dereferenced during the search but
* not when locating the base object of the search.
* LDAP_DEREF_FINDING - aliases should be dereferenced when locating the base
* object but not during the search.
* LDAP_DEREF_ALWAYS - aliases should be dereferenced always (eg, the contents
* of the referenced entry is shown and not the aliasing entry)
*/
$this->default->deref['export'] = array(
'desc'=>'',
'default'=>LDAP_DEREF_NEVER);
//$export_deref = LDAP_DEREF_NEVER;
$this->default->deref['search'] = array(
'desc'=>'',
'default'=>LDAP_DEREF_ALWAYS);
//$search_deref = LDAP_DEREF_ALWAYS;
$this->default->deref['tree'] = array(
'desc'=>'',
'default'=>LDAP_DEREF_NEVER);
//$tree_deref = LDAP_DEREF_NEVER;
$this->default->deref['view'] = array(
'desc'=>'',
'default'=>LDAP_DEREF_NEVER);
//$view_deref = LDAP_DEREF_NEVER;
## Debug Attributes
$this->default->debug['level'] = array(
'desc'=>'Debug level verbosity',
'default'=>0);
//$debug_level
$this->default->debug['syslog'] = array(
'desc'=>'Whether to send debug messages to syslog',
'default'=>false);
//$use_syslog
/** Temp Directories
* This directory must be readable and writable by your web server
*/
$this->default->jpeg['tmpdir'] = array(
'desc'=>'Temporary directory for jpegPhoto data',
'default'=>'/tmp');
//$jpeg_temp_dir = "/tmp";
$this->default->jpeg['tmp_keep_time'] = array(
'desc'=>'Time in seconds to keep jpegPhoto temporary files in the temp directory',
'default'=>120);
//$jpeg_tmp_keep_time = 120; // seconds
## Session Attributes
/** Cookie Encryption
* phpLDAPadmin can encrypt the content of sensitive cookies if you set this to a big random string.
*/
$this->default->session['blowfish'] = array(
'desc'=>'Blowfish key to encrypt cookie details',
'default'=>null);
//$blowfish_secret = '';
/** Cookie Time
* If you used auth_type 'form' in the servers list, you can adjust how long the cookie will last
* (default is 0 seconds, which expires when you close the browser)
*/
$this->default->session['cookie_time'] = array(
'desc'=>'Time in seconds for the life of cookies',
'default'=>0);
//$cookie_time = 0;
## Password Generation
$this->default->password['length'] = array(
'desc'=>'Length of autogenerated password',
'default'=>8);
$this->default->password['numbers'] = array(
'desc'=>'Number of numbers required in the password',
'default'=>2);
$this->default->password['lowercase'] = array(
'desc'=>'Number of lowercase letters required in the password',
'default'=>2);
$this->default->password['uppercase'] = array(
'desc'=>'Number of uppercase letters required in the password',
'default'=>2);
$this->default->password['punctuation'] = array(
'desc'=>'Number of punctuation letters required in the password',
'default'=>2);
$this->default->password['use_similar'] = array(
'desc'=>'Whether to use similiar characters',
'default'=>true);
## Template Engine Configuration
$this->default->template_engine['enable'] = array(
'desc'=>'Use templates from parsed by the template engine',
'default'=>true);
$this->default->template_engine['disable_old'] = array(
'desc'=>'Disable access to old templates',
'default'=>true);
/** Search display
* By default, when searching you may display a list or a table of results.
* Set this to 'table' to see table formatted results.
* Set this to 'list' to see "Google" style formatted search results.
*/
$this->default->search['display'] = array(
'desc'=>'Display a list or table of search results',
'default'=>'list');
//$default_search_display = 'list';
$this->default->search['size_limit'] = array(
'desc'=>'Limit the size of searchs on the search page',
'default'=>50);
//$search_result_size_limit = 50;
/**
* Which attributes to include in the drop-down menu of the simple search form (comma-separated)
* Change this to suit your needs for convenient searching. Be sure to change the corresponding
* list below ($search_attributes_display)
*/
$this->default->search['attributes'] = array(
'desc'=>'Attributes to include in the drop down menu of the simple search form (comma separated)',
'default'=>array('uid','cn','gidNumber','objectClass','telephoneNumber','mail','street'));
//$search_attributes ...
/**
* You can re-arrange the order of the search criteria on the simple search form by modifying this array
* You cannot however change the names of the criteria. Criteria names will be translated at run-time.
*/
$this->default->search['criteria_options'] = array(
'desc'=>'Rearrange the order of the search criteria',
'default'=>array("equals","starts with","contains","ends with","sounds like"));
//$search_criteria_options ...
/**
* The list of attributes to display in each search result entry.
* Note that you can add * to the list to display all attributes
*/
$this->default->search['result_attributes'] = array(
'desc'=>'List of attributes to display in each search result entry',
'default'=>array('cn','sn','uid','postalAddress','telephoneNumber'));
//$search_result_attributes ...
}
function GetValue($key,$index) {
$value = null;
if (! isset($this->default->$key))
pla_error("A call was made to GetValue requesting [$key] that isnt predefined.");
else
$default = $this->default->$key;
if (! isset($default[$index]))
pla_error("Requesting a index [$index] that isnt predefined.");
else
$default = $default[$index];
if (isset($default['default']))
$value = $default['default'];
if (isset($this->custom->$key)) {
$custom = $this->custom->$key;
if (isset($custom[$index]))
$value = $custom[$index];
}
//print "Returning [$value] for key [$key], index [$index]<BR>";
return $value;
}
/**
* Function to check and warn about any unusual defined variables.
*/
function CheckCustom() {
if (isset($this->custom)) {
foreach ($this->custom as $masterkey => $masterdetails) {
if (isset($this->default->$masterkey)) {
if (! is_array($masterdetails))
pla_error("Error in configuration file, [$masterdetails] should be an ARRAY.");
foreach ($masterdetails as $key => $value) {
# Test that the key is correct.
if (! in_array($key,array_keys($this->default->$masterkey)))
pla_error("Error in configuration file, [$key] has not been defined as a PLA configurable variable.");
# Test if its should be an array or not.
if (is_array($this->default->{$masterkey}[$key]['default']) && ! is_array($value))
pla_error("Error in configuration file, {$masterkey}['$key'] SHOULD be an array of values.");
if (! is_array($this->default->{$masterkey}[$key]['default']) && is_array($value))
pla_error("Error in configuration file, {$masterkey}['$key'] should NOT be an array of values.");
}
} else {
pla_error("Error in configuration file, [$masterkey] has not been defined as a PLA MASTER configurable variable.");
}
}
}
}
}
# Define our configuration variable.
$config = new Config;
require (CONFDIR.'config.php');
?>

284
copy.php
View File

@ -1,186 +1,220 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/copy.php,v 1.25 2004/08/15 17:35:25 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/copy.php,v 1.35 2005/09/25 16:11:44 wurley Exp $
/*
* copy.php
/**
* Copies a given object to create a new one.
*
* Vars that come in as POST vars
* - source_dn (rawurlencoded)
* - new_dn (form element)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
require './common.php';
$source_dn = $_POST['old_dn'];
$dest_dn = $_POST['new_dn'];
$encoded_dn = rawurlencode( $source_dn );
$source_server_id = $_POST['server_id'];
$dest_server_id = $_POST['dest_server_id'];
$do_recursive = ( isset( $_POST['recursive'] ) && $_POST['recursive'] == 'on' ) ? true : false;
$server_id_src = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$server_id_dst = (isset($_POST['dest_server_id']) ? $_POST['dest_server_id'] : '');
if( is_server_read_only( $dest_server_id ) )
pla_error( $lang['copy_server_read_only'] );
$ldapserver_src = $ldapservers->Instance($server_id_src);
$ldapserver_dst = $ldapservers->Instance($server_id_dst);
check_server_id( $source_server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $source_server_id ) or pla_error( $lang['not_enough_login_info'] );
check_server_id( $dest_server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $dest_server_id ) or pla_error( $lang['not_enough_login_info'] );
if ($ldapserver_dst->isReadOnly())
pla_error($lang['copy_server_read_only']);
if (! $ldapserver_src->haveAuthInfo() || ! $ldapserver_dst->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn_src = $_POST['old_dn'];
$dn_dst = $_POST['new_dn'];
$do_recursive = (isset($_POST['recursive']) && $_POST['recursive'] == 'on') ? true : false;
$do_remove = (isset($_POST['remove']) && $_POST['remove'] == 'yes') ? true : false;
$encoded_dn = rawurlencode($dn_src);
include './header.php';
/* Error checking */
if( 0 == strlen( trim( $dest_dn ) ) )
pla_error( $lang['copy_dest_dn_blank'] );
if( pla_compare_dns( $source_dn,$dest_dn ) == 0 && $source_server_id == $dest_server_id )
pla_error( $lang['copy_source_dest_dn_same'] );
if( dn_exists( $dest_server_id, $dest_dn ) )
pla_error( sprintf( $lang['copy_dest_already_exists'], pretty_print_dn( $dest_dn ) ) );
if( ! dn_exists( $dest_server_id, get_container( $dest_dn ) ) )
pla_error( sprintf( $lang['copy_dest_container_does_not_exist'], pretty_print_dn( get_container($dest_dn) ) ) );
# Error checking
if (0 == strlen(trim($dn_dst)))
pla_error($lang['copy_dest_dn_blank']);
if( $do_recursive ) {
$filter = isset( $_POST['filter'] ) ? $_POST['filter'] : '(objectClass=*)';
// build a tree similar to that of the tree browser to give to r_copy_dn
if (pla_compare_dns($dn_src,$dn_dst) == 0 && $server_id_src == $server_id_dst)
pla_error($lang['copy_source_dest_dn_same']);
if (dn_exists($ldapserver_dst,$dn_dst))
pla_error(sprintf($lang['copy_dest_already_exists'],pretty_print_dn($dn_dst)));
if (! dn_exists($ldapserver_dst,get_container($dn_dst)))
pla_error(sprintf($lang['copy_dest_container_does_not_exist'],pretty_print_dn(get_container($dn_dst))));
if ($do_recursive) {
$filter = isset($_POST['filter']) ? $_POST['filter'] : '(objectClass=*)';
# Build a tree similar to that of the tree browser to give to r_copy_dn
$snapshot_tree = array();
echo "<body>\n";
echo "<h3 class=\"title\">". $lang['copy_copying'] . htmlspecialchars( $source_dn ) . "</h3>\n";
echo "<h3 class=\"subtitle\">" . $lang['copy_recursive_copy_progress'] ."</h3>\n";
echo "<br /><br />";
echo "<small>\n";
echo $lang['copy_building_snapshot'];
flush();
build_tree( $source_server_id, $source_dn, $snapshot_tree, $filter );
echo " <span style=\"color:green\">" . $lang['success'] . "</span><br />\n";
print '<body>';
printf('<h3 class="title">%s%s</h3>',$lang['copy_copying'],htmlspecialchars($dn_src));
printf('<h3 class="subtitle">%s</h3>',$lang['copy_recursive_copy_progress']);
print '<br /><br />';
print '<small>';
print $lang['copy_building_snapshot'];
flush();
// prevent script from bailing early on a long delete
@set_time_limit( 0 );
$snapshot_tree = build_tree($ldapserver_src,$dn_src,array(),$filter);
printf('<span style="color:green">%s</span><br />',$lang['success']);
flush();
# Prevent script from bailing early on a long delete
@set_time_limit(0);
$copy_result = r_copy_dn($ldapserver_src,$ldapserver_dst,$snapshot_tree,$dn_src,$dn_dst);
print '</small>';
$copy_result = r_copy_dn( $source_server_id, $dest_server_id, $snapshot_tree, $source_dn, $dest_dn );
echo "</small>\n";
} else {
$copy_result = copy_dn( $source_server_id, $source_dn, $dest_server_id, $dest_dn );
$copy_result = copy_dn($ldapserver_src,$ldapserver_dst,$dn_src,$dn_dst);
}
if( $copy_result )
{
$edit_url="edit.php?server_id=$dest_server_id&dn=" . rawurlencode( $dest_dn );
$new_rdn = get_rdn( $dest_dn );
$container = get_container( $dest_dn );
if ($copy_result) {
$edit_url = sprintf('edit.php?server_id=%s&dn=%s',$server_id_dst,rawurlencode($dn_dst));
$new_rdn = get_rdn($dn_dst);
$container = get_container($dn_dst);
if( array_key_exists( 'tree', $_SESSION ) )
{
// do we not have a tree and tree icons yet? Build a new ones.
initialize_session_tree();
if (array_key_exists('tree',$_SESSION)) {
# do we not have a tree and tree icons yet? Build a new ones.
initialize_session_tree();
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
if( isset( $tree[$dest_server_id][$container] ) )
{
$tree[$dest_server_id][$container][] = $dest_dn;
sort( $tree[ $dest_server_id ][ $container ] );
$tree_icons[$dest_server_id][$dest_dn] = get_icon( $dest_server_id, $dest_dn );
if (isset($tree[$server_id_dst][$container])) {
$tree[$server_id_dst][$container][] = $dn_dst;
sort($tree[$server_id_dst][$container]);
$tree_icons[$server_id_dst][$dn_dst] = get_icon($ldapserver_dst,$dn_dst);
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
}
}
?>
?>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<center>
<?php printf('%s<a href="%s">%s</a>',$lang['copy_successful_like_to'],$edit_url,$lang['copy_view_new_entry']) ?>
</center>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<script language="javascript">
parent.left_frame.location.reload();
</script>
</body>
</html>
<?php
if ($do_remove) {
sleep(2);
$delete_url = sprintf('delete_form.php?server_id=%s&dn=%s',$server_id_dst,rawurlencode($dn_src));
?>
<!-- redirect to the delete form -->
<script language="javascript">
parent.left_frame.location.reload();
parent.right_frame.location="<?php echo $delete_url; ?>"
</script>
<br />
<center>
<?php echo $lang['copy_successful_like_to']. "<a href=\"$edit_url\">" . $lang['copy_view_new_entry'] ."</a>"?>
</center>
<br />
<br />
<br />
<br />
</body>
</html>
<?php
}
else
{
<?php }
} else {
exit;
}
function r_copy_dn( $source_server_id, $dest_server_id, $tree, $root_dn, $dest_dn )
{
function r_copy_dn($ldapserver_src,$ldapserver_dst,$tree,$root_dn,$dn_dst) {
debug_log(sprintf('r_copy_dn: Entered with (%s,%s,%s,%s,%s)',
$ldapserver_src->server_id,$ldapserver_dst->server_id,serialize($tree),$root_dn,$dn_dst),2);
global $lang;
echo "<nobr>". $lang['copy_copying'] . htmlspecialchars( $root_dn ) . "...";
flush();
$copy_result = copy_dn( $source_server_id, $root_dn, $dest_server_id, $dest_dn );
if( ! $copy_result ) {
printf('<nobr>%s %s...',$lang['copy_copying'],htmlspecialchars($root_dn));
flush();
$copy_result = copy_dn($ldapserver_src,$ldapserver_dst,$root_dn,$dn_dst);
if (! $copy_result)
return false;
}
echo "<span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
printf('<span style="color:green">%s</span></nobr><br />',$lang['success']);
flush();
$children = isset( $tree[ $root_dn ] ) ? $tree[ $root_dn ] : null;
if( is_array( $children ) && count( $children ) > 0 )
{
foreach( $children as $child_dn ) {
$child_rdn = get_rdn( $child_dn );
$new_dest_dn = $child_rdn . ',' . $dest_dn;
r_copy_dn( $source_server_id, $dest_server_id, $tree, $child_dn, $new_dest_dn );
$children = isset($tree[$root_dn]) ? $tree[$root_dn] : null;
if (is_array($children) && count($children) > 0) {
foreach($children as $child_dn) {
$child_rdn = get_rdn($child_dn);
$new_dest_dn = sprintf('%s,%s',$child_rdn,$dn_dst);
r_copy_dn($ldapserver_src,$ldapserver_dst,$tree,$child_dn,$new_dest_dn);
}
}
else
{
} else {
return true;
}
return true;
}
function copy_dn( $source_server_id, $source_dn, $dest_server_id, $dest_dn )
{
global $ds, $lang;
function copy_dn($ldapserver_src,$ldapserver_dst,$dn_src,$dn_dst) {
debug_log(sprintf('copy_dn: Entered with (%s,%s,%s,%s)',
$ldapserver_src->server_id,$ldapserver_dst->server_id,$dn_src,$dn_dst),2);
$ds = pla_ldap_connect( $dest_server_id );
pla_ldap_connection_is_error( $ds );
global $lang;
$attrs = get_object_attrs( $source_server_id, $source_dn );
$new_entry = $attrs;
// modify the prefix-value (ie "bob" in cn=bob) to match the destination DN's value.
$rdn_attr = substr( $dest_dn, 0, strpos( $dest_dn, '=' ) );
$rdn_value = get_rdn( $dest_dn );
$rdn_value = substr( $rdn_value, strpos( $rdn_value, '=' ) + 1 );
$new_entry[ $rdn_attr ] = $rdn_value;
// don't need a dn attribute in the new entry
unset( $new_entry['dn'] );
$new_entry = get_object_attrs($ldapserver_src,$dn_src);
// Check the user-defined custom call back first
if( true === preEntryCreate( $dest_server_id, $dest_dn, $new_entry ) ) {
$add_result = @ldap_add( $ds, $dest_dn, $new_entry );
if( ! $add_result ) {
postEntryCreate( $dest_server_id, $dest_dn, $new_entry );
echo "</small><br /><br />";
pla_error( $lang['copy_failed'] . $dest_dn, ldap_error( $ds ), ldap_errno( $ds ) );
}
# modify the prefix-value (ie "bob" in cn=bob) to match the destination DN's value.
$rdn_attr = substr($dn_dst,0,strpos($dn_dst,'='));
$rdn_value = get_rdn($dn_dst);
$rdn_value = substr($rdn_value,strpos($rdn_value,'=') + 1);
$new_entry[$rdn_attr] = $rdn_value;
# don't need a dn attribute in the new entry
unset($new_entry['dn']);
# Check the user-defined custom call back first
if (true === run_hook('pre_entry_create',
array ('server_id'=>$ldapserver_dst->server_id,'dn'=>$dn_dst,'attrs'=>$new_entry))) {
$add_result = @ldap_add($ldapserver_dst->connect(),$dn_dst,$new_entry);
if (! $add_result) {
run_hook('post_entry_create',array('server_id'=>$ldapserver_dst->server_id,
'dn'=>$dn_dst,'attrs'=>$new_entry));
print '</small><br /><br />';
pla_error($lang['copy_failed'] . $dn_dst,ldap_error($ldapserver_dst->connect()),ldap_errno($ldapserver_dst->connect()));
}
return $add_result;
return $add_result;
} else {
return false;
return false;
}
}
function build_tree( $source_server_id, $root_dn, &$tree, $filter='(objectClass=*)' )
{
$children = get_container_contents( $source_server_id, $root_dn, 0, $filter );
if( is_array( $children ) && count( $children ) > 0 )
{
$tree[ $root_dn ] = $children;
foreach( $children as $child_dn )
build_tree( $source_server_id, $child_dn, $tree, $filter );
/**
* @param object $ldapserver
* @param dn $dn
* @param array $tree
* @param string $filter
*/
function build_tree($ldapserver,$dn,$tree,$filter='(objectClass=*)') {
debug_log(sprintf('build_tree: Entered with (%s,%s,%s,%s)',
$ldapserver->server_id,$dn,serialize($tree),$filter),2);
$children = get_container_contents($ldapserver,$dn,0,$filter);
if (is_array($children) && count($children) > 0) {
$tree[$dn] = $children;
foreach ($children as $child_dn)
$tree = build_tree($ldapserver,$child_dn,$tree,$filter);
}
debug_log(sprintf('build_tree: Returning (%s)',serialize($tree)),1);
return $tree;
}
?>

View File

@ -1,81 +1,78 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/copy_form.php,v 1.19 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/copy_form.php,v 1.24 2005/07/22 05:47:43 wurley Exp $
/*
* copy_form.php
/**
* Copies a given object to create a new one.
*
* - dn (rawurlencoded)
* Variables that come in via common.php
* - server_id
* Variables that come in via GET variables
* - dn (rawurlencoded)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn = $_GET['dn'] ;
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
$rdn = get_rdn( $dn );
$container = get_container( $dn );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id_underline'] . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$attrs = get_object_attrs( $ldapserver, $dn );
$select_server_html = server_select_list($ldapserver->server_id,true,'dest_server_id');
$children = get_container_contents( $ldapserver, $dn );
$attrs = get_object_attrs( $server_id, $dn );
$server_name = $servers[$server_id]['name'];
$select_server_html = "";
if (count($servers)>1){
$select_server_html .= '<select name="dest_server_id">';
foreach( $servers as $id => $server )
if( $server['host'] )
$select_server_html .= "<option value=\"$id\"". ($id==$server_id?" selected":"") .">" . htmlspecialchars($server['name']) . "</option>\n";
$select_server_html .= '</select>';
} else {
$server = reset($servers);
if( $server['host'] )
$select_server_html .= '<input type="hidden" name="dest_server_id" value="'.key($servers).'">' .
'<b>' . $server['name'] . '</b>';
}
$children = get_container_contents( $server_id, $dn );
include './header.php';
include './header.php';
// Draw some javaScrpt to enable/disable the filter field if this may be a recursive copy
if( is_array( $children ) && count( $children ) > 0 ) { ?>
<script language="javascript">
//<!--
<script language="javascript">
//<!--
function toggle_disable_filter_field( recursive_checkbox )
{
if( recursive_checkbox.checked ) {
recursive_checkbox.form.remove.disabled = false;
recursive_checkbox.form.filter.disabled = false;
} else {
recursive_checkbox.form.remove.disabled = true;
recursive_checkbox.form.remove.checked = false;
recursive_checkbox.form.filter.disabled = true;
}
}
//-->
</script>
//-->
</script>
<?php } ?>
<body>
<h3 class="title"><?php echo $lang['copyf_title_copy'] . $rdn; ?></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']?>: <b><?php echo $dn; ?></b></h3>
<center>
<?php echo $lang['copyf_title_copy'] ?><b><?php echo htmlspecialchars( $rdn ); ?></b> <?php echo $lang['copyf_to_new_object']?>:<br />
<br />
<form action="copy.php" method="post" name="copy_form">
<input type="hidden" name="old_dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<table style="border-spacing: 10px">
<tr>
<td><acronym title="<?php echo $lang['copyf_dest_dn_tooltip']; ?>"><?php echo $lang['copyf_dest_dn']?></acronym>:</td>
<td>
<input type="text" name="new_dn" size="45" value="<?php echo htmlspecialchars( $dn ); ?>" />
<?php draw_chooser_link( 'copy_form.new_dn' ); ?></td>
<?php draw_chooser_link( 'copy_form.new_dn', 'true', $rdn ); ?></td>
</td>
</tr>
@ -94,8 +91,17 @@ if( is_array( $children ) && count( $children ) > 0 ) { ?>
<td><acronym title="<?php echo $lang['filter_tooltip']; ?>"><?php echo $lang['filter']; ?></acronym>:</td>
<td><input type="text" name="filter" value="(objectClass=*)" size="45" disabled />
</tr>
<tr>
<td><?php echo $lang['delete_after_copy']; ?></td>
<td><input type="checkbox" name="remove" value="yes"/ disabled>
<small>(<?php echo $lang['delete_after_copy_warn']; ?>)</small)</td>
</tr>
<?php } else { ?>
<tr>
<td><?php echo $lang['delete_after_copy']; ?></td>
<td><input type="checkbox" name="remove" value="yes"/></td>
</tr>
<?php } ?>
<tr>
<td colspan="2" align="right"><input type="submit" value="<?php echo $lang['copyf_title_copy']; ?>" /></td>
</tr>
@ -103,14 +109,13 @@ if( is_array( $children ) && count( $children ) > 0 ) { ?>
</form>
<script language="javascript">
//<!--
/* If the user uses the back button, this way we draw the filter field
properly. */
toggle_disable_filter_field( document.copy_form.recursive );
//-->
//<!--
/* If the user uses the back button, this way we draw the filter field properly. */
toggle_disable_filter_field( document.copy_form.recursive );
//-->
</script>
<?php if( show_hints() ) {?>
<?php if ($config->GetValue('appearance','show_hints')) {?>
<small><img src="images/light.png" /><span class="hint"><?php echo $lang['copyf_note']?></span></small>
<?php } ?>

View File

@ -1,11 +1,11 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/create.php,v 1.29 2004/10/28 13:37:39 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/create.php,v 1.43 2005/09/25 16:11:44 wurley Exp $
/*
* create.php
/**
* Creates a new object.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as POST vars:
* - new_dn
* - attrs (an array of attributes)
@ -13,26 +13,51 @@
* - required_attrs (an array with indices being the attributes,
* and the values being their respective values)
* - object_classes (rawurlencoded, and serialized array of objectClasses)
* - server_id
*
* @package phpLDAPadmin
*/
/**
* @todo: posixgroup with empty memberlist generates an error.
*/
require realpath( './common.php' );
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$new_dn = isset( $_POST['new_dn'] ) ? $_POST['new_dn'] : null;
$encoded_dn = rawurlencode( $new_dn );
$server_id = $_POST['server_id'];
$vals = isset( $_POST['vals'] ) ? $_POST['vals'] : array();
$attrs = isset( $_POST['attrs'] ) ? $_POST['attrs'] : array();
$required_attrs = isset( $_POST['required_attrs'] ) ? $_POST['required_attrs'] : false;
$object_classes = unserialize( rawurldecode( $_POST['object_classes'] ) );
$redirect = isset( $_POST['redirect'] ) ? $_POST['redirect'] : false;
$encoded_dn = rawurlencode( $new_dn );
$container = get_container( $new_dn );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
// See if there are any presubmit values to work out.
if (isset($_POST['presubmit']) && count($_POST['presubmit']) && isset($_POST['template'])) {
$templates = new Templates($ldapserver->server_id);
$template = $templates->GetTemplate($_POST['template']);
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
foreach ($_POST['presubmit'] as $attr) {
$_POST['attrs'][] = $attr;
$_POST['form'][$attr] = $templates->EvaluateDefault($ldapserver,$template['attribute'][$attr]['presubmit'],$_POST['container']);
$_POST['vals'][] = $_POST['form'][$attr];
}
# @todo: This section needs to be cleaned up, and will be when the old templates are removed. In the mean time...
# Rebuild the $_POST['attrs'] & $_POST['vals'], as they can be inconsistent.
unset($_POST['attrs']);
unset($_POST['vals']);
foreach ($_POST['form'] as $attr => $val) {
$_POST['attrs'][] = $attr;
$_POST['vals'][] = $val;
}
}
$vals = isset( $_POST['vals'] ) ? $_POST['vals'] : array();
$attrs = isset( $_POST['attrs'] ) ? $_POST['attrs'] : array();
// build the new entry
$new_entry = array();
@ -40,26 +65,40 @@ if( isset( $required_attrs ) && is_array( $required_attrs ) ) {
foreach( $required_attrs as $attr => $val ) {
if( $val == '' )
pla_error( sprintf( $lang['create_required_attribute'], htmlspecialchars( $attr ) ) );
$new_entry[ $attr ][] = $val;
$new_entry[ $attr ][] = $val;
}
}
if( isset( $attrs ) && is_array( $attrs ) ) {
foreach( $attrs as $i => $attr ) {
if( is_attr_binary( $server_id, $attr ) ) {
if( is_attr_binary( $ldapserver, $attr ) ) {
if( isset( $_FILES['vals']['name'][$i] ) && $_FILES['vals']['name'][$i] != '' ) {
// read in the data from the file
$file = $_FILES['vals']['tmp_name'][$i];
$f = fopen( $file, 'r' );
$binary_data = fread( $f, filesize( $file ) );
fclose( $f );
$val = $binary_data;
$new_entry[ $attr ][] = $val;
}
} else {
$val = isset( $vals[$i] ) ? $vals[$i] : '';
if( '' !== trim($val) )
$new_entry[ $attr ][] = $val;
if (is_array($vals[$i])) {
# If the array has blank entries, then ignore them.
foreach ($vals[$i] as $value) {
# $new_entry[$attr] = $vals[$i];
if (trim($value))
$new_entry[$attr][] = $value;
}
} else {
$val = isset( $vals[$i] ) ? $vals[$i] : '';
if( '' !== trim($val) )
$new_entry[ $attr ][] = $val;
}
}
}
}
@ -71,78 +110,81 @@ if( ! in_array( 'top', $new_entry['objectClass'] ) )
foreach( $new_entry as $attr => $vals ) {
// Check to see if this is a unique Attribute
if( $badattr = checkUniqueAttr( $server_id, $new_dn, $attr, $vals ) ) {
$search_href='search.php?search=true&amp;form=advanced&amp;server_id=' . $server_id . '&amp;filter=' . $attr . '=' . $badattr;
pla_error(sprintf( $lang['unique_attr_failed'] , $attr,$badattr,$new_dn,$search_href ) );
if( $badattr = checkUniqueAttr( $ldapserver, $new_dn, $attr, $vals ) ) {
$search_href = sprintf('search.php?search=true&amp;form=advanced&amp;server_id=%s&amp;filter=%s=%s',
$ldapserver->server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$new_dn,$search_href ) );
}
if( ! is_attr_binary( $server_id, $attr ) )
if( ! is_attr_binary( $ldapserver, $attr ) )
if( is_array( $vals ) )
foreach( $vals as $i => $v )
$new_entry[ $attr ][ $i ] = $v;
else
$new_entry[ $attr ] = $vals;
$new_entry[ $attr ][ $i ] = $v;
else
$new_entry[ $attr ] = $vals;
}
//echo "<pre>"; var_dump( $new_dn );print_r( $new_entry ); echo "</pre>";
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
// Check the user-defined custom call back first
if( true === preEntryCreate( $server_id, $new_dn, $new_entry ) )
$add_result = @ldap_add( $ds, $new_dn, $new_entry );
else
exit;
if( $add_result )
{
postEntryCreate( $server_id, $new_dn, $new_entry );
if( $redirect )
$redirect_url = $redirect;
else
$redirect_url = "edit.php?server_id=$server_id&dn=" . rawurlencode( $new_dn );
if( true === run_hook ( 'pre_entry_create', array ( 'server_id' => $ldapserver->server_id,'dn' => $new_dn,'attrs' => $new_entry ) ) )
$add_result = @ldap_add( $ldapserver->connect(), $new_dn, $new_entry );
if( array_key_exists( 'tree', $_SESSION ) )
{
else {
pla_error( $lang['create_could_not_add'] );
exit;
}
if( $add_result ) {
run_hook ( 'post_entry_create', array ( 'server_id' => $ldapserver->server_id, 'dn' => $new_dn, 'attrs' => $new_entry ) );
if ($redirect)
$redirect_url = $redirect;
else
$redirect_url = sprintf('edit.php?server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode($new_dn));
if( array_key_exists( 'tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
if( isset( $tree[$server_id][$container] ) ) {
$tree[$server_id][$container][] = $new_dn;
sort( $tree[$server_id][$container] );
$tree_icons[$server_id][$new_dn] = get_icon( $server_id, $new_dn );
if( isset( $tree[$ldapserver->server_id][$container] ) ) {
$tree[$ldapserver->server_id][$container][] = $new_dn;
sort( $tree[$ldapserver->server_id][$container] );
$tree_icons[$ldapserver->server_id][$new_dn] = get_icon( $ldapserver, $new_dn );
}
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
}
?>
<html>
<head>
<?php if( isset( $tree[$server_id][$container] ) || $new_dn == $servers[$server_id]['base'] ) { ?>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<script language="javascript">
parent.left_frame.location.reload();
location.href='<?php echo $redirect_url; ?>';
</script>
<?php if (isset($tree[$ldapserver->server_id][$container]) || in_array($new_dn,$ldapserver->getBaseDN())) { ?>
<?php } ?>
<!-- refresh the tree view (with the new DN renamed)
and redirect to the edit_dn page -->
<script language="javascript">
parent.left_frame.location.reload();
location.href='<?php echo $redirect_url; ?>';
</script>
<meta http-equiv="refresh" content="0; url=<?php echo $redirect_url; ?>" />
<?php } ?>
<meta http-equiv="refresh" content="0; url=<?php echo $redirect_url; ?>" />
</head>
<body>
<?php echo $lang['redirecting'] ?> <a href="<?php echo $redirect_url; ?>"><?php echo $lang['here']?></a>.
</body>
</html>
<?php
}
else
{
pla_error( $lang['create_could_not_add'], ldap_error( $ds ), ldap_errno( $ds ) );
}
<?php } else {
pla_error( $lang['create_could_not_add'], ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
?>

View File

@ -1,49 +1,32 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/create_form.php,v 1.21 2004/10/28 13:37:39 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/create_form.php,v 1.30 2005/09/25 16:11:44 wurley Exp $
/*
* create_form.php
/**
* The menu where the user chooses an RDN, Container, and Template for creating a new entry.
* After submitting this form, the user is taken to their chosen Template handler.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars
* - server_id (optional)
* - container (rawurlencoded) (optional)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
require 'templates/template_config.php';
require TMPLDIR.'template_config.php';
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$server_id = $_REQUEST['server_id'];
$step = isset( $_REQUEST['step'] ) ? $_REQUEST['step'] : 1; // defaults to 1
$container = $_REQUEST['container'];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id_underline'] . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$server_name = $servers[$server_id]['name'];
// build the server drop-down html
$server_menu_html = '';
if (count($servers)>1){
$server_menu_html .= '<select name="server_id">';
$js_dn_list = '';
foreach( $servers as $id => $server ) {
if( $server['host'] ) {
$server_menu_html .= '<option value="'.$id.'"' . ( $id==$server_id? ' selected="true"' : '' ) . '>';
$server_menu_html .= $server['name'] . '</option>';
}
}
$server_menu_html .= '</select>';
} else {
$server = reset($servers);
if( $server['host'] )
$server_menu_html .= '<input type="hidden" name="server_id" value="'.key($servers).'" />' .
'<b>' . $server['name'] . '</b>';
}
$server_menu_html = server_select_list($ldapserver->server_id,true);
include './header.php'; ?>
@ -51,76 +34,142 @@ include './header.php'; ?>
<h3 class="title"><?php echo $lang['createf_create_object']?></h3>
<h3 class="subtitle"><?php echo $lang['createf_choose_temp']?></h3>
<center><h3><?php echo $lang['createf_select_temp']?></h3></center>
<form action="creation_template.php" method="post">
<center><h3><?php echo $lang['createf_select_temp']?></h3></center>
<form action="creation_template.php" method="post">
<input type="hidden" name="container" value="<?php echo htmlspecialchars( $container ); ?>" />
<table class="create">
<tr>
<td class="heading"><?php echo $lang['server']; ?>:</td>
<td><?php echo $server_menu_html; ?></td>
</tr>
<tr>
<td class="heading">
<?php echo $lang['template']; ?>:
</td>
<td>
<table class="template_display">
<tr>
<td>
<table class="templates">
<?php
$count = count( $templates );
$i = -1;
foreach( $templates as $name => $template ) {
$i++;
// Balance the columns properly
if( ( count( $templates ) % 2 == 0 && $i == intval( $count / 2 ) ) ||
( count( $templates ) % 2 == 1 && $i == intval( $count / 2 ) + 1 ) )
echo "</table></td><td><table class=\"templates\">";
// Check and see if this template should be shown in the list
$isValid = false;
if( isset($template['regexp'] ) ) {
if( @preg_match( "/".$template['regexp']."/i", $container ) ) {
$isValid = true;
}
} else {
$isValid = true;
}
?>
<tr>
<td><input type="radio" name="template" value="<?php echo htmlspecialchars($name);?>"
id="<?php echo htmlspecialchars($name); ?>"
<?php if( 0 == strcasecmp( 'Custom', $name ) ) echo ' checked';
if( ! $isValid ) echo ' disabled'; ?> />
</td>
<td class="icon"><label for="<?php echo htmlspecialchars($name);?>"><img src="<?php echo $template['icon']; ?>" /></label></td>
<td>
<label for="<?php echo htmlspecialchars($name);?>">
<?php if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '<b>';
if( ! $isValid ) echo "<span style=\"color: gray\"><acronym title=\"This template is not allowed in this container\">";
echo htmlspecialchars( $template['desc'] );
if( ! $isValid ) echo "</acronym></span>";
if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '</b>'; ?>
</label></td>
</tr>
<?php
} // end foreach ?>
</table>
</td>
</tr>
</table>
<tr>
<td class="heading"><?php echo $lang['template']; ?>:</td>
<td>
<table class="template_display">
<tr>
<td>
<table class="templates">
<?php
$i = -1;
if ($config->GetValue('template_engine','enable')) {
$template_xml = new Templates($ldapserver->server_id);
if ($config->GetValue('template_engine','disable_old'))
$templates = $template_xml->_template;
else
$templates = array_merge($template_xml->_template,$templates);
}
# Remove non-visable templates.
foreach ($templates as $index => $template)
if (isset($template['visible']) && (! $template['visible']))
unset ($templates[$index]);
$templates['custom']['title'] = 'Custom';
$templates['custom']['icon'] = 'images/object.png';
$count = count( $templates );
foreach( $templates as $name => $template ) {
$i++;
# If the template doesnt have a title, we'll use the desc field.
$template['desc'] = isset($template['title']) ? $template['title'] : $template['desc'];
# Balance the columns properly
if( ( count( $templates ) % 2 == 0 && $i == intval( $count / 2 ) ) ||
( count( $templates ) % 2 == 1 && $i == intval( $count / 2 ) + 1 ) )
echo "</table></td><td><table class=\"templates\">";
# Check and see if this template should be shown in the list
$isValid = false;
if( isset($template['regexp'] ) ) {
if( @preg_match( "/".$template['regexp']."/i", $container ) ) {
$isValid = true;
}
} else {
$isValid = true;
if (isset($template['invalid']) && $template['invalid'])
$isValid = false;
} ?>
</td>
</tr>
<tr>
<?php
if (isset($template['invalid']) && $template['invalid'] || (isset($template['handler']) && ! file_exists(TMPLDIR.'creation/'.$template['handler']))) {
?>
<td class="icon">
<img src="images/error.png" />
</td>
<?php
} else {
?>
<td>
<input type="radio" name="template" value="<?php echo htmlspecialchars($name);?>"
id="<?php echo htmlspecialchars($name); ?>"
<?php
if( 0 == strcasecmp( 'Custom', $name ) ) echo ' checked';
if( ! $isValid ) echo ' disabled';
?> />
</td>
<?php
}
?>
<td class="icon">
<label for="<?php echo htmlspecialchars($name);?>">
<img src="<?php echo $template['icon']; ?>" />
</label>
</td>
<td>
<label for="<?php echo htmlspecialchars($name);?>">
<?php if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '<b>';
if( ! $isValid )
if (isset($template['invalid']) && $template['invalid'])
printf('<span style="color: gray"><acronym title="%s">',$lang['template_invalid']);
else
printf('<span style="color: gray"><acronym title="%s">',$lang['template_restricted']);
echo htmlspecialchars( $template['desc'] );
if( ! $isValid ) echo "</acronym></span>";
if( 0 == strcasecmp( 'Custom', $template['desc'] ) ) echo '</b>'; ?>
</label>
</td>
</tr>
<?php } // end foreach ?>
</table>
</td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['proceed_gt']?>" /></center></td>
</tr>
</table>
</td>
</tr>
</form>
<tr>
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['proceed_gt']?>" /></center></td>
</tr>
</table>
</form>
</body>
</html>

View File

@ -1,62 +1,71 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/creation_template.php,v 1.18 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/creation_template.php,v 1.29 2005/09/25 16:11:44 wurley Exp $
/* file: creation_template.php
/**
* This file simply acts as a plugin grabber for the creator templates in
* the directory templates/creation/
*
* Expected POST vars:
* Variables that come in via common.php
* server_id
* Expected POST vars:
* template
*
* @package phpLDAPadmin
* @deprecated This file is no longer need when the template engine is up and running.
*/
/**
*/
require_once 'common.php';
require 'templates/template_config.php';
require './common.php';
$template = http_get_value( 'template' );
$template !== false or pla_error( $lang['ctemplate_no_template'] );
if ($config->GetValue('template_engine','enable') && (! is_numeric($_REQUEST['template']))) {
require './template_engine.php';
die();
}
if( $template == 'custom' ) {
foreach( $templates as $id => $template ) {
if( $template['handler'] == 'custom.php' ) {
require TMPLDIR.'template_config.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$template = (isset($_REQUEST['template']) ? $_REQUEST['template'] : null);
! is_null($template) or pla_error($lang['ctemplate_no_template']);
if ($template == 'custom') {
foreach ($templates as $id => $template) {
if ($template['handler'] == 'custom.php') {
$template = $id;
break;
}
}
}
isset( $templates[$template] ) or pla_error( sprintf( $lang['invalid_template'], htmlspecialchars( $template ) ) );
isset($templates[$template]) or pla_error(sprintf($lang['invalid_template'], htmlspecialchars($template)));
$template_id = $template;
$template = isset( $templates[$template] ) ? $templates[$template_id] : null;
$server_id = http_get_value( 'server_id' );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$server_name = $servers[ $server_id ][ 'name' ];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
include './header.php';
$template = isset($templates[$template]) ? $templates[$template_id] : null;
if (! array_key_exists('no_header',$template)) {
include './header.php';
?>
<body>
<h3 class="title"><?php echo $lang['createf_create_object']?></h3>
<h3 class="subtitle"><?php echo $lang['ctemplate_on_server']?> '<?php echo htmlspecialchars( $server_name ); ?>', <?php echo $lang['using_template']?> '<?php echo htmlspecialchars( $template['desc'] ); ?>'</h3>
<h3 class="subtitle"><?php echo $lang['ctemplate_on_server']?> '<?php echo htmlspecialchars($ldapserver->name); ?>', <?php echo $lang['using_template']?> '<?php echo htmlspecialchars($template['desc']); ?>'</h3>
<?php
<?php }
$handler = 'templates/creation/' . $template['handler'];
$handler = realpath( $handler );
if( ! file_exists( $handler ) )
pla_error( sprintf( $lang['template_does_not_exist'], htmlspecialchars( $template['handler'] ) ) );
if( ! is_readable( $handler ) )
pla_error( sprintf( $lang['template_not_readable'], htmlspecialchars( $template['handler'] ) ) );
$handler = TMPLDIR.'creation/' . $template['handler'];
if (! file_exists($handler))
pla_error(sprintf($lang['template_does_not_exist'],htmlspecialchars($template['handler'])));
if (! is_readable($handler))
pla_error(sprintf($lang['template_not_readable'],htmlspecialchars($template['handler'])));
include $handler;
echo "</body>\n</html>";
if (! array_key_exists('no_header',$template))
echo "</body>\n</html>";
?>

View File

@ -1,9 +1,12 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/custom_functions.php,v 1.6 2004/05/27 13:25:13 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/custom_functions.php,v 1.8 2005/03/05 06:27:06 wurley Exp $
/*
* custom_functions.php: Choose your own adventure.
/**
* CUSTOM_FUCTIONS has been DEPRECIATED, please use the hooks functions now.
* Let the phpLDAPadmin developers know if you REALLY need this - it will be removed
* in future releases.
*
* custom_functions.php:
*
* This file is full of functions (callbacks really) that are
* meant to be filled in by users of phpLDAPadmin (you). These functions
@ -56,6 +59,9 @@
* - ldap_delete (ie, removing entries)
* - ldap_modify (ie, changing the value of an attribute, for both
* multi- and single-valued attributes)
* @deprecated
* @see hooks.php
* @package phpLDAPadmin
*/
/*
@ -86,6 +92,7 @@ function postAttrModify( $server_id, $dn, $attr_name, $new_value )
* this function also gives you the attribute name ($attr_name)
* and the new value that the attribute will have ($new_value).
* $new_value may be a string or an array of strings.
* @deprecated
*/
function preAttrModify( $server_id, $dn, $attr_name, $new_value )
{
@ -101,6 +108,7 @@ function preAttrModify( $server_id, $dn, $attr_name, $new_value )
* this function also gives you the attribute name ($attr_name)
* and the new value that the attribute will have ($new_value).
* $new_value may be a string or an array of strings.
* @deprecated
*/
function preAttrAdd( $server_id, $dn, $attr_name, $new_value )
{
@ -116,6 +124,7 @@ function preAttrAdd( $server_id, $dn, $attr_name, $new_value )
* one may wish to create the user's home directory.
* See the documentation for preEntryCreate() below for
* the description of the $attrs parameter.
* @deprecated
*/
function postEntryCreate( $server_id, $dn, $attrs )
{
@ -149,6 +158,7 @@ function postEntryCreate( $server_id, $dn, $attrs )
* ...
* )
*
* @deprecated
*/
function preEntryCreate( $server_id, $dn, $attrs )
{
@ -160,6 +170,7 @@ function preEntryCreate( $server_id, $dn, $attrs )
* This function is executed before an entry is deleted.
* If it returns true, the entry is deleted, if false
* is returned, the entry is not deleted.
* @deprecated
*/
function preEntryDelete( $server_id, $dn )
{
@ -171,6 +182,7 @@ function preEntryDelete( $server_id, $dn )
* This function is executed after an entry is deleted.
* Unlike preEntryDelete(), this function's return
* value is ignored.
* @deprecated
*/
function postEntryDelete( $server_id, $dn )
{
@ -179,9 +191,10 @@ function postEntryDelete( $server_id, $dn )
/**
* This function is called, after a new session is initilaized
* @deprecated
*/
function postSessionInit()
{
// Fill me in
}
?>

View File

@ -1,72 +1,69 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete.php,v 1.18 2004/08/15 17:35:25 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete.php,v 1.23 2005/09/25 16:11:44 wurley Exp $
/*
* delete.php
/**
* Deletes a DN and presents a "job's done" message.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn = $_POST['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_POST['server_id'];
$encoded_dn = rawurlencode($dn);
if( $dn === null )
pla_error( $lang['you_must_specify_a_dn'] );
if (is_null($dn))
pla_error($lang['you_must_specify_a_dn']);
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
dn_exists( $server_id, $dn ) or pla_error( sprintf( $lang['no_such_entry'], '<b>' . pretty_print_dn( $dn ) . '</b>' ) );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
dn_exists($ldapserver,$dn) or pla_error(sprintf($lang['no_such_entry'], '<b>' . pretty_print_dn($dn) . '</b>'));
// Check the user-defined custom callback first.
if( true === preEntryDelete( $server_id, $dn ) ) {
$del_result = @ldap_delete( $ds, $dn );
} else {
exit;
}
if (run_hook('pre_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn)))
$del_result = @ldap_delete($ldapserver->connect(), $dn);
if( $del_result )
{
// Custom callback
postEntryDelete( $server_id, $dn );
else
pla_error(sprintf($lang['could_not_delete_entry'],'<b>'.pretty_print_dn($dn).'</b>'));
// kill the DN from the tree browser session variable and
// refresh the tree viewer frame (left_frame)
if ($del_result) {
if( array_key_exists( 'tree', $_SESSION ) )
{
# Custom callback
run_hook('post_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn));
# kill the DN from the tree browser session variable and
# refresh the tree viewer frame (left_frame)
if (array_key_exists('tree', $_SESSION)) {
$tree = $_SESSION['tree'];
if( isset( $tree[$server_id] ) && is_array( $tree[$server_id] ) ) {
// does it have children? (it shouldn't, but hey, you never know)
if( isset( $tree[$server_id][$dn] ) )
unset( $tree[$server_id][$dn] );
// search and destroy
foreach( $tree[$server_id] as $tree_dn => $subtree )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$server_id][$tree_dn][$key] );
if (isset($tree[$ldapserver->server_id]) && is_array($tree[$ldapserver->server_id])) {
# does it have children? (it shouldn't, but hey, you never know)
if (isset($tree[$ldapserver->server_id][$dn]))
unset($tree[$ldapserver->server_id][$dn]);
# search and destroy
foreach ($tree[$ldapserver->server_id] as $tree_dn => $subtree)
foreach ($subtree as $key => $sub_tree_dn)
if (0 == strcasecmp($sub_tree_dn, $dn))
unset($tree[$ldapserver->server_id][$tree_dn][$key]);
$_SESSION['tree'] = $tree;
}
session_write_close();
}
include './header.php';
?>
include './header.php'; ?>
<script language="javascript">
parent.left_frame.location.reload();
@ -74,13 +71,11 @@ if( $del_result )
<br />
<br />
<center><?php echo sprintf( $lang['entry_deleted_successfully'], '<b>' .pretty_print_dn($dn) . '</b>' ); ?></center>
<?php
<center><?php echo sprintf($lang['entry_deleted_successfully'],'<b>'.pretty_print_dn($dn).'</b>'); ?></center>
<?php
} else {
pla_error( sprintf( $lang['could_not_delete_entry'], '<b>' . pretty_print_dn( $dn ) . '</b>' ),
ldap_error( $ds ),
ldap_errno( $ds ) );
pla_error(sprintf($lang['could_not_delete_entry'], '<b>' . pretty_print_dn($dn) . '</b>'),
ldap_error($ldapserver->connect()), ldap_errno($ldapserver->connect()));
}
?>

View File

@ -1,47 +1,54 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete_attr.php,v 1.9 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete_attr.php,v 1.13 2005/09/17 20:04:29 wurley Exp $
/*
* delete_attr.php
/**
* Deletes an attribute from an entry with NO confirmation.
*
* Variables that come in via common.php
* - server_id
*
* On success, redirect to edit.php
* On failure, echo an error.
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_POST['server_id'];
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn = $_POST['dn'] ;
$encoded_dn = rawurlencode( $dn );
$attr = $_POST['attr'];
$dn = isset($_POST['dn']) ? $_POST['dn'] : null;
$attr = isset($_POST['attr']) ? $_POST['attr'] : null;
if( is_attr_read_only( $server_id, $attr ) )
pla_error( sprintf( $lang['attr_is_read_only'], htmlspecialchars( $attr ) ) );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( ! $attr ) pla_error( $lang['no_attr_specified'] );
if( ! $dn ) pla_error( $lang['no_dn_specified'] );
if (! $dn)
pla_error($lang['no_dn_specified']);
if (! $attr)
pla_error($lang['no_attr_specified']);
$encoded_dn = rawurlencode($dn);
if (is_attr_read_only($ldapserver,$attr))
pla_error(sprintf($lang['attr_is_read_only'],htmlspecialchars($attr)));
$update_array = array();
$update_array[$attr] = array();
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$res = @ldap_modify( $ds, $dn, $update_array );
if( $res )
{
$redirect_url = "edit.php?server_id=$server_id&dn=$encoded_dn";
foreach( $update_array as $attr => $junk )
$redirect_url .= "&modified_attrs[]=$attr";
header( "Location: $redirect_url" );
}
else
{
pla_error( $lang['could_not_perform_ldap_modify'], ldap_error( $ds ), ldap_errno( $ds ) );
}
$res = @ldap_modify($ldapserver->connect(),$dn,$update_array);
if ($res) {
$redirect_url = sprintf("edit.php?server_id=%s&dn=%s",$ldapserver->server_id,$encoded_dn);
foreach($update_array as $attr => $junk)
$redirect_url .= "&modified_attrs[]=$attr";
header("Location: $redirect_url");
} else {
pla_error($lang['could_not_perform_ldap_modify'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
}
?>

View File

@ -1,151 +1,153 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete_form.php,v 1.17 2004/10/21 00:14:48 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/delete_form.php,v 1.20 2005/07/22 05:47:44 wurley Exp $
/*
/**
* delete_form.php
* Displays a last chance confirmation form to delete a dn.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
$rdn = pla_explode_dn( $dn );
$rdn = $rdn[0];
$server_name = $servers[$server_id]['name'];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$children = get_container_contents( $server_id, $dn,0,'(objectClass=*)',LDAP_DEREF_NEVER );
$has_children = count($children)>0 ? true : false;
$children = get_container_contents( $ldapserver,$dn,0,'(objectClass=*)',LDAP_DEREF_NEVER );
$has_children = count($children) > 0 ? true : false;
include './header.php'; ?>
<body>
<h3 class="title"><?php echo sprintf( $lang['delete_dn'], htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<?php if( $has_children ) { ?>
<?php if( $has_children ) { ?>
<center><b><?php echo $lang['permanently_delete_children']; ?></b><br /><br />
<?php
flush(); // so the user can get something on their screen while we figure out how many children this object has
if( $has_children ) {
// get the total number of child objects (whole sub-tree)
$s = pla_ldap_search( $server_id, 'objectClass=*', $dn, array('dn'), 'sub' );
flush();
# get the total number of child objects (whole sub-tree)
$s = pla_ldap_search( $ldapserver, 'objectClass=*', $dn, array('dn'), 'sub' );
$sub_tree_count = count( $s );
}
?>
<table class="delete_confirm">
<td>
<p>
<?php echo sprintf( $lang['entry_is_root_sub_tree'], $sub_tree_count ); ?>
<small>(<a href="search.php?search=true&amp;server_id=<?php echo $server_id; ?>&amp;filter=<?php echo rawurlencode('objectClass=*'); ?>&amp;base_dn=<?php echo $encoded_dn; ?>&amp;form=advanced&amp;scope=sub"><?php echo $lang['view_entries']; ?></a>)</small>
<br />
<br />
<?php echo sprintf( $lang['confirm_recursive_delete'], ($sub_tree_count-1) ); ?><br />
<br />
<small><?php echo $lang['confirm_recursive_delete_note']; ?></small>
<br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="rdelete.php" method="post">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" class="scary" value="<?php echo sprintf( $lang['delete_all_x_objects'], $sub_tree_count ); ?>" />
</form>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
<p>
<?php echo sprintf( $lang['entry_is_root_sub_tree'], $sub_tree_count ); ?>
<small>(<a href="search.php?search=true&amp;server_id=<?php echo $ldapserver->server_id; ?>&amp;filter=<?php echo rawurlencode('objectClass=*'); ?>&amp;base_dn=<?php echo $encoded_dn; ?>&amp;form=advanced&amp;scope=sub"><?php echo $lang['view_entries']; ?></a>)</small>
<br />
<br />
<?php echo sprintf( $lang['confirm_recursive_delete'], ($sub_tree_count-1) ); ?><br />
<br />
<small><?php echo $lang['confirm_recursive_delete_note']; ?></small>
<br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="rdelete.php" method="post">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" class="scary" value="<?php echo sprintf( $lang['delete_all_x_objects'], $sub_tree_count ); ?>" />
</form>
</center>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</table>
<?php flush(); ?>
<br />
<br />
<?php echo $lang['list_of_entries_to_be_deleted']; ?><br />
<select size="<?php echo min( 10, $sub_tree_count );?>" multiple disabled style="background:white; color:black;width:500px" >
<?php $i=0; ?>
<?php foreach( $s as $dn => $junk ) { ?>
<?php $i++; ?>
<option><?php echo $i; ?>. <?php echo htmlspecialchars( ( $dn ) ); ?></option>
<?php } ?>
<select size="<?php echo min( 10, $sub_tree_count );?>" multiple disabled style="background:white; color:black;width:500px" >
<?php $i=0;
foreach( $s as $dn => $junk ) {
$i++; ?>
<option><?php echo $i; ?>. <?php echo htmlspecialchars( ( $dn ) ); ?></option>
<?php } ?>
</select>
<br />
<?php } else { ?>
<?php } else { ?>
<center>
<table class="delete_confirm">
<td>
<?php echo $lang['sure_permanent_delete_object']; ?><br />
<br />
<nobr><acronym title="<?php echo $lang['distinguished_name']; ?>"><?php echo $lang['dn']; ?></acronym>: <b><?php echo pretty_print_dn( $dn ); ?></b><nobr><br />
<nobr><?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars($server_name); ?></b></nobr><br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="delete.php" method="post">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['delete']; ?>" class="scary" />
</center>
</form>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
<?php echo $lang['sure_permanent_delete_object']; ?><br />
<br />
<nobr><acronym title="<?php echo $lang['distinguished_name']; ?>"><?php echo $lang['dn']; ?></acronym>: <b><?php echo pretty_print_dn( $dn ); ?></b><nobr><br />
<nobr><?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars($ldapserver->name); ?></b></nobr><br />
<br />
<table width="100%">
<tr>
<td>
<center>
<form action="delete.php" method="post">
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['delete']; ?>" class="scary" />
</form>
</center>
</td>
<td>
<center>
<form action="edit.php" method="get">
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="submit" name="submit" value="<?php echo $lang['cancel']; ?>" class="cancel" />
</form>
</center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</table>
</center>
<?php } ?>
<?php } ?>
</body>
</html>

View File

@ -1,6 +1,9 @@
* Project Creator:
- David Smith
* Project Developers:
- David Smith Maintainer
- Deon George Maintainer
- Xavier Renard Import/Export and Samba
- Uwe Ebel I18n
@ -9,7 +12,7 @@
- Bayu Irawan userPassword hash, html fixes, ldap_modify fixes
- Uwe Ebel short_open_tags fix
- Andrew Tipton SUP support in schema parser
- Eigil Bjørgum UTF-8 support
- Eigil Bjørgum UTF-8 support
- Brandon Lederer DNS entry template
Nathan Rotschafer
- Steve Rigler Password hash patch
@ -21,6 +24,15 @@
- Piotr Tarnowski i18n fixes
- Deon George Auto-uidNumber enhancements and many fixes
- Pierre Belanger Speed-ups to auto-uidNumber
- Benjamin Drieu Syslog, Hooks and other fixes
- Samuel Tran User login restriction
- Daniel van Eeden Unicode, CSS fixes
- Piotr Tarnowski More locatisation fixes
- Tomas Kuliavas Improved password encoding functions
- Alessandro De Zorzi Enhancement with the new template engine and others
- Matt Harrington Fixes
- Jonathan Thurman Add Multiple objectClasses
- And many others, whose names are lost in the changelog. Thank you.
* Translators:
@ -30,11 +42,11 @@
- Xavier Renard French
- Dave Smith English ;)
- Richard Lucassen Dutch
- Andreu Sanchez Spanish and Català
- Andreu Sanchez Spanish and Català
- Dmitry Gorpinenko, Russian
Aleksey Soldatov
Sergey Saukh
- Unknown Italian
- Unknown Italian, Tain, Simplified Chinese
- Alexandre Maciel Portuguese (Brasilian)
Elton Schroeder Fenner (CLeGi)
- Piotr Tarnowski (DrFugazi) Polish
@ -45,6 +57,3 @@
If you can help translate, please join the phpldapadmin-devel mailing list:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

View File

@ -1,3 +1,78 @@
* Version 0.9.7, 2005-09-11
* Summary:
- Now fully supporting PHP5 - this will be the last version developed on PHP4.
- Revamped how you configure PLA - now using a config object and some checking,
- Revamped how you define LDAP servers - extending the LDAPServer object and adding some checking.
- Fixed all functions so that they now use the LDAPServer object.
- Introduced the template engine and configuration by XML files. (The old templates are still in this
version, unchanged from 0.9.6. They will be removed after this version is released.)
- Changed dependancy checking to just index.php, so that common.php executes faster.
- Minor improvements to compare.php
- Much improved debug logging
- Much improved caching
- Improved LDAP server info display
- Some code readability cleanup
- Add other fixes as per the ChangeLog (ChangeLogCVS.txt).
Thank you for everybody who has submitted fixes/enhancements/recommendations and feedback for this version.
* Version 0.9.6, 2005-04-03
* Summary:
The main goals for this version was to close all the outstanding bugs and apply all the submitted patchs
on sourceforge. All the sourceforge easy to do RFE's where also included.
* Notes:
- Added support for mulpiple Base DN's
- Added support to log for syslog (Benjamin Drieu)
- Added hooks feature to replace custom functions (Benjamin Drieu)
- Entry chooser now auto adds rdn entry for copy/move operations (wigi2)
- Initial support for AD Schema Retrieval
- Added login restriction (Samuel Tran)
- Added support to move objects (aka Copy then Delete) (wigi2)
- No longer show + next to objects that have no children in tree viewer (when hide_configuration_management=true)
- Added date evaluation to shadow attributes (shadowAccount)
- Added Enhancement to show attributes in a specifc order (Samuel Tran)
- Added Server Info OID descriptions
- Added new feature to compare two DNs
- Binary SID to text SID feature for MSAD objectSid entries.
- Added session timeout feature (Samuel Tran)
* New Languages:
- Taiwan (Anonymous)
- Simplfied Chinese (Anonymous)
* Changes:
- LDAP server configuration is being moved into an Object LDAPServer, all future interactions should
use this object class from now on.
- Some more conversions of english static text into language files.
- Some code cleanup, excess whitespace removal, etc...
- Tags for phpdoc updated.
- Added cvs header to files missing the header.
- LDIF Import function improvements (Xavier Renard)
- UniqueAttrs fix, now showing actual value (in multi value attribs) that breaches uniqueness
- Fixed check_lang_files when register_globals=off
- css fixes (Daniel van Eeden)
- More locatisation fixes (Piotr Tarnowski)
- Schema functions all use cached entries now by default
- Improved password encoding functions (Tomas Kuliavas)
- If auth_type = session, then dn and password is also blowfish encrypted
- Prettied up the icon index (Dave Smith)
- Make the rdn not editable in the default template.
* Fixes:
- password_check when magic_quotes_gpc is on.
- Misc fixes (Benjamin Drieu)
- Fix searchs when searching for values with brackets
- Unicode fixes (Daniel van Eeden)
- View jpeg photo minor security fix (Dave Smith)
- Check password link missing in read-only mode
* Sourceforge bug fixes:
1117099 1117316 1120048 1150947 1152962 1153360 1055401 1158148 1161425
* Version 0.9.5, 2004-12-17

View File

@ -1,26 +1,26 @@
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-es.txt,v 1.3 2004/03/19 20:22:54 i18phpldapadmin Exp $
Estas instrucciones dejan por sentado que tienes una instalación
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-es.txt,v 1.4 2005/02/06 00:37:15 wurley Exp $
Estas instrucciones dejan por sentado que tienes una instalación
funcionando de:
a. Servidor Web (Apache, IIS, etc).
b. PHP 4.1.0 o mas nuevo (con soporte LDAP)
* Instalando phpLDAPadmin en 4 pasos muy simples:
1. Desempaqueta el archivo (si estás leyendo esto, ya lo has hecho).
2. Pon el directorio resultante 'phpldapadmin' en algún lugar de tu
1. Desempaqueta el archivo (si estás leyendo esto, ya lo has hecho).
2. Pon el directorio resultante 'phpldapadmin' en algún lugar de tu
directorio web raiz.
3. Copia 'config.php.example' a 'config.php' y edítalo para que se
acomode a tu configuración y tu gusto.
4. Entonces, con el navegador ve a la dirección que contiene los archivos
3. Copia 'config.php.example' a 'config.php' y edítalo para que se
acomode a tu configuración y tu gusto.
4. Entonces, con el navegador ve a la dirección que contiene los archivos
del directorio phpldapadmin.
* Notas del navegador
phpLDAP se desarrolló bajo Mozilla, y será donde seguramente corra mejor.
Aún así, las pruebas se han hecho bajo Internet Explorer, y tendría que funcionar
bien también. No se ha hecho ninguna prueba con Konqueror (o cualquier navegador
phpLDAP se desarrolló bajo Mozilla, y será donde seguramente corra mejor.
Aún así, las pruebas se han hecho bajo Internet Explorer, y tendría que funcionar
bien también. No se ha hecho ninguna prueba con Konqueror (o cualquier navegador
basado en kthml como Safari) o Opera. Si encuentras alguna incompatibilidad, por favor
háznoslo saber.
háznoslo saber.
* Contribuidores
@ -36,21 +36,21 @@ funcionando de:
- Bayu Irawan userPassword hash, arreglos html, arreglos ldap_modify
- Uwe Ebel arreglo short_open_tags
- Andrew Tipton soporte SUP en el parseador del esquema
- Eigil Bjørgum soporte UTF-8
- Eigil Bjørgum soporte UTF-8
- Brandon Lederer plantilla de entrada de DNS
Nathan Rotschafer
- Steve Rigler Parche para Password hash
- Chris Jackson Contraseñas Blowfish y md5crypt
- Chris Jackson Contraseñas Blowfish y md5crypt
- Marius Rieder Parseador avanzado de esquema
- Nick Burch Un montón de arreglos de realpath()
- Nick Burch Un montón de arreglos de realpath()
Traductores:
- Uwe Ebel Alemán
- Xavier Renard Francés
- Dave Smith Inglés ;)
- Uwe Ebel Alemán
- Xavier Renard Francés
- Dave Smith Inglés ;)
Si puedes ayudar a traducir, por favor apúntate a la lista de correo phpldapadmin:
Si puedes ayudar a traducir, por favor apúntate a la lista de correo phpldapadmin:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

View File

@ -1,23 +1,23 @@
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-fr.txt,v 1.3 2004/03/19 20:22:54 i18phpldapadmin Exp $
Les instructions suivantes supposent une installation en état de marche de:
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/INSTALL-fr.txt,v 1.4 2005/02/06 00:37:15 wurley Exp $
Les instructions suivantes supposent une installation en état de marche de:
a. Un serveur web (Apache, IIS, etc).
b. PHP 4.1.0 ou une version plus récente (avec le support LDAP).
b. PHP 4.1.0 ou une version plus récente (avec le support LDAP).
* Installer phpLDAPadmin en quatre étapes simples:
* Installer phpLDAPadmin en quatre étapes simples:
1. Dé-tarrer l'archive (si vous lisez ceci, c'est que vous l'avez déjà fait).
2. Mettre le répertoire 'phpldapadmin' ainsi obtenu quelque part sous
1. Dé-tarrer l'archive (si vous lisez ceci, c'est que vous l'avez déjà fait).
2. Mettre le répertoire 'phpldapadmin' ainsi obtenu quelque part sous
la racine de votre serveur web.
3. Copier 'config.php.example' vers 'config.php' et éditer selon vos besoins.
4. Ensuite, pointer votre navigateur vers le répertoire phpldapadmin.
3. Copier 'config.php.example' vers 'config.php' et éditer selon vos besoins.
4. Ensuite, pointer votre navigateur vers le répertoire phpldapadmin.
* Notes sur les navigateurs
phpLDAPadmin a été developpé avec Mozilla et fonctionnera vraisemblablement
mieux avec celui-ci. Cependant, des tests ont été effectué avec Internet Explorer
et cela devrait fonctionner également. Aucun test n'a été réalisé ni avec Konqueror
(ou un navigateur basé sur khtml comme Safari par exemple) ni avec Opera. Si
vous trouvez une incompatibilité avec votre navigateur, merci de la reporter.
phpLDAPadmin a été developpé avec Mozilla et fonctionnera vraisemblablement
mieux avec celui-ci. Cependant, des tests ont été effectué avec Internet Explorer
et cela devrait fonctionner également. Aucun test n'a été réalisé ni avec Konqueror
(ou un navigateur basé sur khtml comme Safari par exemple) ni avec Opera. Si
vous trouvez une incompatibilité avec votre navigateur, merci de la reporter.
* Contributions:
@ -25,7 +25,7 @@ Les instructions suivantes supposent une installation en
- David Smith Maintenance
- Xavier Renard Responsable LDIF
- Marius Rieder Responsable pour les schéma LDAP
- Marius Rieder Responsable pour les schéma LDAP
- Nate Rotschafer Directeur des releases
Auteurs de patchs:
@ -33,25 +33,25 @@ Les instructions suivantes supposent une installation en
- Bayu Irawan hachage pour le mot de passe utilisateur,
corrections html, corrections pour ldap_modiy
- Uwe Ebel Corrections pour short_open_tags
- Andrew Tipton Support pour SUP dans le parseur de schémas
- Eigil Bjørgum Support pour UTF-8
- Brandon Lederer Patron pour les entrées DNS
- Andrew Tipton Support pour SUP dans le parseur de schémas
- Eigil Bjørgum Support pour UTF-8
- Brandon Lederer Patron pour les entrées DNS
Nathan Rotschafer
- Steve Rigler Correction pour les hachages des mots de passe
- Chris Jackson Mots de passe Blowfish et md5crypt
- Marius Rieder Amélioration du parseur de schémas
- Marius Rieder Amélioration du parseur de schémas
- Nick Burch Corrections multiples pour realpath()
Traducteurs:
- Uwe Ebel & Marius Reider Allemand
- Xavier Renard Français
- Xavier Renard Français
- Dave Smith Anglais ;)
- Richard Lucassen Néerlandais
- Richard Lucassen Néerlandais
- Andreu Sanchez Espagnol et Catalan
- Dmitry Gorpinenko Russe
- Unknown Italien
Si vous pouvez aider à traduire phpLDAPAdmin, veuillez s'il vous plaît vous abonner
à la liste de diffusion phpldapadmin-devel:
Si vous pouvez aider à traduire phpLDAPAdmin, veuillez s'il vous plaît vous abonner
à la liste de diffusion phpldapadmin-devel:
https://lists.sourceforge.net/mailman/listinfo/phpldapadmin-devel

View File

@ -1,56 +0,0 @@
$Header: /cvsroot/phpldapadmin/phpldapadmin/doc/ROADMAP,v 1.19 2004/03/25 12:50:39 uugdave Exp $
phpLDAPadmin roadmap
0.9.3 planned features:
Bugfix release.
This release will focus on fixing bugs, adding minor features, and improving stability.
Samba 3.0 support in samba user and machine creation templates
Move template config to a new config file: template_config.php (or something)
0.9.4 planned features:
* Complete i18n. All strings localized.
Modification templates:
* gropOfNames (view full DNs and browse buttons)
* groupOfUniqueNames (view full DNs and browse buttons)
* http auth_type (a la phpMyAdmin)
* read-only attributes (similar to hidden attributes) in config
* Default mod template: Add a "browse" button for attributes that store DNs.
caveat: We don't have a way to reference form elements with "[]" in the name, causing a proble
with our default mod template. The "browser" button is present, but cannot populate the form
element.
* Add output buffering when including lang files so no output is sent to the browser (which could cause problems for sessions and cookies)
* Paging search results.
* Anonymous binds redirect to search page with no tree viewer (as an option in config)
* pretty-printed DNs
* DSML exports
* obfuscated password display
* more linkage in the schema browser (used by links)
* jpegs drawn in-line in searches
* configurable read-only attributes
* paging in search results (ie, viewing entries 1-50 of 436)
* Configuration for templates.
0.9.5 planned features:
Maybe create a class called Config with static functions for fetching configuration data (ie, Config::isServerReadOnly()).
or: Object-oriented server and general configuration (ie, add a class Server)
Support and test ActiveDirectory and iMail LDAP schema.
Add link to objectClass values in default mod template to jump to that objectClass in the schema viewer.
Make deref param modifiable in the advanced search form (LDAP_DEREF_ALWAYS, LDAP_DEREF_NEVER, etc.)
Better handling of aliases and referals (display the actual alias with aliasedObjectName or ref attrs, and don't follow or perhaps make it configurable like ldapsearch)
Remove all HTML from language files.
Add a random hint on the welcome page
Add blowfish encryption to encrypt cookie-stored passwords and DNs.
Support for modifying replica entries (using ldap_set_rebind_proc())
Modification templates
user
oragnizationalUnit
sambaUser (v 2 and 3)
sambaMachine
Search filter builder for simple search form (just select AND or OR for a group of criteria)
Add mass-update feature (user provides filter and set of attrs/vals to modify)
No-schema mode of operation (some servers simply won't give us schema. This becomes a problem for normal operation)
i18n localization of all creation templates
Hidden/read-only attrs on a filter-basis (ie, different users have different viewable, writable attributes)
Serious compatibility testing for additional LDAP servers.
(* means an item is complete and checed into CVS)

1218
doc/hooks.sgml Normal file

File diff suppressed because it is too large Load Diff

15
doc/test_encoding.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
# $Header: /cvsroot/phpldapadmin/phpldapadmin/doc/test_encoding.sh,v 1.1 2005/02/06 00:37:15 wurley Exp $
# $Id: test_encoding.sh,v 1.1 2005/02/06 00:37:15 wurley Exp $
# Written by: Daniel van Eeden <daniel_e@dds.nl>
# Purpose: test utf-8 encoding
for file in `find . -type f ! -name \*png ! -name \*jpg | egrep -v "^./lang/"`
do
output=`iconv ${file} -o /dev/null 2>&1`
err=$?
output=`echo ${output} | cut -d: -f2`
if [ ${err} != "0" ]; then
echo "${file}:${output}"
fi
done

View File

@ -1,9 +1,14 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/documentation.php,v 1.7 2004/12/17 15:21:15 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/documentation.php,v 1.9 2005/09/25 16:11:44 wurley Exp $
include './common.php';
include './header.php';
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
//include './header.php';
echo "<body>";
@ -13,7 +18,7 @@ switch( $view ) {
echo "<h3 class=\"title\">phpLDAPadmin Credits</h3>";
echo "<pre>";
echo "<small>";
include 'doc/CREDITS';
include DOCDIR.'CREDITS';
echo "</small>";
echo "</pre>";
echo "</body>";
@ -24,7 +29,7 @@ switch( $view ) {
echo "<h3 class=\"title\">phpLDAPadmin ChangeLog</h3>";
echo "<pre>";
echo "<small>";
include 'doc/ChangeLog';
include DOCDIR.'ChangeLog';
echo "</small>";
echo "</pre>";
echo "</body>";
@ -45,5 +50,3 @@ switch( $view ) {
<h3 class="doc">Modification Templates</h3>
<p class="doc">TODO: Write me.</p>

View File

@ -1,11 +1,17 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/donate.php,v 1.7 2005/02/26 12:35:05 wurley Exp $
include 'common.php';
include 'header.php';
/**
* @package phpLDAPadmin
*/
/**
*/
include './common.php';
include './header.php';
$donate_base_href="https://sourceforge.net/donate/index.php?group_id=61828&amp;type=0";
$amounts = array( 10, 20, 50, 100 );
?>
<body>
@ -22,10 +28,8 @@ $amounts = array( 10, 20, 50, 100 );
<?php foreach( $amounts as $amount ) { ?>
<td align="center">
<a
href="<?php echo $donate_base_href; ?>&amp;amt=<?php echo $amount; ?>"
target="new"><img
src="images/paypal-donate.png"
<a href="<?php echo $donate_base_href; ?>&amp;amt=<?php echo $amount; ?>" target="new">
<img src="images/paypal-donate.png"
alt="[<?php echo sprintf( $lang['donate_amount'], '$US ' . $amount ); ?>]"
title="<?php echo sprintf( $lang['donate_amount'], '$US ' . $amount ); ?>" /></a>
</td>
@ -35,9 +39,7 @@ $amounts = array( 10, 20, 50, 100 );
<tr>
<?php foreach( $amounts as $amount ) { ?>
<td align="center"><?php echo sprintf( $lang['donate_amount'], '$' . $amount ); ?></td>
<?php } ?>
</tr>
@ -45,14 +47,6 @@ $amounts = array( 10, 20, 50, 100 );
<br />
<br />
<center>
<?php echo $lang['wish_list_option']; ?>
<br />
<br />
<a href="http://www.amazon.com/gp/registry/22APPYURX48VA"><?php echo $lang['wish_list']; ?></a>
</center>
</body>
</html>

View File

@ -1,35 +1,44 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/download_binary_attr.php,v 1.8 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/download_binary_attr.php,v 1.12 2005/07/22 05:47:44 wurley Exp $
/**
* @package phpLDAPadmin
* Variables that come in via common.php
* - server_id
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$dn = rawurldecode( $_GET['dn'] );
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn = rawurldecode($_GET['dn']);
$attr = $_GET['attr'];
// if there are multiple values in this attribute, which one do you want to see?
$value_num = isset( $_GET['value_num'] ) ? $_GET['value_num'] : 0;
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
dn_exists( $server_id, $dn ) or pla_error( sprintf( $lang['no_such_entry'], pretty_print_dn( $dn ) ) );
# if there are multiple values in this attribute, which one do you want to see?
$value_num = isset($_GET['value_num']) ? $_GET['value_num'] : 0;
$search = @ldap_read( $ds, $dn, "(objectClass=*)", array( $attr ), 0, 0, 0, get_view_deref_setting() );
if( ! $search )
pla_error( $lang['error_performing_search'], ldap_error( $ds ), ldap_errno( $ds ) );
$entry = ldap_first_entry( $ds, $search );
$attrs = ldap_get_attributes( $ds, $entry );
$attr = ldap_first_attribute( $ds, $entry, $attrs );
$values = ldap_get_values_len( $ds, $entry, $attr );
dn_exists($ldapserver,$dn) or
pla_error(sprintf($lang['no_such_entry'],pretty_print_dn($dn)));
$search = @ldap_read($ldapserver->connect(),$dn,"(objectClass=*)",array($attr),0,0,0,$config->GetValue('deref','view'));
if (! $search)
pla_error($lang['error_performing_search'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
$entry = ldap_first_entry($ldapserver->connect(),$search);
$attrs = ldap_get_attributes($ldapserver->connect(),$entry);
$attr = ldap_first_attribute($ldapserver->connect(),$entry,$attrs);
$values = ldap_get_values_len($ldapserver->connect(),$entry,$attr);
$count = $values['count'];
// Dump the binary data to the browser
header( "Content-type: octet-stream" );
header( "Content-disposition: attachment; filename=$attr" );
header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );
header("Content-type: octet-stream");
header("Content-disposition: attachment; filename=$attr");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
echo $values[$value_num];
?>

View File

@ -1,61 +1,59 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/edit.php,v 1.48 2004/10/14 03:33:36 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/edit.php,v 1.56 2005/09/25 16:11:44 wurley Exp $
/*
* edit.php
/**
* Displays the specified dn from the specified server for editing
* in its template as determined by get_template(). This is a simple
* shell for displaying entries. The real work is done by the templates
* found in tempaltes/modification/
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
* - use_default_template (optional) If set, use the default template no matter what
* - Other vars may be set and used by the modification templates
*
* @package phpLDAPadmin
*/
/**
*/
require_once realpath( 'common.php' );
require_once realpath( 'templates/template_config.php' );
require './common.php';
require TMPLDIR.'template_config.php';
$dn = isset( $_GET['dn'] ) ? $_GET['dn'] : false;
$dn !== false or pla_error( $lang['missing_dn_in_query_string'] );
$decoded_dn = rawurldecode( $dn );
$encoded_dn = rawurlencode( $decoded_dn );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : false;
$server_id !== false or pla_error( $lang['missing_server_id_in_query_string'] );
$dn = isset($_GET['dn']) ? $_GET['dn'] : false;
$dn !== false or pla_error($lang['missing_dn_in_query_string']);
// Template authors may wish to present the user with a link back to the default, generic
// template for editing. They may use this as the target of the href to do so.
$default_href = "edit.php?server_id=$server_id&amp;dn=$encoded_dn&amp;use_default_template=true";
$decoded_dn = rawurldecode($dn);
$encoded_dn = rawurlencode($decoded_dn);
$use_default_template = isset( $_GET['use_default_template'] ) ? true : false;
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
/* Template authors may wish to present the user with a link back to the default, generic
template for editing. They may use this as the target of the href to do so.
@deprectated
*/
$default_href = sprintf("edit.php?server_id=%s&amp;dn=%s&amp;use_default_template=true",$ldapserver->server_id,$encoded_dn);
$use_default_template = isset( $_GET['use_default_template'] ) || $config->GetValue('template_engine','enable');
if( $use_default_template ) {
require realpath( 'templates/modification/default.php' );
} else {
if ($config->GetValue('template_engine','enable'))
require './template_engine.php';
else
require TMPLDIR.'modification/default.php';
} else {
$template = get_template($ldapserver,$dn);
$template_file = TMPLDIR."modification/$template.php";
if (file_exists($template_file))
require $template_file;
$template = get_template( $server_id, $dn );
$template_file = "templates/modification/$template.php";
if( file_exists( realpath( $template_file ) ) )
require realpath( $template_file );
else {
echo "\n\n";
echo $lang['missing_template_file'];
echo " <b>$template_file</b>. ";
echo $lang['using_default'];
echo "<br />\n\n";
require realpath( 'templates/modification/default.php' );
printf('%s <b>%s</b> %s<br />',$lang['missing_template_file'],$template_file,$lang['using_default']);
require TMPLDIR.'modification/default.php';
}
}
?>

View File

@ -1,5 +1,9 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/emuhash_functions.php,v 1.6 2005/03/25 00:59:48 wurley Exp $
/**
* @package other
*/
/*******************************************************************************
* emuhash - partly emulates the php mhash functions
* version: 2004040701
@ -31,74 +35,80 @@ if( ! function_exists( 'mhash' ) && ! function_exists( 'mhash_keygen_s2k' ) ) {
$emuhash_openssl = '/usr/bin/openssl';
// don't create mhash functions if we don't have a working openssl
if( ! file_exists( $emuhash_openssl ) )
unset( $emuhash_openssl );
elseif ( function_exists( 'is_executable' ) && ! is_executable( $emuhash_openssl ) ) {
if( ! file_exists( $emuhash_openssl ) )
unset( $emuhash_openssl );
} else {
if( ! isset( $emuhash_temp_dir ) )
$emuhash_temp_dir = '/tmp';
elseif ( function_exists( 'is_executable' ) && ! is_executable( $emuhash_openssl ) )
unset( $emuhash_openssl );
else {
if( ! isset( $emuhash_temp_dir ) )
$emuhash_temp_dir = '/tmp';
/******************************************************************************/
/* Define constants used in the mhash emulation code. */
/******************************************************************************/
define('MHASH_MD5', 'md5');
define('MHASH_SHA1', 'sha1');
define('MHASH_RIPEMD160', 'rmd160');
define('MHASH_MD5', 'md5');
define('MHASH_SHA1', 'sha1');
define('MHASH_RIPEMD160', 'rmd160');
/******************************************************************************/
/* Functions to emulate parts of php-mash. */
/******************************************************************************/
function openssl_hash( $openssl_hash_id, $password_clear ) {
global $emuhash_openssl, $emuhash_temp_dir;
function openssl_hash( $openssl_hash_id, $password_clear ) {
global $emuhash_openssl, $emuhash_temp_dir;
$current_magic_quotes = get_magic_quotes_runtime();
set_magic_quotes_runtime( 0 );
$tmpfile = tempnam( $emuhash_temp_dir, "emuhash" );
$pwhandle = fopen( $tmpfile, "w" );
if( ! $pwhandle )
pla_error( "Unable to create a temporary file '$tmpfile' to create hashed password" );
fwrite( $pwhandle, $password_clear );
fclose( $pwhandle );
$cmd = $emuhash_openssl . ' ' . $openssl_hash_id . ' -binary < ' . $tmpfile;
$prog = popen( $cmd, "r" );
$pass = fread( $prog, 1024 );
pclose( $prog );
unlink( $tmpfile );
set_magic_quotes_runtime( $current_magic_quotes );
$current_magic_quotes = get_magic_quotes_runtime();
set_magic_quotes_runtime( 0 );
$tmpfile = tempnam( $emuhash_temp_dir, "emuhash" );
$pwhandle = fopen( $tmpfile, "w" );
return $pass;
}
if( ! $pwhandle )
pla_error( "Unable to create a temporary file '$tmpfile' to create hashed password" );
function mhash( $hash_id, $password_clear ) {
switch( $hash_id ) {
case MHASH_MD5:
$emuhash = openssl_hash( MHASH_MD5, $password_clear );
break;
case MHASH_SHA1:
$emuhash = openssl_hash( MHASH_SHA1, $password_clear );
break;
case MHASH_RIPEMD160:
$emuhash = openssl_hash( MHASH_RIPEMD160, $password_clear );
break;
default:
$emuhash = FALSE;
}
fwrite( $pwhandle, $password_clear );
fclose( $pwhandle );
$cmd = $emuhash_openssl . ' ' . $openssl_hash_id . ' -binary < ' . $tmpfile;
$prog = popen( $cmd, "r" );
$pass = fread( $prog, 1024 );
pclose( $prog );
unlink( $tmpfile );
set_magic_quotes_runtime( $current_magic_quotes );
return $emuhash;
}
return $pass;
}
function mhash_keygen_s2k( $hash_id, $password_clear, $salt, $bytes ) {
return substr(pack("H*", bin2hex(mhash($hash_id, ($salt . $password_clear)))), 0, $bytes);
}
function mhash( $hash_id, $password_clear ) {
switch( $hash_id ) {
case MHASH_MD5:
$emuhash = openssl_hash( MHASH_MD5, $password_clear );
break;
case MHASH_SHA1:
$emuhash = openssl_hash( MHASH_SHA1, $password_clear );
break;
case MHASH_RIPEMD160:
$emuhash = openssl_hash( MHASH_RIPEMD160, $password_clear );
break;
default:
$emuhash = FALSE;
}
return $emuhash;
}
function mhash_keygen_s2k( $hash_id, $password_clear, $salt, $bytes ) {
return substr(pack("H*", bin2hex(mhash($hash_id, ($salt . $password_clear)))), 0, $bytes);
}
/******************************************************************************/
}
}
?>

View File

@ -1,7 +1,7 @@
// $Header: /cvsroot/phpldapadmin/phpldapadmin/entry_chooser.js,v 1.2 2004/03/19 20:18:41 i18phpldapadmin Exp $
function dnChooserPopup( form_element )
// $Header: /cvsroot/phpldapadmin/phpldapadmin/entry_chooser.js,v 1.3 2005/02/10 12:34:26 wurley Exp $
function dnChooserPopup(form_element,rdn)
{
mywindow=open('entry_chooser.php','myname','resizable=no,width=600,height=370,scrollbars=1');
mywindow.location.href = 'entry_chooser.php?form_element=' + form_element;
mywindow.location.href = 'entry_chooser.php?form_element=' + form_element + '&rdn=' + rdn;
if (mywindow.opener == null) mywindow.opener = self;
}

View File

@ -1,106 +1,114 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/entry_chooser.php,v 1.16 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/entry_chooser.php,v 1.26 2005/08/24 15:14:39 wurley Exp $
/**
* Display a selection (popup window) to pick a DN.
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$container = isset( $_GET['container'] ) ? rawurldecode( $_GET['container'] ) : false;
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : false;
$return_form_element = isset( $_GET['form_element'] ) ? htmlspecialchars( $_GET['form_element'] ) : null;
$container = isset($_GET['container']) ? rawurldecode($_GET['container']) : false;
$return_form_element = isset($_GET['form_element']) ? htmlspecialchars($_GET['form_element']) : null;
$rdn = isset($_GET['rdn']) ? htmlspecialchars($_GET['rdn']) : null;
include "header.php";
include "./header.php";
echo "<h3 class=\"subtitle\">" . $lang['entry_chooser_title'] . "</h3>\n";
printf('<h3 class="subtitle">%s</h3>',$lang['entry_chooser_title']);
flush();
?>
<script language="javascript">
function returnDN( dn )
{
function returnDN( dn ) {
opener.document.<?php echo $return_form_element; ?>.value = dn;
close();
}
</script>
<?php
if( $container ) {
echo $lang['server_colon_pare'] . "<b>" . htmlspecialchars( $servers[ $server_id ][ 'name' ] ) . "</b><br />\n";
echo $lang['look_in'] . "<b>" . htmlspecialchars( $container ) . "</b><br />\n";
if ($container) {
printf('%s<b>%s</b>',$lang['server_colon_pare'],htmlspecialchars($ldapserver->name));
print '<br />';
printf('%s<b>%s</b>',$lang['look_in'],htmlspecialchars($container));
print '<br />';
}
/* Has the use already begun to descend into a specific server tree? */
if( $server_id !== false && $container !== false )
{
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if (isset($ldapserver) && $container !== false) {
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn_list = get_container_contents( $server_id, $container, 0, '(objectClass=*)', get_tree_deref_setting() );
sort( $dn_list );
$dn_list = get_container_contents($ldapserver,$container,0,'(objectClass=*)',$config->GetValue('deref','tree'));
sort($dn_list);
$base_dn = $servers[ $server_id ][ 'base' ];
if( ! $base_dn )
$base_dn = try_to_get_root_dn( $server_id );
foreach ($ldapserver->getBaseDN() as $base_dn) {
debug_log(sprintf('%s: Comparing BaseDN [%s] with container [%s]','entry_chooser.php',$base_dn,$container),9);
if( 0 == pla_compare_dns( $container, $base_dn ) ) {
$parent_container = false;
$up_href = "entry_chooser.php?form_element=$return_form_element";
} else {
$parent_container = get_container( $container );
$up_href = "entry_chooser.php?form_element=$return_form_element&amp;server_id=$server_id&amp;container=" .
rawurlencode( $parent_container );
}
echo "&nbsp;<a href=\"$up_href\" style=\"text-decoration:none\">" .
"<img src=\"images/up.png\"> ". $lang['back_up_p'] ."</a><br />\n";
if (! pla_compare_dns($container,$base_dn)) {
$parent_container = false;
$up_href = sprintf('entry_chooser.php?form_element=%s&rdn=%s',$return_form_element,$rdn);
break;
if( count( $dn_list ) == 0 )
echo "&nbsp;&nbsp;&nbsp;(". $lang['no_entries'] .")<br />\n";
else
foreach( $dn_list as $dn ) {
$href = "javascript:returnDN( '$dn' )";
echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=$return_form_element".
"&amp;server_id=$server_id&amp;container=" .
rawurlencode( $dn ) . "\"><img src=\"images/plus.png\" /></a> " .
"<a href=\"$href\">" . htmlspecialchars( $dn ) . "</a><br />\n";
} else {
$parent_container = get_container($container);
$up_href = sprintf('entry_chooser.php?form_element=%s&rdn=%s&amp;server_id=%s&amp;container=%s',
$return_form_element,$rdn,$ldapserver->server_id,rawurlencode($parent_container));
}
}
}
print '&nbsp;';
printf('<a href="%s" style="text-decoration:none"><img src="images/up.png"> %s</a>',$up_href,$lang['back_up_p']);
print '<br />';
if (! count($dn_list))
printf('&nbsp;&nbsp;&nbsp;(%s)<br />',$lang['no_entries']);
else
foreach ($dn_list as $dn) {
$href = sprintf("javascript:returnDN('%s%s')",($rdn ? "$rdn," : ''),$dn);
print '&nbsp;&nbsp;&nbsp;';
printf('<a href="entry_chooser.php?server_id=%s&amp;form_element=%s&rdn=%s&amp;container=%s"><img src="images/plus.png" /></a>',
$ldapserver->server_id,$return_form_element,$rdn,rawurlencode($dn));
printf('<a href="%s">%s</a>',$href,htmlspecialchars($dn));
print '<br />';
}
/* draw the root of the selection tree (ie, list all the servers) */
else
{
foreach( $servers as $id => $server ) {
if( $server['host'] ) {
echo "<b>" . htmlspecialchars( $server['name'] ) . "</b><br />\n";
if( ! have_auth_info( $id ) )
echo "<small>&nbsp;&nbsp;&nbsp;(" . $lang['not_logged_in'] . ")</small><br />";
} else {
foreach ($ldapservers->GetServerList() as $id) {
$ldapserver = $ldapservers->Instance($id);
if ($ldapserver->isVisible()) {
if (! $ldapserver->haveAuthInfo())
continue;
else {
$dn = ( $server['base'] ? $server['base'] : try_to_get_root_dn( $id ) );
if( ! $dn ) {
echo "<small>&nbsp;&nbsp;&nbsp;(". $lang['could_not_det_base_dn'] .")</small><br />";
} else {
$href = "javascript:returnDN( '$dn' )";
echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=" .
"$return_form_element&amp;server_id=$id&amp;container=" .
rawurlencode( $dn ) . "\"><img src=\"images/plus.png\" /></a> " .
"<a href=\"$href\">" . htmlspecialchars( $dn ) . "</a><br />\n";
printf('<b>%s</b>',htmlspecialchars($ldapserver->name));
print '<br />';
foreach ($ldapserver->getBaseDN() as $dn) {
if (! $dn) {
printf('<small>&nbsp;&nbsp;&nbsp;(%s)</small><br />',$lang['could_not_det_base_dn']);
} else {
$href = sprintf("javascript:returnDN('%s%s')",($rdn ? "$rdn," : ''),$dn);
print '&nbsp;&nbsp;&nbsp;';
printf('<a href="entry_chooser.php?server_id=%s&amp;form_element=%s&rdn=%s&amp;container=%s"><img src="images/plus.png" /></a> ',
$ldapserver->server_id,$return_form_element,$rdn,rawurlencode($dn));
printf('<a href="%s">%s</a>',$href,htmlspecialchars($dn));
print '<br />';
}
}
}
}
}
}
// added by PD. 14082003,
// adding the element access allows it to work with javascript arrays
// the name of the form extracted from the first part of the URL variable.
$formpart=substr($return_form_element,0,strpos($return_form_element,"."));
// the name of the element extracted from the last part of the URL variable (after the dot)
$elmpart =substr($return_form_element,strpos($return_form_element,".")+1);
// rebuilt return value
$return_form_element = $formpart . ".elements[\"" . $elmpart . "\"]";
?>

View File

@ -1,56 +1,52 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/expand.php,v 1.18 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/expand.php,v 1.22 2005/07/22 05:47:44 wurley Exp $
/*
* expand.php
/**
* This script alters the session variable 'tree', expanding it
* at the dn specified in the query string.
* at the dn specified in the query string.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* Note: this script is equal and opposite to collapse.php
* @package phpLDAPadmin
* @see collapse.php
*/
/**
*/
require './common.php';
// no expire header stuff
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
# no expire header stuff
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
// This allows us to display large sub-trees without running out of time.
# This allows us to display large sub-trees without running out of time.
@set_time_limit( 0 );
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
initialize_session_tree();
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$contents = get_container_contents( $server_id, $dn, 0, '(objectClass=*)', get_tree_deref_setting() );
$contents = get_container_contents( $ldapserver, $dn, 0, '(objectClass=*)', $config->GetValue('deref','tree'));
usort( $contents, 'pla_compare_dns' );
$tree[$server_id][$dn] = $contents;
//echo "<pre>";
//var_dump( $contents );
//exit;
$tree[$ldapserver->server_id][$dn] = $contents;
foreach( $contents as $dn )
$tree_icons[$server_id][$dn] = get_icon( $server_id, $dn );
$tree_icons[$ldapserver->server_id][$dn] = get_icon( $ldapserver, $dn );
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
@ -64,11 +60,10 @@ $random_junk = md5( strtotime( 'now' ) . $time['usec'] );
// If cookies were disabled, build the url parameter for the session id.
// It will be append to the url to be redirect
$id_session_param="";
if( SID != "" ){
if( SID != "" )
$id_session_param = "&".session_name()."=".session_id();
}
session_write_close();
header( "Location:tree.php?foo=$random_junk#{$server_id}_{$encoded_dn}$id_session_param" );
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',$random_junk,$ldapserver->server_id,$encoded_dn,$id_session_param));
?>

View File

@ -1,30 +1,42 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export.php,v 1.11 2004/10/23 21:13:15 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export.php,v 1.15 2005/09/25 16:11:44 wurley Exp $
require 'export_functions.php';
/**
* @package phpLDAPadmin
*/
/**
*/
# Fix a bug with IE:
ini_set('session.cache_limiter','');
require './common.php';
require LIBDIR.'export_functions.php';
// get the POST parameters
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$base_dn = isset($_POST['dn']) ? $_POST['dn']:NULL;
$server_id = isset($_POST['server_id']) ? $_POST['server_id']:NULL;
$format = isset( $_POST['format'] ) ? $_POST['format'] : "unix";
$scope = isset($_POST['scope']) ? $_POST['scope'] : 'base';
$filter = isset($_POST['filter']) ? $_POST['filter'] : 'objectclass=*';
$target = isset($_POST['target']) ? $_POST['target'] : 'display';
$save_as_file = isset( $_POST['save_as_file'] ) && $_POST['save_as_file'] == 'on';
$attributes = array();
// add system attributes if needed
$attributes = array();
if( isset( $_POST['sys_attr'] ) ){
array_push($attributes,'*');
array_push($attributes,'+');
}
isset($_POST['exporter_id']) or pla_error( $lang['must_choose_export_format'] );
$exporter_id = $_POST['exporter_id'];
isset($exporters[$exporter_id]) or pla_error( $lang['invalid_export_format'] );
// do some check
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
// Initialisation of other variables
$rdn = get_rdn( $base_dn );
$friendly_rdn = get_rdn( $base_dn, 1 );
@ -78,6 +90,7 @@ $exporter->setOutputFormat($br);
// prevent script from bailing early for long search
@set_time_limit( 0 );
// send the header
if( $save_as_file )
header( "Content-type: application/download" );

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export_form.php,v 1.19 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export_form.php,v 1.22 2005/09/25 16:11:44 wurley Exp $
/**
* export_form.php
@ -7,9 +7,13 @@
*
* Html form to choose an export format(ldif,...)
*
* @package phpLDAPadmin
*/
/**
*/
require 'export_functions.php';
require './common.php';
require LIBDIR.'export_functions.php';
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id']:NULL ;
$format = isset( $_GET['format'] ) ? $_GET['format'] : get_line_end_format();
@ -48,22 +52,7 @@ include './header.php'; ?>
<table>
<tr>
<td><?php echo $lang['server']; ?></td>
<td>
<?php
if( count($servers) > 1 ){
echo '<select name="server_id">';
foreach( $servers as $id => $server )
if( $server['host'] )
echo "<option value=\"$id\"". ($id==$server_id?" selected":"") .">" . htmlspecialchars($server['name']) . "</option>\n";
echo '</select>';
} else {
$server = reset($servers);
if( $server['host'] )
echo '<input type="hidden" name="server_id" value="'.key($servers).'" />' .
'<b>' . $server['name'] . '</b>';
}
?>
</td>
<td><?php print server_select_list(); ?></td>
</tr>
<tr>
<td style="white-space:nowrap"><?php echo $lang['base_dn']; ?></td>

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export_functions.php,v 1.20 2004/11/03 22:00:52 xrenard Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/export_functions.php,v 1.30 2005/09/04 16:17:08 wurley Exp $
/**
* Fuctions and classes for exporting ldap entries to others formats
@ -9,31 +9,38 @@
* @author The phpLDAPadmin development team
* @see export.php and export_form.php
*/
/**
*/
// include common configuration definitions
include('common.php');
include('./common.php');
// registry for the exporters
$exporters = array();
$exporters[] = array('output_type'=>'ldif',
'desc' => 'LDIF',
'extension' => 'ldif'
);
$exporters[] = array(
'output_type'=>'ldif',
'desc' => 'LDIF',
'extension' => 'ldif'
);
$exporters[] = array('output_type'=>'dsml',
'desc' => 'DSML V.1',
'extension' => 'xml'
);
$exporters[] = array(
'output_type'=>'dsml',
'desc' => 'DSML V.1',
'extension' => 'xml'
);
$exporters[] = array('output_type'=>'vcard',
'desc' => 'VCARD 2.1',
'extension' => 'vcf'
);
$exporters[] = array('output_type'=>'csv',
'desc' => $lang['csv_spreadsheet'],
'extension' => 'csv'
);
$exporters[] = array(
'output_type'=>'vcard',
'desc' => 'VCARD 2.1',
'extension' => 'vcf'
);
$exporters[] = array(
'output_type'=>'csv',
'desc' => $lang['csv_spreadsheet'],
'extension' => 'csv'
);
/**
* This class encapsulate informations about the ldap server
@ -47,36 +54,33 @@ $exporters[] = array('output_type'=>'csv',
* it indicates the query filter for the search.
* $scope: if the source of the export is the ldap server,
* it indicates the scope of the search.
* $server_host: the host name of the server.
* $server_name: the name of the server.
*
* @package phpLDAPadmin
*/
class LdapInfo{
class LdapExportInfo {
var $base_dn;
var $query_filter;
var $scope;
var $server_host = NULL;
var $server_name = NULL;
var $server_id = NULL;
/**
* Create a new LdapInfo object
* Create a new LdapExportInfo object
*
* @param int $server_id the server id
* @param String $base_dn the base_dn for the search in a ldap server
* @param String $query_filter the query filter for the search
* @param String scope the scope of the search in a ldap server
* @param String $scope the scope of the search in a ldap server
*/
function LdapInfo($server_id,$base_dn = NULL,$query_filter = NULL,$scope = NULL){
global $servers;
$this->base_dn = $base_dn;
$this->query_filter = $query_filter;
$this->scope = $scope;
$this->server_name = $servers[ $server_id ][ 'name' ];
$this->server_host = $servers[ $server_id ][ 'host' ];
$this->server_id = $server_id;
function LdapExportInfo($server_id,$base_dn = NULL,$query_filter = NULL,$scope = NULL){
global $ldapservers;
$this->ldapserver = $ldapservers->Instance($server_id);
$this->ldapserver->base_dn = $base_dn;
$this->ldapserver->query_filter = $query_filter;
$this->ldapserver->scope = $scope;
}
}
@ -91,6 +95,7 @@ class LdapInfo{
* the PlaExporter
*
* @see PlaExporter
* @package phpLDAPadmin
*/
class PlaAbstractExporter{
@ -139,6 +144,8 @@ class PlaAbstractExporter{
/**
* PlaExporter acts a wrapper around another exporter.
* In other words, it will act as a decorator for another decorator
*
* @package phpLDAPadmin
*/
class PlaExporter extends PlaAbstractExporter{
@ -238,6 +245,7 @@ class PlaExporter extends PlaAbstractExporter{
/**
* Export data from a ldap server
* @extends PlaAbstractExporter
* @package phpLDAPadmin
*/
class PlaLdapExporter extends PlaAbstractExporter{
@ -250,7 +258,6 @@ class PlaLdapExporter extends PlaAbstractExporter{
var $ldap_info;
var $queryFilter;
var $hasNext;
var $connection_open_state;
var $attributes;
/**
* Create a PlaLdapExporter object.
@ -260,34 +267,33 @@ class PlaLdapExporter extends PlaAbstractExporter{
* @param String $scope the scope for export
*/
function PlaLdapExporter( $server_id , $queryFilter , $base_dn , $scope, $attributes){
global $lang;
global $lang, $config;
$this->scope = $scope;
$this->base_dn = $base_dn;
$this->server_id = $server_id;
$this->queryFilter = $queryFilter;
// infos for the server
$this->ldap_info = new LdapInfo($server_id,$base_dn,$queryFilter,$scope);
$this->ldap_info = new LdapExportInfo($server_id,$base_dn,$queryFilter,$scope);
// boolean to check if there is more entries
$this->hasNext = 0;
// boolean to check the state of the connection
$this->connection_open_state = 0;
$this->attributes = $attributes;
// connect to the server
$this->ds = @pla_ldap_connect( $this->server_id );
pla_ldap_connection_is_error( $this->ds );
$this->connection_open_state = 1;
$this->ds = $this->ldap_info->ldapserver->connect();
// @todo test whether we need to call pla_ldap_connection_is_error here.
//pla_ldap_connection_is_error( $this->ds );
// get the data to be exported
if( $this->scope == 'base' )
$this->results = @ldap_read( $this->ds, $this->base_dn, $this->queryFilter,$this->attributes,
0, 0, 0, get_export_deref_setting() );
0, 0, 0, $config->GetValue('deref','export'));
elseif( $this->scope == 'one' )
$this->results = @ldap_list( $this->ds, $this->base_dn, $this->queryFilter, $this->attributes,
0, 0, 0, get_export_deref_setting() );
0, 0, 0, $config->GetValue('deref','export'));
else // scope == 'sub'
$this->results = @ldap_search( $this->ds, $this->base_dn, $this->queryFilter, $this->attributes,
0, 0, 0, get_export_deref_setting() );
0, 0, 0, $config->GetValue('deref','export'));
// if no result, there is a something wrong
if( ! $this->results )
@ -322,7 +328,7 @@ class PlaLdapExporter extends PlaAbstractExporter{
* @return LdapInfo Object with info from the ldap serveur
*/
function pla_get_ldap_info(){
return $this->ldap_info;
return $this->ldap_info->ldapserver;
}
/**
@ -349,7 +355,7 @@ class PlaLdapExporter extends PlaAbstractExporter{
//iterate over the attributes
while( $attr ){
if( is_attr_binary( $this->server_id,$attr ) ){
if( is_attr_binary( $this,$attr ) ){
$this->entry_array[$attr] = @ldap_get_values_len( $this->ds,$this->entry_id,$attr );
}
else{
@ -375,20 +381,22 @@ class PlaLdapExporter extends PlaAbstractExporter{
* May be call when the processing is finished
* and to free some ressources.
* @return bool true or false if any errors is encountered
* @todo This could break something, so need to add a method to LDAPServer to close connection and reset $connected.
*/
function pla_close(){
if($this->connection_open_state){
return @ldap_close( $this->ds );
}
else{
return true;
}
// if($this->ldap_info->connected){
// return @ldap_close( $this->ds );
// }
// else{
// return true;
// }
}
} // end PlaLdapExporter
/**
* Export entries to ldif format
* @extends PlaExporter
* @package phpLDAPadmin
*/
class PlaLdifExporter extends PlaExporter{
@ -428,7 +436,7 @@ class PlaLdifExporter extends PlaExporter{
// display dn
if( $this->is_safe_ascii( $entry['dn'] ))
$this->multi_lines_display("dn:". $entry['dn']);
$this->multi_lines_display("dn: ". $entry['dn']);
else
$this->multi_lines_display("dn:: " . base64_encode( $entry['dn'] ));
array_shift($entry);
@ -436,7 +444,7 @@ class PlaLdifExporter extends PlaExporter{
// display the attributes
foreach( $entry as $key => $attr ){
foreach( $attr as $value ){
if( !$this->is_safe_ascii($value) || is_attr_binary($pla_ldap_info->server_id,$key ) ){
if( !$this->is_safe_ascii($value) || is_attr_binary($pla_ldap_info,$key ) ){
$this->multi_lines_display( $key.":: " . base64_encode( $value ) );
}
else{
@ -458,8 +466,9 @@ class PlaLdifExporter extends PlaExporter{
echo "version: 1$this->br$this->br";
echo "# " . sprintf( $lang['ldif_export_for_dn'], $pla_ldap_info->base_dn ) . $this->br;
echo "# " . sprintf( $lang['generated_on_date'], date("F j, Y g:i a") ) . $this->br;
echo "# " . $lang['server'] . ": " .$pla_ldap_info->server_name . " (" . $pla_ldap_info->server_host . ")" . $this->br;
echo "# " . $lang['server'] . ": " .$pla_ldap_info->name . " (" . $pla_ldap_info->host . ")" . $this->br;
echo "# " . $lang['search_scope'] . ": " . $pla_ldap_info->scope . $this->br;
echo "# " . $lang['search_filter'] . ": " . $pla_ldap_info->query_filter . $this->br;
echo "# " . $lang['total_entries'] . ": " . $this->pla_num_entries() . $this->br;
echo $this->br;
}
@ -491,6 +500,7 @@ class PlaLdifExporter extends PlaExporter{
/**
* Export entries to DSML v.1
* @extends PlaExporter
* @package phpLDAPadmin
*/
class PlaDsmlExporter extends PlaExporter{
@ -529,8 +539,9 @@ class PlaDsmlExporter extends PlaExporter{
echo "<!-- " . $this->br;
echo "# " . sprintf( $lang['dsml_export_for_dn'], $pla_ldap_info->base_dn ) . $this->br;
echo "# " . sprintf( $lang['generated_on_date'], date("F j, Y g:i a") ) . $this->br;
echo "# " . $lang['server'] . ": " . $pla_ldap_info->server_name . " (" . $pla_ldap_info->server_host . ")" . $this->br;
echo "# " . $lang['server'] . ": " . $pla_ldap_info->name . " (" . $pla_ldap_info->host . ")" . $this->br;
echo "# " . $lang['search_scope'] . ": " . $pla_ldap_info->scope . $this->br;
echo "# " . $lang['search_filter'] . ": " . $pla_ldap_info->query_filter . $this->br;
echo "# " . $lang['total_entries'] . ": " . $this->pla_num_entries() . $this->br;
echo "-->" . $this->br;
@ -560,7 +571,7 @@ class PlaDsmlExporter extends PlaExporter{
echo $attr_indent."<attr name=\"$key\">".$this->br;
// if the attribute is binary, set the flag $binary_mode to true
$binary_mode = is_attr_binary($pla_ldap_info->server_id,$key)?1:0;
$binary_mode = is_attr_binary($pla_ldap_info,$key)?1:0;
foreach($attr as $value){
echo $attr_value_indent."<value>".($binary_mode?base64_encode( $value): htmlspecialchars( $value ) )."</value>".$this->br;
@ -579,6 +590,9 @@ class PlaDsmlExporter extends PlaExporter{
}
/**
* @package phpLDAPadmin
*/
class PlaVcardExporter extends PlaExporter{
// mappping one to one attribute
@ -621,8 +635,8 @@ class PlaVcardExporter extends PlaExporter{
$base_dn = $ldap_info->base_dn;
$server_id = $ldap_info->server_id;
$scope = $ldap_info->scope;
$server_name = $ldap_info->server_name;
$server_host = $ldap_info->server_host;
$server_name = $ldap_info->name;
$server_host = $ldap_info->host;
while( $this->pla_has_entry() ){
$entry = $this->pla_fetch_entry_array();
@ -696,6 +710,7 @@ class PlaVcardExporter extends PlaExporter{
* Export to cvs format
*
* @author Glen Ogilvie
* @package phpLDAPadmin
*/
class PlaCSVExporter extends PlaExporter{
@ -723,8 +738,8 @@ class PlaCSVExporter extends PlaExporter{
$base_dn = $ldap_info->base_dn;
$server_id = $ldap_info->server_id;
$scope = $ldap_info->scope;
$server_name = $ldap_info->server_name;
$server_host = $ldap_info->server_host;
$server_name = $ldap_info->name;
$server_host = $ldap_info->host;
$entries = array();
$headers = array();
@ -769,7 +784,7 @@ class PlaCSVExporter extends PlaExporter{
echo $this->qualifier;
if (key_exists($attr_name, $entry)) {
$binary_attribute = is_attr_binary( $server_id, $attr_name )?1:0;
$binary_attribute = is_attr_binary( $ldap_info, $attr_name )?1:0;
$attr_values = $entry[$attr_name];
@ -803,6 +818,9 @@ class PlaCSVExporter extends PlaExporter{
/**
* @package phpLDAPadmin
*/
class MyCustomExporter extends PlaExporter{
@ -825,8 +843,8 @@ class MyCustomExporter extends PlaExporter{
$base_dn = $ldap_info->base_dn;
$server_id = $ldap_info->server_id;
$scope = $ldap_info->scope;
$server_name = $ldap_info->server_name;
$server_host = $ldap_info->server_host;
$server_name = $ldap_info->name;
$server_host = $ldap_info->host;
// Just a simple loop. For each entry

File diff suppressed because it is too large Load Diff

View File

@ -1,33 +1,44 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/header.php,v 1.14 2004/10/24 23:51:49 uugdave Exp $
// We want to get $language into scope in case we were included
// from within a function
global $language;
// $Header: /cvsroot/phpldapadmin/phpldapadmin/header.php,v 1.19 2005/09/25 16:11:44 wurley Exp $
// text/xml won't work with MSIE, but is very useful for debugging xhtml code.
//@header( "Content-type: text/xml; charset=\"UTF-8\"" );
@header( "Content-type: text/html; charset=\"UTF-8\"" );
/**
* @package phpLDAPadmin
*/
// XML version and encoding for well-behaved browsers
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
// We want to get $language into scope in case we were included
// from within a function
global $config;
$language = isset($config) ? $language = $config->GetValue('appearance','language') : 'auto';
// text/xml won't work with MSIE, but is very useful for debugging xhtml code.
//@header( "Content-type: text/xml; charset=\"UTF-8\"" );
@header( "Content-type: text/html; charset=\"UTF-8\"" );
// XML version and encoding for well-behaved browsers
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $language; ?>" lang="<?php echo $language; ?>" dir="ltr">
<head>
<?php if (isset($config) && $pagetitle = $config->GetValue('appearance','page_title')) { ?>
<title>phpLDAPadmin - <?php echo $pagetitle; ?></title>
<?php } else { ?>
<title>phpLDAPadmin</title>
<link rel="stylesheet" href="style.css" media="screen" />
<?php
if( isset( $server_id ) ) {
$custom_file = get_custom_file( $server_id, 'style.css' );
if( strcmp( $custom_file, 'style.css' ) != 0 ) { ?>
<?php } ?>
<link rel="stylesheet" href="<?php echo CSSDIR ?>style.css" media="screen" />
<?php if( isset( $server_id ) ) {
$custom_file = get_custom_file( $server_id, 'style.css',CSSDIR );
if( strcmp( $custom_file, 'style.css' ) != 0 ) { ?>
<link rel="stylesheet" href="<?php echo $custom_file ?>" media="screen" />
<?php } } ?>
<script src="entry_chooser.js" type="text/javascript"></script>
<script src="ie_png_work_around.js" type="text/javascript"></script>
<script src="search_util.js" type="text/javascript"></script>
<script src="generic_utils.js" type="text/javascript"></script>
<?php }
} ?>
<script src="<?php echo JSDIR; ?>entry_chooser.js" type="text/javascript"></script>
<script src="<?php echo JSDIR; ?>ie_png_work_around.js" type="text/javascript"></script>
<script src="<?php echo JSDIR; ?>search_util.js" type="text/javascript"></script>
<script src="<?php echo JSDIR; ?>generic_utils.js" type="text/javascript"></script>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>

View File

@ -1,8 +1,16 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/help.php,v 1.5 2005/02/26 12:35:05 wurley Exp $
include 'common.php';
include 'header.php';
/**
* @package phpLDAPadmin
*/
/**
*/
include './common.php';
include './header.php';
$forum_href = get_href( 'forum' );
?>
<body>
@ -12,9 +20,8 @@ include 'header.php';
<center>
<p>Do you have a problem or question?</p>
<p>Perhaps you are new to LDAP and need a little guidance?</p>
<p>Help is only one click away. Visit the online <a href="http://www.phpldapadmin.com/forum">phpLDAPadmin support forum</a>.</p>
<p>Help is only one click away. Visit the online <a href="<?php echo $forum_href; ?>">phpLDAPadmin support forum</a>.</p>
<br />
<p>(Note that paying members will receive priority support, so <a target="new" href="https://www.phpldapadmin.com/product_info.php/products_id/28">buy your membership</a> today.)</p>
</center>
</body>

186
hooks.php Normal file
View File

@ -0,0 +1,186 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/hooks.php,v 1.6 2005/04/15 13:16:59 wurley Exp $
/**
* Functions related to hooks management.
*
* @author Benjamin Drieu <benjamin.drieu@fr.alcove.com> and Alcôve
* @package phpLDAPadmin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*/
if ( ! isset($hooks) ) {
/** This variable contains all hooks that are defined. */
$hooks = array();
}
/**
* Compares two arrays by numerically comparing their 'prority'
* value. Standard `cmp-like' function.
*
* @param a First element to compare.
* @param b Second element to compare.
*
* @return -1 if priority of first element is smaller than second
* element priority. 1 otherwise.
*/
function sort_array_by_priority ( $a, $b ) {
return ( ( $a['priority'] < $b['priority'] ) ? -1 : 1 );
}
/**
* Runs procedures attached to a hook.
*
* @param hook_name Name of hook to run.
* @param args Array of optional arguments set by
* phpldapadmin. It is normally in a form known
* by call_user_func_array() :
* <pre>[ 'server_id' => 0,
* 'dn' => 'uid=epoussa,ou=tech,o=corp,o=fr' ]</pre>
*
* @return true if all procedures returned true, false otherwise.
*/
function run_hook ( $hook_name, $args ) {
global $hooks;
$debug = 0;
syslog_debug ( "Running hook $hook_name." );
if ( ! array_key_exists ( $hook_name, $hooks ) ) {
syslog_notice ( "Hook '$hook_name' not defined !\n" );
return true;
}
unset ( $rollbacks );
$rollbacks = array ();
reset ( $hooks[$hook_name] );
/** Execution of procedures attached is done using a numeric order
* since all procedures have been attached to the hook with a
* numerical weight. */
while ( list ( $key, $hook ) = each ( $hooks[$hook_name] ) ) {
array_push ( $rollbacks, $hook['rollback_function'] );
syslog_debug ( "Calling " . $hook['hook_function'] . "\n" );
$result = call_user_func_array ( $hook['hook_function'], $args );
syslog_notice ( "Called " . $hook['hook_function'] . "\n" );
/** If a procedure fails, its optional rollback is executed with
* the same arguments. After that, all rollbacks from
* previously executed procedures are executed in the reverse
* order. */
if ( $result != true ) {
syslog_debug ( "Function " . $hook['hook_function'] . " returned $result\n" );
while ( $rollbacks ) {
$rollback = array_pop ( $rollbacks );
if ( $rollback != false ) {
syslog_debug ( "Executing rollback $rollback\n" );
call_user_func_array ( $rollback, $args );
}
}
return false;
}
}
return true;
}
/**
* Adds a procedure to a hook for later execution.
*
* @param hook_name Name of the hook.
* @param priority Numeric priority. Lowest means
* procedure will be executed before.
* @param hook_function Name of the php function called upon
* hook trigger.
* @param rollback_function Name of the php rollback function
* called upon failure.
*/
function add_hook ( $hook_name, $priority, $hook_function, $rollback_function ) {
global $hooks;
if ( ! array_key_exists ( $hook_name, $hooks ) ) {
$hooks[$hook_name] = array();
}
array_push ( $hooks[$hook_name], array ( 'priority' => $priority, 'hook_function' => $hook_function,
'rollback_function' => $rollback_function ) );
uasort ( $hooks[$hook_name], "sort_array_by_priority" );
}
/**
* Removes a procedure from a hook, based on a filter.
*
* @param hook_name Name of the hook.
* @param priority Numeric priority. If set, all
* procedures of that priority will be
* removed.
* @param hook_function Name of the procedure function. If
* set, all procedures that call this
* function will be removed.
* @param rollback_function Name of the php rollback function
* called upon failure. If set, all
* procedures that call this function
* as a rollback will be removed.
*/
function remove_hook ( $hook_name, $priority, $hook_function, $rollback_function ) {
global $hooks;
if ( array_key_exists ( $hook_name, $hooks ) ) {
reset ( $hooks[$hook_name] );
while ( list ( $key, $hook ) = each ( $hooks[$hook_name] ) ) {
if ( ( $priority >= 0 && $priority == $hook['priority'] ) ||
( $hook_function && $hook_function == $hook['hook_function'] ) ||
( $rollback_function && $rollback_function == $hook['rollback_function'] ) ) {
unset ( $hooks[$hook_name][$key] );
}
}
}
}
/**
* Removes all procedures from a hook.
*
* @param hook_name Name of hook to clear.
*/
function clear_hooks ( $hook_name ) {
global $hooks;
if ( array_key_exists ( $hook_name, $hooks ) ) {
unset ( $hooks[$hook_name] );
}
}
/* Evaluating user-made hooks */
if ( is_dir('hooks') ) {
$dir = dir ('hooks');
while (false !== ($entry = $dir -> read() ) ) {
if ( is_file ("hooks/$entry") and eregi ('php[0-9]?$', $entry) ) {
require_once "hooks/$entry";
}
}
$dir -> close();
}
?>

BIN
images/compare.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

BIN
images/error.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 692 B

View File

@ -1,6 +1,15 @@
<?php
require_once '../header.php';
/**
* This will show a nice table of all the icons used by phpLDAPadmin.
* @package phpLDAPadmin
*/
/**
*/
?>
<html>
<head>
<link rel="stylesheet" href="../style.css" media="screen" />
</head>
<body>
<h3 class="title">phpLDAPadmin icons</h3>
<br />
@ -9,7 +18,6 @@
$dir = opendir( '.' );
while( ( $file = readdir( $dir ) ) !== false ) {
$counter++;
if( $file == '.' || $file == '..' )
continue;
if( ! preg_match( '/\.png$/', $file ) )
@ -19,15 +27,22 @@ while( ( $file = readdir( $dir ) ) !== false ) {
$files[ filesize( $file ) . '_' . $file ] = $file;
}
ksort( $files );
sort( $files );
$cell_style = "color: #888; text-align:center; padding: 10px; padding-bottom: 20px; vertical-align: bottom;";
$counter = 0;
print "<center><b>The " . count( $files ) . " icons used by phpLDAPadmin</b></center>";
echo "<table style=\"font-family: arial; font-size: 12px;\">";
echo "<tr>";
foreach( $files as $file ) {
if( $counter % 6 == 0 ) {
echo "</tr>\n";
flush();
echo "<tr>";
}
$counter++;
echo '<img title="' . htmlspecialchars( $file ) . '" src="' . htmlspecialchars( $file ) . '" />&nbsp;&nbsp;';
if( $counter % 15 == 0 )
echo '<br /><br />';
flush();
echo '<td style="' . $cell_style . '"><img title="' . htmlspecialchars( $file ) . '" src="' . htmlspecialchars( $file ) . '" /><br />';
echo "$file</td>\n";
}
?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/logo_small.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

BIN
images/rfc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

BIN
images/timeout.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

253
index.php
View File

@ -1,6 +1,10 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/index.php,v 1.30 2004/08/19 13:26:28 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/index.php,v 1.39 2005/09/25 16:11:44 wurley Exp $
/**
* @package phpLDAPadmin
* @todo: Move config.php syntax error processing to earlier.
*/
/*******************************************
<pre>
@ -11,158 +15,200 @@ PHP is not installed on your web server!!!
</pre>
*******************************************/
require './common.php';
/**
* We will perform some sanity checking here, since this file is normally loaded first when users
* first setup PLA.
*/
@DEFINE(LIBDIR,'./');
ini_set('display_errors',1);
error_reporting(E_ALL);
if( ! file_exists(realpath( 'config.php' )) ) {
# General functions needed to proceed (pla_ldap_search(), pla_error(), get_object_attrs(), etc.)
ob_start();
if (! file_exists(LIBDIR.'functions.php')) {
ob_end_clean();
die("Fatal error: Required file 'functions.php' does not exist.");
}
if (! is_readable(LIBDIR.'functions.php')) {
ob_end_clean();
die("Cannot read the file 'functions.php' its permissions are too strict.");
}
require LIBDIR.'functions.php';
$config_file = CONFDIR.'config.php';
ob_end_clean();
/* Helper functions.
* Our required helper functions are defined in functions.php
*/
foreach ($pla_function_files as $file_name ) {
if (! file_exists($file_name))
pla_error("Fatal error: Required file '$file_name' does not exist.");
if (! is_readable($file_name))
pla_error( "Fatal error: Cannot read the file '$file_name', its permissions are too strict." );
ob_start();
require $file_name;
ob_end_clean();
}
# Configuration File check
if (! file_exists($config_file)) {
?>
<html>
<head>
<title>phpLDAPadmin - <?php echo pla_version(); ?></title>
<link rel="stylesheet" href="style.css" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<h3 class="title">Configure phpLDAPadmin</h1>
<br />
<br />
<center>
<?php echo $lang['need_to_configure']; ?>
</center>
<center><?php echo $lang['need_to_configure']; ?></center>
</body>
</html>
<?php } elseif( check_config() ) {
<?php
die();
require 'config.php';
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
} elseif (! is_readable($config_file)) {
pla_error(sprintf('Fatal error: Cannot read your configuration file "%s", its permissions are too strict.',$config_file));
}
# Now read in config_default.php, which also reads in config.php
require LIBDIR.'config_default.php';
if (check_config()) {
print '<?xml version="1.0" encoding="utf-8"?>';
?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="no-NO">
<head><title>phpLDAPadmin - <?php echo pla_version(); ?></title></head>
<frameset cols="<?php echo $tree_width; ?>,*">
<?php if ($pagetitle = $config->GetValue('appearance','page_title')) { ?>
<head><title>phpLDAPadmin (<?php echo pla_version(); ?>) - <?php echo $pagetitle; ?></title></head>
<?php } else { ?>
<head><title>phpLDAPadmin - <?php echo pla_version(); ?></title></head>
<?php } ?>
<frameset cols="<?php echo $config->GetValue('appearance','tree_width'); ?>,*">
<frame src="tree.php" name="left_frame" id="left_frame" />
<frame src="welcome.php" name="right_frame" id="right_frame" />
</frameset>
</html>
<?php } else { ?>
<?php } ?>
<?php
<?php }
/*
* Makes sure that the config file is properly setup and
* that your install of PHP can handle LDAP stuff.
* TODO: Check ALL config elements for correctness in syntax
* TODO: Make sure all required config stuff is defined.
*/
function check_config()
{
global $lang;
/* Make sure their PHP version is current enough */
if( strcmp( phpversion(), REQUIRED_PHP_VERSION ) < 0 ) {
pla_error( "phpLDAPadmin requires PHP version 4.1.0 or greater. You are using " . phpversion() );
function check_config() {
global $lang, $config_file;
# Make sure their PHP version is current enough
if (strcmp(phpversion(),REQUIRED_PHP_VERSION) < 0) {
pla_error(sprintf('phpLDAPadmin requires PHP version %s or greater. You are using %s',
REQUIRED_PHP_VERSION,phpversion()));
}
/* Make sure this PHP install has LDAP support */
if( ! extension_loaded( 'ldap' ) )
{
# Make sure this PHP install has all our required extensions
if (! extension_loaded('ldap')) {
pla_error( "Your install of PHP appears to be missing LDAP support. Please install " .
"LDAP support before using phpLDAPadmin. (Don't forget to restart your web server afterwards)" );
"LDAP support before using phpLDAPadmin. (Don't forget to restart your web server afterwards)");
return false;
}
/* Make sure the config file is readable */
//if( ! is_readable( 'config.php' ) )
if( ! is_readable( realpath( 'config.php' ) ) ) {
pla_error( "The config file 'config.php' is not readable. Please check its permissions." );
# Make sure that we have php-xml loaded.
if (! function_exists('xml_parser_create')) {
pla_error( "Your install of PHP appears to be missing XML support. Please install " .
"XML support before using phpLDAPadmin. (Don't forget to restart your web server afterwards)");
return false;
}
# 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())))) {
pla_error( "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 \"". session_save_path() . "\" is un-writable by the web server.");
return false;
}
// Make sure their session save path is writable, if they are using a file system session module, that is.
if( 0 == strcasecmp( "Files", session_module_name() && ! is_writable( realpath( session_save_path() ) ) ) ) {
pla_error( "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 \"". session_save_path() . "\" is un-writable by the web server." );
return false;
}
/* check for syntax errors in config.php */
// capture the result of including the file with output buffering
# capture the result of including the file with output buffering
ob_start();
include 'config.php';
include $config_file;
$str = ob_get_contents();
ob_end_clean();
if( $str && false !== strpos( $str, 'error' ) ) {
if( $str && false !== strpos( $str, 'error' ) ) {
$str = strip_tags( $str );
$matches = array();
preg_match( "/on line (\d+)/", $str, $matches );
$line_num = $matches[1];
$file = file( 'config.php' );
$file = file($config_file);
?>
<html>
<head>
<title>phpLDAPadmin Config File Error</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<h3 class="title">Config file error</h3>
<h3 class="subtitle">Syntax error on line <?php echo $line_num; ?></h3>
<center>
Looks like your config file has a syntax error on line <?php echo $line_num; ?>.
Here is a snippet around that line
<br />
<br />
<div style="text-align: left; margin-left: 80px; margin-right: 80px; border: 1px solid black; padding: 10px;">
<tt>
<?php
for( $i=$line_num-9; $i<$line_num+5; $i++ ) {
if( $i+1 == $line_num )
echo "<div style=\"color:red;background:#fdd\">";
if( $i < 0 )
continue;
echo "<b>" . ($i+1) . "</b>: " . htmlspecialchars($file[ $i ]) . "<br />";
if( $i+1 == $line_num )
echo "</div>";
}
?>
</tt>
</div>
<br />
Hint: Sometimes these errors are caused by lines <b>preceding</b> the line reported.
</body>
</html>
<html>
<head>
<title>phpLDAPadmin Config File Error</title>
<link rel="stylesheet" href="style.css" />
</head>
<?php
return false;
<body>
<h3 class="title">Config file error</h3>
<h3 class="subtitle">Syntax error on line <?php echo $line_num; ?></h3>
<center>
Looks like your config file has a syntax error on line <?php echo $line_num; ?>.
Here is a snippet around that line
<br />
<br />
<div style="text-align: left; margin-left: 80px; margin-right: 80px; border: 1px solid black; padding: 10px;">
<tt>
<?php for( $i=$line_num-9; $i<$line_num+5; $i++ ) {
if( $i+1 == $line_num )
echo "<div style=\"color:red;background:#fdd\">";
if( $i < 0 )
continue;
echo "<b>" . ($i+1) . "</b>: " . htmlspecialchars($file[ $i ]) . "<br />";
if( $i+1 == $line_num )
echo "</div>";
}
?>
</tt>
</div>
<br />
Hint: Sometimes these errors are caused by lines <b>preceding</b> the line reported.
</body>
</html>
<?php return false;
}
/* check the existence of the servers array */
require 'config.php';
if( ! isset( $servers ) || ! is_array( $servers ) || count( $servers ) == 0 ) {
pla_error( "Your config.php is missing the \$servers array or the \$servers array is empty.
Please see the sample file config.php.example ", false );
require $config_file;
if( ! isset($ldapservers) || count($ldapservers->GetServerList()) == 0) {
pla_error( "Your config.php is missing Server Definitions
Please see the sample file config.php.example ", false );
return false;
}
/* Make sure there is at least one server in the array */
$count = 0;
foreach( $servers as $i => $server )
if( isset( $server['host'] ) )
$count++;
if( $count == 0 ) {
# @todo: Implement this and fix all the tests.
/*
if ( ! count($ldapservers->GetServerList())) {
pla_error( "None of the " . count($servers) . " servers in your \$servers configuration is
active in config.php. At least one of your servers must set the 'host' directive.
Example: <br><pre>\$servers['host'] = \"ldap.example.com\";<br></pre>
@ -170,13 +216,14 @@ function check_config()
return false;
}
// Check that 'base' is present on all serve entries
foreach( $servers as $id => $server ) {
if( isset( $server['host'] ) && isset( $server['name'] ) )
isset( $server['base'] ) or pla_error ( "Your configuration has an error. You omitted the 'base' directive
on server number $id. Your server entry must have a 'base' directive
even if it's empty ('')." );
}
// Check that 'base' is present on all serve entries
foreach( $servers as $id => $server ) {
if( isset( $server['host'] ) && isset( $server['name'] ) )
isset( $server['base'] )
or pla_error ( "Your configuration has an error. You omitted the 'base' directive
on server number $id. Your server entry must have a 'base' directive
even if it's empty ('')." );
}
// Check each of the servers in the servers array
foreach( $servers as $id => $server ) {
@ -184,7 +231,7 @@ function check_config()
// Make sure they specified an auth_type
if( ! isset( $server['auth_type'] ) ) {
pla_error( "Your configuratoin has an error. You omitted the 'auth_type' directive on server number $id
pla_error( "Your configuration has an error. You omitted the 'auth_type' directive on server number $id
'auth_type' must be set, and it must be one of 'config', 'cookie', or 'session'.", false );
return false;
}
@ -197,8 +244,8 @@ function check_config()
}
}
}
*/
return true;
}
?>

View File

@ -1,7 +1,7 @@
#
# This Makefile (lang/Makefile) converts the source lang files to UTF8
# coding. You need iconv installed to use it.
# $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/Makefile,v 1.24 2004/12/09 14:12:16 uugdave Exp $
# $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/Makefile,v 1.25 2005/02/06 00:21:30 wurley Exp $
# ToDo: detect the encoding in the "source"
#
# posible detect of the language
@ -34,10 +34,10 @@ TARGETS=${DESTDIR}/auto.php \
${DESTDIR}/pt-br.php \
${DESTDIR}/ru.php \
${DESTDIR}/sv.php \
${DESTDIR}/zh-cn.php \
${DESTDIR}/zh-tw.php \
${DESTDIR}/zz.php \
${DESTDIR}/zzz.php
# OFF zh-tw.php
# ${DESTDIR}/zh-tw.php \
default:
@echo "usage:"
@ -129,11 +129,16 @@ ${DESTDIR}/ru.php: ru.php
@echo "Fixing encoding ru.php to UTF8 "${DESTDIR}/ru.php
@iconv -f utf8 -t utf8 ru.php > ${DESTDIR}/ru.php
#${DESTDIR}/zh-tw.php: zh-tw.php
# @echo "Copying only the zh-tw.php"
# @iconv -f utf8 -t utf8 zh-tw.php ${DESTDIR}/zh-tw.php
${DESTDIR}/zh-cn.php: zh-cn.php
@echo "Copying only the zh-cn.php"
@cp zh-cn.php ${DESTDIR}/zh-cn.php
${DESTDIR}/zh-tw.php: zh-tw.php
@echo "Copying only the zh-tw.php"
@cp zh-tw.php ${DESTDIR}/zh-tw.php
# @iconv -f utf8 -t utf8 zh-tw.php ${DESTDIR}/zh-tw.php
# INTERNAL BUG COULDN CONVERT IT, SO WE COPY IT
# cp zh-tw.php ${DESTDIR}/zh-tw.php
${DESTDIR}/zz.php: zz.php
@echo "Copying only the zz.php"
@cp zz.php ${DESTDIR}/.

View File

@ -1,8 +1,8 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/auto.php,v 1.9 2004/12/09 14:02:24 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/auto.php,v 1.10 2005/02/06 00:21:30 wurley Exp $
// Language for auto-detect
// phpldapadmin/lang/auto.php in $Revision: 1.9 $
// phpldapadmin/lang/auto.php in $Revision: 1.10 $
$useLang="en"; // default use english encoding, a Option in Config would be nice
// keep the beginning and ending spaces, they are used for finding the best language
@ -30,6 +30,8 @@ $langSupport=array(" ca "=>"ca" // catalan
," ru-"=>"ru" // ru- exits?
," sv "=>"sv" //swedish
," sv-"=>"sv" // swedisch to
," zh-cn"=>"zh-cn" // simplified chinese
," zh-tw"=>"zh-tw" // taiwan?
);// all supported languages in this array
// test

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/en.php,v 1.107 2005/01/07 04:06:27 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/en.php,v 1.133 2005/09/12 03:06:57 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@ -31,7 +31,6 @@ $lang['search_for_entries_whose'] = 'Search for entries whose';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Search Scope';
$lang['show_attributes'] = 'Show Attributtes';
$lang['attributes'] = 'Attributes';
$lang['Search'] = 'Search';
$lang['predefined_search_str'] = 'Select a predefined search';
$lang['predefined_searches'] = 'Predefined Searches';
@ -43,6 +42,7 @@ $lang['list'] = 'list';
$lang['table'] = 'table';
$lang['bad_search_display'] = 'Your config.php specifies an invalid value for $default_search_display: %s. Please fix it';
$lang['page_n'] = 'Page %d';
$lang['next_page'] = 'Next Page';
$lang['no_results'] = 'The search found no results.';
// Tree browser
@ -74,13 +74,13 @@ $lang['please_specify_in_config'] = 'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'Login...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'The base entry does not exist.';
$lang['base_entry_does_not_exist'] = 'This base entry does not exist.';
$lang['create_it'] = 'Create it?';
// Entry display
$lang['delete_this_entry'] = 'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'Copy this entry';
$lang['copy_this_entry'] = 'Copy or move this entry';
$lang['copy_this_entry_tooltip'] = 'Copy this object to another location, a new DN, or another server';
$lang['export'] = 'Export';
$lang['export_lcase'] = 'export';
@ -90,6 +90,7 @@ $lang['export_subtree'] = 'Export subtree';
$lang['create_a_child_entry'] = 'Create a child entry';
$lang['rename_entry'] = 'Rename Entry';
$lang['rename'] = 'Rename';
$lang['rename_lower'] = 'rename';
$lang['add'] = 'Add';
$lang['view'] = 'View';
$lang['view_one_child'] = 'View 1 child';
@ -118,6 +119,7 @@ $lang['binary_value'] = 'Binary value';
$lang['add_new_binary_attr'] = 'Add new binary attribute';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['required_for'] = 'Required attribute for objectClass(es) %s';
$lang['required_by_entry'] = 'This attribute is required for the RDN.';
$lang['download_value'] = 'download value';
$lang['delete_attribute'] = 'delete attribute';
$lang['true'] = 'true';
@ -127,13 +129,10 @@ $lang['really_delete_attribute'] = 'Really delete attribute';
$lang['add_new_value'] = 'Add New Value';
// Schema browser
$lang['the_following_objectclasses'] = 'The following objectClasses are supported by this LDAP server.';
$lang['the_following_attributes'] = 'The following attributeTypes are supported by this LDAP server.';
$lang['the_following_matching'] = 'The following matching rules are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'The following syntaxes are supported by this LDAP server.';
$lang['schema_retrieve_error_1']='The server does not fully support the LDAP protocol.';
$lang['schema_retrieve_error_2']='Your version of PHP does not correctly perform the query.';
$lang['schema_retrieve_error_3']='Or lastly, phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['schema_retrieve_error_3']='phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['schema_retrieve_error_4']='Or lastly, your LDAP server doesnt provide this information.';
$lang['jump_to_objectclass'] = 'Jump to an objectClass';
$lang['view_schema_for_oclass'] = 'View the schema description for this objectClass';
$lang['jump_to_attr'] = 'Jump to an attribute type';
@ -177,6 +176,7 @@ $lang['usage']='Usage';
$lang['could_not_retrieve_schema_from']='Could not retrieve schema from';
$lang['type']='Type';
$lang['no_such_schema_item'] = 'No such schema item: "%s"';
$lang['random_password'] = 'A random password was generated for you';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entry %s deleted successfully.';
@ -220,7 +220,7 @@ $lang['change_password_new_login'] = 'Since you changed your password, you must
$lang['new_required_attrs'] = 'New Required Attributes';
$lang['requires_to_add'] = 'This action requires you to add';
$lang['new_attributes'] = 'new attributes';
$lang['new_required_attrs_instructions'] = 'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['new_required_attrs_instructions'] = 'Instructions: In order to add these objectClass(es) to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'that this objectClass requires. You can do so in this form.';
$lang['add_oclass_and_attrs'] = 'Add ObjectClass and Attributes';
$lang['objectclasses'] = 'ObjectClasses';
@ -233,19 +233,15 @@ $lang['not_enough_login_info'] = 'Not enough information to login to server. Ple
$lang['could_not_connect'] = 'Could not connect to LDAP server.';
$lang['could_not_connect_to_host_on_port'] = 'Could not connect to "%s" on port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$lang['home'] = 'Home';
$lang['help'] = 'Help';
$lang['success'] = 'Success';
$lang['server_colon_pare'] = 'Server: ';
$lang['look_in'] = 'Looking in: ';
$lang['missing_server_id_in_query_string'] = 'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'No DN specified in query string!';
$lang['back_up_p'] = 'Back Up...';
$lang['no_entries'] = 'no entries';
$lang['not_logged_in'] = 'Not logged in';
$lang['could_not_det_base_dn'] = 'Could not determine base DN';
$lang['please_report_this_as_a_bug']='Please report this as a bug.';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='Yes';
$lang['no']='No';
@ -254,13 +250,16 @@ $lang['delete']='Delete';
$lang['back']='Back';
$lang['object']='object';
$lang['delete_all']='Delete all';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'hint';
$lang['bug'] = 'bug';
$lang['warning'] = 'warning';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceed &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin cannot safely encrypt & decrypt your sensitive information, because $blowfish_secret is not set in config.php. You need to edit config.php and set $blowfish_secret to some secret string now.';
$lang['jpeg_dir_not_writable'] = 'Please set $jpeg_temp_dir to a writable directory in the phpLDAPadmin config.php';
$lang['jpeg_dir_not_writable_error'] = 'Could not write to the $jpeg_temp_dir directory %s. Please verify that your web server can write files there.';
$lang['jpeg_unable_toget'] = 'Could not fetch jpeg data from LDAP server for attribute %s.';
$lang['jpeg_delete'] = 'Delete photo';
// Add value form
$lang['add_new'] = 'Add new';
@ -270,7 +269,7 @@ $lang['current_list_of'] = 'Current list of';
$lang['values_for_attribute'] = 'values for attribute';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Note: you may be required to enter new attributes that this objectClass requires';
$lang['new_required_attrs_note'] = 'Note: You may be required to enter new attributes that these objectClass(es) require';
$lang['syntax'] = 'Syntax';
//copy.php
@ -294,8 +293,8 @@ $lang['must_choose_template'] = 'You must choose a template';
$lang['invalid_template'] = '%s is an invalid template';
$lang['using_template'] = 'using template';
$lang['go_to_dn'] = 'Go to %s';
+$lang['structural_object_class_cannot_remove'] = 'This is a structural ObjectClass and cannot be removed.';
+$lang['structural'] = 'structural';
$lang['structural_object_class_cannot_remove'] = 'This is a structural ObjectClass and cannot be removed.';
$lang['structural'] = 'structural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copy ';
@ -307,8 +306,9 @@ $lang['copyf_note'] = 'Hint: Copying between different servers only works if the
$lang['copyf_recursive_copy'] = 'Recursively copy all children of this object as well.';
$lang['recursive_copy'] = 'Recursive copy';
$lang['filter'] = 'Filter';
$lang['search_filter'] = 'Search Filter';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this filter';
$lang['delete_after_copy'] = 'Delete after copy (move):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
@ -325,6 +325,8 @@ $lang['rdn_field_blank'] = 'You left the RDN field blank.';
$lang['container_does_not_exist'] = 'The container you specified (%s) does not exist. Please try again.';
$lang['no_objectclasses_selected'] = 'You did not select any ObjectClasses for this object. Please go back and do so.';
$lang['hint_structural_oclass'] = 'Hint: You must choose exactly one structural objectClass (shown in bold above)';
$lang['template_restricted'] = 'This template is not allowed in this container.';
$lang['template_invalid'] = 'This template has been disabled, possibly due to missing schema or missing template XML fields.';
//creation_template.php
$lang['ctemplate_on_server'] = 'On server';
@ -356,10 +358,8 @@ $lang['scope_base'] = 'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'A list of attributes to display in the results (comma-separated)';
$lang['show_attributes'] = 'Show Attributes';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Search for entries whose:';
$lang['equals'] = 'equals';
$lang['starts with'] = 'starts with';
$lang['contains'] = 'contains';
@ -386,19 +386,19 @@ $lang['commit'] = 'Commit';
$lang['cancel'] = 'Cancel';
$lang['you_made_no_changes'] = 'You made no changes';
$lang['go_back'] = 'Go back';
$lang['unable_create_samba_pass'] = 'Unable to create samba password. Please check your configuration in template_config.php';
// welcome.php
$lang['welcome_note'] = 'Use the menu to the left to navigate';
$lang['credits'] = 'Credits';
$lang['changelog'] = 'ChangeLog';
$lang['documentation'] = 'Documentation';
$lang['donate'] = 'Donate';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'To donate funds to the phpLDAPadmin project, use one of the PayPal buttons below.';
$lang['donate_amount'] = 'Donate %s';
$lang['wish_list_option'] = 'Or perhaps you would prefer to purchase an gift for a phpLDAPadmin developer.';
$lang['wish_list'] = 'View Dave\'s phpLDAPadmin wish list';
$lang['purge_cache'] = 'Purge caches';
$lang['no_cache_to_purge'] = 'No cache to purge.';
@ -437,15 +437,15 @@ $lang['could_not_bind_anon'] = 'Could not bind anonymously to server.';
$lang['could_not_bind'] = 'Could not bind to the LDAP server.';
$lang['anonymous_bind'] = 'Anonymous Bind';
$lang['bad_user_name_or_password'] = 'Bad username or password. Please try again.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'Successfully logged into server <b>%s</b>';
$lang['could_not_set_cookie'] = 'Could not set cookie.';
$lang['ldap_said'] = 'LDAP said: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'browse';
$lang['delete_photo'] = 'Delete Photo';
$lang['install_not_support_blowfish'] = 'Your PHP install does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Your PHP install does not support md5crypt encryption.';
$lang['install_not_support_ext_des'] = 'Your system crypt library does not support extended DES encryption.';
$lang['install_not_support_blowfish'] = 'Your system crypt library does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Your system crypt library does not support md5crypt encryption.';
$lang['install_no_mash'] = 'Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contains errors<br />';
$lang['ferror_number'] = 'Error number: %s (%s)';
@ -457,8 +457,10 @@ $lang['ferror_unrecognized_num'] = 'Unrecognized error number: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
<td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Please check and see if this bug has been reported here</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>If it hasnt been reported, you may report this bug by clicking here</a>.</center></td></tr>
</table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Congratulations! You found a bug in phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
@ -514,16 +516,14 @@ $lang['searching'] = 'Searching...';
$lang['size_limit_exceeded'] = 'Notice, search size limit exceeded.';
$lang['entry'] = 'Entry';
$lang['ldif_export_for_dn'] = 'LDIF Export for: %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://www.phpldapadmin.com/ ) on %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on %s';
$lang['total_entries'] = 'Total Entries';
$lang['dsml_export_for_dn'] = 'DSLM Export for: %s';
$lang['include_system_attrs'] = 'Include system attributes';
$lang['csv_spreadsheet'] = 'CSV (Spreadsheet)';
// logins
$lang['could_not_find_user'] = 'Could not find a user "%s"';
$lang['password_blank'] = 'You left the password blank.';
$lang['login_cancelled'] = 'Login cancelled.';
$lang['no_one_logged_in'] = 'No one is logged in to that server.';
$lang['could_not_logout'] = 'Could not logout.';
$lang['unknown_auth_type'] = 'Unknown auth_type: %s';
@ -535,6 +535,7 @@ $lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'User name';
$lang['password'] = 'Password';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'Sorry, you are not allowed to use phpLDAPadmin with this LDAP server.';
// Entry browser
$lang['entry_chooser_title'] = 'Entry Chooser';
@ -547,7 +548,6 @@ $lang['no_deletes_in_read_only'] = 'Deletes not allowed in read only mode.';
$lang['error_calling_mass_delete'] = 'Error calling mass_delete.php. Missing mass_delete in POST vars.';
$lang['mass_delete_not_array'] = 'mass_delete POST var is not an array.';
$lang['mass_delete_not_enabled'] = 'Mass deletion is not enabled. Please enable it in config.php before proceeding.';
$lang['search_attrs_wrong_count'] = 'Your config.php has an error. The number of attributes in $search_attributes and $search_attributes_display is different';
$lang['mass_deleting'] = 'Mass Deleting';
$lang['mass_delete_progress'] = 'Deletion progress on server "%s"';
$lang['malformed_mass_delete_array'] = 'Malformed mass_delete array.';
@ -564,20 +564,14 @@ $lang['no_rdn_change'] = 'You did not change the RDN';
$lang['invalid_rdn'] = 'Invalid RDN value';
$lang['could_not_rename'] = 'Could not rename the entry';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin does not yet support PHP 5. You will likely encounter many weird problems if you continue.';
$lang['mismatched_search_attr_config'] = 'Your configuration has an error. $search_attributes must have the same number of attributes as $search_attributes_display.';
// Password checker
$lang['passwords_match'] = 'Passwords match!';
$lang['passwords_do_not_match'] = 'Passwords do not match!';
$lang['password_checker_tool'] = 'Password Checker Tool';
$lang['compare'] = 'Compare';
$lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'template';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'default template';
@ -586,8 +580,9 @@ $lang['user_account'] = 'User Account (posixAccount)';
$lang['address_book_inet'] = 'Address Book Entry (inetOrgPerson)';
$lang['address_book_moz'] = 'Address Book Entry (mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab User Entry';
$lang['organizational_unit'] = 'Organizational Unit';
$lang['organizational_role'] = 'Organizational Role';
$lang['organizational_unit'] = 'Organisational Unit';
$lang['new_organizational_unit'] = 'New Organisational Unit';
$lang['organizational_role'] = 'Organisational Role';
$lang['posix_group'] = 'Posix Group';
$lang['samba_machine'] = 'Samba NT Machine';
$lang['samba3_machine'] = 'Samba 3 NT Machine';
@ -634,6 +629,7 @@ $lang['t_first_name'] = 'First name';
$lang['t_last_name'] = 'Last name';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_state'] = 'State';
$lang['t_common_name'] = 'Common name';
$lang['t_user_name'] = 'User Name';
$lang['t_password'] = 'Password';
@ -644,6 +640,7 @@ $lang['t_uid_number'] = 'UID Number';
$lang['t_auto_det'] = '(automatically determined)';
$lang['t_group'] = 'Group';
$lang['t_gid_number'] = 'GID Number';
$lang['t_uid'] = 'User ID';
$lang['t_err_passwords'] = 'Your passwords don\'t match. Please go back and try again.';
$lang['t_err_field_blank'] = 'You cannot leave the %s blank. Please go back and try again.';
$lang['t_err_field_num'] = 'You can only enter numeric values for the %s field. Please go back and try again.';
@ -651,10 +648,14 @@ $lang['t_err_bad_container'] = 'The container you specified (%s) does not exist.
$lang['t_confirm_account_creation'] = 'Confirm account creation';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'Create Account';
$lang['t_verify'] = 'Verify';
// New Group (Posix)
$lang['t_new_posixgroup'] = 'New Posix Group';
// New Address Template
$lang['t_new_address'] = 'New Address Book Entry';
$lang['t_organization'] = 'Organization';
$lang['t_organization'] = 'Organisation';
$lang['t_address'] = 'Address';
$lang['t_city'] = 'City';
$lang['t_postal_code'] = 'Postal code';
@ -670,5 +671,24 @@ $lang['t_create_address'] = 'Create Address';
// default template
$lang['t_check_pass'] = 'Check password...';
$lang['t_auto_submit'] = '(Auto evalutated on submission.)';
// compare form
$lang['compare'] = 'Compare';
$lang['comparing'] = 'Comparing the following DNs';
$lang['compare_dn'] = 'Compare another DN with';
$lang['with'] = 'with ';
$lang['compf_source_dn'] = 'Source DN';
$lang['compf_dn_tooltip'] = 'Compare this DN with another';
$lang['switch_entry'] = 'Switch Entry';
$lang['no_value'] = 'No Value';
$lang['compare_with'] = 'Compare with another entry';
$lang['need_oclass'] = 'You need one of the following ObjectClass(es) to add this attribute %s.';
// Time out page
$lang['session_timed_out_1'] = 'Your Session timed out after';
$lang['session_timed_out_2'] = 'min. of inactivity. You have been automatically logged out.';
$lang['log_back_in'] = 'To log back in please click on the following link:';
$lang['session_timed_out_tree'] = '(Session timed out. Automatically logged out.)';
$lang['timeout_at'] = 'Inactivity will log you off at %s';
?>

View File

@ -1,28 +1,37 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/es.php,v 1.19 2004/06/07 13:01:28 uugdave Exp $
/*
* Spanish (es_ES) translation file for phpLDAPadmin
*
* Date: 02/05/2005
* Source: CVS snapshot of en.php as of 02/05/2005
* Translator: Miguelanxo Otero Salgueiro <miguelanxo@telefonica.net>
*/
// Search form
$lang['simple_search_form_str'] = 'Formulario de búsqueda sencilla';
$lang['advanced_search_form_str'] = 'Formulario de búsqueda avanzada';
$lang['server'] = 'Servidor';
$lang['search_for_entries_whose'] = 'Buscar objetos los cuales';
$lang['base_dn'] = 'DN Base';
$lang['search_scope'] = 'Alcance de la búsqueda';
$lang['search_ filter'] = 'Filtro de Búsqueda';
$lang['search_for_entries_whose'] = 'Buscar objetos que';
$lang['base_dn'] = 'DN base';
$lang['search_scope'] = 'Ámbito de búsqueda';
$lang['show_attributes'] = 'Mostrar atributos';
$lang['attributes'] = 'Atributos';
$lang['Search'] = 'Buscar';
$lang['equals'] = 'equivale';
$lang['starts_with'] = 'comienza con';
$lang['contains'] = 'contiene';
$lang['ends_with'] = 'termina con';
$lang['sounds_like'] = 'suena como';
$lang['predefined_search_str'] = 'Seleccionar una búsqueda predefinida';
$lang['predefined_searches'] = 'Búsquedas predefinidas';
$lang['no_predefined_queries'] = 'No hay ninguna búsqueda predefinida en config.php.';
$lang['export_results'] = 'exportar resultados';
$lang['unrecoginzed_search_result_format'] = 'Formato de resultado de búsqueda no reconocido: %s';
$lang['format'] = 'Formato';
$lang['list'] = 'lista';
$lang['table'] = 'tabla';
$lang['bad_search_display'] = 'Su config.php especifica un valor no válido para $default_search_display: %s. Por favor, arréglelo';
$lang['page_n'] = 'Página %d';
$lang['no_results'] = 'La búsqueda no ha encontrado resultados.';
// Tree browser
$lang['request_new_feature'] = 'Pedir funcionalidad';
$lang['see_open_requests'] = 'Ver las peticiones';
$lang['report_bug'] = 'Reportar un error';
$lang['see_open_bugs'] = 'Ver los errores';
$lang['request_new_feature'] = 'Solicitar una nueva funcionalidad';
$lang['report_bug'] = 'Informar de un error';
$lang['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
@ -30,313 +39,617 @@ $lang['info'] = 'info';
$lang['import'] = 'importar';
$lang['refresh'] = 'refrescar';
$lang['logout'] = 'salir';
$lang['create_new'] = 'Crear Nuevo Objeto';
$lang['view_schema_for'] = 'Ver esquema para';
$lang['refresh_expanded_containers'] = 'Refrescar todos los contenedores extendidos para';
$lang['create_new_entry_on'] = 'Crear nuevo objeto en';
$lang['view_server_info'] = 'Ver información del servidor';
$lang['import_from_ldif'] = 'Importar objetos de archivo LDIF';
$lang['logout_of_this_server'] = 'Salir de este servidor';
$lang['create_new'] = 'Crear nuevo objeto';
$lang['view_schema_for'] = 'Ver el esquema del';
$lang['refresh_expanded_containers'] = 'Refrescar todos los contenedores extendidos del';
$lang['create_new_entry_on'] = 'Crear un nuevo objeto en el';
$lang['new'] = 'nuevo';
$lang['view_server_info'] = 'Ver la información enviada por el servidor';
$lang['import_from_ldif'] = 'Importar desde un fichero LDIF';
$lang['logout_of_this_server'] = 'Desconectar del servidor';
$lang['logged_in_as'] = 'Conectado como: ';
$lang['read_only'] = 'inalterable';
$lang['could_not_determine_root'] = 'No se ha podido determinar la raiz del servidor LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece ser que el servidor LDAP se ha configurado para no revelar su raiz.';
$lang['please_specify_in_config'] = 'Por favor especifícala en el archivo config.php';
$lang['create_new_entry_in'] = 'Crear un nuevo objeto en';
$lang['login_link'] = 'Autenticación...';
$lang['this_base_dn_is_not_valid'] = 'Esta DN base no es válida.';
$lang['this_base_dn_does_not_exist'] = 'Este objeto no existe.';
$lang['read_only'] = 'sólo lectura';
$lang['read_only_tooltip'] = 'Este atributo ha sido marcado como de sólo lectura por el administrador de phpLDAPadmin';
$lang['could_not_determine_root'] = 'No se ha podido determinar la raíz de su árbol LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece que el servidor LDAP ha sido configurado para no revelar su raíz.';
$lang['please_specify_in_config'] = 'Por favór, especifíquela en config.php';
$lang['create_new_entry_in'] = 'Crear nuevo objeto en';
$lang['login_link'] = 'Autentificación';
$lang['login'] = 'conectar';
$lang['base_entry_does_not_exist'] = 'Este objeto base no existe.';
$lang['create_it'] = '¿Crearlo?';
// Entry display
$lang['delete_this_entry'] = 'Borrar este objeto';
$lang['delete_this_entry_tooltip'] = 'Se tendrá que confirmar esta decision';
$lang['delete_this_entry_tooltip'] = 'Se le pedirá confirmación';
$lang['copy_this_entry'] = 'Copiar este objeto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto para otra localización, DN nuevo, o para otro servidor.';
$lang['export_to_ldif'] = 'Exportar archivo LDIF';
$lang['export_to_ldif_tooltip'] = 'Guardar archivo LDIF de este objeto';
$lang['export_subtree_to_ldif_tooltip'] = 'Guardar archivo LDIF de este objeto i todos sus objetos hijos';
$lang['export_subtree_to_ldif'] = 'Exportar archivo LDIF de sub-estructura';
$lang['export_mac'] = 'Avance de línea de Macintosh';
$lang['export_win'] = 'Avance de línea de Windows';
$lang['export_unix'] = 'Avance de línea de Unix';
$lang['create_a_child_entry'] = 'Crear objeto como hijo';
$lang['add_a_jpeg_photo'] = 'Agregar jpegPhoto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto en otro sitio: un nuevo DN u otro servidor';
$lang['export'] = 'Exportar';
$lang['export_lcase'] = 'exportar';
$lang['export_tooltip'] = 'Exportar este objeto';
$lang['export_subtree_tooltip'] = 'Exportar este objeto y todos sus hijos';
$lang['export_subtree'] = 'Exportar subárbol';
$lang['create_a_child_entry'] = 'Crear un objeto hijo';
$lang['rename_entry'] = 'Renombrar objeto';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'Agregar';
$lang['add'] = 'Añadir';
$lang['view'] = 'Ver';
$lang['add_new_attribute'] = 'Agregar nuevo atributo';
$lang['add_new_attribute_tooltip'] = 'Agregar nuevo atributo/valor a este objeto';
$lang['internal_attributes'] = 'Atributos Internos';
$lang['hide_internal_attrs'] = 'ocultar los atributos internos';
$lang['show_internal_attrs'] = 'mostrar els atributos internos';
$lang['internal_attrs_tooltip'] = 'Los atributos fijos automaticamente para el servidor';
$lang['entry_attributes'] = 'Atributos del objeto';
$lang['attr_name_tooltip'] = 'Haz click para ver la definicion del esquema para tipos de atributo \'%s\'';
$lang['click_to_display'] = 'Haz click para mostrar';
$lang['hidden'] = 'ocultado';
$lang['view_one_child'] = 'Ver 1 hijo';
$lang['view_children'] = 'Ver %s hijos';
$lang['add_new_attribute'] = 'Añadir atributo';
$lang['add_new_objectclass'] = 'Añadir ObjectClass';
$lang['hide_internal_attrs'] = 'Ocultar atributos internos';
$lang['show_internal_attrs'] = 'Mostrar atributos internos';
$lang['attr_name_tooltip'] = 'Haga click para ver el esquema del atributo de tipo \'%s\'';
$lang['none'] = 'ninguno';
$lang['save_changes'] = 'Guardar los cambios';
$lang['add_value'] = 'agregar valor';
$lang['add_value_tooltip'] = 'Agregar valor adicional a este atributo';
$lang['no_internal_attributes'] = 'No hay atributos internos';
$lang['no_attributes'] = 'Este objeto no tiene atributos';
$lang['save_changes'] = 'Guardar cambios';
$lang['add_value'] = 'añadir valor';
$lang['add_value_tooltip'] = 'Añadir un valor al atributo \'%s\'';
$lang['refresh_entry'] = 'Refrescar';
$lang['refresh_this_entry'] = 'Refrescar este objeto';
$lang['delete_hint'] = 'Pista: <b>Para borrar un atributo</b>, vacía el formulario de texto y haz click en Guardar.';
$lang['attr_schema_hint'] = 'Pista: <b>Para ver el esquema de un atributo</b>, haz click en el nombre del atributo.';
$lang['attrs_modified'] = 'Algunos atributos (%s) fueron modificados y estan remarcados más abajo.';
$lang['attr_modified'] = 'Un atributo (%s) fué modificado y está remarcado más abajo.';
$lang['viewing_read_only'] = 'Mostrando el objeto en modo de no alterar.';
$lang['change_entry_rdn'] = 'Modificar el RDN de este objeto';
$lang['no_new_attrs_available'] = 'No hay atributos nuevos disponibles para este objeto';
$lang['delete_hint'] = 'Nota: para borrar un atributo, borre su atributo y haga click en guardar.';
$lang['attr_schema_hint'] = 'Nota: Para ver el esquema de un atributo, haga click en su nombre.';
$lang['attrs_modified'] = 'Se han modificado algunos atributos (%s) que se encuentran destacados mas abajo.';
$lang['attr_modified'] = 'Se ha modificado algún atributo (%s) que se encuentra destacado más abajo.';
$lang['viewing_read_only'] = 'Nota: Modo de sólo lectura.';
$lang['no_new_attrs_available'] = 'no hay nuevos atributos en este objeto';
$lang['no_new_binary_attrs_available'] = 'no hay nuevos atributos binarios en este objeto';
$lang['binary_value'] = 'Valor binario';
$lang['add_new_binary_attr'] = 'Agregar valor binario';
$lang['add_new_binary_attr_tooltip'] = 'Agregar atributo/valor binario de un archivo';
$lang['alias_for'] = '%s es sinónimo para %s';
$lang['download_value'] = 'Descargar valor';
$lang['delete_attribute'] = 'Borrar atributo';
$lang['true'] = 'verdad';
$lang['add_new_binary_attr'] = 'Añadir atributo binario';
$lang['alias_for'] = 'Nota: \'%s\' es un alias de \'%s\'';
$lang['required_for'] = 'Atributo requerido para la(s) clase(s) de objeto %s';
$lang['download_value'] = 'descargar valor';
$lang['delete_attribute'] = 'borrar atributo';
$lang['true'] = 'verdadero';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'ningo, borrar valor';
$lang['really_delete_attribute'] = 'Borrar realmente el atributo?';
$lang['none_remove_value'] = 'ninguno, borrar valor';
$lang['really_delete_attribute'] = '¿Borrar realmente el atributo';
$lang['add_new_value'] = 'Añadir valor';
// Schema browser
$lang['the_following_objectclasses'] = 'Los siguientes <b>ObjectClass</b> están presentes en este servidor LDAP.';
$lang['the_following_attributes'] = 'Los siguientes <b>attributeTypes</b> están presentes en este servidor LDAP.';
$lang['the_following_matching'] = 'Los siguientes <b>matching rules</b> están presentes en este servidor LDAP.';
$lang['the_following_syntaxes'] = 'Los siguientes <b>sintaxis</b> están presentes en este servidor LDAP.';
$lang['jump_to_objectclass'] = 'Saltar a una ObjectClass';
$lang['jump_to_attr'] = 'Saltar a un atributo';
$lang['schema_for_server'] = 'Esquema del servidor ';
$lang['required_attrs'] = 'Atributos Requeridos (MUST)';
$lang['optional_attrs'] = 'Atributos Opcionales (MAY)';
$lang['the_following_objectclasses'] = 'El servidor LDAP soporta las siguientes clases de objeto:';
$lang['the_following_attributes'] = 'El servidor LDAP soporta los siguientes tipos de atributo:';
$lang['the_following_matching'] = 'El servidor LDAP soporta las siguientes reglas de coincidencia:';
$lang['the_following_syntaxes'] = 'El servidor LDAP soporta las siguientes sintaxis:';
$lang['schema_retrieve_error_1']='El servidor LDAP no soporta el protocolo LDAP en su totalidad.';
$lang['schema_retrieve_error_2']='Su versión de PHP no realiza la petición correctamente.';
$lang['schema_retrieve_error_3']='O el phpLDAPadmin no sabe como obtener el esquema del servidor.';
$lang['jump_to_objectclass'] = 'Ir a la clase de objeto';
$lang['view_schema_for_oclass'] = 'Ver la descripción del esquema para esta clase de objeto.';
$lang['jump_to_attr'] = 'Ir al tipo de atributo';
$lang['jump_to_matching_rule'] = 'Ir a la regla de coincidencia';
$lang['schema_for_server'] = 'Esquema del servidor';
$lang['required_attrs'] = 'Atributos requeridos';
$lang['required'] = 'requerido';
$lang['optional_attrs'] = 'Atributos opcionales';
$lang['optional_binary_attrs'] = 'Atributos binarios opcionales';
$lang['OID'] = 'OID';
$lang['aliases']='Alias';
$lang['desc'] = 'Descripción';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Esta ObjectClass es <b>obsoleta</b>';
$lang['inherits'] = 'Hereda';
$lang['jump_to_this_oclass'] = 'Saltar a esta ObjectClass';
$lang['matching_rule_oid'] = 'OID de Matching Rule';
$lang['syntax_oid'] = 'OID de Sintaxi';
$lang['not_applicable'] = 'no es aplicable';
$lang['not_specified'] = 'no especificada';
$lang['no_description']='sin descripción';
$lang['name'] = 'Nombre';
$lang['equality']='Igualdad';
$lang['is_obsolete'] = 'Esta clase de objeto es obsoleta.';
$lang['inherits'] = 'Hereda de';
$lang['inherited_from'] = 'Heredado de';
$lang['parent_to'] = 'Padre de';
$lang['jump_to_this_oclass'] = 'Ir a la definición de esta clase de objeto';
$lang['matching_rule_oid'] = 'OID de la regla de coincidencia';
$lang['syntax_oid'] = 'OID de sintaxis';
$lang['not_applicable'] = 'no aplicable';
$lang['not_specified'] = 'no especificado';
$lang['character'] = 'carácter';
$lang['characters'] = 'caracteres';
$lang['used_by_objectclasses'] = 'Usado por la clase de objeto';
$lang['used_by_attributes'] = 'Usado por los atributos';
$lang['maximum_length'] = 'Longitud máxima';
$lang['attribute_types']='Tipos de atributo';
$lang['syntaxes'] = 'Sintaxis';
$lang['matchingrules'] = 'Reglas de coincidencia';
$lang['oid'] = 'OID';
$lang['obsolete'] = 'Obsoleto';
$lang['ordering'] = 'Ordenación';
$lang['substring_rule'] = 'Regla de subcadena';
$lang['single_valued'] = 'Univaludado';
$lang['collective'] = 'Colectivo';
$lang['user_modification'] = 'Modificado por el usuario';
$lang['usage'] = 'Uso';
$lang['could_not_retrieve_schema_from'] = 'No se ha podido obtener el esquema de';
$lang['type'] = 'Tipo';
$lang['no_such_schema_item'] = 'No hay tal ítem en el esquema: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entrada \'%s\' borrada correctamente.';
$lang['you_must_specify_a_dn'] = 'Tienes que especificar un DN';
$lang['could_not_delete_entry'] = 'No he podido borrar la entrada: %s';
$lang['entry_deleted_successfully'] = 'Objeto %s borrado correctamente.';
$lang['you_must_specify_a_dn'] = 'Debe especificar un DN';
$lang['could_not_delete_entry'] = 'No se ha podido borrar el objeto %s';
$lang['no_such_entry'] = 'No hay tal objeto %s';
$lang['delete_dn'] = 'Borrar %s';
$lang['permanently_delete_children'] = '¿Borrar también todos los hijos?';
$lang['entry_is_root_sub_tree'] = 'Este objeto es la raíz de un subárbol que contiene %s objetos.';
$lang['view_entries'] = 'ver objetos';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin puede borrar recursivamente este objeto y sus %s hijos. Vea más abajo la lista de objetos que se borrarán ahora. ¿Todavía quiere hacerlo?';
$lang['confirm_recursive_delete_note'] = 'Nota: es potencialmente peligroso y debe hacerlo a su cuenta y riesgo. Esta operación NO puede deshacerse. Tome en consideración alias, referencias y otras cosas que puedan causar problemas.';
$lang['delete_all_x_objects'] = 'Borrar los %s objetos';
$lang['recursive_delete_progress'] = 'Progreso de la borración recursiva';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Objeto %s y su subárbol borrado correctamente.';
$lang['failed_to_delete_entry'] = 'Error al borrar el objeto %s';
$lang['list_of_entries_to_be_deleted'] = 'Lista de objetos a borrar:';
$lang['sure_permanent_delete_object']='¿Está seguro de querer borrar este objeto?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'El atributo "%s" está marcado como de sólo lectura en la configuración de phpLDAPadmin.';
$lang['no_attr_specified'] = 'No se ha especificado ningún nombre de atributo.';
$lang['no_dn_specified'] = 'No se ha especificado ningún DN';
// Adding attributes
$lang['left_attr_blank'] = 'Ha dejado en blanco el valor del atributo. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['failed_to_add_attr'] = 'Error al añadir atributo.';
$lang['file_empty'] = 'El fichero que ha escogido no existe o está vacío. Por favor vuelva atrás e inténtelo de nuevo.';
$lang['invalid_file'] = 'Error de seguridad: El fichero que está enviando puede ser malicioso.';
$lang['warning_file_uploads_disabled'] = 'Su configuración del PHP ha desactivado la recepción de ficheros. Por favor revise php.ini antes de continuar.';
$lang['uploaded_file_too_big'] = 'El fichero que está enviando es demasiado grande. Por favor revise el ajuste "upload_max_size" en php.ini.';
$lang['uploaded_file_partial'] = 'El fichero que ha seleccionado sólo se ha recibido parcialmente debido a un error de red.';
$lang['max_file_size'] = 'Tamaño máximo de fichero: %s';
// Updating values
$lang['modification_successful'] = '¡Modificación realizada correctamente!';
$lang['change_password_new_login'] = 'Como ha cambiado su contraseña, debe conectarse de nuevo empleando la nueva.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuevos atributos requeridos';
$lang['requires_to_add'] = 'Esta acción exige que se agreguen';
$lang['requires_to_add'] = 'Esta acción requiere que añada';
$lang['new_attributes'] = 'nuevos atributos';
$lang['new_required_attrs_instructions'] = 'Instrucciones: Para agregar esta ObjectClass a este objeto, se tiene que especificar';
$lang['that_this_oclass_requires'] = 'que este ObjectClass requiere. Se puede hacer con este formulario.';
$lang['add_oclass_and_attrs'] = 'Agregar ObjectClass y Atributos';
$lang['new_required_attrs_instructions'] = 'Instrucciones: Para poder añadir esta clase a este objeto, debe especificar';
$lang['that_this_oclass_requires'] = 'que esta clase requiere. Puede hacerlo en este formulario.';
$lang['add_oclass_and_attrs'] = 'Añadir clase de objeto y atributos';
$lang['objectclasses'] = 'Clases de objeto';
// General
$lang['chooser_link_tooltip'] = 'Haz click para seleccionar un objeto graficamente';
$lang['no_updates_in_read_only_mode'] = 'No se puede modificar el objeto si el servidor está operando en modo inalterable.';
$lang['bad_server_id'] = 'El identificador de servidor está mal';
$lang['not_enough_login_info'] = 'No tengo suficiente información para conectar al servidor. Por favor configura correctamente el archivo config.php';
$lang['could_not_connect'] = 'No se ha podido conectar al servidor LDAP';
$lang['could_not_perform_ldap_mod_add'] = 'No se ha podido ejecutar la operación del ldap_mod_add.';
$lang['bad_server_id_underline'] = 'El identificador del servidor está mal: ';
$lang['success'] = 'Exito';
$lang['chooser_link_tooltip'] = 'Haga click en el diálogo emergente para seleccionar un DN de forma gráfica';
$lang['no_updates_in_read_only_mode'] = 'No puede realizar cambios cuando el servidor está funcionando en modo de sólo lectura';
$lang['bad_server_id'] = 'Identificador de servidor no válido';
$lang['not_enough_login_info'] = 'No hay información suficiente para conectar con el servidor. Por favor, revise su configuración.';
$lang['could_not_connect'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'No se ha podido conectar con "%s" en el puerto "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'No se ha podido realizar la operación "ldap_mod_add".';
$lang['bad_server_id_underline'] = 'Identificador de servidor no válido: ';
$lang['success'] = 'Éxito';
$lang['home'] = 'Inicio';
$lang['help'] = 'Ayuda';
$lang['success'] = 'Éxito';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscando a: ';
$lang['missing_server_id_in_query_string'] = 'No está presente el identificador del servidor en la URL';
$lang['missing_dn_in_query_string'] = 'No está presente el DN en la URL';
$lang['back_up_p'] = 'Volver a...';
$lang['no_entries'] = 'no hay entradas';
$lang['not_logged_in'] = 'No estás autenticado';
$lang['could_not_det_base_dn'] = 'No he podido determinar la base DN';
$lang['look_in'] = 'Buscando en: ';
$lang['missing_server_id_in_query_string'] = '¡No se ha especificado ningún servidor en la petición!';
$lang['missing_dn_in_query_string'] = '¡No se ha especificado ningún DN en la petición!';
$lang['back_up_p'] = 'Volver';
$lang['no_entries'] = 'no hay objetos';
$lang['not_logged_in'] = 'No está conectado';
$lang['could_not_det_base_dn'] = 'No se puede determinar el DN base';
$lang['please_report_this_as_a_bug']='Por favor informe de este error.';
$lang['reasons_for_error']='Esto puede suceder por varias razones, las más probables son:';
$lang['yes']='Sí';
$lang['no']='No';
$lang['go']='Ir';
$lang['delete']='Borrar';
$lang['back']='Atrás';
$lang['object']='objeto';
$lang['delete_all']='Borrar todo';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'nota';
$lang['bug'] = 'error';
$lang['warning'] = 'aviso';
$lang['light'] = 'bombilla'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceder &gt;&gt;';
// Add value form
$lang['add_new'] = 'Agregar';
$lang['value_to'] = 'valor a';
$lang['server'] = 'Servidor';
$lang['add_new'] = 'Añadir';
$lang['value_to'] = 'valor de';
$lang['distinguished_name'] = 'Nombre distinguido';
$lang['current_list_of'] = 'La lista actual de';
$lang['values_for_attribute'] = 'valores para el atributo';
$lang['inappropriate_matching_note'] = 'Nota: Sino has configurado una regla \'EQUALITY\' en el servidor LDAP, recibirás un error \'inappropriate matching\'';
$lang['enter_value_to_add'] = 'Proveer el valor para agregar: ';
$lang['new_required_attrs_note'] = 'Nota: Es posible que se requiera agregar nuevos atributos para satisfacer los requisitos de esta ObjectClass';
$lang['syntax'] = 'Sintaxi';
$lang['current_list_of'] = 'Lista actual de';
$lang['values_for_attribute'] = 'valores del atributo';
$lang['inappropriate_matching_note'] = 'Nota: Si no ha creado una regla de igualdad en el servidor LDAP para este atributo, obtendrá un error de coincidencia inapropiada ("inappropriate matching").';
$lang['enter_value_to_add'] = 'Introduzca el valor a añadir:';
$lang['new_required_attrs_note'] = 'Nota: puede que tenga que introducir nuevos atributos que esta clase de objeto requiera';
$lang['syntax'] = 'Sintaxis';
//copy.php
$lang['copy_server_read_only'] = 'No se pueden realizar las modificaciones si el servidor está operando en modo inalterable';
$lang['copy_dest_dn_blank'] = 'No se ha rellenado el formulario de DN.';
$lang['copy_dest_already_exists'] = 'La entrada de destino (%s) encara existe.';
$lang['copy_dest_container_does_not_exist'] = 'El contenedor de destino (%s) no existe.';
$lang['copy_source_dest_dn_same'] = 'El DN de la fuente y el DN de destino son los mismos.';
$lang['copy_server_read_only'] = 'No puede realizar modificaciones cuando el servidor está en modo de sólo lectura';
$lang['copy_dest_dn_blank'] = 'Ha dejado el campo DN en blanco.';
$lang['copy_dest_already_exists'] = 'El objeto destino (%s) ya existe.';
$lang['copy_dest_container_does_not_exist'] = 'El contenedor destino (%s) no existe.';
$lang['copy_source_dest_dn_same'] = 'El DN origen y destino son iguales.';
$lang['copy_copying'] = 'Copiando ';
$lang['copy_recursive_copy_progress'] = 'El progreso de la copia recurrente';
$lang['copy_building_snapshot'] = 'Construyendo la \'foto\' del arbol para copiar... ';
$lang['copy_successful_like_to'] = 'Exito! Deseas ';
$lang['copy_view_new_entry'] = 'Ver el nuevo objeto?';
$lang['copy_failed'] = 'Error al copiar DN: ';
$lang['copy_recursive_copy_progress'] = 'Progreso de la copia recursiva';
$lang['copy_building_snapshot'] = 'Creando imagen del árbol a copiar... ';
$lang['copy_successful_like_to'] = '¡Copia correcta! ¿Le gustaría ';
$lang['copy_view_new_entry'] = 'ver el nuevo objeto';
$lang['copy_failed'] = 'Error al copiar el DN: ';
//edit.php
$lang['missing_template_file'] = 'Error: falta la plantilla, ';
$lang['using_default'] = 'Usando el archivo por defecto.';
$lang['missing_template_file'] = 'Aviso: falta el fichero de plantilla, ';
$lang['using_default'] = 'usando la plantilla por defecto.';
$lang['template'] = 'Plantilla';
$lang['must_choose_template'] = 'Debes escoger una plantilla';
$lang['invalid_template'] = '%s no es una plantilla válida';
$lang['using_template'] = 'usando plantilla';
$lang['go_to_dn'] = 'Ir a %s';
$lang['structural_object_class_cannot_remove'] = 'Esta es una clase de objeto estructural y no se puede eliminar.';
$lang['structural'] = 'estructural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copiar ';
$lang['copyf_to_new_object'] = 'a un objeto nuevo';
$lang['copyf_dest_dn'] = 'DN de destino';
$lang['copyf_dest_dn_tooltip'] = 'El DN entero de la nueva entrada a ser creada quan se copie la entrada fuente';
$lang['copyf_dest_server'] = 'Servidor de destino';
$lang['copyf_note'] = 'Nota: Copiar entre dos servidores funciona solamente si no hay violaciones del esquema.';
$lang['copyf_recursive_copy'] = 'Borrar todos los hijos recurentemente también?';
$lang['copyf_dest_dn'] = 'DN destino';
$lang['copyf_dest_dn_tooltip'] = 'El DN completo del objeto a crear';
$lang['copyf_dest_server'] = 'Servidor destino';
$lang['copyf_note'] = 'Nota: Sólo se puede copiar entre servidores diferentes cuando no hay violaciones de esquema';
$lang['copyf_recursive_copy'] = 'También copiar recursivamente todos los hijos de este objeto.';
$lang['recursive_copy'] = 'Copia recursiva';
$lang['filter'] = 'Filtro';
$lang['search_filter'] = 'Filtro de búsqueda';
$lang['filter_tooltip'] = 'Cuando se realice una copia recursiva, copiar sólo los objetos que superen el filtrado';
//create.php
$lang['create_required_attribute'] = 'Te has dejado el valor en blanco del atributo requerido <b>%s</b>.';
$lang['create_redirecting'] = 'Redirigiendo';
$lang['create_here'] = 'aquí';
$lang['create_could_not_add'] = 'No he podido agregar el objeto al servidor LDAP.';
$lang['create_required_attribute'] = 'Ha dejado el valor del atributo requerido (%s) en blanco.';
$lang['redirecting'] = 'Redirigiendo...';
$lang['here'] = 'aquí';
$lang['create_could_not_add'] = 'No se ha podido añadir el objeto al servidor LDAP.';
//create_form.php
$lang['createf_create_object'] = 'Crear Objeto';
$lang['createf_choose_temp'] = 'Escoge una plantilla';
$lang['createf_select_temp'] = 'Selecciona una plantilla para al proceso de creación';
$lang['createf_proceed'] = 'Proceder';
$lang['createf_create_object'] = 'Crear objeto';
$lang['createf_choose_temp'] = 'Escoja una plantilla';
$lang['createf_select_temp'] = 'Seleccione una plantilla para el proceso de creación';
$lang['save_as_file'] = 'Guardar como fichero';
$lang['rdn_field_blank'] = 'Ha dejado el campo RDN en blanco.';
$lang['container_does_not_exist'] = 'El contenedor que ha especificado (%s) no existe. Por favor inténtelo de nuevo.';
$lang['no_objectclasses_selected'] = 'No ha seleccionado ninguna clase para este objeto. Por favor, vuelva atrás y hágalo ahora.';
$lang['hint_structural_oclass'] = 'Nota: Debe escoger al menos una clase de objeto estructural';
//creation_template.php
$lang['ctemplate_on_server'] = 'Al servidor';
$lang['ctemplate_no_template'] = 'No se ha especificado ninguna plantilla en las variables del POST.';
$lang['ctemplate_config_handler'] = 'Tu configuración especifica un manejador de';
$lang['ctemplate_handler_does_not_exist'] = 'para esta plantilla. Pero este manejador no existe en el directorio \'templates/creation\'.';
$lang['ctemplate_on_server'] = 'En el servidor';
$lang['ctemplate_no_template'] = 'No se ha especificado ninguna plantilla en las variables POST.';
$lang['template_not_readable'] = 'Su configuración especifica un fichero "%s" para esta plantilla pero dicho fichero no se puede leer debido a que sus permisos son demasiado restrictivos.';
$lang['template_does_not_exist'] = 'Su configuración especifica un fichero "%s" para esta plantilla pero dicho fichero no existe en el directorio templates/creation.';
$lang['create_step1'] = 'Paso 1 de 2: Nombre y clase(s) de objeto';
$lang['create_step2'] = 'Paso 2 de 2: Especifique attributos y valores';
$lang['relative_distinguished_name'] = 'Nombre Distinguido Relativo (RDN)';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(ejemplo: cn=nuevaPersona)';
$lang['container'] = 'Contenedor';
// search.php
$lang['you_have_not_logged_into_server'] = 'Aún no te has autenticado en ell servidor seleccionado, no puedes hacer ninguna búsqueda.';
$lang['click_to_go_to_login_form'] = 'Hac click aquí para ir al formulario de autenticación';
$lang['unrecognized_criteria_option'] = 'Opcion de criterio desconocida: ';
$lang['if_you_want_to_add_criteria'] = 'Si quieres agregar tu propio criterio en la lista. Estate seguro de editar search.php para manejarlo. Saliendo.';
$lang['entries_found'] = 'Entrades encontradas: ';
$lang['filter_performed'] = 'Filtro realitzado: ';
$lang['search_duration'] = 'Búsqueda realitzada para phpLDAPadmin a';
$lang['you_have_not_logged_into_server'] = 'Todavía no ha conectado con el servidor, así que no puede realizar búsquedas.';
$lang['click_to_go_to_login_form'] = 'Pulse aquí para ir al formulario de conexión';
$lang['unrecognized_criteria_option'] = 'Criterio no reconocido: ';
$lang['if_you_want_to_add_criteria'] = 'Si quiere puede añadir su propios criterios a la lista. Asegúrese de editar search.php para manejarlos. Saliendo...';
$lang['entries_found'] = 'Objetos encontrados: ';
$lang['filter_performed'] = 'Filtrado realizado: ';
$lang['search_duration'] = 'Búsqueda realizada por phpLDAPadmin en';
$lang['seconds'] = 'segundos';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'El alcance en el que buscar';
$lang['scope_sub'] = 'Sub (todo el sub-arbol)';
$lang['scope_one'] = 'Uno (un nivel por debajo de la base)';
$lang['scope_base'] = 'Base (solo base dn)';
$lang['standard_ldap_search_filter'] = 'Filtro de búsqueda estándar de LDAP. Ejemplo: (&(sn=Smith)(givenname=David))';
$lang['scope_in_which_to_search'] = 'Ámbito de búsqueda';
$lang['scope_sub'] = 'Sub (subárbol completo)';
$lang['scope_one'] = 'One (un nivel bajo la base)';
$lang['scope_base'] = 'Base (sólo la base)';
$lang['standard_ldap_search_filter'] = 'Filtro de búsqueda LDAP estándar. Ejemplo: (&(sn=Picapiedra)(givenname=Pedro))';
$lang['search_filter'] = 'Filtro de búsqueda';
$lang['list_of_attrs_to_display_in_results'] = 'Una lista de atributos para mostrar los resultados (separados por comas)';
$lang['list_of_attrs_to_display_in_results'] = 'Lista de atributos para mostrar en los resultados (separados por comas)';
$lang['show_attributes'] = 'Mostrar atributos';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Buscar entradas las cuales:';
$lang['equals'] = 'sea igual';
$lang['starts with'] = 'comience con';
$lang['search_for_entries_whose'] = 'Buscar entradas en las que';
$lang['equals'] = 'sea igual a';
$lang['starts with'] = 'comience por';
$lang['contains'] = 'contenga';
$lang['ends with'] = 'termine con';
$lang['ends with'] = 'acabe en';
$lang['sounds like'] = 'suene como';
$lang['predefined_search_str'] = 'o seleccione uno de esta lista';
// server_info.php
$lang['could_not_fetch_server_info'] = 'No se ha podido sacar información LDAP del servidor';
$lang['server_info_for'] = 'Información del servidor para: ';
$lang['server_reports_following'] = 'El servidor muestra la siguiente información sobre el mismo';
$lang['nothing_to_report'] = 'Este servidor no tiene nada a mostrar.';
$lang['could_not_fetch_server_info'] = 'No se ha podido obtener ninguna información del servidor LDAP. Esto puede deberse a este <a href="http://bugs.php.net/bug.php?id=29587">error</a> es su versión de PHP o quizás su servidor LDAP posee controles de acceso que privan a los clientes de acceso al RootDSE.';
$lang['server_info_for'] = 'Información sobre el servidor: ';
$lang['server_reports_following'] = 'El servidor LDAP envía la siguiente información:';
$lang['nothing_to_report'] = 'Este servidor no tiene nada sobre lo que informar.';
//update.php
$lang['update_array_malformed'] = 'el update_array está mal formado. Esto podría ser un error del phpLDAPadmin. Por favor reportalo.';
$lang['could_not_perform_ldap_modify'] = 'No he podido ejecutar la operación ldap_modify.';
$lang['update_array_malformed'] = 'El array update_array no está bien formado. Esto puede indicar un error de phpLDAPadmin. Por favor, informe de ello.';
$lang['could_not_perform_ldap_modify'] = 'No se ha podido realizar la operación "ldap_modify".';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Quieres hacer estos cambios?';
$lang['do_you_want_to_make_these_changes'] = '¿Quiere realizar estos cambios?';
$lang['attribute'] = 'Atributo';
$lang['old_value'] = 'Valor viejo';
$lang['new_value'] = 'Valor nuevo';
$lang['old_value'] = 'Valor anterior';
$lang['new_value'] = 'Nuevo valor';
$lang['attr_deleted'] = '[atributo borrado]';
$lang['commit'] = 'Cometer';
$lang['cancel'] = 'Cancelar';
$lang['you_made_no_changes'] = 'No has hecho ningún cambio';
$lang['you_made_no_changes'] = 'No ha realizado cambios';
$lang['go_back'] = 'Volver atrás';
// welcome.php
$lang['welcome_note'] = 'Usa el menú de la izquierda para navegar';
$lang['credits'] = "Créditos";
$lang['changelog'] = "Histórico de cambios";
$lang['documentation'] = "Documentación";
$lang['welcome_note'] = 'Use el menú de la izquierda para navegar';
$lang['credits'] = 'Creditos';
$lang['changelog'] = 'Lista de cambios';
$lang['donate'] = 'Donar';
$lang['pla_logo'] = 'logotipo de phpLDAPadmin';
// Donate.php
$lang['donation_instructions'] = 'Para donar fondos al proyecto phpLDAPadmin, use uno de los botones de abajo.';
$lang['donate_amount'] = 'Donar %s';
$lang['purge_cache'] = 'Borrar cachés';
$lang['no_cache_to_purge'] = 'No hay que borrar ningún caché.';
$lang['done_purging_caches'] = 'Se han borrado %s bytes de caché.';
$lang['purge_cache_tooltip'] = 'Se han borrado todos los datos en el caché de phpLDAPadmin, incluyendo los esquemas del servidor.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nombre de archivo inseguro: ';
$lang['no_such_file'] = 'Archivo inexistente: ';
$lang['unsafe_file_name'] = 'Nombre de fichero no seguro: ';
$lang['no_such_file'] = 'No hay tal fichero: ';
//function.php
$lang['auto_update_not_setup'] = 'Has activado los auto_uid_numbers para <b>%s</b> en tu configuración,
pero no has especificado el auto_uid_number_mechanism. Por favor soluciona
este problema.';
$lang['uidpool_not_set'] = 'Has especificado el <tt>auto_uid_number_mechanism</tt> como <tt>uidpool</tt>
en tu configuración para el servidor <b>%s</b>, pero no has especificado el
audo_uid_number_uid_pool_dn. Por favor especificalo antes de proceder.';
$lang['uidpool_not_exist'] = 'Parece ser que el uidPool que has especificado en tu configuración (<tt>%s</tt>)
$lang['auto_update_not_setup'] = 'Ha activado "auto_uid_numbers" para <b>%s</b> en su configuración,
pero no ha especificado el mecanismo "auto_uid_number_mechanism". Por favor, corrija este problema';
$lang['uidpool_not_set'] = 'Ha especificado el mecanismo "auto_uid_number_mechanism" como "uidpool"
en su configuración para el servidor <b>%s</b>, pero no ha especificado
"audo_uid_number_uid_pool_dn". Por favor, verifiquelo antes de continuar.';
$lang['uidpool_not_exist'] = 'Parece ser que el "uidPool" que ha especificado en su configuración ("%s")
no existe.';
$lang['specified_uidpool'] = 'Has especificado el <tt>auto_uid_number_mechanism</tt> como <tt>search</tt> en tu
configuración para el servidor <b>%s</b>, pero no has especificado el
<tt>auto_uid_number_search_base</tt>. Por favor especificalo antes de proceder.';
$lang['auto_uid_invalid_value'] = 'Has especificado un valor no válido para el auto_uid_number_mechanism (<tt>%s</tt>)
en tu configuración. Solo <tt>uidpool</tt> y <tt>search</tt> son válidos.
Por favor soluciona este problema.';
$lang['error_auth_type_config'] = 'Error: Tienes un error en tu archivo de configuración. Los dos únicos valores aceptados para
\'auth_type\' en la sección $servers son \'config\' y \'form\'. Tu has puesto \'%s\',
el cual no está aceptado. ';
$lang['php_install_not_supports_tls'] = 'Tu instalación de PHP no soporta TLS';
$lang['could_not_start_tls'] = 'No he podido iniciar el TLS.<br />Revisa tu configuración del servidor LDAP.';
$lang['auth_type_not_valid'] = 'Tienes un error en el archivo de configuración. auth_type de %s no es válido.';
$lang['ldap_said'] = '<b>LDAP dijo</b>: %s<br /><br />';
$lang['specified_uidpool'] = 'Ha especificado "auto_uid_number_mechanism" como "search" en la
configuración del servidor <b>%s</b>, pero no ha especificado
"auto_uid_number_search_base". Por favor, especifíquelo antes de continuar.';
$lang['auto_uid_invalid_credential'] = 'Imposible conectar con <b>%s</b> con sus credenciales "auto_uid". Por favor, verifique su fichero de configuración.';
$lang['bad_auto_uid_search_base'] = 'Su configuración de phpLDAPadmin especifica "auto_uid_search_base" como no válida para el servidor %s';
$lang['auto_uid_invalid_value'] = 'Ha especificado un valor no válido para el mecanismo "auto_uid_number_mechanism" ("%s")
en su configuración. Sólo son válidos "uidpool" y "search". Por favor, corrija este problema.';
$lang['error_auth_type_config'] = 'Error: Tiene un error en su fichero de configurción. Los tres únicos valores para "auth_type"
en la sección $servers son \'session\', \'cookie\', y \'config\'. Usted ha introducido \'%s\',
que no está permitido. ';
$lang['unique_attrs_invalid_credential'] = 'Imposible conectarse a <b>%s</b> con sus credenciales unique_attr. Por favor, revise su fichero de configuración.';
$lang['unique_attr_failed'] = 'Su intento de añadir <b>%s</b> (<i>%s</i>) a <br><b>%s</b><br> NO se ha permitido. Tal atributo/valor pertenece a otro objeto.<p>Probablemente desee <a href=\'%s\'>buscar</a> tal objeto.';
$lang['php_install_not_supports_tls'] = 'Su instalación de PHP no soporta TLS.';
$lang['could_not_start_tls'] = 'No se ha podido iniciar TLS. Por favor, revise su configuración LDAP.';
$lang['could_not_bind_anon'] = 'No se ha podido conectar con el servidor de forma anónima.';
$lang['could_not_bind'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['anonymous_bind'] = 'Conexión anónima';
$lang['bad_user_name_or_password'] = 'Nombre de usuario o contraseña incorrectos. Por favor, inténtelo de nuevo.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirigiendo... Pulse aquí si no sucede nada.';
$lang['successfully_logged_in_to_server'] = 'Ha conectado con el servidor <b>%s</b>.';
$lang['could_not_set_cookie'] = 'No se ha podido guardar la cookie.';
$lang['ldap_said'] = 'LDAP ha dicho: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$lang['fbrowse'] = 'seleccionar';
$lang['delete_photo'] = 'Borrar foto';
$lang['install_not_support_blowfish'] = 'Tu instalación de PHP no soporta los tipos de encriptación blowfish.';
$lang['install_no_mash'] = 'Tu instalación de PHP no tiene la funcion mhash(). No puedo hacer hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contiene errores<br />';
$lang['ferror_number'] = '<b>Error número</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Descripción</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error número</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Descripción</b>: (no hay descripción)<br />';
$lang['ferror_submit_bug'] = 'Es un error del phpLDAPadmin? Si así es, por favor <a href=\'%s\'>dínoslo</a>.';
$lang['ferror_unrecognized_num'] = 'Número de error desconocido: ';
$lang['install_not_support_blowfish'] = 'Su instalación de PHP no soporta encriptación blowfish.';
$lang['install_not_support_md5crypt'] = 'Su instalación de PHP no soporta encriptación md5crypt.';
$lang['install_no_mash'] = 'Su instalación de PHP no posee la función mhash(). No se pueden realizar hashes SHA.';
$lang['jpeg_contains_errors'] = 'La foto jpegPhoto contiene errores<br />';
$lang['ferror_number'] = 'Error número: %s (%s)';
$lang['ferror_discription'] = 'Descripción: %s <br /><br />';
$lang['ferror_number_short'] = 'Error número: %s<br /><br />';
$lang['ferror_discription_short'] = 'Descripción: (no existe descripción disponible)<br />';
$lang['ferror_submit_bug'] = '¿Es éste un error de phpLDAPadmin? Si es así, por favor <a href=\'%s\'>informe sobre ello</a>.';
$lang['ferror_unrecognized_num'] = 'Número de error no reconocido: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Has encontrado un error menor del phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Archivo:</td>
<b>¡Ha encontrado un error no fatal en phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Fichero:</td>
<td><b>%s</b> línea <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versiones:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Servidor Web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Envía este error haciendo click aquí</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Felicidades! Has encontrado un error en el phpLDAPadmin.<br /><br />
</td></tr><tr><td>Servidor web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Por favor, informe de este error pulsando aquí</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '¡Felicidades! Ha encontrado un error en phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Nivel:</td><td><b>%s</b></td></tr>
<tr><td>Archivo:</td><td><b>%s</b></td></tr>
<tr><td>Fichero:</td><td><b>%s</b></td></tr>
<tr><td>Línea:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Versión PLA:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Verisón PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versión PHP:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Servidor Web:</td><td><b>%s</b></td></tr>
<tr><td>Servidor web:</td><td><b>%s</b></td></tr>
</table>
<br />
Por favor envía este error haciendo click abajo!';
Por favor, informe sobre este error haciendo click más abajo!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importar archivo LDIF';
$lang['select_ldif_file'] = 'Selecciona un archivo LDIF:';
$lang['select_ldif_file_proceed'] = 'Proceder &gt;&gt;';
$lang['import_ldif_file_title'] = 'Importar fichero LDIF';
$lang['select_ldif_file'] = 'Seleccione un fichero LDIF:';
$lang['dont_stop_on_errors'] = 'Ignorar errores';
//ldif_import
$lang['add_action'] = 'Añadiendo...';
$lang['delete_action'] = 'Borrando...';
$lang['rename_action'] = 'Renombrando...';
$lang['modify_action'] = 'Modificando...';
$lang['warning_no_ldif_version_found'] = 'No se ha encontrado versión. Asumiendo 1.';
$lang['valid_dn_line_required'] = 'Se requiere una línea válida.';
$lang['missing_uploaded_file'] = 'Falta el fichero enviado.';
$lang['no_ldif_file_specified.'] = 'No se ha especificado un fichero LDIF. Por favor, inténtelo de nuevo.';
$lang['ldif_file_empty'] = 'El fichero LDIF enviado está vacío.';
$lang['empty'] = 'vacío';
$lang['file'] = 'Fichero';
$lang['number_bytes'] = '%s bytes';
$lang['failed'] = 'fallado';
$lang['ldif_parse_error'] = 'Error de parseado LDIF';
$lang['ldif_could_not_add_object'] = 'No he podido añadir el objeto:';
$lang['ldif_could_not_rename_object'] = 'No he podido renombrar el objeto:';
$lang['ldif_could_not_delete_object'] = 'No he podido borrar el objeto:';
$lang['ldif_could_not_modify_object'] = 'No he podido modificar el objeto:';
$lang['ldif_line_number'] = 'Linea Número:';
$lang['ldif_line'] = 'Linea:';
$lang['failed'] = 'Error';
$lang['ldif_parse_error'] = 'Error al parsear LDIF';
$lang['ldif_could_not_add_object'] = 'No se ha podido añadir objeto:';
$lang['ldif_could_not_rename_object'] = 'No se ha podido renombrar el objeto:';
$lang['ldif_could_not_delete_object'] = 'No se ha podido borrar el objeto:';
$lang['ldif_could_not_modify_object'] = 'No se ha podido modificar el objeto:';
$lang['ldif_line_number'] = 'Número de línea:';
$lang['ldif_line'] = 'Línea:';
// Exports
$lang['export_format'] = 'Formato de exportación';
$lang['line_ends'] = 'Fin de línea';
$lang['must_choose_export_format'] = 'Debe escoger un formato de exportación.';
$lang['invalid_export_format'] = 'Formato de exportación no válido';
$lang['no_exporter_found'] = 'No se ha encontrado ningún exportador válido.';
$lang['error_performing_search'] = 'Se ha encontrado un error al realizar la búsqueda.';
$lang['showing_results_x_through_y'] = 'Mostrando los resultados de %s a %s.';
$lang['searching'] = 'Buscando...';
$lang['size_limit_exceeded'] = 'Nota: se ha excedido el tiempo de búsqueda.';
$lang['entry'] = 'Objeto';
$lang['ldif_export_for_dn'] = 'Exportación LDIF de: %s';
$lang['generated_on_date'] = 'Generado por phpLDAPadmin el %s';
$lang['total_entries'] = 'Entradas totales';
$lang['dsml_export_for_dn'] = 'Exportación DSLM de: %s';
$lang['include_system_attrs'] = 'Incluir atributos de sistema';
$lang['csv_spreadsheet'] = 'CSV (Hoja de cálculo)';
// logins
$lang['could_not_find_user'] = 'No se ha podido encontrar el usuario "%s"';
$lang['password_blank'] = 'Ha dejado la contraseña en blanco.';
$lang['login_cancelled'] = 'Conexión cancelada.';
$lang['no_one_logged_in'] = 'No hay nadie conectado con el servidor.';
$lang['could_not_logout'] = 'No se ha podido desconectar.';
$lang['unknown_auth_type'] = 'Tipo de autentificación "auth_type" desconocido: %s';
$lang['logged_out_successfully'] = 'Se ha desconectado del servidor <b>%s</b>';
$lang['authenticate_to_server'] = 'Autentificación del servidor %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Aviso: Esta conexión no está encriptada.';
$lang['not_using_https'] = 'No está usando \'https\'. El navegador web enviará su información sin encriptar.';
$lang['login_dn'] = 'Login';
$lang['user_name'] = 'Nombre de usuario';
$lang['password'] = 'Contraseña';
$lang['authenticate'] = 'Entrar';
// Entry browser
$lang['entry_chooser_title'] = 'Selector de objetos';
// Index page
$lang['need_to_configure'] = 'Debe configurar phpLDAPadmin, editando el fichero \'config.php\'. Se proporciona un fichero de configuración de ejemplo en \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'No se permiten borrados en modo de sólo lectura.';
$lang['error_calling_mass_delete'] = 'Error al llamar a "mass_delete.php". Falta la variable POST "mass_delete".';
$lang['mass_delete_not_array'] = 'La variable POST "mass_delete" no es un array.';
$lang['mass_delete_not_enabled'] = 'No está activado el borrado masivo. Por favor, actívelo en config.php antes de continuar.';
$lang['search_attrs_wrong_count'] = 'Su config.php tiene un error. El número de atributos en $search_attributes y $search_attributes_display es diferente';
$lang['mass_deleting'] = 'Efectuando borrado masivo';
$lang['mass_delete_progress'] = 'Borrado en progreso en el servidor "%s"';
$lang['malformed_mass_delete_array'] = 'Array de borrado masivo mal formado.';
$lang['no_entries_to_delete'] = 'No ha seleccionado objetos para borrar.';
$lang['deleting_dn'] = 'Borrando %s';
$lang['total_entries_failed'] = 'No han podido borrarse %s de %s objetos.';
$lang['all_entries_successful'] = 'Todos los objetos han sido borrados.';
$lang['confirm_mass_delete'] = 'Confirmar borrado masivo de %s objetos en el servidor %s';
$lang['yes_delete'] = '¡Sí, borrar!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'No puede renombrar un objeto que tenga hijos';
$lang['no_rdn_change'] = 'No ha cambiado el RDN';
$lang['invalid_rdn'] = 'Valor RDN no válido';
$lang['could_not_rename'] = 'No se ha podido renombrar el objeto';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin no soporta todavía PHP 5. Si continúa encontrará probablemente extraños errores.';
$lang['mismatched_search_attr_config'] = 'Su configuración tiene un error. $search_attributes debe tener el mismo número de atributos que $search_attributes_display.';
// Password checker
$lang['passwords_match'] = '¡Las contraseñas coinciden!';
$lang['passwords_do_not_match'] = '¡Las contraseñas no coinciden!';
$lang['password_checker_tool'] = 'Herramienta de comprobación de contraseñas';
$lang['compare'] = 'Comparar';
$lang['to'] = 'con';
// Templates
$lang['using'] = 'Usando la';
$lang['template'] = 'plantilla';
$lang['switch_to'] = 'Puede cambair a la ';
$lang['default_template'] = 'plantilla por defecto';
// template_config
$lang['user_account'] = 'Cuenta de Usuario (posixAccount)';
$lang['address_book_inet'] = 'Entrada del libro de direcciones (inetOrgPerson)';
$lang['address_book_moz'] = 'Entrada del libro de direcciones (mozillaOrgPerson)';
$lang['kolab_user'] = 'Entrada de Usuario Kolab';
$lang['organizational_unit'] = 'Unidad Organizativa';
$lang['organizational_role'] = 'Rol Organizativo';
$lang['posix_group'] = 'Grupo Posix';
$lang['samba_machine'] = 'Ordenador con Samba NT';
$lang['samba3_machine'] = 'Ordenador con Samba 3 NT';
$lang['samba_user'] = 'Usuario de Samba';
$lang['samba3_user'] = 'Usuario de Samba 3';
$lang['samba3_group'] = 'Mapeo de Grupo de Samba 3';
$lang['dns_entry'] = 'Entrada DNS';
$lang['simple_sec_object'] = 'Objeto de Seguridad Simple';
$lang['courier_mail_account'] = 'Cuenta de Correo Courier';
$lang['courier_mail_alias'] = 'Alias de Correo Courier';
$lang['ldap_alias'] = 'Alias de LDAP';
$lang['sendmail_cluster'] = 'Cluster de Sendmail';
$lang['sendmail_domain'] = 'Dominio de Sendmail';
$lang['sendmail_alias'] = 'Alias de Sendmail';
$lang['sendmail_virt_dom'] = 'Dominio Virtual de Sendmail';
$lang['sendmail_virt_users'] = 'Usuarios Virtuales de Sendmail';
$lang['sendmail_relays'] = 'Relés de Sendmail';
$lang['custom'] = 'A medida';
$lang['samba_domain_name'] = 'Mi Nombre de Dominio de Samba';
$lang['administrators'] = 'Administradores';
$lang['users'] = 'Usuarios';
$lang['guests'] = 'Invitados';
$lang['power_users'] = 'Usuarios Privilegiados';
$lang['account_ops'] = 'Administradores de Cuentas';
$lang['server_ops'] = 'Administradores de Servidor';
$lang['print_ops'] = 'Administradores de Impresión';
$lang['backup_ops'] = 'Administradores de Copias de Seguridad';
$lang['replicator'] = 'Replicador';
$lang['unable_smb_passwords'] = ' Imposible crear las contraseñas de Samba. Por favor, revise la configuración en template_config.php';
$lang['err_smb_conf'] = 'Error: Tiene un error en su configuración de Samba.';
$lang['err_smb_no_name_sid'] = 'Error: Necesita indicar el nombre y el sid de su dominio Samba.';
$lang['err_smb_no_name'] = 'Error: No se ha indicado el nombre del dominio Samba.';
$lang['err_smb_no_sid'] = 'Error: No se ha indicado el sid del dominio Samba.';
// Samba Account Template
$lang['samba_account'] = 'Cuenta Samba';
$lang['samba_account_lcase'] = 'cuenta samba';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nueva cuenta de usuario';
$lang['t_hint_customize'] = 'Nota: Para modificar esta plantilla, edite el fichero templates/creation/new_user_template.php';
$lang['t_name'] = 'Nombre';
$lang['t_first_name'] = 'Nombre propio';
$lang['t_last_name'] = 'Apellido';
$lang['t_first'] = 'nombre propio';
$lang['t_last'] = 'apellido';
$lang['t_common_name'] = 'Nombre común';
$lang['t_user_name'] = 'Nombre de Usuario';
$lang['t_password'] = 'Contraseña';
$lang['t_encryption'] = 'Encriptación';
$lang['t_login_shell'] = 'Shell de entrada';
$lang['t_home_dir'] = 'Directorio de usuario';
$lang['t_uid_number'] = 'Número UID';
$lang['t_auto_det'] = '(determinado automáticamente)';
$lang['t_group'] = 'Grupo';
$lang['t_gid_number'] = 'Número GID';
$lang['t_err_passwords'] = 'Sus contraseñas no coinciden. Por favor, vuelva atrás e inténtelo de nuevon.';
$lang['t_err_field_blank'] = 'No puede dejar en blanco el %s. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_err_field_num'] = 'Sólo puede introducir valores numéricos en el campo %s. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_err_bad_container'] = 'El contenedor que ha especificado (%s) no existe. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_confirm_account_creation'] = 'Confirmar creación de cuenta';
$lang['t_secret'] = '[secreta]';
$lang['t_create_account'] = 'Crear cuenta';
// New Address Template
$lang['t_new_address'] = 'Nueva entrada en el libro de direcciones';
$lang['t_organization'] = 'Organización';
$lang['t_address'] = 'Dirección';
$lang['t_city'] = 'Ciudad';
$lang['t_postal_code'] = 'Código postal';
$lang['t_street'] = 'Calle';
$lang['t_work_phone'] = 'Teléfono de trabajo';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'Móvil';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Contenedor';
$lang['t_err_cn_blank'] = 'No puede dejar el campo "Nombre Común" en blanco. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_confim_creation'] = 'Confirmar creación de entrada:';
$lang['t_create_address'] = 'Crear dirección';
// default template
$lang['t_check_pass'] = 'Compruebe la contraseña...';
?>

View File

@ -11,7 +11,7 @@
*
* Thank you!
*
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/fr.php,v 1.25 2004/05/29 04:07:02 uugdave Exp $
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/fr.php,v 1.29 2005/04/01 22:40:23 xrenard Exp $
*/
/*
@ -34,6 +34,14 @@ $lang['contains'] = 'contient';
$lang['predefined_search_str'] = 'Selectionner une recherche prédéfinie';
$lang['predefined_searches'] = 'Recherches prédéfinies';
$lang['no_predefined_queries'] = 'Aucune requête n\' a été définie dans config.php.';
$lang['export_results'] = 'exporter le resultat';
$lang['unrecoginzed_search_result_format'] = 'Le format du résultat de la recherche est non reconnu: %s';
$lang['format'] = 'Format';
$lang['list'] = 'liste';
$lang['table'] = 'table';
$lang['bad_search_display'] = 'Le fichier config.php contient une valeur invalide pour $default_search_display: %s. Veuillez le corriger';
$lang['page_n'] = 'Page %d';
$lang['no_results'] = 'Aucun résultat pour cette recherche.';
// Tree browser
$lang['request_new_feature'] = 'Demander une nouvelle fonctionnalité';
@ -54,20 +62,25 @@ $lang['view_server_info'] = 'Voir les informations sur le serveur';
$lang['import_from_ldif'] = 'Importer des entrées à partir d\'un fichier LDIF';
$lang['logout_of_this_server'] = 'Se déconnecter de ce serveur';
$lang['logged_in_as'] = 'Connecté en tant que: ';
$lang['this_base_dn_is_not_valid'] = 'Ceci n\'est pas un DN valide.';
$lang['this_base_dn_does_not_exist'] = 'Cette entrée n\'existe pas.';
$lang['read_only'] = 'Lecture seule';
$lang['read_only_tooltip'] = 'Cet attribut a été mis en lecture seule par l\'administrateur de phpLDAPAdmin';
$lang['could_not_determine_root'] = 'La racine de l\'arborescence Ldap n\'a pu être déterminée.';
$lang['ldap_refuses_to_give_root'] = 'Il semble que le serveur LDAP a été configuré de telle sorte que la racine ne soit pas révelée.';
$lang['please_specify_in_config'] = 'Veuillez le spécifier dans le fichier config.php';
$lang['create_new_entry_in'] = 'Créer une nouvelle entrée dans';
$lang['login_link'] = 'Login...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'L\'entrée racine n\'existe pas.';
$lang['create_it'] = 'La créer?';
// Entry display
$lang['delete_this_entry'] = 'Supprimer cette entrée';
$lang['delete_this_entry_tooltip'] = 'Il vous sera demandé confirmation';
$lang['copy_this_entry'] = 'Copier cette entrée';
$lang['copy_this_entry_tooltip'] = 'Copier cet objet vers un autre endroit, un nouveau DN ou un autre serveur';
$lang['export'] = 'Exporter';
$lang['export_lcase'] = 'exporter';
$lang['export_tooltip'] = 'Sauvegarder cet objet';
$lang['export_subtree_tooltip'] = 'Sauvegarder cet objet ainsi que tous les sous-objets';
$lang['export_subtree'] = 'Exporter l\'arborescence';
@ -84,7 +97,9 @@ $lang['hide_internal_attrs'] = 'Cacher les attributs internes';
$lang['show_internal_attrs'] = 'Montrer les attributs internes';
$lang['attr_name_tooltip'] = 'Cliquer pour voir la définition de schéma pour l\'attribut de type \'%s\'';
$lang['none'] = 'aucun';
$lang['save_changes'] = 'Sauver les modifications';
$lang['no_internal_attributes'] = 'Aucun attributs internes.';
$lang['no_attributes'] = 'Cette entrée n\a aucun attributs.';
$lang['save_changes'] = 'Sauvegarder les modifications';
$lang['add_value'] = 'ajouter une valeur';
$lang['add_value_tooltip'] = 'Ajouter une valeur supplémentaire à cet attribut';
$lang['refresh_entry'] = 'Rafraichir';
@ -99,6 +114,8 @@ $lang['no_new_binary_attrs_available'] = 'plus d\' attributs binaires disponible
$lang['binary_value'] = 'Valeur de type binaire';
$lang['add_new_binary_attr'] = 'Ajouter un nouvel attribut de type binaire';
$lang['alias_for'] = 'Alias pour';
$lang['required_for'] = 'Attribut requis par le(s) objectClass(es) %s';
$lang['required_by_entry'] = 'Cet attribut est requis par le RDN.';
$lang['download_value'] = 'Télécharger le contenu';
$lang['delete_attribute'] = 'Supprimer l\'attribut';
$lang['true'] = 'vrai';
@ -108,18 +125,17 @@ $lang['really_delete_attribute'] = 'Voulez-vous vraiment supprimer l\'attribut';
$lang['add_new_value'] = 'Ajouter une nouvelle valeur';
// Schema browser
$lang['the_following_objectclasses'] = 'Les classes d\'objets (objectClasses) suivantes sont supportés par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les opérateurs (matching rules) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont supportés par ce serveur LDAP.';
$lang['schema_retrieve_error_1']='Le serveur ne supporte pas entièrement le protocol LDAP.';
$lang['schema_retrieve_error_2']='Votre version de PHP ne permet pas d\'exécute correctement la requête.';
$lang['schema_retrieve_error_3']='Ou tout du moins, phpLDAPadmin ne sait pas comment récupérer le schéma pour votre serveur.';
$lang['schema_retrieve_error_2']='Votre version de PHP ne permet pas d\'exécuter correctement la requête.';
$lang['schema_retrieve_error_3']='phpLDAPadmin ne sait pas comment récupérer le schéma pour votre serveur.';
$lang['schema_retrieve_error_4']='Ou tout du moins, votre serveur LDAP ne procure pas cette information.';
$lang['jump_to_objectclass'] = 'Aller à une classe d\'objet';
$lang['view_schema_for_oclass'] = 'Voir la description du schema pour cette objectClass';
$lang['jump_to_attr'] = 'Aller à un attribut';
$lang['jump_to_matching_rule'] = 'Aller à une règle d\'égalité';
$lang['schema_for_server'] = 'Schema pour le serveur';
$lang['required_attrs'] = 'Attributs obligatoires';
$lang['required'] = 'requis';
$lang['optional_attrs'] = 'Attributs optionnels';
$lang['optional_binary_attrs'] = 'Attributs binaires optionnels';
$lang['OID'] = 'OID';
@ -131,6 +147,7 @@ $lang['equality']='Egalit
$lang['is_obsolete'] = 'Cette classe d\'objet est obsolete';
$lang['inherits'] = 'hérite';
$lang['inherited_from']='hérite de';
$lang['parent_to'] = 'Parent de';
$lang['jump_to_this_oclass'] = 'Aller à la définition de cette classe d\'objet';
$lang['matching_rule_oid'] = 'OID de l\'opérateur';
$lang['syntax_oid'] = 'OID de la syntaxe';
@ -140,8 +157,7 @@ $lang['character']='caract
$lang['characters']='caractères';
$lang['used_by_objectclasses']='Utilisé par les objectClasses';
$lang['used_by_attributes']='Utilisé par les attributes';
$lang['maximum_length']='Maximum Length';
$lang['attributes']='Types d\'attribut';
$lang['attribute_types']='Types d\'attribut';
$lang['syntaxes']='Syntaxes';
$lang['objectclasses']='objectClasses';
$lang['matchingrules']='Règles d\'égalité';
@ -155,7 +171,12 @@ $lang['user_modification']='Modification Utilisateur';
$lang['usage']='Usage';
$lang['maximum_length']='Longueur maximale';
$lang['could_not_retrieve_schema_from']='Impossible de récupérer le schéma de';
$lang['the_following_objectclasses'] = 'Les classes d\'objets (objectClasses) suivantes sont supportés par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les opérateurs (matching rules) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont supportés par ce serveur LDAP.';
$lang['type']='Type';
$lang['no_such_schema_item'] = 'No such schema item: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Suppression de l\'entrée \'%s\' réussie.';
@ -182,8 +203,14 @@ $lang['no_attr_specified'] = 'Aucun nom d\'attributs sp
$lang['no_dn_specified'] = 'Aucun DN specifié';
// Adding attributes
$lang['left_attr_blank'] = 'Vous avez laisser la valeur de l\'attribut vide. Veuillez s\'il vous plaît retourner à la page précédente et recommencer.';
$lang['left_attr_blank'] = 'Vous avez laissé la valeur de l\'attribut vide. Veuillez s\'il vous plaît retourner à la page précédente et recommencer.';
$lang['failed_to_add_attr'] = 'Echec lors de l\'ajout de l\'attribut.';
$lang['file_empty'] = 'Le fichier choisi soit est vide soit n\'existe pas. Veuillez recommencez.';
$lang['invalid_file'] = 'Erreur de sécurité: Le fichier uploadé peut etre dangereux.';
$lang['warning_file_uploads_disabled'] = 'Votre configuration PHP interdit l\'upload de fichiers. Veuillez vérifier votre fichier php.ini avant de continuer.';
$lang['uploaded_file_too_big'] = 'Le fichier à uploader est de trop grande taille. Veuillez vérifier votre fichier php.ini et particulièrement la directive upload_max_size setting';
$lang['uploaded_file_partial'] = 'Le fichier sélectionner a été partiellement uploadé, probablement du à une erreur réseau.';
$lang['max_file_size'] = 'Taille Maximum du fichier: %s';
// Updating values
$lang['modification_successful'] = 'Modification réussie!';
@ -201,10 +228,12 @@ $lang['add_oclass_and_attrs'] = 'Ajout d\' ObjectClass et d\'attributs';
$lang['chooser_link_tooltip'] = 'Cliquer pour choisir un entré(DN)';
$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer des mises à jour si le serveur est en lecture seule';
$lang['bad_server_id'] = 'Id de serveur invalide';
$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous plaî, vérifier votre configuration.';
$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous plaît, vérifier votre configuration.';
$lang['could_not_connect'] = 'Impossible de se connecter au serveur LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'Impossible de se connecter à "%s" sur le port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Echec lors de l\'opération ldap_mod_add.';
$lang['home'] = 'Home';
$lang['help'] = 'Aide';
$lang['bad_server_id_underline'] = 'serveur_id invalide: ';
$lang['success'] = 'Succès';
$lang['server_colon_pare'] = 'Serveur: ';
@ -230,6 +259,11 @@ $lang['bug'] = 'bogue';
$lang['warning'] = 'Avertissement';
$lang['light'] = 'lumière'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Continuer &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin ne peut de façon sur encrypter et décrypter les informations du fait que $blowfish_secret n\'est pas défini dans config.php. Vous devez définir $blowfish_secret avec une chaine de caractère de votre choix.';
$lang['jpeg_dir_not_writable'] = 'Veuillez assigner à la variable $jpeg_temp_dir le nom d\'un répertoire accessible en écriture dans le fichier config.php';
$lang['jpeg_dir_not_writable_error'] = 'Impossible d\'écrire dans le répertoire %s défini par la directive $jpeg_temp_dir. Veuillez vérifier que votre serveur web à les droits en écriture pour ce répertoire.';
$lang['jpeg_unable_toget'] = 'Impossible de trouver la ressource jpeg du serveur LDAP pour l\'attribut %s.';
$lang['jpeg_delete'] = 'Supprimer la photo';
// Add value form
@ -265,6 +299,8 @@ $lang['must_choose_template'] = 'Vous devez choisir un mod
$lang['invalid_template'] = '%s est un modèle non valide';
$lang['using_template'] = 'Utilisation du modèle';
$lang['go_to_dn'] = 'Aller à %s';
$lang['structural_object_class_cannot_remove'] = 'Ceci est une \'objectclass\' de type structurelle et ne peut etre supprimé.';
$lang['structural'] = 'structurelle';
@ -280,13 +316,16 @@ $lang['copyf_recursive_copy'] = 'Copier r
$lang['recursive_copy'] = 'Copie récursive';
$lang['filter'] = 'Filtre';
$lang['filter_tooltip'] = 'Lors d\'une copie récursive, seuls les entrées correspondant à ce filtre seront copiés';
$lang['delete_after_copy'] = 'Suppresion après copie (déplacer):';
$lang['delete_after_copy_warn'] = 'Soyez certain que votre filtre (ci-dessus) selectionnera tous les enregistrements enfants.';
//create.php
$lang['create_required_attribute'] = 'Une valeur n\'a pas été spécifiée pour l\'attribut requis %s.';
$lang['redirecting'] = 'Redirection';
$lang['here'] = 'ici';
$lang['create_could_not_add'] = 'L\'ajout de l\'objet au serveur LDAP n\'a pu être effectuée.';
$lang['rdn_field_blank'] = 'Vous avez laisser le champ du RDN vide.';
$lang['rdn_field_blank'] = 'Vous avez laissé le champ du RDN vide.';
$lang['container_does_not_exist'] = 'Le containeur que vous avez spécifié (%s) n\'existe pas. Veuillez, s\'il vous plaît recommencer.';
$lang['no_objectclasses_selected'] = 'Vous n\'avez sélectionner aucun ObjectClasses pour cet objet. Veuillez s\'il vous plaît retourner à la page précédente et le faire.';
$lang['hint_structural_oclass'] = 'Note: Vous devez choisir au moins une classe d\'objet de type structural';
@ -295,6 +334,7 @@ $lang['hint_structural_oclass'] = 'Note: Vous devez choisir au moins une classe
$lang['createf_create_object'] = 'Creation d\'un objet';
$lang['createf_choose_temp'] = 'Choix d\'un modèle';
$lang['createf_select_temp'] = 'Selectionner un modèle pour la procédure de création';
$lang['save_as_file'] = 'Sauvegarder en tant que fichier';
$lang['createf_proceed'] = 'Continuer';
$lang['relative_distinguished_name'] = 'Relative Distinguished Name';
$lang['rdn'] = 'RDN';
@ -306,6 +346,8 @@ $lang['alias_for'] = 'Alias pour %s';
//creation_template.php
$lang['ctemplate_on_server'] = 'Sur le serveur';
$lang['ctemplate_no_template'] = 'Aucun modèle spécifié dans les variables POST.';
$lang['template_not_readable'] = 'Votre fichier de configuration définit un gestionnaire de "%s" pour ce \'template\' mais ce fichier ne possède pas les droits de lecture.';
$lang['template_does_not_exist'] = 'Votre fichier de configuration définit un gestionnaire de "%s" pour ce \'template\' mais le gestionnaire n\'existe pas dans le répertoire templates/creation.';
$lang['ctemplate_config_handler'] = 'Votre configuration scécifie un gestionnaire de';
$lang['ctemplate_handler_does_not_exist'] = 'pour ce modèle. Cependant, ce gestionnaire n\'existe pas dans le répertoire \'templates/creation\'.';
$lang['create_step1'] = 'Etape 1 de 2: Nom et classes d\'objet';
@ -358,12 +400,23 @@ $lang['commit'] = 'Valider';
$lang['cancel'] = 'Annuler';
$lang['you_made_no_changes'] = 'Aucun changement n\'a été effectué';
$lang['go_back'] = 'Retour';
$lang['unable_create_samba_pass'] = 'Impossible de créer le mot de passe samba. Veuillez vérifiez votre configuration dans le fichier template_config.php';
// welcome.php
$lang['welcome_note'] = 'Utilisez le menu de gauche pour la navigation';
$lang['credits'] = 'Crédits';
$lang['changelog'] = 'ChangeLog';
$lang['donate'] = 'Donation';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'Pour effectuer une doantion au projet phpLDAadmin, veuillez utilisez un des boutons PayPal ci-dessous.';
$lang['donate_amount'] = 'Donner %s';
$lang['purge_cache'] = 'Vider la cache';
$lang['no_cache_to_purge'] = 'Aucune cache à vider.';
$lang['done_purging_caches'] = 'Suppression de %s octets de la cache.';
$lang['purge_cache_tooltip'] = 'Supprimer toutes les données en cache dans phpLDAPadmin, y compris les schemas serveur.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom de fichier non sûr: ';
@ -521,6 +574,70 @@ $lang['non_leaf_nodes_cannot_be_renamed'] = 'Vous ne pouvez pas renommer une ent
$lang['no_rdn_change'] = 'Le RDN n\'a pas été modifié';
$lang['invalid_rdn'] = 'Valeur invalide du RDN';
$lang['could_not_rename'] = 'Impossible de renommer l\'entrée';
$lang['csv_spreadsheet'] = 'CSV (tableur)';
// Samba Account Template
$lang['samba_account'] = 'Samba Account';
$lang['samba_account_lcase'] = 'samba account';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nouveau compte utilisateur';
$lang['t_hint_customize'] = 'Astuce: Pour personnaliser ce \'template\', éditez le fichier templates/creation/new_user_template.php';
$lang['t_name'] = 'Nom';
$lang['t_first_name'] = 'Prénom';
$lang['t_last_name'] = 'Nom de famille';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_common_name'] = 'Common name';
$lang['t_user_name'] = 'Nom d\'utilisateur';
$lang['t_password'] = 'Mot de passe';
$lang['t_encryption'] = 'Encryption';
$lang['t_login_shell'] = 'Login Shell';
$lang['t_home_dir'] = 'Home Directory';
$lang['t_uid_number'] = 'UID Number';
$lang['t_auto_det'] = '(déterminé automatiquement)';
$lang['t_group'] = 'Groupe';
$lang['t_gid_number'] = 'GID Number';
$lang['t_err_passwords'] = 'Les mots de passe ne correspondent pas. Veuillez revenir en arrière et recommencez.';
$lang['t_err_field_blank'] = 'Le champ %s ne peut etre vide. Veuillez revenir en arrière et recommencez.';
$lang['t_err_field_num'] = 'Seuls des valeurs numériques sont valides pour le champ %s. Veuillez revenir en arrière et recommencez.';
$lang['t_err_bad_container'] = 'Le conténeur spécifié (%s) n\'existe pas. Veuillez revenir en arrière et recommencez.';
$lang['t_confirm_account_creation'] = 'Confirmation de la création du compte';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'Créer le compte';
// New Address Template
$lang['t_new_address'] = 'New Address Book Entry';
$lang['t_organization'] = 'Organisation';
$lang['t_address'] = 'Adresse';
$lang['t_city'] = 'Ville';
$lang['t_postal_code'] = 'Code postal';
$lang['t_street'] = 'rue';
$lang['t_work_phone'] = 'Work phone';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'Mobile';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Conténeur';
$lang['t_err_cn_blank'] = 'Le champ \'Common Name\' ne peut etre vide. Veuillez revenir en arrière et recommencer.';
$lang['t_confim_creation'] = 'Confirmation de la création de l\'entrée:';
$lang['t_create_address'] = 'Create Address';
// compare form
$lang['compare'] = 'Comparer';
$lang['comparing'] = 'Comparaison des DNs suivant:';
$lang['compare_dn'] = 'Comparer un autre DN avec';
$lang['with'] = 'avec ';
$lang['compf_source_dn'] = 'DN Source';
$lang['compf_dn_tooltip'] = 'Comparer ce DN avec un autre';
$lang['switch_entry'] = 'Intervertir les entrées';
$lang['no_value'] = 'Aucune Valeur';
$lang['compare_with'] = 'Comparer avec une autre entrée';
$lang['need_oclass'] = 'You need one of the following ObjectClass(es) to add this attribute %s.';
// Time out page
$lang['session_timed_out_1'] = 'Votre session a expiré après';
$lang['session_timed_out_2'] = 'min. d\'inactivité. Vous avez été automatiquement déconnecté.';
$lang['log_back_in'] = 'Pour vous connecter à nouveau, cliquez sur le lien suivant:';
$lang['session_timed_out_tree'] = '(Expiration de session. Déconnexion automatique.)';
?>

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/ja.php,v 1.1 2004/12/09 14:02:37 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/ja.php,v 1.5 2005/06/23 14:38:41 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@ -31,13 +31,12 @@ $lang['search_for_entries_whose'] = 'どのエントリを検索';
$lang['base_dn'] = 'ベース DN';
$lang['search_scope'] = '検索スコープ';
$lang['show_attributes'] = '属性表示';
$lang['attributes'] = '属性';
$lang['Search'] = '検索';
$lang['predefined_search_str'] = '事前定義された検索を選択';
$lang['predefined_searches'] = '事前定義検索';
$lang['no_predefined_queries'] = 'config.php で定義された照会はありません。';
$lang['export_results'] = '結果エクスポート';
$lang['unrecoginzed_search_result_format'] = 'Unrecognized search result format: %s';
$lang['unrecoginzed_search_result_format'] = '認識できない書式の検索結果です: %s';
$lang['format'] = '書式';
$lang['list'] = '一覧';
$lang['table'] = 'テーブル';
@ -56,14 +55,16 @@ $lang['import'] = 'インポート';
$lang['refresh'] = '再描画';
$lang['logout'] = 'ログアウト';
$lang['create_new'] = 'ここに新規エントリを追加';
$lang['view_schema_for'] = 'View schema for';
$lang['refresh_expanded_containers'] = 'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'Create a new entry on';
$lang['view_schema_for'] = 'スキーマを閲覧 対象:';
$lang['refresh_expanded_containers'] = '展開済みの内容を再描画 対象:';
$lang['create_new_entry_on'] = 'エントリを新規作成 対象:';
$lang['new'] = '新規';
$lang['view_server_info'] = 'サーバーが提供する情報を閲覧';
$lang['import_from_ldif'] = 'LDIF ファイルからのインポートエントリ';
$lang['logout_of_this_server'] = 'このサーバーのログアウト';
$lang['logged_in_as'] = 'Logged in as: ';
$lang['logged_in_as'] = '次のコンテナでログイン: ';
$lang['this_base_dn_is_not_valid'] = 'これは有効な DN ではありません。';
$lang['this_base_dn_does_not_exist'] = 'このエントリは存在しません。';
$lang['read_only'] = '読み込み専用';
$lang['read_only_tooltip'] = 'この属性は phpLDAP 管理者により、読み込み専用で設定されています。';
$lang['could_not_determine_root'] = 'LDAP ツリーのルートが決定できません。';
@ -73,7 +74,7 @@ $lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'ログイン...';
$lang['login'] = 'ログイン';
$lang['base_entry_does_not_exist'] = 'ベースエントリが存在しません。';
$lang['create_it'] = 'Create it?';
$lang['create_it'] = '作成しますか?';
// Entry display
$lang['delete_this_entry'] = 'このエントリを削除';
@ -92,46 +93,44 @@ $lang['add'] = '追加';
$lang['view'] = 'View';
$lang['view_one_child'] = 'ひとつの子を閲覧';
$lang['view_children'] = '%s 個の子を閲覧';
$lang['add_new_attribute'] = '新規属性追加';
$lang['add_new_objectclass'] = '新規 ObjectClass を追加';
$lang['add_new_attribute'] = '新規属性追加';
$lang['add_new_objectclass'] = '新規 ObjectClass を追加する';
$lang['hide_internal_attrs'] = '内部属性を隠す';
$lang['show_internal_attrs'] = '内部属性を表示';
$lang['attr_name_tooltip'] = 'Click to view the schema defintion for attribute type \'%s\'';
$lang['attr_name_tooltip'] = '属性タイプ \'%s\' のためのスキーマ定義を見るためにクリックしてください。';
$lang['none'] = 'なし';
$lang['no_internal_attributes'] = '内部属性がありません';
$lang['no_attributes'] = 'このエントリは属性を持っていません';
$lang['save_changes'] = '変更を保存';
$lang['add_value'] = '値追加';
$lang['add_value_tooltip'] = 'Add an additional value to attribute \'%s\'';
$lang['add_value_tooltip'] = '追加値を属性「%s」に追加する';
$lang['refresh_entry'] = '再描画';
$lang['refresh_this_entry'] = 'このエントリを再描画';
$lang['refresh_this_entry'] = 'このエントリを再描画する';
$lang['delete_hint'] = 'ヒント: 属性を削除するにはテキストフィールドを空にして保存をクリックします。';
$lang['attr_schema_hint'] = 'ヒント: 属性のスキーマを閲覧するには、属性名をクリックします。';
$lang['attrs_modified'] = 'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'Viewing entry in read-only mode.';
$lang['no_new_attrs_available'] = 'no new attributes available for this entry';
$lang['no_new_binary_attrs_available'] = 'no new binary attributes available for this entry';
$lang['attrs_modified'] = 'いくつかの属性 (%s) は修正され、下記でハイライトされました。';
$lang['attr_modified'] = 'ひとつの属性 (%s) は修正され、下記でハイライトされました。';
$lang['viewing_read_only'] = '読み込みモードでエントリを閲覧中。';
$lang['no_new_attrs_available'] = 'このエントリに利用可能な新規属性はありません。';
$lang['no_new_binary_attrs_available'] = 'このエントリに利用可能な新規バイナリ属性はありません。';
$lang['binary_value'] = 'バイナリ値';
$lang['add_new_binary_attr'] = '新規バイナリ属性を追加';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['alias_for'] = '注: \'%s\' は \'%s\' のエイリアスです。';
$lang['required_for'] = 'objectClass %s の必須属性';
$lang['required_by_entry'] = 'この属性は RDN に必要です。';
$lang['download_value'] = 'ダウンロード値';
$lang['delete_attribute'] = '属性削除';
$lang['true'] = 'true';
$lang['false'] = 'false';
$lang['none_remove_value'] = 'none, remove value';
$lang['none_remove_value'] = 'いいえ、値を削除します';
$lang['really_delete_attribute'] = '本当に属性を削除';
$lang['add_new_value'] = '新規値追加';
// Schema browser
$lang['the_following_objectclasses'] = '次の objectClasses はこの LDAP サーバーでサポートされています。';
$lang['the_following_attributes'] = '次の属性タイプはこの LDAP サーバーでサポートされています。';
$lang['the_following_matching'] = '次の一致ルールはこの LDAP サーバーでサポートされています。';
$lang['the_following_syntaxes'] = '次の文法はこの LDAP サーバーでサポートされています。';
$lang['schema_retrieve_error_1']='このサーバーはすべての LDAP プロトコルをサポートしていません。';
$lang['schema_retrieve_error_2']='この PHP のバージョンは正確に照会を行えません。';
$lang['schema_retrieve_error_3']='あるいは、phpLDAPadmin は、あなたのサーバーからスキーマを取得する方法を知りません。';
$lang['schema_retrieve_error_4']='Or lastly, LDAP サーバーはこの情報を提供していません。';
$lang['jump_to_objectclass'] = 'objectClass に移動';
$lang['view_schema_for_oclass'] = 'この objectClass のスキーマ説明を閲覧';
$lang['jump_to_attr'] = '属性タイプに移動';
@ -153,22 +152,22 @@ $lang['inherited_from'] = '派生元';
$lang['parent_to'] = '派生先';
$lang['jump_to_this_oclass'] = 'この objectClass 定義に移動';
$lang['matching_rule_oid'] = '適用ルール OID';
$lang['syntax_oid'] = 'Syntax OID';
$lang['syntax_oid'] = '文法 OID';
$lang['not_applicable'] = '適用可能ではありません';
$lang['not_specified'] = '指定されていません';
$lang['character']='character';
$lang['characters']='characters';
$lang['used_by_objectclasses']='Used by objectClasses';
$lang['used_by_attributes']='Used by Attributes';
$lang['used_by_objectclasses']='objectClass を使する';
$lang['used_by_attributes']='属性で使する';
$lang['maximum_length']='最大長';
$lang['attribute_types']='属性タイプ';
$lang['syntaxes']='Syntaxes';
$lang['syntaxes']='文法一覧';
$lang['matchingrules']='一致ルール';
$lang['oid']='OID';
$lang['obsolete']='旧式';
$lang['ordering']='Ordering';
$lang['substring_rule']='副文字列ルール';
$lang['single_valued']='Single Valued';
$lang['single_valued']='単一の値';
$lang['collective']='集合';
$lang['user_modification']='ユーザー修正';
$lang['usage']='使用法';
@ -182,16 +181,16 @@ $lang['you_must_specify_a_dn'] = 'DN を指定しなければなりません';
$lang['could_not_delete_entry'] = 'エントリを削除できませんでした: %s';
$lang['no_such_entry'] = 'エントリがありません: %s';
$lang['delete_dn'] = '%s 削除';
$lang['permanently_delete_children'] = 'Permanently delete all children also?';
$lang['permanently_delete_children'] = 'さらに永久にすべての子を削除しますか?';
$lang['entry_is_root_sub_tree'] = 'このエントリは %s エントリを含むサブツリーのルートです。';
$lang['view_entries'] = 'エントリ閲覧';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin can recursively delete this entry and all %s of its children. See below for a list of all the entries that this action will delete. Do you want to do this?';
$lang['confirm_recursive_delete_note'] = 'Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin は再帰的に、このエントリとその子のすべての %s を削除できます。このアクションが削除するすべてのエントリの一覧は、下記を参照してください。本当に本当に削除しますか?';
$lang['confirm_recursive_delete_note'] = '注: これは潜在的に非常に危険です。また、自己責任でこれをします。このオペレーションは取り消せません。エイリアス・referralとその他の問題を考察を持ってください。';
$lang['delete_all_x_objects'] = '%s オブジェクトをすべて削除';
$lang['recursive_delete_progress'] = '再帰削除進行';
$lang['entry_and_sub_tree_deleted_successfully'] = 'エントリ %s とサブツリーの削除に成功しました。';
$lang['failed_to_delete_entry'] = 'エントリ %s のふぁ駆除に失敗しました';
$lang['list_of_entries_to_be_deleted'] = 'List of entries to be deleted:';
$lang['failed_to_delete_entry'] = 'エントリ %s の除に失敗しました';
$lang['list_of_entries_to_be_deleted'] = 'エントリの一覧を削除しました:';
$lang['sure_permanent_delete_object']='本当にこのオブジェクトを永続的に削除しますか?';
$lang['dn'] = 'DN';
@ -201,13 +200,13 @@ $lang['no_attr_specified'] = '属性名が指定されていません。';
$lang['no_dn_specified'] = 'DN が指定されていません';
// Adding attributes
$lang['left_attr_blank'] = 'You left the attribute value blank. Please go back and try again.';
$lang['left_attr_blank'] = '属性値が空です。戻ってからもう一度試してください。';
$lang['failed_to_add_attr'] = '属性の追加に失敗しました。';
$lang['file_empty'] = 'The file you chose is either empty or does not exist. Please go back and try again.';
$lang['invalid_file'] = 'Security error: The file being uploaded may be malicious.';
$lang['warning_file_uploads_disabled'] = 'Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.';
$lang['uploaded_file_too_big'] = 'アップロードされたファイルが大きすぎます。php.ini の upload_max_size 設定を調べてください。';
$lang['uploaded_file_partial'] = '選択したファイルは、部分的なアップロードでした。The file you selected was only partially uploaded, likley due to a network error.';
$lang['file_empty'] = 'あなたの選んだファイルは空か存在しないかのいずれかです。戻ってからもう一度試してください。';
$lang['invalid_file'] = 'セキュリティエラー: アップロードされたファイルは悪意のあるものかもしれません。';
$lang['warning_file_uploads_disabled'] = 'PHP の設定でファイルのアップロードが無効です。続行する前に、php.ini を確認してください。';
$lang['uploaded_file_too_big'] = 'アップロードされたファイルが大きすぎます。php.ini の upload_max_size 設定を確認してください。';
$lang['uploaded_file_partial'] = '選択したファイルは、部分的なアップロードでした。likley due to a network error.';
$lang['max_file_size'] = '最大ファイルサイズ: %s';
// Updating values
@ -217,32 +216,29 @@ $lang['change_password_new_login'] = 'パスワードを変更したので、今
// Adding objectClass form
$lang['new_required_attrs'] = '新規必須属性';
$lang['requires_to_add'] = 'This action requires you to add';
$lang['new_attributes'] = '新貴族性';
$lang['new_attributes'] = '新規属性';
$lang['new_required_attrs_instructions'] = 'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'that this objectClass requires. You can do so in this form.';
$lang['that_this_oclass_requires'] = 'それは objectClass に必要です。このフォームでそうすることができます。';
$lang['add_oclass_and_attrs'] = 'ObjectClass と属性を追加';
$lang['objectclasses'] = 'ObjectClasses';
$lang['objectclasses'] = 'ObjectClass 一覧';
// General
$lang['chooser_link_tooltip'] = 'Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'You cannot perform updates while server is in read-only mode';
$lang['no_updates_in_read_only_mode'] = 'サーバーは読み込みモードなので、更新を実行できません。';
$lang['bad_server_id'] = '間違ったサーバー ID';
$lang['not_enough_login_info'] = 'サーバーにログインする情報が不足しています。設定を確認してください。';
$lang['could_not_connect'] = 'LDAP サーバーに接続できませんでした。';
$lang['could_not_connect_to_host_on_port'] = '"%s" のポート "%s" に接続できませんでした';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$lang['could_not_perform_ldap_mod_add'] = 'ldap_mod_add 操作を実行できませんでした。';
$lang['home'] = 'ホーム';
$lang['help'] = 'ヘルプ';
$lang['success'] = '成功';
$lang['server_colon_pare'] = 'サーバー: ';
$lang['look_in'] = 'Looking in: ';
$lang['missing_server_id_in_query_string'] = '照会文字列にサーバー ID が指定されていません!';
$lang['missing_dn_in_query_string'] = '照会文字列に DN が指定されていません!';
$lang['back_up_p'] = 'バックアップ...';
$lang['no_entries'] = 'エントリがありません';
$lang['not_logged_in'] = 'Not logged in';
$lang['could_not_det_base_dn'] = 'Could not determine base DN';
$lang['please_report_this_as_a_bug']='この不都合を報告してください。';
$lang['could_not_det_base_dn'] = 'ベース DN を決定することが出来ませんでした';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='はい';
$lang['no']='いいえ';
@ -251,13 +247,16 @@ $lang['delete']='削除';
$lang['back']='戻る';
$lang['object']='オブジェクト';
$lang['delete_all']='すべて削除';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'ヒント';
$lang['bug'] = '不都合';
$lang['warning'] = '警告';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = '進む &gt;&gt;';
$lang['no_blowfish_secret'] = '$blowfish_secret が config.php で設定されていないので、phpLDAPadmin は安全に機密情報を暗号化と解読をすることができません。config.php を編集し、秘密文字列を $blowfish_secret に設定するする必要があります。';
$lang['jpeg_dir_not_writable'] = 'phpLDAPadmin の設定ファイル config.php で、書き込み可能なディレクトリを $jpeg_temp_dir に設定してください。';
$lang['jpeg_dir_not_writable_error'] = '$jpeg_temp_dir で指定したディレクトリ %s に書き込みできません。ウェブサーバーがそこにファイルを書き込みできることを確認してください。';
$lang['jpeg_unable_toget'] = '属性 %s 用に LDAP サーバーから jpeg データを取得できませんでした。';
$lang['jpeg_delete'] = '写真を削除';
// Add value form
$lang['add_new'] = '新規追加';
@ -265,20 +264,20 @@ $lang['value_to'] = 'value to';
$lang['distinguished_name'] = '関連名';
$lang['current_list_of'] = 'Current list of';
$lang['values_for_attribute'] = '属性の値';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Note: you may be required to enter new attributes that this objectClass requires';
$lang['syntax'] = 'Syntax';
$lang['inappropriate_matching_note'] = '注: LDAP サーバーでこの属性の EQUALITY ルールをセットアップしていなかった場合、"inappropriate matching" エラーを取得するでしょう。';
$lang['enter_value_to_add'] = '追加したい値を入力する:';
$lang['new_required_attrs_note'] = '注: この objectClass が要求する新しい属性を入力することが要求かもしれません';
$lang['syntax'] = '文法';
//copy.php
$lang['copy_server_read_only'] = 'You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'You left the destination DN blank.';
$lang['copy_server_read_only'] = 'サーバーが読み込みモードなので、更新を行うことができません。';
$lang['copy_dest_dn_blank'] = '対象 DN がブランクで残されました。';
$lang['copy_dest_already_exists'] = '対象エントリ (%s) は既に存在します。';
$lang['copy_dest_container_does_not_exist'] = '対象先コンテナー (%s) は存在しません。';
$lang['copy_source_dest_dn_same'] = '対象元と対象先 DN が同じです。';
$lang['copy_copying'] = 'Copying ';
$lang['copy_recursive_copy_progress'] = '再帰コピー進行';
$lang['copy_building_snapshot'] = 'Building snapshot of tree to copy... ';
$lang['copy_building_snapshot'] = 'コピーするツリーのスナップショットを構築中... ';
$lang['copy_successful_like_to'] = 'コピー成功! Would you like to ';
$lang['copy_view_new_entry'] = '新規エントリ閲覧';
$lang['copy_failed'] = 'DN のコピーに失敗しました: ';
@ -291,8 +290,8 @@ $lang['must_choose_template'] = 'テンプレートを選ばなければなり
$lang['invalid_template'] = '%s は無効なテンプレート';
$lang['using_template'] = '使用中のテンプレート';
$lang['go_to_dn'] = '%s に移動';
+$lang['structural_object_class_cannot_remove'] = 'これは構造 ObjectClass なので削除できませんでした。';
+$lang['structural'] = '構造';
$lang['structural_object_class_cannot_remove'] = 'これは構造 ObjectClass なので削除できませんでした。';
$lang['structural'] = '構造';
//copy_form.php
$lang['copyf_title_copy'] = 'コピー ';
@ -300,16 +299,17 @@ $lang['copyf_to_new_object'] = 'to a new object';
$lang['copyf_dest_dn'] = '対象 DN';
$lang['copyf_dest_dn_tooltip'] = 'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = '対象サーバー';
$lang['copyf_note'] = 'Hint: Copying between different servers only works if there are no schema violations';
$lang['copyf_note'] = 'Hint: スキーマ違反がなければ、異なるサーバー間のコピー処理のみ行います。';
$lang['copyf_recursive_copy'] = '同様にこのオブジェクトのすべての子を再帰コピーします。';
$lang['recursive_copy'] = '再帰コピー';
$lang['filter'] = 'Filter';
$lang['search_filter'] = '検索フィルター';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this filter';
$lang['filter'] = 'フィルター';
$lang['filter_tooltip'] = '再帰的なコピーを行なう場合、このフィルタと一致するエントリのみコピーしてください。';
$lang['delete_after_copy'] = 'コピーの後に削除 (移動):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
$lang['redirecting'] = 'Redirecting...';
$lang['redirecting'] = 'リダイレクト中...';
$lang['here'] = 'ここ';
$lang['create_could_not_add'] = 'LDAP サーバーにオブジェクトを追加できませんでした。';
@ -318,10 +318,10 @@ $lang['createf_create_object'] = 'オブジェクト作成';
$lang['createf_choose_temp'] = 'テンプレート選択';
$lang['createf_select_temp'] = '作成処理のテンプレートを選択';
$lang['save_as_file'] = 'ファイルに保存';
$lang['rdn_field_blank'] = 'You left the RDN field blank.';
$lang['rdn_field_blank'] = 'RDN フィールドが空です。';
$lang['container_does_not_exist'] = '指定したコンテナー(%s)が存在しません。もう一度行ってください。';
$lang['no_objectclasses_selected'] = 'You did not select any ObjectClasses for this object. Please go back and do so.';
$lang['hint_structural_oclass'] = 'ヒント: You must choose exactly one structural objectClass (shown in bold above)';
$lang['no_objectclasses_selected'] = 'このオブジェクトのためのいくつかの ObjectClass を選択しませんでした。戻ってそのように実行してください。';
$lang['hint_structural_oclass'] = 'ヒント: ひとつの構造 objectClass を選択しなければなりません (上で強調表示されています)';
//creation_template.php
$lang['ctemplate_on_server'] = 'サーバー';
@ -353,10 +353,8 @@ $lang['scope_base'] = 'ベース (ベース dn のみ)';
$lang['standard_ldap_search_filter'] = '標準 LDAP 検索フィルター。例: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = '検索フィルター';
$lang['list_of_attrs_to_display_in_results'] = '結果から属性の一覧を表示 (カンマ区切り)';
$lang['show_attributes'] = '属性表示';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'どのエントリ検索するか:';
$lang['equals'] = 'に一致';
$lang['starts with'] = 'で始まる';
$lang['contains'] = 'を含む';
@ -365,16 +363,16 @@ $lang['sounds like'] = 'に近い';
// server_info.php
$lang['could_not_fetch_server_info'] = 'サーバーから LDAP 情報を取得できませんでした。これはあなたの PHP バージョンの<a href="http://bugs.php.net/bug.php?id=29587">不都合</a>によるかもしれません。あるいは、あなたの LDAP サーバーは、LDAP クライアントが RootDSE にアクセスするのを防ぐアクセス制御指定をしています。';
$lang['server_info_for'] = 'Server info for: ';
$lang['server_reports_following'] = 'Server reports the following information about itself';
$lang['server_info_for'] = 'サーバー情報: ';
$lang['server_reports_following'] = 'サーバーは自分自身で次の情報を報告しました。';
$lang['nothing_to_report'] = 'このサーバーはなにも報告するものはありません。';
//update.php
$lang['update_array_malformed'] = 'update_array がオカシイです。This might be a phpLDAPadmin bug. Please report it.';
$lang['update_array_malformed'] = 'update_array がおかしいです。これは phpLDAPadmin のバグかもしれませんので、報告してください。';
$lang['could_not_perform_ldap_modify'] = 'ldap_modify 操作が実行できませんでした。';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Do you want to make these changes?';
$lang['do_you_want_to_make_these_changes'] = '変更をしたいですか?';
$lang['attribute'] = '属性';
$lang['old_value'] = '古い値';
$lang['new_value'] = '新しい値';
@ -382,20 +380,19 @@ $lang['attr_deleted'] = '[属性を削除しました]';
$lang['commit'] = 'コミット';
$lang['cancel'] = '取り消し';
$lang['you_made_no_changes'] = '変更はありません';
$lang['go_back'] = 'Go back';
$lang['go_back'] = '戻る';
$lang['unable_create_samba_pass'] = 'samba パスワードを作成できませんでした。template_conf.php の設定を確認してください。';
// welcome.php
$lang['welcome_note'] = '左へのメニューを使用して捜査します';
$lang['welcome_note'] = '左へのメニューを使用して操作します';
$lang['credits'] = 'クレジット';
$lang['changelog'] = '変更履歴';
$lang['donate'] = '寄';
$lang['donate'] = '寄';
$lang['pla_logo'] = 'phpLDAPadmin ロゴ';
// Donate.php
$lang['donation_instructions'] = 'phpLDAPadmin プロジェクトに資金を寄贈するためには、PayPal ボタンのうちの 1 つを下に使用してください。';
$lang['donate_amount'] = '%s を寄贈';
$lang['wish_list_option'] = 'Or perhaps you would prefer to purchase an gift for a phpLDAPadmin developer.';
$lang['wish_list'] = 'Dave\'s phpLDAPadmin のゐっ主リストを閲覧';
$lang['purge_cache'] = 'キャッシュ破棄';
$lang['no_cache_to_purge'] = '破棄するキャッシュはありませんでした。';
@ -407,44 +404,44 @@ $lang['unsafe_file_name'] = '安全でないファイル名: ';
$lang['no_such_file'] = 'ファイルがありません: ';
//function.php
$lang['auto_update_not_setup'] = 'You have enabled auto_uid_numbers for <b>%s</b> in your configuration,
but you have not specified the auto_uid_number_mechanism. Please correct
this problem.';
$lang['uidpool_not_set'] = 'You specified the "auto_uid_number_mechanism" as "uidpool"
in your configuration for server <b>%s</b>, but you did not specify the
audo_uid_number_uid_pool_dn. Please specify it before proceeding.';
$lang['auto_update_not_setup'] = '設定ファイルの <b>%s</b>You auto_uid_numbers が有効ですが、
auto_uid_number_mechanism が指定されていません。
この問題を修正してください。.';
$lang['uidpool_not_set'] = 'サーバー <b>%s</b> の設定で、"auto_uid_number_mechanism" "uidpool" に指定していますが、
audo_uid_number_uid_pool_dn を指定していません。
続行する前にそれを指定してください';
$lang['uidpool_not_exist'] = 'It appears that the uidPool you specified in your configuration ("%s")
does not exist.';
$lang['specified_uidpool'] = 'You specified the "auto_uid_number_mechanism" as "search" in your
configuration for server <b>%s</b>, but you did not specify the
"auto_uid_number_search_base". Please specify it before proceeding.';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.';
$lang['bad_auto_uid_search_base'] = 'Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s';
$lang['auto_uid_invalid_value'] = 'You specified an invalid value for auto_uid_number_mechanism ("%s")
in your configration. Only "uidpool" and "search" are valid.
Please correct this problem.';
$lang['error_auth_type_config'] = '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. ';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. Please check your configuration file.';
$lang['unique_attr_failed'] = '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.';
$lang['specified_uidpool'] = 'サーバー <b>%s</b> の設定で「search」に「auto_uid_number_mechanism」を指定しました。
しかし「auto_uid_number_search_base」が指定されていません。
これを実行前に指定してください。';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. 設定ファイルを確認してください。';
$lang['bad_auto_uid_search_base'] = 'phpLDAPadmin の設定で、サーバー %s に無効な auto_uid_search_base が指定されました';
$lang['auto_uid_invalid_value'] = '設定ファイルの auto_uid_number_mechanism の指定が間違った値("%s")です。
"uidpool" "search" のみ有効です。
この問題を修正してください。';
$lang['error_auth_type_config'] = 'エラー: 設定ファイルのにエラーがあります。$servers セクションの auth_type
「session」「cookie」「config」のみっつの値のみ許可されていますが、
許可されない「%s」が入力されました。';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. 設定ファイルを確認してください。';
$lang['unique_attr_failed'] = '<b>%s</b> (<i>%s</i>) の <b>%s</b> への追加の試みは許可<b>されていません</b>。<br />その属性/値は別のエントリが所有しています。<p>そのエントリを<a href=\'%s\'>検索</a>などするしょう。';
$lang['php_install_not_supports_tls'] = 'インストールされている PHP は TLS をサポートしていません。';
$lang['could_not_start_tls'] = 'TLS を開始できません。LDAP サーバーの設定を確認してください。';
$lang['could_not_bind_anon'] = 'サーバーに匿名接続できませんでした。';
$lang['could_not_bind'] = 'LDAP サーバーに接続できませんでした。';
$lang['anonymous_bind'] = '匿名接続';
$lang['bad_user_name_or_password'] = 'ユーザー名かパスワードがおかしいです。もう一度行ってください。';
$lang['redirecting_click_if_nothing_happens'] = 'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'サーバー <b>%s</b>へのログインに成功しました';
$lang['redirecting_click_if_nothing_happens'] = 'リダイレクト中... もし何も起こらなかったらここをクリックしてください。';
$lang['successfully_logged_in_to_server'] = 'サーバー <b>%s</b> へのログインに成功しました';
$lang['could_not_set_cookie'] = 'cookie を設定できませんでした。';
$lang['ldap_said'] = 'LDAP 回答: %s';
$lang['ldap_said'] = 'LDAP 回答: %s';
$lang['ferror_error'] = 'エラー';
$lang['fbrowse'] = '閲覧';
$lang['delete_photo'] = '写真削除';
$lang['install_not_support_blowfish'] = 'インストールされた PHP は blowfish 暗号化をサポートしていません。';
$lang['install_not_support_md5crypt'] = 'インストールされた PHP は md5crypt 暗号化をサポートしていません。';
$lang['install_no_mash'] = 'インストールされた PHP は mhash() をサポートしていません。SHA ハッシュをすることができません。';
$lang['jpeg_contains_errors'] = 'jpegPhoto contains errors<br />';
$lang['jpeg_contains_errors'] = 'エラーを含む jpeg 写真<br />';
$lang['ferror_number'] = 'エラー番号: %s (%s)';
$lang['ferror_discription'] = '説明: %s <br /><br />';
$lang['ferror_number_short'] = 'エラー番号: %s<br /><br />';
@ -455,7 +452,9 @@ $lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=
<b>致命的でない phpLDAPadmin の不都合を発見しました!</b></td></tr><tr><td>エラー:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>ファイル:</td>
<td><b>%s</b> <b>%s</b>, caller <b>%s</b></td></tr><tr><td>バージョン:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>ウェブサーバー:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
ここをクリックして個の不都合を報告してください。</a>.</center></td></tr></table></center><br />';
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Please check and see if this bug has been reported here</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>If it hasnt been reported, you may report this bug by clicking here</a>.</center></td></tr>
</table></center><br />';
$lang['ferror_congrats_found_bug'] = 'おめでとうございます! phpLDAPadmin で不都合を発見しました。<br /><br />
<table class=\'bug\'>
<tr><td>エラー:</td><td><b>%s</b></td></tr>
@ -511,27 +510,26 @@ $lang['searching'] = '検索中...';
$lang['size_limit_exceeded'] = '通知です。検索サイズが制限を越えました。';
$lang['entry'] = 'エントリ';
$lang['ldif_export_for_dn'] = 'LDIF エクスポート: %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on %s';
$lang['generated_on_date'] = '%s に phpLDAPadmin ( http://www.phpldapadmin.com/ ) で生成しました。';
$lang['total_entries'] = '総エントリ';
$lang['dsml_export_for_dn'] = 'DSLM エクスポート: %s';
$lang['include_system_attrs'] = 'システム属性を含む';
$lang['csv_spreadsheet'] = 'CSV (スプレッドシート)';
// logins
$lang['could_not_find_user'] = 'ユーザー "%s" が見つかりません';
$lang['password_blank'] = 'You left the password blank.';
$lang['login_cancelled'] = 'ログインが取り消されました。';
$lang['password_blank'] = 'パスワードが空です。';
$lang['no_one_logged_in'] = 'No one is logged in to that server.';
$lang['could_not_logout'] = 'ログアウトできませんでした。';
$lang['unknown_auth_type'] = '未知の auth_type: %s';
$lang['logged_out_successfully'] = 'サーバー <b>%s</b> からログアウトに成功しました';
$lang['authenticate_to_server'] = 'Authenticate to server %s';
$lang['authenticate_to_server'] = 'サーバー %s へ認証';
$lang['warning_this_web_connection_is_unencrypted'] = '警告: このウェブ接続は暗号化されていません。';
$lang['not_using_https'] = 'You are not using \'https\'. Web browser will transmit login information in clear text.';
$lang['not_using_https'] = 'あなたは \'https\' を使っていません。ログイン情報はブラウザからクリアテキストで送信されます、';
$lang['login_dn'] = 'ログイン DN';
$lang['user_name'] = 'ユーザー名';
$lang['password'] = 'パスワード';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'すみません、この LDAP サーバーと phpLDAPadmin を使用することを許可していません。';
// Entry browser
$lang['entry_chooser_title'] = 'エントリ選択';
@ -562,8 +560,7 @@ $lang['invalid_rdn'] = '無効な RDN 値';
$lang['could_not_rename'] = 'エントリの名称変更が出来ませんでした';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin は PHP 5 をサポートしていません。You will likely encounter many weird problems if you continue.';
$lang['mismatched_search_attr_config'] = '設定にエラーがあります。$search_attributes must have the same number of attributes as $search_attributes_display.';
$lang['mismatched_search_attr_config'] = '設定にエラーがあります。$search_attributes は $search_attributes_display の属性と同じ数を持たなければいけません。';
// Password checker
$lang['passwords_match'] = 'パスワードが一致しました!';
@ -572,4 +569,117 @@ $lang['password_checker_tool'] = 'パスワードチェックツール';
$lang['compare'] = '比較';
$lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'デフォルトテンプレート';
// template_config
$lang['user_account'] = 'ユーザーアカウント (posixAccount)';
$lang['address_book_inet'] = 'アドレス帳エントリ (inetOrgPerson)';
$lang['address_book_moz'] = 'アドレス帳エントリ (mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab ユーザーエントリ';
$lang['organizational_unit'] = '所属組織';
$lang['organizational_role'] = '所属職務';
$lang['posix_group'] = 'Posix グループ';
$lang['samba_machine'] = 'Samba NT マシン';
$lang['samba3_machine'] = 'Samba 3 NT マシン';
$lang['samba_user'] = 'Samba ユーザー';
$lang['samba3_user'] = 'Samba 3 ユーザー';
$lang['samba3_group'] = 'Samba 3 グループマップ';
$lang['dns_entry'] = 'DNS エントリ';
$lang['simple_sec_object'] = '簡易セキュリティオブジェクト';
$lang['courier_mail_account'] = 'Courier メールアカウント';
$lang['courier_mail_alias'] = 'Courier メール別名';
$lang['ldap_alias'] = 'LDAP 別名';
$lang['sendmail_cluster'] = 'Sendmail クラスター';
$lang['sendmail_domain'] = 'Sendmail ドメイン';
$lang['sendmail_alias'] = 'Sendmail エイリアス';
$lang['sendmail_virt_dom'] = 'Sendmail 仮想ドメイン';
$lang['sendmail_virt_users'] = 'Sendmail 仮想ユーザー';
$lang['sendmail_relays'] = 'Sendmail リレー';
$lang['custom'] = 'カスタム';
$lang['samba_domain_name'] = '自分の Samba ドメイン名';
$lang['administrators'] = 'Administrators';
$lang['users'] = 'Users';
$lang['guests'] = 'Guests';
$lang['power_users'] = 'Power Users';
$lang['account_ops'] = 'Account Operators';
$lang['server_ops'] = 'Server Operators';
$lang['print_ops'] = 'Print Operators';
$lang['backup_ops'] = 'backup Operators';
$lang['replicator'] = 'Replicator';
$lang['unable_smb_passwords'] = ' Samba のパスワードを作成できませんでした。template_config.php の設定を確認してください。';
$lang['err_smb_conf'] = 'エラー: samba の設定にエラーがあります。';
$lang['err_smb_no_name_sid'] = 'エラー: samba ドメインの名前および sid を提供する必要があります。';
$lang['err_smb_no_name'] = 'エラー: 名前は samba ドメインに提供されませんでした。';
$lang['err_smb_no_sid'] = 'エラー: sid は samba ドメインに提供されませんでした。';
// Samba Account Template
$lang['samba_account'] = 'Samba アカウント';
$lang['samba_account_lcase'] = 'samba アカウント';
// New User (Posix) Account
$lang['t_new_user_account'] = '新規ユーザーアカウント';
$lang['t_hint_customize'] = 'ヒント: このテンプレートをカスタマイズする場合、ファイル templates/creation/new_user_template.php を編集します。';
$lang['t_name'] = '名前';
$lang['t_first_name'] = '名前';
$lang['t_last_name'] = '苗字';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_common_name'] = '共通名';
$lang['t_user_name'] = 'ユーザー名';
$lang['t_password'] = 'パスワード';
$lang['t_encryption'] = '暗号化';
$lang['t_login_shell'] = 'ログインシェル';
$lang['t_home_dir'] = 'ホームディレクトリ';
$lang['t_uid_number'] = 'UID 番号';
$lang['t_auto_det'] = '(自動採決)';
$lang['t_group'] = 'グループ';
$lang['t_gid_number'] = 'GID 番号';
$lang['t_err_passwords'] = 'パスワードが一致しません。戻ってからもう一度試してください。';
$lang['t_err_field_blank'] = '%s ブランクを残すことはできません。戻ってからもう一度試してください。';
$lang['t_err_field_num'] = 'フィールド %s は数値のみ入力で出来ます。戻ってからもう一度試してください。';
$lang['t_err_bad_container'] = '指定した内容(%s)は存在しません。戻ってからもう一度試してください。';
$lang['t_confirm_account_creation'] = 'アカウント作成確認';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'アカウント作成';
// New Address Template
$lang['t_new_address'] = '新規アドレス帳エントリ';
$lang['t_organization'] = '組織';
$lang['t_address'] = '住所';
$lang['t_city'] = '都市';
$lang['t_postal_code'] = '郵便番号';
$lang['t_street'] = '築町村';
$lang['t_work_phone'] = '業務電話';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = '携帯電話';
$lang['t_email'] = '電子メール';
$lang['t_container'] = 'コンテナー';
$lang['t_err_cn_blank'] = '一般名を空にすることは出来ません。戻ってからもう一度試してください。';
$lang['t_confim_creation'] = 'エントリ作成の確認:';
$lang['t_create_address'] = 'アドレス作成';
// default template
$lang['t_check_pass'] = 'パスワード検査...';
// compare form
$lang['compare'] = '比較';
$lang['comparing'] = '次の DN と比較中';
$lang['compare_dn'] = 'Compare another DN with';
$lang['with'] = 'with ';
$lang['compf_source_dn'] = '元の DN';
$lang['compf_dn_tooltip'] = 'この DN と別のものを比較';
$lang['switch_entry'] = 'エントリの切り替え';
$lang['no_value'] = '値がありません';
$lang['compare_with'] = '別のエントリと比較';
$lang['need_oclass'] = 'この属性 %s を追加するには次の ObjectClass のうちひとつを必要とします。';
// Time out page
$lang['session_timed_out_1'] = 'セッションは';
$lang['session_timed_out_2'] = '分活動しなかったのでタイムアウトです。自動でログアウトしました。';
$lang['log_back_in'] = '再ログインするには次のリンクをクリックしてください:';
$lang['session_timed_out_tree'] = '(セッションはタイムアウトです。自動でログアウトしました)';
$lang['timeout_at'] = '%s は活動的でなかったのでログアウト';
?>

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/pl.php,v 1.10 2004/12/09 14:16:15 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/pl.php,v 1.13 2005/03/25 01:15:27 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
@ -16,10 +16,10 @@
*
*/
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/pl.php,v 1.10 2004/12/09 14:16:15 uugdave Exp $
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/pl.php,v 1.13 2005/03/25 01:15:27 wurley Exp $
* initial translation from Piotr (DrFugazi) Tarnowski on Version 0.9.3
*/
// Based on en.php version 1.80
// Based on en.php version 1.120
// Search form
$lang['simple_search_form_str'] = 'Wyszukiwanie proste';
@ -29,7 +29,6 @@ $lang['search_for_entries_whose'] = 'Szukaj wpis
$lang['base_dn'] = 'Bazowa DN';
$lang['search_scope'] = 'Zakres przeszukiwania';
$lang['show_attributes'] = 'Poka¿ atrybuty';
$lang['attributes'] = 'Atrybuty';
$lang['Search'] = 'Szukaj';
$lang['equals'] = 'równa siê';
$lang['contains'] = 'zawiera';
@ -42,10 +41,12 @@ $lang['format'] = 'Format';
$lang['list'] = 'lista';
$lang['table'] = 'tabela';
$lang['bad_search_display'] = 'W Twojej konfiguracji (config.php) okre¶lona jest nieprawid³owa warto¶æ dla $default_search_display: %s. Proszê to poprawiæ';
$lang['page_n'] = 'Strona %d';
$lang['no_results'] = 'Wyszukiwanie nie przyniosło żadnych rezultatów.';
// Tree browser
$lang['request_new_feature'] = 'Zg³o¶ zapotrzebowanie na now± funkcjonalno¶æ';
$lang['report_bug'] = 'Zg³o¶ b³±d (report a bug)';
$lang['request_new_feature'] = 'Zgłoś zapotrzebowanie';
$lang['report_bug'] = 'Zgłoś błąd';
$lang['schema'] = 'schemat';
$lang['search'] = 'szukaj';
$lang['create'] = 'utwórz';
@ -53,7 +54,7 @@ $lang['info'] = 'info';
$lang['import'] = 'import';
$lang['refresh'] = 'od¶wie¿';
$lang['logout'] = 'wyloguj';
$lang['create_new'] = 'Utwórz nowy';
$lang['create_new'] = 'Utwórz nowy wpis';
$lang['view_schema_for'] = 'Poka¿ schemat dla';
$lang['refresh_expanded_containers'] = 'Od¶wie¿ wszystkie otwarte kontenery dla';
$lang['create_new_entry_on'] = 'Utwórz nowy wpis na';
@ -62,6 +63,8 @@ $lang['view_server_info'] = 'Poka
$lang['import_from_ldif'] = 'Importuj wpisy z pliku LDIF';
$lang['logout_of_this_server'] = 'Wyloguj z tego serwera';
$lang['logged_in_as'] = 'Zalogowany/a jako: ';
$lang['this_base_dn_is_not_valid'] = 'To nie jest prawidłowa DN.';
$lang['this_base_dn_does_not_exist'] = 'Ten wpis nie istnieje';
$lang['read_only'] = 'tylko-do-odczytu';
$lang['read_only_tooltip'] = 'Ten atrybut zosta³ oznaczony przez administratora phpLDAPadmin jako tylko-do-odczytu';
$lang['could_not_determine_root'] = 'Nie mo¿na ustaliæ korzenia Twojego drzewa LDAP.';
@ -70,11 +73,13 @@ $lang['please_specify_in_config'] = 'Prosz
$lang['create_new_entry_in'] = 'Utwórz nowy wpis w';
$lang['login_link'] = 'Logowanie...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'Ten wpis bazowy nie istnieje';
$lang['create_it'] = 'Utworzyć ?';
// Entry display
$lang['delete_this_entry'] = 'Usuñ ten wpis';
$lang['delete_this_entry_tooltip'] = 'Bêdziesz poproszony/a o potwierdzenie tej decyzji';
$lang['copy_this_entry'] = 'Skopiuj ten wpis';
$lang['copy_this_entry'] = 'Skopiuj lub przenieś ten wpis';
$lang['copy_this_entry_tooltip'] = 'Skopiuj ten obiekt do innej lokalizacji, nowej DN, lub do innego serwera';
$lang['export'] = 'Eksportuj';
$lang['export_lcase'] = 'eksportuj';
@ -112,6 +117,7 @@ $lang['binary_value'] = 'Warto
$lang['add_new_binary_attr'] = 'Dodaj nowy atrybut binarny';
$lang['alias_for'] = 'Uwaga: \'%s\' jest aliasem dla \'%s\'';
$lang['required_for'] = 'Atrybut wymagany dla klas(y) obiektu %s';
$lang['required_by_entry'] = 'Ten atrybut jest wymagany dla RDN';
$lang['download_value'] = 'pobierz (download) warto¶æ';
$lang['delete_attribute'] = 'usuñ atrybut';
$lang['true'] = 'prawda';
@ -121,13 +127,10 @@ $lang['really_delete_attribute'] = 'Definitywnie usu
$lang['add_new_value'] = 'Dodaj now± warto¶æ';
// Schema browser
$lang['the_following_objectclasses'] = 'Nastêpuj±ce klasy obiektu s± wspierane przez ten serwer LDAP.';
$lang['the_following_attributes'] = 'Nastêpuj±ce typy atrybutów s± wspierane przez ten serwer LDAP.';
$lang['the_following_matching'] = 'Nastêpuj±ce regu³y dopasowania s± wspierane przez ten serwer LDAP.';
$lang['the_following_syntaxes'] = 'Nastêpuj±ce sk³adnie s± wspierane przez ten serwer LDAP.';
$lang['schema_retrieve_error_1']='Serwer nie wspiera w pe³ni protoko³u LDAP.';
$lang['schema_retrieve_error_2']='Twoja wersja PHP niepoprawnie wykonuje zapytanie.';
$lang['schema_retrieve_error_3']='Lub w ostateczno¶ci, phpLDAPadmin nie wie jak uzyskaæ schemat dla Twojego serwera.';
$lang['schema_retrieve_error_3']='phpLDAPadmin nie wie jak uzyskać schemat z Twojego serwera.';
$lang['schema_retrieve_error_4']='Lub w ostateczności, Twój serwer nie dostarcza tej informacji.';
$lang['jump_to_objectclass'] = 'Skocz do klasy obiektu';
$lang['view_schema_for_oclass'] = 'Poka¿ opis schematu dla tej klasy obiektu';
$lang['jump_to_attr'] = 'Skocz do typu atrybutu';
@ -224,17 +227,15 @@ $lang['not_enough_login_info'] = 'Brak wystarczaj
$lang['could_not_connect'] = 'Nie mo¿na pod³±czyæ siê do serwera LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'Nie mo¿na pod³±czyæ siê do "%s" na port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Nie mo¿na dokonaæ operacji ldap_mod_add.';
$lang['bad_server_id_underline'] = 'Z³y server_id: ';
$lang['home'] = 'Strona główna';
$lang['help'] = 'Pomoc';
$lang['success'] = 'Sukces';
$lang['server_colon_pare'] = 'Serwer: ';
$lang['look_in'] = 'Szukam w: ';
$lang['missing_server_id_in_query_string'] = 'Nie okre¶lono ID serwera w zapytaniu !';
$lang['missing_dn_in_query_string'] = 'Nie okre¶lono DN w zapytaniu !';
$lang['back_up_p'] = 'Do góry...';
$lang['no_entries'] = 'brak wpisów';
$lang['not_logged_in'] = 'Nie zalogowany/a';
$lang['could_not_det_base_dn'] = 'Nie mo¿na okre¶liæ bazowego DN';
$lang['please_report_this_as_a_bug']='Proszê zg³osiæ to jako b³±d.';
$lang['reasons_for_error']='To mog³o zdarzyæ siê z kilku powodów, z których najbardziej prawdopodobne to:';
$lang['yes']='Tak';
$lang['no']='Nie';
@ -243,12 +244,16 @@ $lang['delete']='Usu
$lang['back']='Powrót';
$lang['object']='obiekt';
$lang['delete_all']='Usuñ wszystko';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'wskazówka';
$lang['bug'] = 'b³±d (bug)';
$lang['warning'] = 'ostrze¿enie';
$lang['light'] = '¿arówka'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Dalej &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin nie może bezpiecznie szyfrować danych, ponieważ zmienna $blowfish_secret nie jest ustawiona w config.php. Należy wyedytować config.php i wpisać jakiś łańcuch znaków do zmiennej $blowfish_secret';
$lang['jpeg_dir_not_writable'] = 'Proszę ustawić zmienną $jpeg_temp_dir w config.php na katalog z możliwością zapisu plików';
$lang['jpeg_dir_not_writable_error'] = 'Nie można zapisać do katalogu $jpeg_temp_dir %s. Sprawdź proszę czy Twój serwer może zapisywać pliki w tym katalogu.';
$lang['jpeg_unable_toget'] = 'Nie można pobrać danych jpeg z serwera LDAP dla atrybutu %s.';
$lang['jpeg_delete'] = 'Usuń zdjęcie';
// Add value form
$lang['add_new'] = 'Dodaj';
@ -296,7 +301,9 @@ $lang['copyf_recursive_copy'] = 'Rekursywne kopiowanie wszystkich potomnych obie
$lang['recursive_copy'] = 'Kopia rekursywna';
$lang['filter'] = 'Filtr';
$lang['filter_tooltip'] = 'Podczas rekursywnego kopiowania, kopiowane s± tylko wpisy pasuj±ce do filtra';
$lang['delete_after_copy'] = 'Usuń po skopiowaniu (przenieś):';
$lang['delete_after_copy_warn'] = 'Upewnij się, że ustawienia filtra (powyżej) pozwalają na wybranie wszystkich rekordów podrzędnych.';
//create.php
$lang['create_required_attribute'] = 'Brak warto¶ci dla wymaganego atrybutu (%s).';
$lang['redirecting'] = 'Przekierowujê';
@ -307,17 +314,17 @@ $lang['create_could_not_add'] = 'Nie mo
$lang['createf_create_object'] = 'Utwórz obiekt';
$lang['createf_choose_temp'] = 'Wybierz szablon';
$lang['createf_select_temp'] = 'Wybierz szablon dla procesu tworzenia';
$lang['createf_proceed'] = 'Dalej';
$lang['save_as_file'] = 'Zapisz jako';
$lang['rdn_field_blank'] = 'Pozostawi³e¶/a¶ puste pole RDN.';
$lang['container_does_not_exist'] = 'Kontener który okre¶li³e¶/a¶ (%s) nie istnieje. Spróbuj ponownie.';
$lang['no_objectclasses_selected'] = 'Nie wybra³e¶/a¶ ¿adnych Klas Obiektu dla tego obiektu. Wróæ proszê i zrób to.';
$lang['hint_structural_oclass'] = 'Wskazówka: Musisz wybraæ co najmniej jedn± strukturaln± klasê obiektu (wyró¿nion± pogrubieniem)';
$lang['hint_structural_oclass'] = 'Wskazówka: Musisz wybrać dokładnie jedną strukturalną klasę obiektu (wyróżnioną pogrubieniem)';
//creation_template.php
$lang['ctemplate_on_server'] = 'Na serwerze';
$lang['ctemplate_no_template'] = 'Brak okre¶lenia szablonu w zmiennych POST.';
$lang['ctemplate_config_handler'] = 'Twoja konfiguracja okre¶la handler';
$lang['ctemplate_handler_does_not_exist'] = 'dla tego szablonu. Ale, ten handler nie istnieje w szablonach/tworzonym katalogu';
$lang['template_not_readable'] = 'Twoja konfiguracja określa obsługę "%s" dla tego szablonu, ale tego pliku nie da się odczytać, ponieważ uprawnienia są zbyt restrykcyjne.';
$lang['template_does_not_exist'] = 'Twoja konfiguracja określa obsługę "%s" dla tego szablonu, ale pliku obsługi nie ma w katalogu templates/creation.';
$lang['create_step1'] = 'Krok 1 z 2: Nazwa i klasa/y obiektu';
$lang['create_step2'] = 'Krok 2 z 2: Okre¶lenie atrybutów i warto¶ci';
$lang['relative_distinguished_name'] = 'Relatywna Wyró¿niona Nazwa (RDN)';
@ -350,7 +357,7 @@ $lang['ends with'] = 'ko
$lang['sounds like'] = 'brzmi jak';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Nie mo¿na uzyskaæ informacji od serwera LDAP';
$lang['could_not_fetch_server_info'] = 'Nie można uzyskać informacji od serwera LDAP. Może to być spowodowane <a href="http://bugs.php.net/bug.php?id=29587">błędem</a> w Twojej wersji PHP albo na przykład tym, że Twój serwer LDAP posiada listę kontroli dostępu nie zezwalającą na pobranie RootDSE klientom LDAP';
$lang['server_info_for'] = 'Informacja o serwerze: ';
$lang['server_reports_following'] = 'Serwer zwróci³ nastêpuj±ce informacje o sobie';
$lang['nothing_to_report'] = 'Ten serwer nie chce nic powiedzieæ o sobie :).';
@ -369,24 +376,30 @@ $lang['commit'] = 'Zatwierd
$lang['cancel'] = 'Anuluj';
$lang['you_made_no_changes'] = 'Nie dokonano ¿adnych zmian';
$lang['go_back'] = 'Powrót';
$lang['unable_create_samba_pass'] = 'Nie można utworzyć hasła dla samby. Sprawdź proszę swoją konfigurację w template_config.php';
// welcome.php
$lang['welcome_note'] = 'U¿yj menu z lewej strony do nawigacji';
$lang['credits'] = 'Lista p³ac';
$lang['changelog'] = 'Historia zmian';
$lang['donate'] = 'Wesprzyj projekt';
$lang['purge_cache'] = 'Wyczy¶æ pamiêæ podrêczn±';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'Aby wesprzeć projekt phpLDAPadmin skorzystaj z jednego z przycisków PayPal umieszczonych poniżej';
$lang['donate_amount'] = 'Wesprzyj kwotą %s';
$lang['purge_cache'] = 'Wyczyść cache';
$lang['no_cache_to_purge'] = 'Nie ma czego czy¶ciæ.';
$lang['done_purging_caches'] = 'Wyczyszczono %s bajtów pamiêci podrêcznej.';
$lang['done_purging_caches'] = 'Wyczyszczono %s bajtów pamięci podręcznej (cache).';
$lang['purge_cache_tooltip'] = 'Czyści wszystkie dane podręczne (cache) w phpLDAPadmin, łącznie ze schematami serwera';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Niebezpieczna nazwa pliku: ';
$lang['no_such_file'] = 'Nie znaleziono pliku: ';
//function.php
$lang['auto_update_not_setup'] = 'Zezwoli³e¶/ na automatyczne nadawanie uid (auto_uid_numbers)
dla <b>%s</b> w konfiguracji, ale nie okre¶li³e¶/ mechanizmu
(auto_uid_number_mechanism). Proszê skorygowaæ ten problem.';
$lang['auto_update_not_setup'] = 'Zezwoliłeś/aś na automatyczne nadawanie uid (auto_uid_numbers) dla <b>%s</b> w konfiguracji, ale nie określiłeś/aś mechanizmu (auto_uid_number_mechanism). Proszę skorygować ten problem.';
$lang['uidpool_not_set'] = 'Okre¶li³e¶/a¶ mechanizm autonumerowania uid "auto_uid_number_mechanism" jako "uidpool" w konfiguracji Twojego serwera <b>%s</b>, lecz nie okre¶li³e¶/a¶ audo_uid_number_uid_pool_dn. Proszê okre¶l to zanim przejdziesz dalej.';
$lang['uidpool_not_exist'] = 'Wygl±da na to, ¿e uidPool, któr± okre¶li³e¶/a¶ w Twojej konfiguracji ("%s") nie istnieje.';
$lang['specified_uidpool'] = 'Okre¶li³e¶/a¶ "auto_uid_number_mechanism" jako "search" w konfiguracji Twojego serwera <b>%s</b>, ale nie okre¶li³e¶/a¶ bazy "auto_uid_number_search_base". Zrób to zanim przejdziesz dalej.';
@ -402,15 +415,15 @@ $lang['could_not_bind_anon'] = 'Nie mo
$lang['could_not_bind'] = 'Nie mo¿na pod³±czyæ siê do serwera LDAP.';
$lang['anonymous_bind'] = 'Pod³±czenie anonimowe';
$lang['bad_user_name_or_password'] = 'Z³a nazwa u¿ytkownika lub has³o. Spróbuj ponownie.';
$lang['redirecting_click_if_nothing_happens'] = 'Przekierowujê... Kliknij tutaj je¶li nic siê nie dzieje.';
$lang['successfully_logged_in_to_server'] = 'Pomy¶lnie zalogowano do serwera <b>%s</b>';
$lang['could_not_set_cookie'] = 'Nie mo¿na ustawiæ ciasteczka (cookie).';
$lang['ldap_said'] = 'LDAP odpowiedzia³: %s';
$lang['ferror_error'] = 'B³±d';
$lang['fbrowse'] = 'przegl±daj';
$lang['delete_photo'] = 'Usuñ fotografiê';
$lang['install_not_support_blowfish'] = 'Twoja instalacja PHP nie wspiera szyfrowania blowfish.';
$lang['install_not_support_md5crypt'] = 'Twoja instalacja PHP nie wspiera szyfrowania md5crypt.';
$lang['install_not_support_ext_des'] = 'Twoja systemowa biblioteka crypt nie wspiera rozszerzonego szyfrowania DES';
$lang['install_not_support_blowfish'] = 'Twoja systemowa biblioteka crypt nie wspiera szyfrowania blowfish.';
$lang['install_not_support_md5crypt'] = 'Twoja systemowa biblioteka crypt nie wspiera szyfrowania md5crypt.';
$lang['install_no_mash'] = 'Twoja instalacja PHP nie posiada funkcji mhash(). Nie mogê tworzyæ haszy SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto zawiera b³êdy<br />';
$lang['ferror_number'] = 'B³±d numer: %s (%s)';
@ -442,7 +455,6 @@ $lang['ferror_congrats_found_bug'] = 'Gratulacje ! Znalaz
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importuj plik LDIF';
$lang['select_ldif_file'] = 'Wybierz plik LDIF:';
$lang['select_ldif_file_proceed'] = 'Dalej &gt;&gt;';
$lang['dont_stop_on_errors'] = 'Nie zatrzymuj siê po napotkaniu b³êdów';
//ldif_import
@ -453,7 +465,7 @@ $lang['modify_action'] = 'Modyfikowanie...';
$lang['warning_no_ldif_version_found'] = 'Nie znaleziono numeru wersji. Przyjmujê 1.';
$lang['valid_dn_line_required'] = 'Wymagana jest poprawna linia DN.';
$lang['missing_uploaded_file'] = 'Brak wgrywanego pliku.';
$lang['no_ldif_file_specified.'] = 'Nie okre¶lono pliku LDIF. Spróbuj ponownie.';
$lang['no_ldif_file_specified'] = 'Nie określono pliku LDIF. Spróbuj ponownie.';
$lang['ldif_file_empty'] = 'Wgrany plik LDIF jest pusty.';
$lang['empty'] = 'pusty';
$lang['file'] = 'Plik';
@ -489,11 +501,10 @@ $lang['generated_on_date'] = 'Wygenerowane przez phpLDAPadmin ( http://phpldapad
$lang['total_entries'] = '£±cznie wpisów';
$lang['dsml_export_for_dn'] = 'Eksport DSLM dla: %s';
$lang['include_system_attrs'] = 'Zawiera atrybuty systemowe';
$lang['csv_spreadsheet'] = 'CVS (arkusz)';
// logins
$lang['could_not_find_user'] = 'Nie mo¿na znale¼æ u¿ytkownika "%s"';
$lang['password_blank'] = 'Pozostawi³e¶/a¶ puste has³o.';
$lang['login_cancelled'] = 'Logowanie anulowane.';
$lang['no_one_logged_in'] = 'Nikt nie jest zalogowany do tego serwera.';
$lang['could_not_logout'] = 'Nie mo¿na wylogowaæ.';
$lang['unknown_auth_type'] = 'Nieznany auth_type: %s';
@ -505,6 +516,7 @@ $lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'Nazwa u¿ytkownika';
$lang['password'] = 'Has³o';
$lang['authenticate'] = 'Zaloguj';
$lang['login_not_allowed'] = 'Przykro mi, ale nie masz uprawnień aby korzystać z phpLDAPadmin na tym serwerze LDAP.';
// Entry browser
$lang['entry_chooser_title'] = 'Wybór wpisu';
@ -534,15 +546,25 @@ $lang['no_rdn_change'] = 'Nie zmieni
$lang['invalid_rdn'] = 'B³êdna warto¶æ RDN';
$lang['could_not_rename'] = 'Nie mo¿na zmieniæ nazwy wpisu';
// General errors
$lang['mismatched_search_attr_config'] = 'Twoja konfiguracja zawiera błąd. $search_attributes musi posiadać tą samą ilość atrybutów co $search_attributes_display.';
// Password checker
$lang['passwords_match'] = 'Hasła zgodne !';
$lang['passwords_do_not_match'] = 'Hasła nie zgadzają się !';
$lang['password_checker_tool'] = 'Narzędzie do sprawdzania haseł';
$lang['compare'] = 'Porównaj';
$lang['to'] = 'Do';
// Templates
$lang['using'] = 'U¿ywaj±c';
$lang['template'] = 'szablonu';
$lang['switch_to'] = 'Mo¿esz prze³±czyæ siê do ';
$lang['default_template'] = 'domy¶lnego szablonu';
// template_config
$lang['user_account'] = 'Konto U¿ytkownika (posixAccount)';
$lang['address_book'] = 'Wpis Ksi±¿ki Adresowej (inetOrgPerson)';
$lang['address_book_inet'] = 'Wpis Książki Adresowej (inetOrgPerson)';
$lang['address_book_moz'] = 'Wpis Książki Adresowej (mozillaOrgPerson)';
$lang['kolab_user'] = 'Wpis U¿ytkownika Kolab';
$lang['organizational_unit'] = 'Jednostka Organizacyjna';
$lang['organizational_role'] = 'Rola w Organizacji';
@ -557,6 +579,12 @@ $lang['simple_sec_object'] = 'Prosty obiekt bezpiecze
$lang['courier_mail_account'] = 'Konto Pocztowe w Courier';
$lang['courier_mail_alias'] = 'Alias Pocztowy w Courier';
$lang['ldap_alias'] = 'Alias w LDAP';
$lang['sendmail_cluster'] = 'Klaster Sendmail';
$lang['sendmail_domain'] = 'Domena Sendmail';
$lang['sendmail_alias'] = 'Alias Sendmail';
$lang['sendmail_virt_dom'] = 'Wirtualna Domena Sendmail';
$lang['sendmail_virt_users'] = 'Wirtualni Użytkownicy Sendmail';
$lang['sendmail_relays'] = 'Sendmail Relays';
$lang['custom'] = 'Ogólne';
$lang['samba_domain_name'] = 'Moja nazwa domeny w Samba';
$lang['administrators'] = 'Administratorzy';
@ -569,6 +597,10 @@ $lang['print_ops'] = 'Operatorzy drukowania';
$lang['backup_ops'] = 'Operatorzy archiwizacji danych';
$lang['replicator'] = 'Replikator';
$lang['unable_smb_passwords'] = ' Nie mo¿na utworzyæ hase³ Samba. Proszê sprawdziæ konfiguracjê w template_config.php';
$lang['err_smb_conf'] = 'Błąd: masz błąd w konfiguracji samby';
$lang['err_smb_no_name_sid'] = 'Błąd: musisz wprowadzić nazwę oraz sid dla Twojej domeny samby.';
$lang['err_smb_no_name'] = 'Błąd: brak nazwy dla domeny samby.';
$lang['err_smb_no_sid'] = 'Błąd: brak sid dla domeny samby';
// Samba Account Template
$lang['samba_account'] = 'Konto Samba';
@ -580,6 +612,8 @@ $lang['t_hint_customize'] = 'Wskaz
$lang['t_name'] = 'Nazwa/Nazwisko';
$lang['t_first_name'] = 'Imiê';
$lang['t_last_name'] = 'Nazwisko';
$lang['t_first'] = 'imię';
$lang['t_last'] = 'nazwisko';
$lang['t_common_name'] = 'Nazwa';
$lang['t_user_name'] = 'Nazwa u¿ytkownika';
$lang['t_password'] = 'Has³o';
@ -614,4 +648,25 @@ $lang['t_err_cn_blank'] = 'Nie mo
$lang['t_confim_creation'] = 'Potwierd¼ utworzenie wpisu:';
$lang['t_create_address'] = 'Utwórz adres';
// default template
$lang['t_check_pass'] = 'Sprawdź hasło';
// compare form
$lang['compare'] = 'Porównaj';
$lang['comparing'] = 'Porównuję następujące DN';
$lang['compare_dn'] = 'Porównaj inny DN z';
$lang['with'] = 'z';
$lang['compf_source_dn'] = 'Źródłowa DN';
$lang['compf_dn_tooltip'] = 'Prównaj tą DN z inną';
$lang['switch_entry'] = 'Zamień wpisy';
$lang['no_value'] = 'Brak wartości';
$lang['compare_with'] = 'Porównaj z innym wpisem';
$lang['need_oclass'] = 'Musisz posiadać jedną z następujących klas obiektów, aby dodać ten atrybut %s ';
// Time out page
$lang['session_timed_out_1'] = 'Twoja sesja wygaśnie po';
$lang['session_timed_out_2'] = 'min. nieaktywności. Zostaniesz automatycznie wylogowany/a.';
$lang['log_back_in'] = 'Aby się zalogować ponownie kliknij w następujący link:';
$lang['session_timed_out_tree'] = '(Sesja wygasła. Automatycznie wylogowano)';
$lang['timeout_at'] = 'Brak aktywności wyloguje Cię o %s';
?>

View File

@ -1,8 +1,8 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/auto.php,v 1.8 2004/12/09 14:02:37 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/auto.php,v 1.9 2005/02/06 00:21:31 wurley Exp $
// Language for auto-detect
// phpldapadmin/lang/auto.php in $Revision: 1.8 $
// phpldapadmin/lang/auto.php in $Revision: 1.9 $
$useLang="en"; // default use english encoding, a Option in Config would be nice
// keep the beginning and ending spaces, they are used for finding the best language
@ -30,6 +30,8 @@ $langSupport=array(" ca "=>"ca" // catalan
," ru-"=>"ru" // ru- exits?
," sv "=>"sv" //swedish
," sv-"=>"sv" // swedisch to
," zh-cn"=>"zh-cn" // simplified chinese
," zh-tw"=>"zh-tw" // taiwan?
);// all supported languages in this array
// test

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/en.php,v 1.93 2005/01/07 04:06:27 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/en.php,v 1.118 2005/09/12 03:06:57 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@ -31,7 +31,6 @@ $lang['search_for_entries_whose'] = 'Search for entries whose';
$lang['base_dn'] = 'Base DN';
$lang['search_scope'] = 'Search Scope';
$lang['show_attributes'] = 'Show Attributtes';
$lang['attributes'] = 'Attributes';
$lang['Search'] = 'Search';
$lang['predefined_search_str'] = 'Select a predefined search';
$lang['predefined_searches'] = 'Predefined Searches';
@ -43,6 +42,7 @@ $lang['list'] = 'list';
$lang['table'] = 'table';
$lang['bad_search_display'] = 'Your config.php specifies an invalid value for $default_search_display: %s. Please fix it';
$lang['page_n'] = 'Page %d';
$lang['next_page'] = 'Next Page';
$lang['no_results'] = 'The search found no results.';
// Tree browser
@ -74,13 +74,13 @@ $lang['please_specify_in_config'] = 'Please specify it in config.php';
$lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'Login...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'The base entry does not exist.';
$lang['base_entry_does_not_exist'] = 'This base entry does not exist.';
$lang['create_it'] = 'Create it?';
// Entry display
$lang['delete_this_entry'] = 'Delete this entry';
$lang['delete_this_entry_tooltip'] = 'You will be prompted to confirm this decision';
$lang['copy_this_entry'] = 'Copy this entry';
$lang['copy_this_entry'] = 'Copy or move this entry';
$lang['copy_this_entry_tooltip'] = 'Copy this object to another location, a new DN, or another server';
$lang['export'] = 'Export';
$lang['export_lcase'] = 'export';
@ -90,6 +90,7 @@ $lang['export_subtree'] = 'Export subtree';
$lang['create_a_child_entry'] = 'Create a child entry';
$lang['rename_entry'] = 'Rename Entry';
$lang['rename'] = 'Rename';
$lang['rename_lower'] = 'rename';
$lang['add'] = 'Add';
$lang['view'] = 'View';
$lang['view_one_child'] = 'View 1 child';
@ -118,6 +119,7 @@ $lang['binary_value'] = 'Binary value';
$lang['add_new_binary_attr'] = 'Add new binary attribute';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['required_for'] = 'Required attribute for objectClass(es) %s';
$lang['required_by_entry'] = 'This attribute is required for the RDN.';
$lang['download_value'] = 'download value';
$lang['delete_attribute'] = 'delete attribute';
$lang['true'] = 'true';
@ -127,13 +129,10 @@ $lang['really_delete_attribute'] = 'Really delete attribute';
$lang['add_new_value'] = 'Add New Value';
// Schema browser
$lang['the_following_objectclasses'] = 'The following objectClasses are supported by this LDAP server.';
$lang['the_following_attributes'] = 'The following attributeTypes are supported by this LDAP server.';
$lang['the_following_matching'] = 'The following matching rules are supported by this LDAP server.';
$lang['the_following_syntaxes'] = 'The following syntaxes are supported by this LDAP server.';
$lang['schema_retrieve_error_1']='The server does not fully support the LDAP protocol.';
$lang['schema_retrieve_error_2']='Your version of PHP does not correctly perform the query.';
$lang['schema_retrieve_error_3']='Or lastly, phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['schema_retrieve_error_3']='phpLDAPadmin doesn\'t know how to fetch the schema for your server.';
$lang['schema_retrieve_error_4']='Or lastly, your LDAP server doesnt provide this information.';
$lang['jump_to_objectclass'] = 'Jump to an objectClass';
$lang['view_schema_for_oclass'] = 'View the schema description for this objectClass';
$lang['jump_to_attr'] = 'Jump to an attribute type';
@ -177,6 +176,7 @@ $lang['usage']='Usage';
$lang['could_not_retrieve_schema_from']='Could not retrieve schema from';
$lang['type']='Type';
$lang['no_such_schema_item'] = 'No such schema item: "%s"';
$lang['random_password'] = 'A random password was generated for you';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entry %s deleted successfully.';
@ -220,7 +220,7 @@ $lang['change_password_new_login'] = 'Since you changed your password, you must
$lang['new_required_attrs'] = 'New Required Attributes';
$lang['requires_to_add'] = 'This action requires you to add';
$lang['new_attributes'] = 'new attributes';
$lang['new_required_attrs_instructions'] = 'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['new_required_attrs_instructions'] = 'Instructions: In order to add these objectClass(es) to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'that this objectClass requires. You can do so in this form.';
$lang['add_oclass_and_attrs'] = 'Add ObjectClass and Attributes';
$lang['objectclasses'] = 'ObjectClasses';
@ -233,19 +233,15 @@ $lang['not_enough_login_info'] = 'Not enough information to login to server. Ple
$lang['could_not_connect'] = 'Could not connect to LDAP server.';
$lang['could_not_connect_to_host_on_port'] = 'Could not connect to "%s" on port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$lang['home'] = 'Home';
$lang['help'] = 'Help';
$lang['success'] = 'Success';
$lang['server_colon_pare'] = 'Server: ';
$lang['look_in'] = 'Looking in: ';
$lang['missing_server_id_in_query_string'] = 'No server ID specified in query string!';
$lang['missing_dn_in_query_string'] = 'No DN specified in query string!';
$lang['back_up_p'] = 'Back Up...';
$lang['no_entries'] = 'no entries';
$lang['not_logged_in'] = 'Not logged in';
$lang['could_not_det_base_dn'] = 'Could not determine base DN';
$lang['please_report_this_as_a_bug']='Please report this as a bug.';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='Yes';
$lang['no']='No';
@ -254,13 +250,16 @@ $lang['delete']='Delete';
$lang['back']='Back';
$lang['object']='object';
$lang['delete_all']='Delete all';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'hint';
$lang['bug'] = 'bug';
$lang['warning'] = 'warning';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceed &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin cannot safely encrypt & decrypt your sensitive information, because $blowfish_secret is not set in config.php. You need to edit config.php and set $blowfish_secret to some secret string now.';
$lang['jpeg_dir_not_writable'] = 'Please set $jpeg_temp_dir to a writable directory in the phpLDAPadmin config.php';
$lang['jpeg_dir_not_writable_error'] = 'Could not write to the $jpeg_temp_dir directory %s. Please verify that your web server can write files there.';
$lang['jpeg_unable_toget'] = 'Could not fetch jpeg data from LDAP server for attribute %s.';
$lang['jpeg_delete'] = 'Delete photo';
// Add value form
$lang['add_new'] = 'Add new';
@ -270,7 +269,7 @@ $lang['current_list_of'] = 'Current list of';
$lang['values_for_attribute'] = 'values for attribute';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Note: you may be required to enter new attributes that this objectClass requires';
$lang['new_required_attrs_note'] = 'Note: You may be required to enter new attributes that these objectClass(es) require';
$lang['syntax'] = 'Syntax';
//copy.php
@ -294,8 +293,8 @@ $lang['must_choose_template'] = 'You must choose a template';
$lang['invalid_template'] = '%s is an invalid template';
$lang['using_template'] = 'using template';
$lang['go_to_dn'] = 'Go to %s';
+$lang['structural_object_class_cannot_remove'] = 'This is a structural ObjectClass and cannot be removed.';
+$lang['structural'] = 'structural';
$lang['structural_object_class_cannot_remove'] = 'This is a structural ObjectClass and cannot be removed.';
$lang['structural'] = 'structural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copy ';
@ -307,8 +306,9 @@ $lang['copyf_note'] = 'Hint: Copying between different servers only works if the
$lang['copyf_recursive_copy'] = 'Recursively copy all children of this object as well.';
$lang['recursive_copy'] = 'Recursive copy';
$lang['filter'] = 'Filter';
$lang['search_filter'] = 'Search Filter';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this filter';
$lang['delete_after_copy'] = 'Delete after copy (move):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
@ -325,6 +325,8 @@ $lang['rdn_field_blank'] = 'You left the RDN field blank.';
$lang['container_does_not_exist'] = 'The container you specified (%s) does not exist. Please try again.';
$lang['no_objectclasses_selected'] = 'You did not select any ObjectClasses for this object. Please go back and do so.';
$lang['hint_structural_oclass'] = 'Hint: You must choose exactly one structural objectClass (shown in bold above)';
$lang['template_restricted'] = 'This template is not allowed in this container.';
$lang['template_invalid'] = 'This template has been disabled, possibly due to missing schema or missing template XML fields.';
//creation_template.php
$lang['ctemplate_on_server'] = 'On server';
@ -356,10 +358,8 @@ $lang['scope_base'] = 'Base (base dn only)';
$lang['standard_ldap_search_filter'] = 'Standard LDAP search filter. Example: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = 'Search Filter';
$lang['list_of_attrs_to_display_in_results'] = 'A list of attributes to display in the results (comma-separated)';
$lang['show_attributes'] = 'Show Attributes';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Search for entries whose:';
$lang['equals'] = 'equals';
$lang['starts with'] = 'starts with';
$lang['contains'] = 'contains';
@ -386,19 +386,19 @@ $lang['commit'] = 'Commit';
$lang['cancel'] = 'Cancel';
$lang['you_made_no_changes'] = 'You made no changes';
$lang['go_back'] = 'Go back';
$lang['unable_create_samba_pass'] = 'Unable to create samba password. Please check your configuration in template_config.php';
// welcome.php
$lang['welcome_note'] = 'Use the menu to the left to navigate';
$lang['credits'] = 'Credits';
$lang['changelog'] = 'ChangeLog';
$lang['documentation'] = 'Documentation';
$lang['donate'] = 'Donate';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'To donate funds to the phpLDAPadmin project, use one of the PayPal buttons below.';
$lang['donate_amount'] = 'Donate %s';
$lang['wish_list_option'] = 'Or perhaps you would prefer to purchase an gift for a phpLDAPadmin developer.';
$lang['wish_list'] = 'View Dave\'s phpLDAPadmin wish list';
$lang['purge_cache'] = 'Purge caches';
$lang['no_cache_to_purge'] = 'No cache to purge.';
@ -437,15 +437,15 @@ $lang['could_not_bind_anon'] = 'Could not bind anonymously to server.';
$lang['could_not_bind'] = 'Could not bind to the LDAP server.';
$lang['anonymous_bind'] = 'Anonymous Bind';
$lang['bad_user_name_or_password'] = 'Bad username or password. Please try again.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'Successfully logged into server <b>%s</b>';
$lang['could_not_set_cookie'] = 'Could not set cookie.';
$lang['ldap_said'] = 'LDAP said: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'browse';
$lang['delete_photo'] = 'Delete Photo';
$lang['install_not_support_blowfish'] = 'Your PHP install does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Your PHP install does not support md5crypt encryption.';
$lang['install_not_support_ext_des'] = 'Your system crypt library does not support extended DES encryption.';
$lang['install_not_support_blowfish'] = 'Your system crypt library does not support blowfish encryption.';
$lang['install_not_support_md5crypt'] = 'Your system crypt library does not support md5crypt encryption.';
$lang['install_no_mash'] = 'Your PHP install does not have the mhash() function. Cannot do SHA hashes.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contains errors<br />';
$lang['ferror_number'] = 'Error number: %s (%s)';
@ -457,8 +457,10 @@ $lang['ferror_unrecognized_num'] = 'Unrecognized error number: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
<td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Please check and see if this bug has been reported here</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>If it hasnt been reported, you may report this bug by clicking here</a>.</center></td></tr>
</table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Congratulations! You found a bug in phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
@ -514,16 +516,14 @@ $lang['searching'] = 'Searching...';
$lang['size_limit_exceeded'] = 'Notice, search size limit exceeded.';
$lang['entry'] = 'Entry';
$lang['ldif_export_for_dn'] = 'LDIF Export for: %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://www.phpldapadmin.com/ ) on %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on %s';
$lang['total_entries'] = 'Total Entries';
$lang['dsml_export_for_dn'] = 'DSLM Export for: %s';
$lang['include_system_attrs'] = 'Include system attributes';
$lang['csv_spreadsheet'] = 'CSV (Spreadsheet)';
// logins
$lang['could_not_find_user'] = 'Could not find a user "%s"';
$lang['password_blank'] = 'You left the password blank.';
$lang['login_cancelled'] = 'Login cancelled.';
$lang['no_one_logged_in'] = 'No one is logged in to that server.';
$lang['could_not_logout'] = 'Could not logout.';
$lang['unknown_auth_type'] = 'Unknown auth_type: %s';
@ -535,6 +535,7 @@ $lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'User name';
$lang['password'] = 'Password';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'Sorry, you are not allowed to use phpLDAPadmin with this LDAP server.';
// Entry browser
$lang['entry_chooser_title'] = 'Entry Chooser';
@ -547,7 +548,6 @@ $lang['no_deletes_in_read_only'] = 'Deletes not allowed in read only mode.';
$lang['error_calling_mass_delete'] = 'Error calling mass_delete.php. Missing mass_delete in POST vars.';
$lang['mass_delete_not_array'] = 'mass_delete POST var is not an array.';
$lang['mass_delete_not_enabled'] = 'Mass deletion is not enabled. Please enable it in config.php before proceeding.';
$lang['search_attrs_wrong_count'] = 'Your config.php has an error. The number of attributes in $search_attributes and $search_attributes_display is different';
$lang['mass_deleting'] = 'Mass Deleting';
$lang['mass_delete_progress'] = 'Deletion progress on server "%s"';
$lang['malformed_mass_delete_array'] = 'Malformed mass_delete array.';
@ -564,20 +564,14 @@ $lang['no_rdn_change'] = 'You did not change the RDN';
$lang['invalid_rdn'] = 'Invalid RDN value';
$lang['could_not_rename'] = 'Could not rename the entry';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin does not yet support PHP 5. You will likely encounter many weird problems if you continue.';
$lang['mismatched_search_attr_config'] = 'Your configuration has an error. $search_attributes must have the same number of attributes as $search_attributes_display.';
// Password checker
$lang['passwords_match'] = 'Passwords match!';
$lang['passwords_do_not_match'] = 'Passwords do not match!';
$lang['password_checker_tool'] = 'Password Checker Tool';
$lang['compare'] = 'Compare';
$lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'template';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'default template';
@ -586,8 +580,9 @@ $lang['user_account'] = 'User Account (posixAccount)';
$lang['address_book_inet'] = 'Address Book Entry (inetOrgPerson)';
$lang['address_book_moz'] = 'Address Book Entry (mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab User Entry';
$lang['organizational_unit'] = 'Organizational Unit';
$lang['organizational_role'] = 'Organizational Role';
$lang['organizational_unit'] = 'Organisational Unit';
$lang['new_organizational_unit'] = 'New Organisational Unit';
$lang['organizational_role'] = 'Organisational Role';
$lang['posix_group'] = 'Posix Group';
$lang['samba_machine'] = 'Samba NT Machine';
$lang['samba3_machine'] = 'Samba 3 NT Machine';
@ -634,6 +629,7 @@ $lang['t_first_name'] = 'First name';
$lang['t_last_name'] = 'Last name';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_state'] = 'State';
$lang['t_common_name'] = 'Common name';
$lang['t_user_name'] = 'User Name';
$lang['t_password'] = 'Password';
@ -644,6 +640,7 @@ $lang['t_uid_number'] = 'UID Number';
$lang['t_auto_det'] = '(automatically determined)';
$lang['t_group'] = 'Group';
$lang['t_gid_number'] = 'GID Number';
$lang['t_uid'] = 'User ID';
$lang['t_err_passwords'] = 'Your passwords don\'t match. Please go back and try again.';
$lang['t_err_field_blank'] = 'You cannot leave the %s blank. Please go back and try again.';
$lang['t_err_field_num'] = 'You can only enter numeric values for the %s field. Please go back and try again.';
@ -651,10 +648,14 @@ $lang['t_err_bad_container'] = 'The container you specified (%s) does not exist.
$lang['t_confirm_account_creation'] = 'Confirm account creation';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'Create Account';
$lang['t_verify'] = 'Verify';
// New Group (Posix)
$lang['t_new_posixgroup'] = 'New Posix Group';
// New Address Template
$lang['t_new_address'] = 'New Address Book Entry';
$lang['t_organization'] = 'Organization';
$lang['t_organization'] = 'Organisation';
$lang['t_address'] = 'Address';
$lang['t_city'] = 'City';
$lang['t_postal_code'] = 'Postal code';
@ -670,5 +671,24 @@ $lang['t_create_address'] = 'Create Address';
// default template
$lang['t_check_pass'] = 'Check password...';
$lang['t_auto_submit'] = '(Auto evalutated on submission.)';
// compare form
$lang['compare'] = 'Compare';
$lang['comparing'] = 'Comparing the following DNs';
$lang['compare_dn'] = 'Compare another DN with';
$lang['with'] = 'with ';
$lang['compf_source_dn'] = 'Source DN';
$lang['compf_dn_tooltip'] = 'Compare this DN with another';
$lang['switch_entry'] = 'Switch Entry';
$lang['no_value'] = 'No Value';
$lang['compare_with'] = 'Compare with another entry';
$lang['need_oclass'] = 'You need one of the following ObjectClass(es) to add this attribute %s.';
// Time out page
$lang['session_timed_out_1'] = 'Your Session timed out after';
$lang['session_timed_out_2'] = 'min. of inactivity. You have been automatically logged out.';
$lang['log_back_in'] = 'To log back in please click on the following link:';
$lang['session_timed_out_tree'] = '(Session timed out. Automatically logged out.)';
$lang['timeout_at'] = 'Inactivity will log you off at %s';
?>

View File

@ -1,28 +1,37 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/es.php,v 1.14 2004/06/07 13:01:29 uugdave Exp $
/*
* Spanish (es_ES) translation file for phpLDAPadmin
*
* Date: 02/05/2005
* Source: CVS snapshot of en.php as of 02/05/2005
* Translator: Miguelanxo Otero Salgueiro <miguelanxo@telefonica.net>
*/
// Search form
$lang['simple_search_form_str'] = 'Formulario de búsqueda sencilla';
$lang['advanced_search_form_str'] = 'Formulario de búsqueda avanzada';
$lang['server'] = 'Servidor';
$lang['search_for_entries_whose'] = 'Buscar objetos los cuales';
$lang['base_dn'] = 'DN Base';
$lang['search_scope'] = 'Alcance de la búsqueda';
$lang['search_ filter'] = 'Filtro de Búsqueda';
$lang['search_for_entries_whose'] = 'Buscar objetos que';
$lang['base_dn'] = 'DN base';
$lang['search_scope'] = 'Ámbito de búsqueda';
$lang['show_attributes'] = 'Mostrar atributos';
$lang['attributes'] = 'Atributos';
$lang['Search'] = 'Buscar';
$lang['equals'] = 'equivale';
$lang['starts_with'] = 'comienza con';
$lang['contains'] = 'contiene';
$lang['ends_with'] = 'termina con';
$lang['sounds_like'] = 'suena como';
$lang['predefined_search_str'] = 'Seleccionar una búsqueda predefinida';
$lang['predefined_searches'] = 'Búsquedas predefinidas';
$lang['no_predefined_queries'] = 'No hay ninguna búsqueda predefinida en config.php.';
$lang['export_results'] = 'exportar resultados';
$lang['unrecoginzed_search_result_format'] = 'Formato de resultado de búsqueda no reconocido: %s';
$lang['format'] = 'Formato';
$lang['list'] = 'lista';
$lang['table'] = 'tabla';
$lang['bad_search_display'] = 'Su config.php especifica un valor no válido para $default_search_display: %s. Por favor, arréglelo';
$lang['page_n'] = 'Página %d';
$lang['no_results'] = 'La búsqueda no ha encontrado resultados.';
// Tree browser
$lang['request_new_feature'] = 'Pedir funcionalidad';
$lang['see_open_requests'] = 'Ver las peticiones';
$lang['report_bug'] = 'Reportar un error';
$lang['see_open_bugs'] = 'Ver los errores';
$lang['request_new_feature'] = 'Solicitar una nueva funcionalidad';
$lang['report_bug'] = 'Informar de un error';
$lang['schema'] = 'esquema';
$lang['search'] = 'buscar';
$lang['create'] = 'crear';
@ -30,313 +39,617 @@ $lang['info'] = 'info';
$lang['import'] = 'importar';
$lang['refresh'] = 'refrescar';
$lang['logout'] = 'salir';
$lang['create_new'] = 'Crear Nuevo Objeto';
$lang['view_schema_for'] = 'Ver esquema para';
$lang['refresh_expanded_containers'] = 'Refrescar todos los contenedores extendidos para';
$lang['create_new_entry_on'] = 'Crear nuevo objeto en';
$lang['view_server_info'] = 'Ver información del servidor';
$lang['import_from_ldif'] = 'Importar objetos de archivo LDIF';
$lang['logout_of_this_server'] = 'Salir de este servidor';
$lang['create_new'] = 'Crear nuevo objeto';
$lang['view_schema_for'] = 'Ver el esquema del';
$lang['refresh_expanded_containers'] = 'Refrescar todos los contenedores extendidos del';
$lang['create_new_entry_on'] = 'Crear un nuevo objeto en el';
$lang['new'] = 'nuevo';
$lang['view_server_info'] = 'Ver la información enviada por el servidor';
$lang['import_from_ldif'] = 'Importar desde un fichero LDIF';
$lang['logout_of_this_server'] = 'Desconectar del servidor';
$lang['logged_in_as'] = 'Conectado como: ';
$lang['read_only'] = 'inalterable';
$lang['could_not_determine_root'] = 'No se ha podido determinar la raiz del servidor LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece ser que el servidor LDAP se ha configurado para no revelar su raiz.';
$lang['please_specify_in_config'] = 'Por favor especifícala en el archivo config.php';
$lang['create_new_entry_in'] = 'Crear un nuevo objeto en';
$lang['login_link'] = 'Autenticación...';
$lang['this_base_dn_is_not_valid'] = 'Esta DN base no es válida.';
$lang['this_base_dn_does_not_exist'] = 'Este objeto no existe.';
$lang['read_only'] = 'sólo lectura';
$lang['read_only_tooltip'] = 'Este atributo ha sido marcado como de sólo lectura por el administrador de phpLDAPadmin';
$lang['could_not_determine_root'] = 'No se ha podido determinar la raíz de su árbol LDAP.';
$lang['ldap_refuses_to_give_root'] = 'Parece que el servidor LDAP ha sido configurado para no revelar su raíz.';
$lang['please_specify_in_config'] = 'Por favór, especifíquela en config.php';
$lang['create_new_entry_in'] = 'Crear nuevo objeto en';
$lang['login_link'] = 'Autentificación';
$lang['login'] = 'conectar';
$lang['base_entry_does_not_exist'] = 'Este objeto base no existe.';
$lang['create_it'] = '¿Crearlo?';
// Entry display
$lang['delete_this_entry'] = 'Borrar este objeto';
$lang['delete_this_entry_tooltip'] = 'Se tendrá que confirmar esta decision';
$lang['delete_this_entry_tooltip'] = 'Se le pedirá confirmación';
$lang['copy_this_entry'] = 'Copiar este objeto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto para otra localización, DN nuevo, o para otro servidor.';
$lang['export_to_ldif'] = 'Exportar archivo LDIF';
$lang['export_to_ldif_tooltip'] = 'Guardar archivo LDIF de este objeto';
$lang['export_subtree_to_ldif_tooltip'] = 'Guardar archivo LDIF de este objeto i todos sus objetos hijos';
$lang['export_subtree_to_ldif'] = 'Exportar archivo LDIF de sub-estructura';
$lang['export_mac'] = 'Avance de línea de Macintosh';
$lang['export_win'] = 'Avance de línea de Windows';
$lang['export_unix'] = 'Avance de línea de Unix';
$lang['create_a_child_entry'] = 'Crear objeto como hijo';
$lang['add_a_jpeg_photo'] = 'Agregar jpegPhoto';
$lang['copy_this_entry_tooltip'] = 'Copiar este objeto en otro sitio: un nuevo DN u otro servidor';
$lang['export'] = 'Exportar';
$lang['export_lcase'] = 'exportar';
$lang['export_tooltip'] = 'Exportar este objeto';
$lang['export_subtree_tooltip'] = 'Exportar este objeto y todos sus hijos';
$lang['export_subtree'] = 'Exportar subárbol';
$lang['create_a_child_entry'] = 'Crear un objeto hijo';
$lang['rename_entry'] = 'Renombrar objeto';
$lang['rename'] = 'Renombrar';
$lang['add'] = 'Agregar';
$lang['add'] = 'Añadir';
$lang['view'] = 'Ver';
$lang['add_new_attribute'] = 'Agregar nuevo atributo';
$lang['add_new_attribute_tooltip'] = 'Agregar nuevo atributo/valor a este objeto';
$lang['internal_attributes'] = 'Atributos Internos';
$lang['hide_internal_attrs'] = 'ocultar los atributos internos';
$lang['show_internal_attrs'] = 'mostrar els atributos internos';
$lang['internal_attrs_tooltip'] = 'Los atributos fijos automaticamente para el servidor';
$lang['entry_attributes'] = 'Atributos del objeto';
$lang['attr_name_tooltip'] = 'Haz click para ver la definicion del esquema para tipos de atributo \'%s\'';
$lang['click_to_display'] = 'Haz click para mostrar';
$lang['hidden'] = 'ocultado';
$lang['view_one_child'] = 'Ver 1 hijo';
$lang['view_children'] = 'Ver %s hijos';
$lang['add_new_attribute'] = 'Añadir atributo';
$lang['add_new_objectclass'] = 'Añadir ObjectClass';
$lang['hide_internal_attrs'] = 'Ocultar atributos internos';
$lang['show_internal_attrs'] = 'Mostrar atributos internos';
$lang['attr_name_tooltip'] = 'Haga click para ver el esquema del atributo de tipo \'%s\'';
$lang['none'] = 'ninguno';
$lang['save_changes'] = 'Guardar los cambios';
$lang['add_value'] = 'agregar valor';
$lang['add_value_tooltip'] = 'Agregar valor adicional a este atributo';
$lang['no_internal_attributes'] = 'No hay atributos internos';
$lang['no_attributes'] = 'Este objeto no tiene atributos';
$lang['save_changes'] = 'Guardar cambios';
$lang['add_value'] = 'añadir valor';
$lang['add_value_tooltip'] = 'Añadir un valor al atributo \'%s\'';
$lang['refresh_entry'] = 'Refrescar';
$lang['refresh_this_entry'] = 'Refrescar este objeto';
$lang['delete_hint'] = 'Pista: <b>Para borrar un atributo</b>, vacía el formulario de texto y haz click en Guardar.';
$lang['attr_schema_hint'] = 'Pista: <b>Para ver el esquema de un atributo</b>, haz click en el nombre del atributo.';
$lang['attrs_modified'] = 'Algunos atributos (%s) fueron modificados y estan remarcados más abajo.';
$lang['attr_modified'] = 'Un atributo (%s) fué modificado y está remarcado más abajo.';
$lang['viewing_read_only'] = 'Mostrando el objeto en modo de no alterar.';
$lang['change_entry_rdn'] = 'Modificar el RDN de este objeto';
$lang['no_new_attrs_available'] = 'No hay atributos nuevos disponibles para este objeto';
$lang['delete_hint'] = 'Nota: para borrar un atributo, borre su atributo y haga click en guardar.';
$lang['attr_schema_hint'] = 'Nota: Para ver el esquema de un atributo, haga click en su nombre.';
$lang['attrs_modified'] = 'Se han modificado algunos atributos (%s) que se encuentran destacados mas abajo.';
$lang['attr_modified'] = 'Se ha modificado algún atributo (%s) que se encuentra destacado más abajo.';
$lang['viewing_read_only'] = 'Nota: Modo de sólo lectura.';
$lang['no_new_attrs_available'] = 'no hay nuevos atributos en este objeto';
$lang['no_new_binary_attrs_available'] = 'no hay nuevos atributos binarios en este objeto';
$lang['binary_value'] = 'Valor binario';
$lang['add_new_binary_attr'] = 'Agregar valor binario';
$lang['add_new_binary_attr_tooltip'] = 'Agregar atributo/valor binario de un archivo';
$lang['alias_for'] = '%s es sinónimo para %s';
$lang['download_value'] = 'Descargar valor';
$lang['delete_attribute'] = 'Borrar atributo';
$lang['true'] = 'verdad';
$lang['add_new_binary_attr'] = 'Añadir atributo binario';
$lang['alias_for'] = 'Nota: \'%s\' es un alias de \'%s\'';
$lang['required_for'] = 'Atributo requerido para la(s) clase(s) de objeto %s';
$lang['download_value'] = 'descargar valor';
$lang['delete_attribute'] = 'borrar atributo';
$lang['true'] = 'verdadero';
$lang['false'] = 'falso';
$lang['none_remove_value'] = 'ningo, borrar valor';
$lang['really_delete_attribute'] = 'Borrar realmente el atributo?';
$lang['none_remove_value'] = 'ninguno, borrar valor';
$lang['really_delete_attribute'] = '¿Borrar realmente el atributo';
$lang['add_new_value'] = 'Añadir valor';
// Schema browser
$lang['the_following_objectclasses'] = 'Los siguientes <b>ObjectClass</b> están presentes en este servidor LDAP.';
$lang['the_following_attributes'] = 'Los siguientes <b>attributeTypes</b> están presentes en este servidor LDAP.';
$lang['the_following_matching'] = 'Los siguientes <b>matching rules</b> están presentes en este servidor LDAP.';
$lang['the_following_syntaxes'] = 'Los siguientes <b>sintaxis</b> están presentes en este servidor LDAP.';
$lang['jump_to_objectclass'] = 'Saltar a una ObjectClass';
$lang['jump_to_attr'] = 'Saltar a un atributo';
$lang['schema_for_server'] = 'Esquema del servidor ';
$lang['required_attrs'] = 'Atributos Requeridos (MUST)';
$lang['optional_attrs'] = 'Atributos Opcionales (MAY)';
$lang['the_following_objectclasses'] = 'El servidor LDAP soporta las siguientes clases de objeto:';
$lang['the_following_attributes'] = 'El servidor LDAP soporta los siguientes tipos de atributo:';
$lang['the_following_matching'] = 'El servidor LDAP soporta las siguientes reglas de coincidencia:';
$lang['the_following_syntaxes'] = 'El servidor LDAP soporta las siguientes sintaxis:';
$lang['schema_retrieve_error_1']='El servidor LDAP no soporta el protocolo LDAP en su totalidad.';
$lang['schema_retrieve_error_2']='Su versión de PHP no realiza la petición correctamente.';
$lang['schema_retrieve_error_3']='O el phpLDAPadmin no sabe como obtener el esquema del servidor.';
$lang['jump_to_objectclass'] = 'Ir a la clase de objeto';
$lang['view_schema_for_oclass'] = 'Ver la descripción del esquema para esta clase de objeto.';
$lang['jump_to_attr'] = 'Ir al tipo de atributo';
$lang['jump_to_matching_rule'] = 'Ir a la regla de coincidencia';
$lang['schema_for_server'] = 'Esquema del servidor';
$lang['required_attrs'] = 'Atributos requeridos';
$lang['required'] = 'requerido';
$lang['optional_attrs'] = 'Atributos opcionales';
$lang['optional_binary_attrs'] = 'Atributos binarios opcionales';
$lang['OID'] = 'OID';
$lang['aliases']='Alias';
$lang['desc'] = 'Descripción';
$lang['name'] = 'Nom';
$lang['is_obsolete'] = 'Esta ObjectClass es <b>obsoleta</b>';
$lang['inherits'] = 'Hereda';
$lang['jump_to_this_oclass'] = 'Saltar a esta ObjectClass';
$lang['matching_rule_oid'] = 'OID de Matching Rule';
$lang['syntax_oid'] = 'OID de Sintaxi';
$lang['not_applicable'] = 'no es aplicable';
$lang['not_specified'] = 'no especificada';
$lang['no_description']='sin descripción';
$lang['name'] = 'Nombre';
$lang['equality']='Igualdad';
$lang['is_obsolete'] = 'Esta clase de objeto es obsoleta.';
$lang['inherits'] = 'Hereda de';
$lang['inherited_from'] = 'Heredado de';
$lang['parent_to'] = 'Padre de';
$lang['jump_to_this_oclass'] = 'Ir a la definición de esta clase de objeto';
$lang['matching_rule_oid'] = 'OID de la regla de coincidencia';
$lang['syntax_oid'] = 'OID de sintaxis';
$lang['not_applicable'] = 'no aplicable';
$lang['not_specified'] = 'no especificado';
$lang['character'] = 'carácter';
$lang['characters'] = 'caracteres';
$lang['used_by_objectclasses'] = 'Usado por la clase de objeto';
$lang['used_by_attributes'] = 'Usado por los atributos';
$lang['maximum_length'] = 'Longitud máxima';
$lang['attribute_types']='Tipos de atributo';
$lang['syntaxes'] = 'Sintaxis';
$lang['matchingrules'] = 'Reglas de coincidencia';
$lang['oid'] = 'OID';
$lang['obsolete'] = 'Obsoleto';
$lang['ordering'] = 'Ordenación';
$lang['substring_rule'] = 'Regla de subcadena';
$lang['single_valued'] = 'Univaludado';
$lang['collective'] = 'Colectivo';
$lang['user_modification'] = 'Modificado por el usuario';
$lang['usage'] = 'Uso';
$lang['could_not_retrieve_schema_from'] = 'No se ha podido obtener el esquema de';
$lang['type'] = 'Tipo';
$lang['no_such_schema_item'] = 'No hay tal ítem en el esquema: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Entrada \'%s\' borrada correctamente.';
$lang['you_must_specify_a_dn'] = 'Tienes que especificar un DN';
$lang['could_not_delete_entry'] = 'No he podido borrar la entrada: %s';
$lang['entry_deleted_successfully'] = 'Objeto %s borrado correctamente.';
$lang['you_must_specify_a_dn'] = 'Debe especificar un DN';
$lang['could_not_delete_entry'] = 'No se ha podido borrar el objeto %s';
$lang['no_such_entry'] = 'No hay tal objeto %s';
$lang['delete_dn'] = 'Borrar %s';
$lang['permanently_delete_children'] = '¿Borrar también todos los hijos?';
$lang['entry_is_root_sub_tree'] = 'Este objeto es la raíz de un subárbol que contiene %s objetos.';
$lang['view_entries'] = 'ver objetos';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin puede borrar recursivamente este objeto y sus %s hijos. Vea más abajo la lista de objetos que se borrarán ahora. ¿Todavía quiere hacerlo?';
$lang['confirm_recursive_delete_note'] = 'Nota: es potencialmente peligroso y debe hacerlo a su cuenta y riesgo. Esta operación NO puede deshacerse. Tome en consideración alias, referencias y otras cosas que puedan causar problemas.';
$lang['delete_all_x_objects'] = 'Borrar los %s objetos';
$lang['recursive_delete_progress'] = 'Progreso de la borración recursiva';
$lang['entry_and_sub_tree_deleted_successfully'] = 'Objeto %s y su subárbol borrado correctamente.';
$lang['failed_to_delete_entry'] = 'Error al borrar el objeto %s';
$lang['list_of_entries_to_be_deleted'] = 'Lista de objetos a borrar:';
$lang['sure_permanent_delete_object']='¿Está seguro de querer borrar este objeto?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = 'El atributo "%s" está marcado como de sólo lectura en la configuración de phpLDAPadmin.';
$lang['no_attr_specified'] = 'No se ha especificado ningún nombre de atributo.';
$lang['no_dn_specified'] = 'No se ha especificado ningún DN';
// Adding attributes
$lang['left_attr_blank'] = 'Ha dejado en blanco el valor del atributo. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['failed_to_add_attr'] = 'Error al añadir atributo.';
$lang['file_empty'] = 'El fichero que ha escogido no existe o está vacío. Por favor vuelva atrás e inténtelo de nuevo.';
$lang['invalid_file'] = 'Error de seguridad: El fichero que está enviando puede ser malicioso.';
$lang['warning_file_uploads_disabled'] = 'Su configuración del PHP ha desactivado la recepción de ficheros. Por favor revise php.ini antes de continuar.';
$lang['uploaded_file_too_big'] = 'El fichero que está enviando es demasiado grande. Por favor revise el ajuste "upload_max_size" en php.ini.';
$lang['uploaded_file_partial'] = 'El fichero que ha seleccionado sólo se ha recibido parcialmente debido a un error de red.';
$lang['max_file_size'] = 'Tamaño máximo de fichero: %s';
// Updating values
$lang['modification_successful'] = '¡Modificación realizada correctamente!';
$lang['change_password_new_login'] = 'Como ha cambiado su contraseña, debe conectarse de nuevo empleando la nueva.';
// Adding objectClass form
$lang['new_required_attrs'] = 'Nuevos atributos requeridos';
$lang['requires_to_add'] = 'Esta acción exige que se agreguen';
$lang['requires_to_add'] = 'Esta acción requiere que añada';
$lang['new_attributes'] = 'nuevos atributos';
$lang['new_required_attrs_instructions'] = 'Instrucciones: Para agregar esta ObjectClass a este objeto, se tiene que especificar';
$lang['that_this_oclass_requires'] = 'que este ObjectClass requiere. Se puede hacer con este formulario.';
$lang['add_oclass_and_attrs'] = 'Agregar ObjectClass y Atributos';
$lang['new_required_attrs_instructions'] = 'Instrucciones: Para poder añadir esta clase a este objeto, debe especificar';
$lang['that_this_oclass_requires'] = 'que esta clase requiere. Puede hacerlo en este formulario.';
$lang['add_oclass_and_attrs'] = 'Añadir clase de objeto y atributos';
$lang['objectclasses'] = 'Clases de objeto';
// General
$lang['chooser_link_tooltip'] = 'Haz click para seleccionar un objeto graficamente';
$lang['no_updates_in_read_only_mode'] = 'No se puede modificar el objeto si el servidor está operando en modo inalterable.';
$lang['bad_server_id'] = 'El identificador de servidor está mal';
$lang['not_enough_login_info'] = 'No tengo suficiente información para conectar al servidor. Por favor configura correctamente el archivo config.php';
$lang['could_not_connect'] = 'No se ha podido conectar al servidor LDAP';
$lang['could_not_perform_ldap_mod_add'] = 'No se ha podido ejecutar la operación del ldap_mod_add.';
$lang['bad_server_id_underline'] = 'El identificador del servidor está mal: ';
$lang['success'] = 'Exito';
$lang['chooser_link_tooltip'] = 'Haga click en el diálogo emergente para seleccionar un DN de forma gráfica';
$lang['no_updates_in_read_only_mode'] = 'No puede realizar cambios cuando el servidor está funcionando en modo de sólo lectura';
$lang['bad_server_id'] = 'Identificador de servidor no válido';
$lang['not_enough_login_info'] = 'No hay información suficiente para conectar con el servidor. Por favor, revise su configuración.';
$lang['could_not_connect'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'No se ha podido conectar con "%s" en el puerto "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'No se ha podido realizar la operación "ldap_mod_add".';
$lang['bad_server_id_underline'] = 'Identificador de servidor no válido: ';
$lang['success'] = 'Éxito';
$lang['home'] = 'Inicio';
$lang['help'] = 'Ayuda';
$lang['success'] = 'Éxito';
$lang['server_colon_pare'] = 'Servidor: ';
$lang['look_in'] = 'Buscando a: ';
$lang['missing_server_id_in_query_string'] = 'No está presente el identificador del servidor en la URL';
$lang['missing_dn_in_query_string'] = 'No está presente el DN en la URL';
$lang['back_up_p'] = 'Volver a...';
$lang['no_entries'] = 'no hay entradas';
$lang['not_logged_in'] = 'No estás autenticado';
$lang['could_not_det_base_dn'] = 'No he podido determinar la base DN';
$lang['look_in'] = 'Buscando en: ';
$lang['missing_server_id_in_query_string'] = '¡No se ha especificado ningún servidor en la petición!';
$lang['missing_dn_in_query_string'] = '¡No se ha especificado ningún DN en la petición!';
$lang['back_up_p'] = 'Volver';
$lang['no_entries'] = 'no hay objetos';
$lang['not_logged_in'] = 'No está conectado';
$lang['could_not_det_base_dn'] = 'No se puede determinar el DN base';
$lang['please_report_this_as_a_bug']='Por favor informe de este error.';
$lang['reasons_for_error']='Esto puede suceder por varias razones, las más probables son:';
$lang['yes']='Sí';
$lang['no']='No';
$lang['go']='Ir';
$lang['delete']='Borrar';
$lang['back']='Atrás';
$lang['object']='objeto';
$lang['delete_all']='Borrar todo';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'nota';
$lang['bug'] = 'error';
$lang['warning'] = 'aviso';
$lang['light'] = 'bombilla'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Proceder &gt;&gt;';
// Add value form
$lang['add_new'] = 'Agregar';
$lang['value_to'] = 'valor a';
$lang['server'] = 'Servidor';
$lang['add_new'] = 'Añadir';
$lang['value_to'] = 'valor de';
$lang['distinguished_name'] = 'Nombre distinguido';
$lang['current_list_of'] = 'La lista actual de';
$lang['values_for_attribute'] = 'valores para el atributo';
$lang['inappropriate_matching_note'] = 'Nota: Sino has configurado una regla \'EQUALITY\' en el servidor LDAP, recibirás un error \'inappropriate matching\'';
$lang['enter_value_to_add'] = 'Proveer el valor para agregar: ';
$lang['new_required_attrs_note'] = 'Nota: Es posible que se requiera agregar nuevos atributos para satisfacer los requisitos de esta ObjectClass';
$lang['syntax'] = 'Sintaxi';
$lang['current_list_of'] = 'Lista actual de';
$lang['values_for_attribute'] = 'valores del atributo';
$lang['inappropriate_matching_note'] = 'Nota: Si no ha creado una regla de igualdad en el servidor LDAP para este atributo, obtendrá un error de coincidencia inapropiada ("inappropriate matching").';
$lang['enter_value_to_add'] = 'Introduzca el valor a añadir:';
$lang['new_required_attrs_note'] = 'Nota: puede que tenga que introducir nuevos atributos que esta clase de objeto requiera';
$lang['syntax'] = 'Sintaxis';
//copy.php
$lang['copy_server_read_only'] = 'No se pueden realizar las modificaciones si el servidor está operando en modo inalterable';
$lang['copy_dest_dn_blank'] = 'No se ha rellenado el formulario de DN.';
$lang['copy_dest_already_exists'] = 'La entrada de destino (%s) encara existe.';
$lang['copy_dest_container_does_not_exist'] = 'El contenedor de destino (%s) no existe.';
$lang['copy_source_dest_dn_same'] = 'El DN de la fuente y el DN de destino son los mismos.';
$lang['copy_server_read_only'] = 'No puede realizar modificaciones cuando el servidor está en modo de sólo lectura';
$lang['copy_dest_dn_blank'] = 'Ha dejado el campo DN en blanco.';
$lang['copy_dest_already_exists'] = 'El objeto destino (%s) ya existe.';
$lang['copy_dest_container_does_not_exist'] = 'El contenedor destino (%s) no existe.';
$lang['copy_source_dest_dn_same'] = 'El DN origen y destino son iguales.';
$lang['copy_copying'] = 'Copiando ';
$lang['copy_recursive_copy_progress'] = 'El progreso de la copia recurrente';
$lang['copy_building_snapshot'] = 'Construyendo la \'foto\' del arbol para copiar... ';
$lang['copy_successful_like_to'] = 'Exito! Deseas ';
$lang['copy_view_new_entry'] = 'Ver el nuevo objeto?';
$lang['copy_failed'] = 'Error al copiar DN: ';
$lang['copy_recursive_copy_progress'] = 'Progreso de la copia recursiva';
$lang['copy_building_snapshot'] = 'Creando imagen del árbol a copiar... ';
$lang['copy_successful_like_to'] = '¡Copia correcta! ¿Le gustaría ';
$lang['copy_view_new_entry'] = 'ver el nuevo objeto';
$lang['copy_failed'] = 'Error al copiar el DN: ';
//edit.php
$lang['missing_template_file'] = 'Error: falta la plantilla, ';
$lang['using_default'] = 'Usando el archivo por defecto.';
$lang['missing_template_file'] = 'Aviso: falta el fichero de plantilla, ';
$lang['using_default'] = 'usando la plantilla por defecto.';
$lang['template'] = 'Plantilla';
$lang['must_choose_template'] = 'Debes escoger una plantilla';
$lang['invalid_template'] = '%s no es una plantilla válida';
$lang['using_template'] = 'usando plantilla';
$lang['go_to_dn'] = 'Ir a %s';
$lang['structural_object_class_cannot_remove'] = 'Esta es una clase de objeto estructural y no se puede eliminar.';
$lang['structural'] = 'estructural';
//copy_form.php
$lang['copyf_title_copy'] = 'Copiar ';
$lang['copyf_to_new_object'] = 'a un objeto nuevo';
$lang['copyf_dest_dn'] = 'DN de destino';
$lang['copyf_dest_dn_tooltip'] = 'El DN entero de la nueva entrada a ser creada quan se copie la entrada fuente';
$lang['copyf_dest_server'] = 'Servidor de destino';
$lang['copyf_note'] = 'Nota: Copiar entre dos servidores funciona solamente si no hay violaciones del esquema.';
$lang['copyf_recursive_copy'] = 'Borrar todos los hijos recurentemente también?';
$lang['copyf_dest_dn'] = 'DN destino';
$lang['copyf_dest_dn_tooltip'] = 'El DN completo del objeto a crear';
$lang['copyf_dest_server'] = 'Servidor destino';
$lang['copyf_note'] = 'Nota: Sólo se puede copiar entre servidores diferentes cuando no hay violaciones de esquema';
$lang['copyf_recursive_copy'] = 'También copiar recursivamente todos los hijos de este objeto.';
$lang['recursive_copy'] = 'Copia recursiva';
$lang['filter'] = 'Filtro';
$lang['search_filter'] = 'Filtro de búsqueda';
$lang['filter_tooltip'] = 'Cuando se realice una copia recursiva, copiar sólo los objetos que superen el filtrado';
//create.php
$lang['create_required_attribute'] = 'Te has dejado el valor en blanco del atributo requerido <b>%s</b>.';
$lang['create_redirecting'] = 'Redirigiendo';
$lang['create_here'] = 'aquí';
$lang['create_could_not_add'] = 'No he podido agregar el objeto al servidor LDAP.';
$lang['create_required_attribute'] = 'Ha dejado el valor del atributo requerido (%s) en blanco.';
$lang['redirecting'] = 'Redirigiendo...';
$lang['here'] = 'aquí';
$lang['create_could_not_add'] = 'No se ha podido añadir el objeto al servidor LDAP.';
//create_form.php
$lang['createf_create_object'] = 'Crear Objeto';
$lang['createf_choose_temp'] = 'Escoge una plantilla';
$lang['createf_select_temp'] = 'Selecciona una plantilla para al proceso de creación';
$lang['createf_proceed'] = 'Proceder';
$lang['createf_create_object'] = 'Crear objeto';
$lang['createf_choose_temp'] = 'Escoja una plantilla';
$lang['createf_select_temp'] = 'Seleccione una plantilla para el proceso de creación';
$lang['save_as_file'] = 'Guardar como fichero';
$lang['rdn_field_blank'] = 'Ha dejado el campo RDN en blanco.';
$lang['container_does_not_exist'] = 'El contenedor que ha especificado (%s) no existe. Por favor inténtelo de nuevo.';
$lang['no_objectclasses_selected'] = 'No ha seleccionado ninguna clase para este objeto. Por favor, vuelva atrás y hágalo ahora.';
$lang['hint_structural_oclass'] = 'Nota: Debe escoger al menos una clase de objeto estructural';
//creation_template.php
$lang['ctemplate_on_server'] = 'Al servidor';
$lang['ctemplate_no_template'] = 'No se ha especificado ninguna plantilla en las variables del POST.';
$lang['ctemplate_config_handler'] = 'Tu configuración especifica un manejador de';
$lang['ctemplate_handler_does_not_exist'] = 'para esta plantilla. Pero este manejador no existe en el directorio \'templates/creation\'.';
$lang['ctemplate_on_server'] = 'En el servidor';
$lang['ctemplate_no_template'] = 'No se ha especificado ninguna plantilla en las variables POST.';
$lang['template_not_readable'] = 'Su configuración especifica un fichero "%s" para esta plantilla pero dicho fichero no se puede leer debido a que sus permisos son demasiado restrictivos.';
$lang['template_does_not_exist'] = 'Su configuración especifica un fichero "%s" para esta plantilla pero dicho fichero no existe en el directorio templates/creation.';
$lang['create_step1'] = 'Paso 1 de 2: Nombre y clase(s) de objeto';
$lang['create_step2'] = 'Paso 2 de 2: Especifique attributos y valores';
$lang['relative_distinguished_name'] = 'Nombre Distinguido Relativo (RDN)';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(ejemplo: cn=nuevaPersona)';
$lang['container'] = 'Contenedor';
// search.php
$lang['you_have_not_logged_into_server'] = 'Aún no te has autenticado en ell servidor seleccionado, no puedes hacer ninguna búsqueda.';
$lang['click_to_go_to_login_form'] = 'Hac click aquí para ir al formulario de autenticación';
$lang['unrecognized_criteria_option'] = 'Opcion de criterio desconocida: ';
$lang['if_you_want_to_add_criteria'] = 'Si quieres agregar tu propio criterio en la lista. Estate seguro de editar search.php para manejarlo. Saliendo.';
$lang['entries_found'] = 'Entrades encontradas: ';
$lang['filter_performed'] = 'Filtro realitzado: ';
$lang['search_duration'] = 'Búsqueda realitzada para phpLDAPadmin a';
$lang['you_have_not_logged_into_server'] = 'Todavía no ha conectado con el servidor, así que no puede realizar búsquedas.';
$lang['click_to_go_to_login_form'] = 'Pulse aquí para ir al formulario de conexión';
$lang['unrecognized_criteria_option'] = 'Criterio no reconocido: ';
$lang['if_you_want_to_add_criteria'] = 'Si quiere puede añadir su propios criterios a la lista. Asegúrese de editar search.php para manejarlos. Saliendo...';
$lang['entries_found'] = 'Objetos encontrados: ';
$lang['filter_performed'] = 'Filtrado realizado: ';
$lang['search_duration'] = 'Búsqueda realizada por phpLDAPadmin en';
$lang['seconds'] = 'segundos';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = 'El alcance en el que buscar';
$lang['scope_sub'] = 'Sub (todo el sub-arbol)';
$lang['scope_one'] = 'Uno (un nivel por debajo de la base)';
$lang['scope_base'] = 'Base (solo base dn)';
$lang['standard_ldap_search_filter'] = 'Filtro de búsqueda estándar de LDAP. Ejemplo: (&(sn=Smith)(givenname=David))';
$lang['scope_in_which_to_search'] = 'Ámbito de búsqueda';
$lang['scope_sub'] = 'Sub (subárbol completo)';
$lang['scope_one'] = 'One (un nivel bajo la base)';
$lang['scope_base'] = 'Base (sólo la base)';
$lang['standard_ldap_search_filter'] = 'Filtro de búsqueda LDAP estándar. Ejemplo: (&(sn=Picapiedra)(givenname=Pedro))';
$lang['search_filter'] = 'Filtro de búsqueda';
$lang['list_of_attrs_to_display_in_results'] = 'Una lista de atributos para mostrar los resultados (separados por comas)';
$lang['list_of_attrs_to_display_in_results'] = 'Lista de atributos para mostrar en los resultados (separados por comas)';
$lang['show_attributes'] = 'Mostrar atributos';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'Buscar entradas las cuales:';
$lang['equals'] = 'sea igual';
$lang['starts with'] = 'comience con';
$lang['search_for_entries_whose'] = 'Buscar entradas en las que';
$lang['equals'] = 'sea igual a';
$lang['starts with'] = 'comience por';
$lang['contains'] = 'contenga';
$lang['ends with'] = 'termine con';
$lang['ends with'] = 'acabe en';
$lang['sounds like'] = 'suene como';
$lang['predefined_search_str'] = 'o seleccione uno de esta lista';
// server_info.php
$lang['could_not_fetch_server_info'] = 'No se ha podido sacar información LDAP del servidor';
$lang['server_info_for'] = 'Información del servidor para: ';
$lang['server_reports_following'] = 'El servidor muestra la siguiente información sobre el mismo';
$lang['nothing_to_report'] = 'Este servidor no tiene nada a mostrar.';
$lang['could_not_fetch_server_info'] = 'No se ha podido obtener ninguna información del servidor LDAP. Esto puede deberse a este <a href="http://bugs.php.net/bug.php?id=29587">error</a> es su versión de PHP o quizás su servidor LDAP posee controles de acceso que privan a los clientes de acceso al RootDSE.';
$lang['server_info_for'] = 'Información sobre el servidor: ';
$lang['server_reports_following'] = 'El servidor LDAP envía la siguiente información:';
$lang['nothing_to_report'] = 'Este servidor no tiene nada sobre lo que informar.';
//update.php
$lang['update_array_malformed'] = 'el update_array está mal formado. Esto podría ser un error del phpLDAPadmin. Por favor reportalo.';
$lang['could_not_perform_ldap_modify'] = 'No he podido ejecutar la operación ldap_modify.';
$lang['update_array_malformed'] = 'El array update_array no está bien formado. Esto puede indicar un error de phpLDAPadmin. Por favor, informe de ello.';
$lang['could_not_perform_ldap_modify'] = 'No se ha podido realizar la operación "ldap_modify".';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Quieres hacer estos cambios?';
$lang['do_you_want_to_make_these_changes'] = '¿Quiere realizar estos cambios?';
$lang['attribute'] = 'Atributo';
$lang['old_value'] = 'Valor viejo';
$lang['new_value'] = 'Valor nuevo';
$lang['old_value'] = 'Valor anterior';
$lang['new_value'] = 'Nuevo valor';
$lang['attr_deleted'] = '[atributo borrado]';
$lang['commit'] = 'Cometer';
$lang['cancel'] = 'Cancelar';
$lang['you_made_no_changes'] = 'No has hecho ningún cambio';
$lang['you_made_no_changes'] = 'No ha realizado cambios';
$lang['go_back'] = 'Volver atrás';
// welcome.php
$lang['welcome_note'] = 'Usa el menú de la izquierda para navegar';
$lang['credits'] = "Créditos";
$lang['changelog'] = "Histórico de cambios";
$lang['documentation'] = "Documentación";
$lang['welcome_note'] = 'Use el menú de la izquierda para navegar';
$lang['credits'] = 'Creditos';
$lang['changelog'] = 'Lista de cambios';
$lang['donate'] = 'Donar';
$lang['pla_logo'] = 'logotipo de phpLDAPadmin';
// Donate.php
$lang['donation_instructions'] = 'Para donar fondos al proyecto phpLDAPadmin, use uno de los botones de abajo.';
$lang['donate_amount'] = 'Donar %s';
$lang['purge_cache'] = 'Borrar cachés';
$lang['no_cache_to_purge'] = 'No hay que borrar ningún caché.';
$lang['done_purging_caches'] = 'Se han borrado %s bytes de caché.';
$lang['purge_cache_tooltip'] = 'Se han borrado todos los datos en el caché de phpLDAPadmin, incluyendo los esquemas del servidor.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nombre de archivo inseguro: ';
$lang['no_such_file'] = 'Archivo inexistente: ';
$lang['unsafe_file_name'] = 'Nombre de fichero no seguro: ';
$lang['no_such_file'] = 'No hay tal fichero: ';
//function.php
$lang['auto_update_not_setup'] = 'Has activado los auto_uid_numbers para <b>%s</b> en tu configuración,
pero no has especificado el auto_uid_number_mechanism. Por favor soluciona
este problema.';
$lang['uidpool_not_set'] = 'Has especificado el <tt>auto_uid_number_mechanism</tt> como <tt>uidpool</tt>
en tu configuración para el servidor <b>%s</b>, pero no has especificado el
audo_uid_number_uid_pool_dn. Por favor especificalo antes de proceder.';
$lang['uidpool_not_exist'] = 'Parece ser que el uidPool que has especificado en tu configuración (<tt>%s</tt>)
$lang['auto_update_not_setup'] = 'Ha activado "auto_uid_numbers" para <b>%s</b> en su configuración,
pero no ha especificado el mecanismo "auto_uid_number_mechanism". Por favor, corrija este problema';
$lang['uidpool_not_set'] = 'Ha especificado el mecanismo "auto_uid_number_mechanism" como "uidpool"
en su configuración para el servidor <b>%s</b>, pero no ha especificado
"audo_uid_number_uid_pool_dn". Por favor, verifiquelo antes de continuar.';
$lang['uidpool_not_exist'] = 'Parece ser que el "uidPool" que ha especificado en su configuración ("%s")
no existe.';
$lang['specified_uidpool'] = 'Has especificado el <tt>auto_uid_number_mechanism</tt> como <tt>search</tt> en tu
configuración para el servidor <b>%s</b>, pero no has especificado el
<tt>auto_uid_number_search_base</tt>. Por favor especificalo antes de proceder.';
$lang['auto_uid_invalid_value'] = 'Has especificado un valor no válido para el auto_uid_number_mechanism (<tt>%s</tt>)
en tu configuración. Solo <tt>uidpool</tt> y <tt>search</tt> son válidos.
Por favor soluciona este problema.';
$lang['error_auth_type_config'] = 'Error: Tienes un error en tu archivo de configuración. Los dos únicos valores aceptados para
\'auth_type\' en la sección $servers son \'config\' y \'form\'. Tu has puesto \'%s\',
el cual no está aceptado. ';
$lang['php_install_not_supports_tls'] = 'Tu instalación de PHP no soporta TLS';
$lang['could_not_start_tls'] = 'No he podido iniciar el TLS.<br />Revisa tu configuración del servidor LDAP.';
$lang['auth_type_not_valid'] = 'Tienes un error en el archivo de configuración. auth_type de %s no es válido.';
$lang['ldap_said'] = '<b>LDAP dijo</b>: %s<br /><br />';
$lang['specified_uidpool'] = 'Ha especificado "auto_uid_number_mechanism" como "search" en la
configuración del servidor <b>%s</b>, pero no ha especificado
"auto_uid_number_search_base". Por favor, especifíquelo antes de continuar.';
$lang['auto_uid_invalid_credential'] = 'Imposible conectar con <b>%s</b> con sus credenciales "auto_uid". Por favor, verifique su fichero de configuración.';
$lang['bad_auto_uid_search_base'] = 'Su configuración de phpLDAPadmin especifica "auto_uid_search_base" como no válida para el servidor %s';
$lang['auto_uid_invalid_value'] = 'Ha especificado un valor no válido para el mecanismo "auto_uid_number_mechanism" ("%s")
en su configuración. Sólo son válidos "uidpool" y "search". Por favor, corrija este problema.';
$lang['error_auth_type_config'] = 'Error: Tiene un error en su fichero de configurción. Los tres únicos valores para "auth_type"
en la sección $servers son \'session\', \'cookie\', y \'config\'. Usted ha introducido \'%s\',
que no está permitido. ';
$lang['unique_attrs_invalid_credential'] = 'Imposible conectarse a <b>%s</b> con sus credenciales unique_attr. Por favor, revise su fichero de configuración.';
$lang['unique_attr_failed'] = 'Su intento de añadir <b>%s</b> (<i>%s</i>) a <br><b>%s</b><br> NO se ha permitido. Tal atributo/valor pertenece a otro objeto.<p>Probablemente desee <a href=\'%s\'>buscar</a> tal objeto.';
$lang['php_install_not_supports_tls'] = 'Su instalación de PHP no soporta TLS.';
$lang['could_not_start_tls'] = 'No se ha podido iniciar TLS. Por favor, revise su configuración LDAP.';
$lang['could_not_bind_anon'] = 'No se ha podido conectar con el servidor de forma anónima.';
$lang['could_not_bind'] = 'No se ha podido conectar con el servidor LDAP.';
$lang['anonymous_bind'] = 'Conexión anónima';
$lang['bad_user_name_or_password'] = 'Nombre de usuario o contraseña incorrectos. Por favor, inténtelo de nuevo.';
$lang['redirecting_click_if_nothing_happens'] = 'Redirigiendo... Pulse aquí si no sucede nada.';
$lang['successfully_logged_in_to_server'] = 'Ha conectado con el servidor <b>%s</b>.';
$lang['could_not_set_cookie'] = 'No se ha podido guardar la cookie.';
$lang['ldap_said'] = 'LDAP ha dicho: %s';
$lang['ferror_error'] = 'Error';
$lang['fbrowse'] = 'mostrar';
$lang['fbrowse'] = 'seleccionar';
$lang['delete_photo'] = 'Borrar foto';
$lang['install_not_support_blowfish'] = 'Tu instalación de PHP no soporta los tipos de encriptación blowfish.';
$lang['install_no_mash'] = 'Tu instalación de PHP no tiene la funcion mhash(). No puedo hacer hash SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto contiene errores<br />';
$lang['ferror_number'] = '<b>Error número</b>: %s <small>(%s)</small><br /><br />';
$lang['ferror_discription'] = '<b>Descripción</b>: %s <br /><br />';
$lang['ferror_number_short'] = '<b>Error número</b>: %s<br /><br />';
$lang['ferror_discription_short'] = '<b>Descripción</b>: (no hay descripción)<br />';
$lang['ferror_submit_bug'] = 'Es un error del phpLDAPadmin? Si así es, por favor <a href=\'%s\'>dínoslo</a>.';
$lang['ferror_unrecognized_num'] = 'Número de error desconocido: ';
$lang['install_not_support_blowfish'] = 'Su instalación de PHP no soporta encriptación blowfish.';
$lang['install_not_support_md5crypt'] = 'Su instalación de PHP no soporta encriptación md5crypt.';
$lang['install_no_mash'] = 'Su instalación de PHP no posee la función mhash(). No se pueden realizar hashes SHA.';
$lang['jpeg_contains_errors'] = 'La foto jpegPhoto contiene errores<br />';
$lang['ferror_number'] = 'Error número: %s (%s)';
$lang['ferror_discription'] = 'Descripción: %s <br /><br />';
$lang['ferror_number_short'] = 'Error número: %s<br /><br />';
$lang['ferror_discription_short'] = 'Descripción: (no existe descripción disponible)<br />';
$lang['ferror_submit_bug'] = '¿Es éste un error de phpLDAPadmin? Si es así, por favor <a href=\'%s\'>informe sobre ello</a>.';
$lang['ferror_unrecognized_num'] = 'Número de error no reconocido: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>Has encontrado un error menor del phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Archivo:</td>
<b>¡Ha encontrado un error no fatal en phpLDAPadmin!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>Fichero:</td>
<td><b>%s</b> línea <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versiones:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Servidor Web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Envía este error haciendo click aquí</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = 'Felicidades! Has encontrado un error en el phpLDAPadmin.<br /><br />
</td></tr><tr><td>Servidor web:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
Por favor, informe de este error pulsando aquí</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '¡Felicidades! Ha encontrado un error en phpLDAPadmin.<br /><br />
<table class=\'bug\'>
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Nivel:</td><td><b>%s</b></td></tr>
<tr><td>Archivo:</td><td><b>%s</b></td></tr>
<tr><td>Fichero:</td><td><b>%s</b></td></tr>
<tr><td>Línea:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Versión PLA:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>Verisón PLA:</td><td><b>%s</b></td></tr>
<tr><td>Versión PHP:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Servidor Web:</td><td><b>%s</b></td></tr>
<tr><td>Servidor web:</td><td><b>%s</b></td></tr>
</table>
<br />
Por favor envía este error haciendo click abajo!';
Por favor, informe sobre este error haciendo click más abajo!';
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importar archivo LDIF';
$lang['select_ldif_file'] = 'Selecciona un archivo LDIF:';
$lang['select_ldif_file_proceed'] = 'Proceder &gt;&gt;';
$lang['import_ldif_file_title'] = 'Importar fichero LDIF';
$lang['select_ldif_file'] = 'Seleccione un fichero LDIF:';
$lang['dont_stop_on_errors'] = 'Ignorar errores';
//ldif_import
$lang['add_action'] = 'Añadiendo...';
$lang['delete_action'] = 'Borrando...';
$lang['rename_action'] = 'Renombrando...';
$lang['modify_action'] = 'Modificando...';
$lang['warning_no_ldif_version_found'] = 'No se ha encontrado versión. Asumiendo 1.';
$lang['valid_dn_line_required'] = 'Se requiere una línea válida.';
$lang['missing_uploaded_file'] = 'Falta el fichero enviado.';
$lang['no_ldif_file_specified.'] = 'No se ha especificado un fichero LDIF. Por favor, inténtelo de nuevo.';
$lang['ldif_file_empty'] = 'El fichero LDIF enviado está vacío.';
$lang['empty'] = 'vacío';
$lang['file'] = 'Fichero';
$lang['number_bytes'] = '%s bytes';
$lang['failed'] = 'fallado';
$lang['ldif_parse_error'] = 'Error de parseado LDIF';
$lang['ldif_could_not_add_object'] = 'No he podido añadir el objeto:';
$lang['ldif_could_not_rename_object'] = 'No he podido renombrar el objeto:';
$lang['ldif_could_not_delete_object'] = 'No he podido borrar el objeto:';
$lang['ldif_could_not_modify_object'] = 'No he podido modificar el objeto:';
$lang['ldif_line_number'] = 'Linea Número:';
$lang['ldif_line'] = 'Linea:';
$lang['failed'] = 'Error';
$lang['ldif_parse_error'] = 'Error al parsear LDIF';
$lang['ldif_could_not_add_object'] = 'No se ha podido añadir objeto:';
$lang['ldif_could_not_rename_object'] = 'No se ha podido renombrar el objeto:';
$lang['ldif_could_not_delete_object'] = 'No se ha podido borrar el objeto:';
$lang['ldif_could_not_modify_object'] = 'No se ha podido modificar el objeto:';
$lang['ldif_line_number'] = 'Número de línea:';
$lang['ldif_line'] = 'Línea:';
// Exports
$lang['export_format'] = 'Formato de exportación';
$lang['line_ends'] = 'Fin de línea';
$lang['must_choose_export_format'] = 'Debe escoger un formato de exportación.';
$lang['invalid_export_format'] = 'Formato de exportación no válido';
$lang['no_exporter_found'] = 'No se ha encontrado ningún exportador válido.';
$lang['error_performing_search'] = 'Se ha encontrado un error al realizar la búsqueda.';
$lang['showing_results_x_through_y'] = 'Mostrando los resultados de %s a %s.';
$lang['searching'] = 'Buscando...';
$lang['size_limit_exceeded'] = 'Nota: se ha excedido el tiempo de búsqueda.';
$lang['entry'] = 'Objeto';
$lang['ldif_export_for_dn'] = 'Exportación LDIF de: %s';
$lang['generated_on_date'] = 'Generado por phpLDAPadmin el %s';
$lang['total_entries'] = 'Entradas totales';
$lang['dsml_export_for_dn'] = 'Exportación DSLM de: %s';
$lang['include_system_attrs'] = 'Incluir atributos de sistema';
$lang['csv_spreadsheet'] = 'CSV (Hoja de cálculo)';
// logins
$lang['could_not_find_user'] = 'No se ha podido encontrar el usuario "%s"';
$lang['password_blank'] = 'Ha dejado la contraseña en blanco.';
$lang['login_cancelled'] = 'Conexión cancelada.';
$lang['no_one_logged_in'] = 'No hay nadie conectado con el servidor.';
$lang['could_not_logout'] = 'No se ha podido desconectar.';
$lang['unknown_auth_type'] = 'Tipo de autentificación "auth_type" desconocido: %s';
$lang['logged_out_successfully'] = 'Se ha desconectado del servidor <b>%s</b>';
$lang['authenticate_to_server'] = 'Autentificación del servidor %s';
$lang['warning_this_web_connection_is_unencrypted'] = 'Aviso: Esta conexión no está encriptada.';
$lang['not_using_https'] = 'No está usando \'https\'. El navegador web enviará su información sin encriptar.';
$lang['login_dn'] = 'Login';
$lang['user_name'] = 'Nombre de usuario';
$lang['password'] = 'Contraseña';
$lang['authenticate'] = 'Entrar';
// Entry browser
$lang['entry_chooser_title'] = 'Selector de objetos';
// Index page
$lang['need_to_configure'] = 'Debe configurar phpLDAPadmin, editando el fichero \'config.php\'. Se proporciona un fichero de configuración de ejemplo en \'config.php.example\'';
// Mass deletes
$lang['no_deletes_in_read_only'] = 'No se permiten borrados en modo de sólo lectura.';
$lang['error_calling_mass_delete'] = 'Error al llamar a "mass_delete.php". Falta la variable POST "mass_delete".';
$lang['mass_delete_not_array'] = 'La variable POST "mass_delete" no es un array.';
$lang['mass_delete_not_enabled'] = 'No está activado el borrado masivo. Por favor, actívelo en config.php antes de continuar.';
$lang['search_attrs_wrong_count'] = 'Su config.php tiene un error. El número de atributos en $search_attributes y $search_attributes_display es diferente';
$lang['mass_deleting'] = 'Efectuando borrado masivo';
$lang['mass_delete_progress'] = 'Borrado en progreso en el servidor "%s"';
$lang['malformed_mass_delete_array'] = 'Array de borrado masivo mal formado.';
$lang['no_entries_to_delete'] = 'No ha seleccionado objetos para borrar.';
$lang['deleting_dn'] = 'Borrando %s';
$lang['total_entries_failed'] = 'No han podido borrarse %s de %s objetos.';
$lang['all_entries_successful'] = 'Todos los objetos han sido borrados.';
$lang['confirm_mass_delete'] = 'Confirmar borrado masivo de %s objetos en el servidor %s';
$lang['yes_delete'] = '¡Sí, borrar!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = 'No puede renombrar un objeto que tenga hijos';
$lang['no_rdn_change'] = 'No ha cambiado el RDN';
$lang['invalid_rdn'] = 'Valor RDN no válido';
$lang['could_not_rename'] = 'No se ha podido renombrar el objeto';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin no soporta todavía PHP 5. Si continúa encontrará probablemente extraños errores.';
$lang['mismatched_search_attr_config'] = 'Su configuración tiene un error. $search_attributes debe tener el mismo número de atributos que $search_attributes_display.';
// Password checker
$lang['passwords_match'] = '¡Las contraseñas coinciden!';
$lang['passwords_do_not_match'] = '¡Las contraseñas no coinciden!';
$lang['password_checker_tool'] = 'Herramienta de comprobación de contraseñas';
$lang['compare'] = 'Comparar';
$lang['to'] = 'con';
// Templates
$lang['using'] = 'Usando la';
$lang['template'] = 'plantilla';
$lang['switch_to'] = 'Puede cambair a la ';
$lang['default_template'] = 'plantilla por defecto';
// template_config
$lang['user_account'] = 'Cuenta de Usuario (posixAccount)';
$lang['address_book_inet'] = 'Entrada del libro de direcciones (inetOrgPerson)';
$lang['address_book_moz'] = 'Entrada del libro de direcciones (mozillaOrgPerson)';
$lang['kolab_user'] = 'Entrada de Usuario Kolab';
$lang['organizational_unit'] = 'Unidad Organizativa';
$lang['organizational_role'] = 'Rol Organizativo';
$lang['posix_group'] = 'Grupo Posix';
$lang['samba_machine'] = 'Ordenador con Samba NT';
$lang['samba3_machine'] = 'Ordenador con Samba 3 NT';
$lang['samba_user'] = 'Usuario de Samba';
$lang['samba3_user'] = 'Usuario de Samba 3';
$lang['samba3_group'] = 'Mapeo de Grupo de Samba 3';
$lang['dns_entry'] = 'Entrada DNS';
$lang['simple_sec_object'] = 'Objeto de Seguridad Simple';
$lang['courier_mail_account'] = 'Cuenta de Correo Courier';
$lang['courier_mail_alias'] = 'Alias de Correo Courier';
$lang['ldap_alias'] = 'Alias de LDAP';
$lang['sendmail_cluster'] = 'Cluster de Sendmail';
$lang['sendmail_domain'] = 'Dominio de Sendmail';
$lang['sendmail_alias'] = 'Alias de Sendmail';
$lang['sendmail_virt_dom'] = 'Dominio Virtual de Sendmail';
$lang['sendmail_virt_users'] = 'Usuarios Virtuales de Sendmail';
$lang['sendmail_relays'] = 'Relés de Sendmail';
$lang['custom'] = 'A medida';
$lang['samba_domain_name'] = 'Mi Nombre de Dominio de Samba';
$lang['administrators'] = 'Administradores';
$lang['users'] = 'Usuarios';
$lang['guests'] = 'Invitados';
$lang['power_users'] = 'Usuarios Privilegiados';
$lang['account_ops'] = 'Administradores de Cuentas';
$lang['server_ops'] = 'Administradores de Servidor';
$lang['print_ops'] = 'Administradores de Impresión';
$lang['backup_ops'] = 'Administradores de Copias de Seguridad';
$lang['replicator'] = 'Replicador';
$lang['unable_smb_passwords'] = ' Imposible crear las contraseñas de Samba. Por favor, revise la configuración en template_config.php';
$lang['err_smb_conf'] = 'Error: Tiene un error en su configuración de Samba.';
$lang['err_smb_no_name_sid'] = 'Error: Necesita indicar el nombre y el sid de su dominio Samba.';
$lang['err_smb_no_name'] = 'Error: No se ha indicado el nombre del dominio Samba.';
$lang['err_smb_no_sid'] = 'Error: No se ha indicado el sid del dominio Samba.';
// Samba Account Template
$lang['samba_account'] = 'Cuenta Samba';
$lang['samba_account_lcase'] = 'cuenta samba';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nueva cuenta de usuario';
$lang['t_hint_customize'] = 'Nota: Para modificar esta plantilla, edite el fichero templates/creation/new_user_template.php';
$lang['t_name'] = 'Nombre';
$lang['t_first_name'] = 'Nombre propio';
$lang['t_last_name'] = 'Apellido';
$lang['t_first'] = 'nombre propio';
$lang['t_last'] = 'apellido';
$lang['t_common_name'] = 'Nombre común';
$lang['t_user_name'] = 'Nombre de Usuario';
$lang['t_password'] = 'Contraseña';
$lang['t_encryption'] = 'Encriptación';
$lang['t_login_shell'] = 'Shell de entrada';
$lang['t_home_dir'] = 'Directorio de usuario';
$lang['t_uid_number'] = 'Número UID';
$lang['t_auto_det'] = '(determinado automáticamente)';
$lang['t_group'] = 'Grupo';
$lang['t_gid_number'] = 'Número GID';
$lang['t_err_passwords'] = 'Sus contraseñas no coinciden. Por favor, vuelva atrás e inténtelo de nuevon.';
$lang['t_err_field_blank'] = 'No puede dejar en blanco el %s. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_err_field_num'] = 'Sólo puede introducir valores numéricos en el campo %s. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_err_bad_container'] = 'El contenedor que ha especificado (%s) no existe. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_confirm_account_creation'] = 'Confirmar creación de cuenta';
$lang['t_secret'] = '[secreta]';
$lang['t_create_account'] = 'Crear cuenta';
// New Address Template
$lang['t_new_address'] = 'Nueva entrada en el libro de direcciones';
$lang['t_organization'] = 'Organización';
$lang['t_address'] = 'Dirección';
$lang['t_city'] = 'Ciudad';
$lang['t_postal_code'] = 'Código postal';
$lang['t_street'] = 'Calle';
$lang['t_work_phone'] = 'Teléfono de trabajo';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'Móvil';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Contenedor';
$lang['t_err_cn_blank'] = 'No puede dejar el campo "Nombre Común" en blanco. Por favor, vuelva atrás e inténtelo de nuevo.';
$lang['t_confim_creation'] = 'Confirmar creación de entrada:';
$lang['t_create_address'] = 'Crear dirección';
// default template
$lang['t_check_pass'] = 'Compruebe la contraseña...';
?>

View File

@ -11,7 +11,7 @@
*
* Thank you!
*
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/fr.php,v 1.17 2004/05/29 04:08:58 uugdave Exp $
* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/fr.php,v 1.21 2005/04/01 22:40:57 xrenard Exp $
*/
/*
@ -34,6 +34,14 @@ $lang['contains'] = 'contient';
$lang['predefined_search_str'] = 'Selectionner une recherche prédéfinie';
$lang['predefined_searches'] = 'Recherches prédéfinies';
$lang['no_predefined_queries'] = 'Aucune requête n\' a été définie dans config.php.';
$lang['export_results'] = 'exporter le resultat';
$lang['unrecoginzed_search_result_format'] = 'Le format du résultat de la recherche est non reconnu: %s';
$lang['format'] = 'Format';
$lang['list'] = 'liste';
$lang['table'] = 'table';
$lang['bad_search_display'] = 'Le fichier config.php contient une valeur invalide pour $default_search_display: %s. Veuillez le corriger';
$lang['page_n'] = 'Page %d';
$lang['no_results'] = 'Aucun résultat pour cette recherche.';
// Tree browser
$lang['request_new_feature'] = 'Demander une nouvelle fonctionnalité';
@ -54,20 +62,25 @@ $lang['view_server_info'] = 'Voir les informations sur le serveur';
$lang['import_from_ldif'] = 'Importer des entrées à partir d\'un fichier LDIF';
$lang['logout_of_this_server'] = 'Se déconnecter de ce serveur';
$lang['logged_in_as'] = 'Connecté en tant que: ';
$lang['this_base_dn_is_not_valid'] = 'Ceci n\'est pas un DN valide.';
$lang['this_base_dn_does_not_exist'] = 'Cette entrée n\'existe pas.';
$lang['read_only'] = 'Lecture seule';
$lang['read_only_tooltip'] = 'Cet attribut a été mis en lecture seule par l\'administrateur de phpLDAPAdmin';
$lang['could_not_determine_root'] = 'La racine de l\'arborescence Ldap n\'a pu être déterminée.';
$lang['ldap_refuses_to_give_root'] = 'Il semble que le serveur LDAP a été configuré de telle sorte que la racine ne soit pas révelée.';
$lang['please_specify_in_config'] = 'Veuillez le spécifier dans le fichier config.php';
$lang['create_new_entry_in'] = 'Créer une nouvelle entrée dans';
$lang['login_link'] = 'Login...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'L\'entrée racine n\'existe pas.';
$lang['create_it'] = 'La créer?';
// Entry display
$lang['delete_this_entry'] = 'Supprimer cette entrée';
$lang['delete_this_entry_tooltip'] = 'Il vous sera demandé confirmation';
$lang['copy_this_entry'] = 'Copier cette entrée';
$lang['copy_this_entry_tooltip'] = 'Copier cet objet vers un autre endroit, un nouveau DN ou un autre serveur';
$lang['export'] = 'Exporter';
$lang['export_lcase'] = 'exporter';
$lang['export_tooltip'] = 'Sauvegarder cet objet';
$lang['export_subtree_tooltip'] = 'Sauvegarder cet objet ainsi que tous les sous-objets';
$lang['export_subtree'] = 'Exporter l\'arborescence';
@ -84,7 +97,9 @@ $lang['hide_internal_attrs'] = 'Cacher les attributs internes';
$lang['show_internal_attrs'] = 'Montrer les attributs internes';
$lang['attr_name_tooltip'] = 'Cliquer pour voir la définition de schéma pour l\'attribut de type \'%s\'';
$lang['none'] = 'aucun';
$lang['save_changes'] = 'Sauver les modifications';
$lang['no_internal_attributes'] = 'Aucun attributs internes.';
$lang['no_attributes'] = 'Cette entrée n\a aucun attributs.';
$lang['save_changes'] = 'Sauvegarder les modifications';
$lang['add_value'] = 'ajouter une valeur';
$lang['add_value_tooltip'] = 'Ajouter une valeur supplémentaire à cet attribut';
$lang['refresh_entry'] = 'Rafraichir';
@ -99,6 +114,8 @@ $lang['no_new_binary_attrs_available'] = 'plus d\' attributs binaires disponible
$lang['binary_value'] = 'Valeur de type binaire';
$lang['add_new_binary_attr'] = 'Ajouter un nouvel attribut de type binaire';
$lang['alias_for'] = 'Alias pour';
$lang['required_for'] = 'Attribut requis par le(s) objectClass(es) %s';
$lang['required_by_entry'] = 'Cet attribut est requis par le RDN.';
$lang['download_value'] = 'Télécharger le contenu';
$lang['delete_attribute'] = 'Supprimer l\'attribut';
$lang['true'] = 'vrai';
@ -108,18 +125,17 @@ $lang['really_delete_attribute'] = 'Voulez-vous vraiment supprimer l\'attribut';
$lang['add_new_value'] = 'Ajouter une nouvelle valeur';
// Schema browser
$lang['the_following_objectclasses'] = 'Les classes d\'objets (objectClasses) suivantes sont supportés par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les opérateurs (matching rules) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont supportés par ce serveur LDAP.';
$lang['schema_retrieve_error_1']='Le serveur ne supporte pas entièrement le protocol LDAP.';
$lang['schema_retrieve_error_2']='Votre version de PHP ne permet pas d\'exécute correctement la requête.';
$lang['schema_retrieve_error_3']='Ou tout du moins, phpLDAPadmin ne sait pas comment récupérer le schéma pour votre serveur.';
$lang['schema_retrieve_error_2']='Votre version de PHP ne permet pas d\'exécuter correctement la requête.';
$lang['schema_retrieve_error_3']='phpLDAPadmin ne sait pas comment récupérer le schéma pour votre serveur.';
$lang['schema_retrieve_error_4']='Ou tout du moins, votre serveur LDAP ne procure pas cette information.';
$lang['jump_to_objectclass'] = 'Aller à une classe d\'objet';
$lang['view_schema_for_oclass'] = 'Voir la description du schema pour cette objectClass';
$lang['jump_to_attr'] = 'Aller à un attribut';
$lang['jump_to_matching_rule'] = 'Aller à une règle d\'égalité';
$lang['schema_for_server'] = 'Schema pour le serveur';
$lang['required_attrs'] = 'Attributs obligatoires';
$lang['required'] = 'requis';
$lang['optional_attrs'] = 'Attributs optionnels';
$lang['optional_binary_attrs'] = 'Attributs binaires optionnels';
$lang['OID'] = 'OID';
@ -131,6 +147,7 @@ $lang['equality']='Egalité';
$lang['is_obsolete'] = 'Cette classe d\'objet est obsolete';
$lang['inherits'] = 'hérite';
$lang['inherited_from']='hérite de';
$lang['parent_to'] = 'Parent de';
$lang['jump_to_this_oclass'] = 'Aller à la définition de cette classe d\'objet';
$lang['matching_rule_oid'] = 'OID de l\'opérateur';
$lang['syntax_oid'] = 'OID de la syntaxe';
@ -140,8 +157,7 @@ $lang['character']='caractère';
$lang['characters']='caractères';
$lang['used_by_objectclasses']='Utilisé par les objectClasses';
$lang['used_by_attributes']='Utilisé par les attributes';
$lang['maximum_length']='Maximum Length';
$lang['attributes']='Types d\'attribut';
$lang['attribute_types']='Types d\'attribut';
$lang['syntaxes']='Syntaxes';
$lang['objectclasses']='objectClasses';
$lang['matchingrules']='Règles d\'égalité';
@ -155,7 +171,12 @@ $lang['user_modification']='Modification Utilisateur';
$lang['usage']='Usage';
$lang['maximum_length']='Longueur maximale';
$lang['could_not_retrieve_schema_from']='Impossible de récupérer le schéma de';
$lang['the_following_objectclasses'] = 'Les classes d\'objets (objectClasses) suivantes sont supportés par ce serveur LDAP.';
$lang['the_following_attributes'] = 'Les types d\'attributs (attributesTypes) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_matching'] = 'Les opérateurs (matching rules) suivants sont supportés par ce serveur LDAP.';
$lang['the_following_syntaxes'] = 'Les syntaxes suivantes sont supportés par ce serveur LDAP.';
$lang['type']='Type';
$lang['no_such_schema_item'] = 'No such schema item: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = 'Suppression de l\'entrée \'%s\' réussie.';
@ -182,8 +203,14 @@ $lang['no_attr_specified'] = 'Aucun nom d\'attributs spécifié.';
$lang['no_dn_specified'] = 'Aucun DN specifié';
// Adding attributes
$lang['left_attr_blank'] = 'Vous avez laisser la valeur de l\'attribut vide. Veuillez s\'il vous plaît retourner à la page précédente et recommencer.';
$lang['left_attr_blank'] = 'Vous avez laissé la valeur de l\'attribut vide. Veuillez s\'il vous plaît retourner à la page précédente et recommencer.';
$lang['failed_to_add_attr'] = 'Echec lors de l\'ajout de l\'attribut.';
$lang['file_empty'] = 'Le fichier choisi soit est vide soit n\'existe pas. Veuillez recommencez.';
$lang['invalid_file'] = 'Erreur de sécurité: Le fichier uploadé peut etre dangereux.';
$lang['warning_file_uploads_disabled'] = 'Votre configuration PHP interdit l\'upload de fichiers. Veuillez vérifier votre fichier php.ini avant de continuer.';
$lang['uploaded_file_too_big'] = 'Le fichier à uploader est de trop grande taille. Veuillez vérifier votre fichier php.ini et particulièrement la directive upload_max_size setting';
$lang['uploaded_file_partial'] = 'Le fichier sélectionner a été partiellement uploadé, probablement du à une erreur réseau.';
$lang['max_file_size'] = 'Taille Maximum du fichier: %s';
// Updating values
$lang['modification_successful'] = 'Modification réussie!';
@ -201,10 +228,12 @@ $lang['add_oclass_and_attrs'] = 'Ajout d\' ObjectClass et d\'attributs';
$lang['chooser_link_tooltip'] = 'Cliquer pour choisir un entré(DN)';
$lang['no_updates_in_read_only_mode'] = 'Vous ne pouvez effectuer des mises à jour si le serveur est en lecture seule';
$lang['bad_server_id'] = 'Id de serveur invalide';
$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous plaî, vérifier votre configuration.';
$lang['not_enough_login_info'] = 'Informations insuffisantes pour se logguer au serveur. Veuillez, s\'il vous plaît, vérifier votre configuration.';
$lang['could_not_connect'] = 'Impossible de se connecter au serveur LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'Impossible de se connecter à "%s" sur le port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Echec lors de l\'opération ldap_mod_add.';
$lang['home'] = 'Home';
$lang['help'] = 'Aide';
$lang['bad_server_id_underline'] = 'serveur_id invalide: ';
$lang['success'] = 'Succès';
$lang['server_colon_pare'] = 'Serveur: ';
@ -230,6 +259,11 @@ $lang['bug'] = 'bogue';
$lang['warning'] = 'Avertissement';
$lang['light'] = 'lumière'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Continuer &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin ne peut de façon sur encrypter et décrypter les informations du fait que $blowfish_secret n\'est pas défini dans config.php. Vous devez définir $blowfish_secret avec une chaine de caractère de votre choix.';
$lang['jpeg_dir_not_writable'] = 'Veuillez assigner à la variable $jpeg_temp_dir le nom d\'un répertoire accessible en écriture dans le fichier config.php';
$lang['jpeg_dir_not_writable_error'] = 'Impossible d\'écrire dans le répertoire %s défini par la directive $jpeg_temp_dir. Veuillez vérifier que votre serveur web à les droits en écriture pour ce répertoire.';
$lang['jpeg_unable_toget'] = 'Impossible de trouver la ressource jpeg du serveur LDAP pour l\'attribut %s.';
$lang['jpeg_delete'] = 'Supprimer la photo';
// Add value form
@ -265,6 +299,8 @@ $lang['must_choose_template'] = 'Vous devez choisir un modèle';
$lang['invalid_template'] = '%s est un modèle non valide';
$lang['using_template'] = 'Utilisation du modèle';
$lang['go_to_dn'] = 'Aller à %s';
$lang['structural_object_class_cannot_remove'] = 'Ceci est une \'objectclass\' de type structurelle et ne peut etre supprimé.';
$lang['structural'] = 'structurelle';
@ -280,13 +316,16 @@ $lang['copyf_recursive_copy'] = 'Copier récursivement les sous-entrées de cet
$lang['recursive_copy'] = 'Copie récursive';
$lang['filter'] = 'Filtre';
$lang['filter_tooltip'] = 'Lors d\'une copie récursive, seuls les entrées correspondant à ce filtre seront copiés';
$lang['delete_after_copy'] = 'Suppresion après copie (déplacer):';
$lang['delete_after_copy_warn'] = 'Soyez certain que votre filtre (ci-dessus) selectionnera tous les enregistrements enfants.';
//create.php
$lang['create_required_attribute'] = 'Une valeur n\'a pas été spécifiée pour l\'attribut requis %s.';
$lang['redirecting'] = 'Redirection';
$lang['here'] = 'ici';
$lang['create_could_not_add'] = 'L\'ajout de l\'objet au serveur LDAP n\'a pu être effectuée.';
$lang['rdn_field_blank'] = 'Vous avez laisser le champ du RDN vide.';
$lang['rdn_field_blank'] = 'Vous avez laissé le champ du RDN vide.';
$lang['container_does_not_exist'] = 'Le containeur que vous avez spécifié (%s) n\'existe pas. Veuillez, s\'il vous plaît recommencer.';
$lang['no_objectclasses_selected'] = 'Vous n\'avez sélectionner aucun ObjectClasses pour cet objet. Veuillez s\'il vous plaît retourner à la page précédente et le faire.';
$lang['hint_structural_oclass'] = 'Note: Vous devez choisir au moins une classe d\'objet de type structural';
@ -295,6 +334,7 @@ $lang['hint_structural_oclass'] = 'Note: Vous devez choisir au moins une classe
$lang['createf_create_object'] = 'Creation d\'un objet';
$lang['createf_choose_temp'] = 'Choix d\'un modèle';
$lang['createf_select_temp'] = 'Selectionner un modèle pour la procédure de création';
$lang['save_as_file'] = 'Sauvegarder en tant que fichier';
$lang['createf_proceed'] = 'Continuer';
$lang['relative_distinguished_name'] = 'Relative Distinguished Name';
$lang['rdn'] = 'RDN';
@ -306,6 +346,8 @@ $lang['alias_for'] = 'Alias pour %s';
//creation_template.php
$lang['ctemplate_on_server'] = 'Sur le serveur';
$lang['ctemplate_no_template'] = 'Aucun modèle spécifié dans les variables POST.';
$lang['template_not_readable'] = 'Votre fichier de configuration définit un gestionnaire de "%s" pour ce \'template\' mais ce fichier ne possède pas les droits de lecture.';
$lang['template_does_not_exist'] = 'Votre fichier de configuration définit un gestionnaire de "%s" pour ce \'template\' mais le gestionnaire n\'existe pas dans le répertoire templates/creation.';
$lang['ctemplate_config_handler'] = 'Votre configuration scécifie un gestionnaire de';
$lang['ctemplate_handler_does_not_exist'] = 'pour ce modèle. Cependant, ce gestionnaire n\'existe pas dans le répertoire \'templates/creation\'.';
$lang['create_step1'] = 'Etape 1 de 2: Nom et classes d\'objet';
@ -358,12 +400,23 @@ $lang['commit'] = 'Valider';
$lang['cancel'] = 'Annuler';
$lang['you_made_no_changes'] = 'Aucun changement n\'a été effectué';
$lang['go_back'] = 'Retour';
$lang['unable_create_samba_pass'] = 'Impossible de créer le mot de passe samba. Veuillez vérifiez votre configuration dans le fichier template_config.php';
// welcome.php
$lang['welcome_note'] = 'Utilisez le menu de gauche pour la navigation';
$lang['credits'] = 'Crédits';
$lang['changelog'] = 'ChangeLog';
$lang['donate'] = 'Donation';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'Pour effectuer une doantion au projet phpLDAadmin, veuillez utilisez un des boutons PayPal ci-dessous.';
$lang['donate_amount'] = 'Donner %s';
$lang['purge_cache'] = 'Vider la cache';
$lang['no_cache_to_purge'] = 'Aucune cache à vider.';
$lang['done_purging_caches'] = 'Suppression de %s octets de la cache.';
$lang['purge_cache_tooltip'] = 'Supprimer toutes les données en cache dans phpLDAPadmin, y compris les schemas serveur.';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Nom de fichier non sûr: ';
@ -521,6 +574,70 @@ $lang['non_leaf_nodes_cannot_be_renamed'] = 'Vous ne pouvez pas renommer une ent
$lang['no_rdn_change'] = 'Le RDN n\'a pas été modifié';
$lang['invalid_rdn'] = 'Valeur invalide du RDN';
$lang['could_not_rename'] = 'Impossible de renommer l\'entrée';
$lang['csv_spreadsheet'] = 'CSV (tableur)';
// Samba Account Template
$lang['samba_account'] = 'Samba Account';
$lang['samba_account_lcase'] = 'samba account';
// New User (Posix) Account
$lang['t_new_user_account'] = 'Nouveau compte utilisateur';
$lang['t_hint_customize'] = 'Astuce: Pour personnaliser ce \'template\', éditez le fichier templates/creation/new_user_template.php';
$lang['t_name'] = 'Nom';
$lang['t_first_name'] = 'Prénom';
$lang['t_last_name'] = 'Nom de famille';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_common_name'] = 'Common name';
$lang['t_user_name'] = 'Nom d\'utilisateur';
$lang['t_password'] = 'Mot de passe';
$lang['t_encryption'] = 'Encryption';
$lang['t_login_shell'] = 'Login Shell';
$lang['t_home_dir'] = 'Home Directory';
$lang['t_uid_number'] = 'UID Number';
$lang['t_auto_det'] = '(déterminé automatiquement)';
$lang['t_group'] = 'Groupe';
$lang['t_gid_number'] = 'GID Number';
$lang['t_err_passwords'] = 'Les mots de passe ne correspondent pas. Veuillez revenir en arrière et recommencez.';
$lang['t_err_field_blank'] = 'Le champ %s ne peut etre vide. Veuillez revenir en arrière et recommencez.';
$lang['t_err_field_num'] = 'Seuls des valeurs numériques sont valides pour le champ %s. Veuillez revenir en arrière et recommencez.';
$lang['t_err_bad_container'] = 'Le conténeur spécifié (%s) n\'existe pas. Veuillez revenir en arrière et recommencez.';
$lang['t_confirm_account_creation'] = 'Confirmation de la création du compte';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'Créer le compte';
// New Address Template
$lang['t_new_address'] = 'New Address Book Entry';
$lang['t_organization'] = 'Organisation';
$lang['t_address'] = 'Adresse';
$lang['t_city'] = 'Ville';
$lang['t_postal_code'] = 'Code postal';
$lang['t_street'] = 'rue';
$lang['t_work_phone'] = 'Work phone';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = 'Mobile';
$lang['t_email'] = 'Email';
$lang['t_container'] = 'Conténeur';
$lang['t_err_cn_blank'] = 'Le champ \'Common Name\' ne peut etre vide. Veuillez revenir en arrière et recommencer.';
$lang['t_confim_creation'] = 'Confirmation de la création de l\'entrée:';
$lang['t_create_address'] = 'Create Address';
// compare form
$lang['compare'] = 'Comparer';
$lang['comparing'] = 'Comparaison des DNs suivant:';
$lang['compare_dn'] = 'Comparer un autre DN avec';
$lang['with'] = 'avec ';
$lang['compf_source_dn'] = 'DN Source';
$lang['compf_dn_tooltip'] = 'Comparer ce DN avec un autre';
$lang['switch_entry'] = 'Intervertir les entrées';
$lang['no_value'] = 'Aucune Valeur';
$lang['compare_with'] = 'Comparer avec une autre entrée';
$lang['need_oclass'] = 'You need one of the following ObjectClass(es) to add this attribute %s.';
// Time out page
$lang['session_timed_out_1'] = 'Votre session a expiré après';
$lang['session_timed_out_2'] = 'min. d\'inactivité. Vous avez été automatiquement déconnecté.';
$lang['log_back_in'] = 'Pour vous connecter à nouveau, cliquez sur le lien suivant:';
$lang['session_timed_out_tree'] = '(Expiration de session. Déconnexion automatique.)';
?>

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/ja.php,v 1.1 2004/12/09 14:19:28 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/ja.php,v 1.5 2005/06/23 14:38:41 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@ -31,13 +31,12 @@ $lang['search_for_entries_whose'] = 'どのエントリを検索';
$lang['base_dn'] = 'ベース DN';
$lang['search_scope'] = '検索スコープ';
$lang['show_attributes'] = '属性表示';
$lang['attributes'] = '属性';
$lang['Search'] = '検索';
$lang['predefined_search_str'] = '事前定義された検索を選択';
$lang['predefined_searches'] = '事前定義検索';
$lang['no_predefined_queries'] = 'config.php で定義された照会はありません。';
$lang['export_results'] = '結果エクスポート';
$lang['unrecoginzed_search_result_format'] = 'Unrecognized search result format: %s';
$lang['unrecoginzed_search_result_format'] = '認識できない書式の検索結果です: %s';
$lang['format'] = '書式';
$lang['list'] = '一覧';
$lang['table'] = 'テーブル';
@ -56,14 +55,16 @@ $lang['import'] = 'インポート';
$lang['refresh'] = '再描画';
$lang['logout'] = 'ログアウト';
$lang['create_new'] = 'ここに新規エントリを追加';
$lang['view_schema_for'] = 'View schema for';
$lang['refresh_expanded_containers'] = 'Refresh all expanded containers for';
$lang['create_new_entry_on'] = 'Create a new entry on';
$lang['view_schema_for'] = 'スキーマを閲覧 対象:';
$lang['refresh_expanded_containers'] = '展開済みの内容を再描画 対象:';
$lang['create_new_entry_on'] = 'エントリを新規作成 対象:';
$lang['new'] = '新規';
$lang['view_server_info'] = 'サーバーが提供する情報を閲覧';
$lang['import_from_ldif'] = 'LDIF ファイルからのインポートエントリ';
$lang['logout_of_this_server'] = 'このサーバーのログアウト';
$lang['logged_in_as'] = 'Logged in as: ';
$lang['logged_in_as'] = '次のコンテナでログイン: ';
$lang['this_base_dn_is_not_valid'] = 'これは有効な DN ではありません。';
$lang['this_base_dn_does_not_exist'] = 'このエントリは存在しません。';
$lang['read_only'] = '読み込み専用';
$lang['read_only_tooltip'] = 'この属性は phpLDAP 管理者により、読み込み専用で設定されています。';
$lang['could_not_determine_root'] = 'LDAP ツリーのルートが決定できません。';
@ -73,7 +74,7 @@ $lang['create_new_entry_in'] = 'Create a new entry in';
$lang['login_link'] = 'ログイン...';
$lang['login'] = 'ログイン';
$lang['base_entry_does_not_exist'] = 'ベースエントリが存在しません。';
$lang['create_it'] = 'Create it?';
$lang['create_it'] = '作成しますか?';
// Entry display
$lang['delete_this_entry'] = 'このエントリを削除';
@ -92,46 +93,44 @@ $lang['add'] = '追加';
$lang['view'] = 'View';
$lang['view_one_child'] = 'ひとつの子を閲覧';
$lang['view_children'] = '%s 個の子を閲覧';
$lang['add_new_attribute'] = '新規属性追加';
$lang['add_new_objectclass'] = '新規 ObjectClass を追加';
$lang['add_new_attribute'] = '新規属性追加';
$lang['add_new_objectclass'] = '新規 ObjectClass を追加する';
$lang['hide_internal_attrs'] = '内部属性を隠す';
$lang['show_internal_attrs'] = '内部属性を表示';
$lang['attr_name_tooltip'] = 'Click to view the schema defintion for attribute type \'%s\'';
$lang['attr_name_tooltip'] = '属性タイプ \'%s\' のためのスキーマ定義を見るためにクリックしてください。';
$lang['none'] = 'なし';
$lang['no_internal_attributes'] = '内部属性がありません';
$lang['no_attributes'] = 'このエントリは属性を持っていません';
$lang['save_changes'] = '変更を保存';
$lang['add_value'] = '値追加';
$lang['add_value_tooltip'] = 'Add an additional value to attribute \'%s\'';
$lang['add_value_tooltip'] = '追加値を属性「%s」に追加する';
$lang['refresh_entry'] = '再描画';
$lang['refresh_this_entry'] = 'このエントリを再描画';
$lang['refresh_this_entry'] = 'このエントリを再描画する';
$lang['delete_hint'] = 'ヒント: 属性を削除するにはテキストフィールドを空にして保存をクリックします。';
$lang['attr_schema_hint'] = 'ヒント: 属性のスキーマを閲覧するには、属性名をクリックします。';
$lang['attrs_modified'] = 'Some attributes (%s) were modified and are highlighted below.';
$lang['attr_modified'] = 'An attribute (%s) was modified and is highlighted below.';
$lang['viewing_read_only'] = 'Viewing entry in read-only mode.';
$lang['no_new_attrs_available'] = 'no new attributes available for this entry';
$lang['no_new_binary_attrs_available'] = 'no new binary attributes available for this entry';
$lang['attrs_modified'] = 'いくつかの属性 (%s) は修正され、下記でハイライトされました。';
$lang['attr_modified'] = 'ひとつの属性 (%s) は修正され、下記でハイライトされました。';
$lang['viewing_read_only'] = '読み込みモードでエントリを閲覧中。';
$lang['no_new_attrs_available'] = 'このエントリに利用可能な新規属性はありません。';
$lang['no_new_binary_attrs_available'] = 'このエントリに利用可能な新規バイナリ属性はありません。';
$lang['binary_value'] = 'バイナリ値';
$lang['add_new_binary_attr'] = '新規バイナリ属性を追加';
$lang['alias_for'] = 'Note: \'%s\' is an alias for \'%s\'';
$lang['alias_for'] = '注: \'%s\' は \'%s\' のエイリアスです。';
$lang['required_for'] = 'objectClass %s の必須属性';
$lang['required_by_entry'] = 'この属性は RDN に必要です。';
$lang['download_value'] = 'ダウンロード値';
$lang['delete_attribute'] = '属性削除';
$lang['true'] = 'true';
$lang['false'] = 'false';
$lang['none_remove_value'] = 'none, remove value';
$lang['none_remove_value'] = 'いいえ、値を削除します';
$lang['really_delete_attribute'] = '本当に属性を削除';
$lang['add_new_value'] = '新規値追加';
// Schema browser
$lang['the_following_objectclasses'] = '次の objectClasses はこの LDAP サーバーでサポートされています。';
$lang['the_following_attributes'] = '次の属性タイプはこの LDAP サーバーでサポートされています。';
$lang['the_following_matching'] = '次の一致ルールはこの LDAP サーバーでサポートされています。';
$lang['the_following_syntaxes'] = '次の文法はこの LDAP サーバーでサポートされています。';
$lang['schema_retrieve_error_1']='このサーバーはすべての LDAP プロトコルをサポートしていません。';
$lang['schema_retrieve_error_2']='この PHP のバージョンは正確に照会を行えません。';
$lang['schema_retrieve_error_3']='あるいは、phpLDAPadmin は、あなたのサーバーからスキーマを取得する方法を知りません。';
$lang['schema_retrieve_error_4']='Or lastly, LDAP サーバーはこの情報を提供していません。';
$lang['jump_to_objectclass'] = 'objectClass に移動';
$lang['view_schema_for_oclass'] = 'この objectClass のスキーマ説明を閲覧';
$lang['jump_to_attr'] = '属性タイプに移動';
@ -153,22 +152,22 @@ $lang['inherited_from'] = '派生元';
$lang['parent_to'] = '派生先';
$lang['jump_to_this_oclass'] = 'この objectClass 定義に移動';
$lang['matching_rule_oid'] = '適用ルール OID';
$lang['syntax_oid'] = 'Syntax OID';
$lang['syntax_oid'] = '文法 OID';
$lang['not_applicable'] = '適用可能ではありません';
$lang['not_specified'] = '指定されていません';
$lang['character']='character';
$lang['characters']='characters';
$lang['used_by_objectclasses']='Used by objectClasses';
$lang['used_by_attributes']='Used by Attributes';
$lang['used_by_objectclasses']='objectClass を使する';
$lang['used_by_attributes']='属性で使する';
$lang['maximum_length']='最大長';
$lang['attribute_types']='属性タイプ';
$lang['syntaxes']='Syntaxes';
$lang['syntaxes']='文法一覧';
$lang['matchingrules']='一致ルール';
$lang['oid']='OID';
$lang['obsolete']='旧式';
$lang['ordering']='Ordering';
$lang['substring_rule']='副文字列ルール';
$lang['single_valued']='Single Valued';
$lang['single_valued']='単一の値';
$lang['collective']='集合';
$lang['user_modification']='ユーザー修正';
$lang['usage']='使用法';
@ -182,16 +181,16 @@ $lang['you_must_specify_a_dn'] = 'DN を指定しなければなりません';
$lang['could_not_delete_entry'] = 'エントリを削除できませんでした: %s';
$lang['no_such_entry'] = 'エントリがありません: %s';
$lang['delete_dn'] = '%s 削除';
$lang['permanently_delete_children'] = 'Permanently delete all children also?';
$lang['permanently_delete_children'] = 'さらに永久にすべての子を削除しますか?';
$lang['entry_is_root_sub_tree'] = 'このエントリは %s エントリを含むサブツリーのルートです。';
$lang['view_entries'] = 'エントリ閲覧';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin can recursively delete this entry and all %s of its children. See below for a list of all the entries that this action will delete. Do you want to do this?';
$lang['confirm_recursive_delete_note'] = 'Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin は再帰的に、このエントリとその子のすべての %s を削除できます。このアクションが削除するすべてのエントリの一覧は、下記を参照してください。本当に本当に削除しますか?';
$lang['confirm_recursive_delete_note'] = '注: これは潜在的に非常に危険です。また、自己責任でこれをします。このオペレーションは取り消せません。エイリアス・referralとその他の問題を考察を持ってください。';
$lang['delete_all_x_objects'] = '%s オブジェクトをすべて削除';
$lang['recursive_delete_progress'] = '再帰削除進行';
$lang['entry_and_sub_tree_deleted_successfully'] = 'エントリ %s とサブツリーの削除に成功しました。';
$lang['failed_to_delete_entry'] = 'エントリ %s のふぁ駆除に失敗しました';
$lang['list_of_entries_to_be_deleted'] = 'List of entries to be deleted:';
$lang['failed_to_delete_entry'] = 'エントリ %s の除に失敗しました';
$lang['list_of_entries_to_be_deleted'] = 'エントリの一覧を削除しました:';
$lang['sure_permanent_delete_object']='本当にこのオブジェクトを永続的に削除しますか?';
$lang['dn'] = 'DN';
@ -201,13 +200,13 @@ $lang['no_attr_specified'] = '属性名が指定されていません。';
$lang['no_dn_specified'] = 'DN が指定されていません';
// Adding attributes
$lang['left_attr_blank'] = 'You left the attribute value blank. Please go back and try again.';
$lang['left_attr_blank'] = '属性値が空です。戻ってからもう一度試してください。';
$lang['failed_to_add_attr'] = '属性の追加に失敗しました。';
$lang['file_empty'] = 'The file you chose is either empty or does not exist. Please go back and try again.';
$lang['invalid_file'] = 'Security error: The file being uploaded may be malicious.';
$lang['warning_file_uploads_disabled'] = 'Your PHP configuration has disabled file uploads. Please check php.ini before proceeding.';
$lang['uploaded_file_too_big'] = 'アップロードされたファイルが大きすぎます。php.ini の upload_max_size 設定を調べてください。';
$lang['uploaded_file_partial'] = '選択したファイルは、部分的なアップロードでした。The file you selected was only partially uploaded, likley due to a network error.';
$lang['file_empty'] = 'あなたの選んだファイルは空か存在しないかのいずれかです。戻ってからもう一度試してください。';
$lang['invalid_file'] = 'セキュリティエラー: アップロードされたファイルは悪意のあるものかもしれません。';
$lang['warning_file_uploads_disabled'] = 'PHP の設定でファイルのアップロードが無効です。続行する前に、php.ini を確認してください。';
$lang['uploaded_file_too_big'] = 'アップロードされたファイルが大きすぎます。php.ini の upload_max_size 設定を確認してください。';
$lang['uploaded_file_partial'] = '選択したファイルは、部分的なアップロードでした。likley due to a network error.';
$lang['max_file_size'] = '最大ファイルサイズ: %s';
// Updating values
@ -217,32 +216,29 @@ $lang['change_password_new_login'] = 'パスワードを変更したので、今
// Adding objectClass form
$lang['new_required_attrs'] = '新規必須属性';
$lang['requires_to_add'] = 'This action requires you to add';
$lang['new_attributes'] = '新貴族性';
$lang['new_attributes'] = '新規属性';
$lang['new_required_attrs_instructions'] = 'Instructions: In order to add this objectClass to this entry, you must specify';
$lang['that_this_oclass_requires'] = 'that this objectClass requires. You can do so in this form.';
$lang['that_this_oclass_requires'] = 'それは objectClass に必要です。このフォームでそうすることができます。';
$lang['add_oclass_and_attrs'] = 'ObjectClass と属性を追加';
$lang['objectclasses'] = 'ObjectClasses';
$lang['objectclasses'] = 'ObjectClass 一覧';
// General
$lang['chooser_link_tooltip'] = 'Click to popup a dialog to select an entry (DN) graphically';
$lang['no_updates_in_read_only_mode'] = 'You cannot perform updates while server is in read-only mode';
$lang['no_updates_in_read_only_mode'] = 'サーバーは読み込みモードなので、更新を実行できません。';
$lang['bad_server_id'] = '間違ったサーバー ID';
$lang['not_enough_login_info'] = 'サーバーにログインする情報が不足しています。設定を確認してください。';
$lang['could_not_connect'] = 'LDAP サーバーに接続できませんでした。';
$lang['could_not_connect_to_host_on_port'] = '"%s" のポート "%s" に接続できませんでした';
$lang['could_not_perform_ldap_mod_add'] = 'Could not perform ldap_mod_add operation.';
$lang['bad_server_id_underline'] = 'Bad server_id: ';
$lang['could_not_perform_ldap_mod_add'] = 'ldap_mod_add 操作を実行できませんでした。';
$lang['home'] = 'ホーム';
$lang['help'] = 'ヘルプ';
$lang['success'] = '成功';
$lang['server_colon_pare'] = 'サーバー: ';
$lang['look_in'] = 'Looking in: ';
$lang['missing_server_id_in_query_string'] = '照会文字列にサーバー ID が指定されていません!';
$lang['missing_dn_in_query_string'] = '照会文字列に DN が指定されていません!';
$lang['back_up_p'] = 'バックアップ...';
$lang['no_entries'] = 'エントリがありません';
$lang['not_logged_in'] = 'Not logged in';
$lang['could_not_det_base_dn'] = 'Could not determine base DN';
$lang['please_report_this_as_a_bug']='この不都合を報告してください。';
$lang['could_not_det_base_dn'] = 'ベース DN を決定することが出来ませんでした';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='はい';
$lang['no']='いいえ';
@ -251,13 +247,16 @@ $lang['delete']='削除';
$lang['back']='戻る';
$lang['object']='オブジェクト';
$lang['delete_all']='すべて削除';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'ヒント';
$lang['bug'] = '不都合';
$lang['warning'] = '警告';
$lang['light'] = 'light'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = '進む &gt;&gt;';
$lang['no_blowfish_secret'] = '$blowfish_secret が config.php で設定されていないので、phpLDAPadmin は安全に機密情報を暗号化と解読をすることができません。config.php を編集し、秘密文字列を $blowfish_secret に設定するする必要があります。';
$lang['jpeg_dir_not_writable'] = 'phpLDAPadmin の設定ファイル config.php で、書き込み可能なディレクトリを $jpeg_temp_dir に設定してください。';
$lang['jpeg_dir_not_writable_error'] = '$jpeg_temp_dir で指定したディレクトリ %s に書き込みできません。ウェブサーバーがそこにファイルを書き込みできることを確認してください。';
$lang['jpeg_unable_toget'] = '属性 %s 用に LDAP サーバーから jpeg データを取得できませんでした。';
$lang['jpeg_delete'] = '写真を削除';
// Add value form
$lang['add_new'] = '新規追加';
@ -265,20 +264,20 @@ $lang['value_to'] = 'value to';
$lang['distinguished_name'] = '関連名';
$lang['current_list_of'] = 'Current list of';
$lang['values_for_attribute'] = '属性の値';
$lang['inappropriate_matching_note'] = 'Note: You will get an "inappropriate matching" error if you have not setup an EQUALITY rule on your LDAP server for this attribute.';
$lang['enter_value_to_add'] = 'Enter the value you would like to add:';
$lang['new_required_attrs_note'] = 'Note: you may be required to enter new attributes that this objectClass requires';
$lang['syntax'] = 'Syntax';
$lang['inappropriate_matching_note'] = '注: LDAP サーバーでこの属性の EQUALITY ルールをセットアップしていなかった場合、"inappropriate matching" エラーを取得するでしょう。';
$lang['enter_value_to_add'] = '追加したい値を入力する:';
$lang['new_required_attrs_note'] = '注: この objectClass が要求する新しい属性を入力することが要求かもしれません';
$lang['syntax'] = '文法';
//copy.php
$lang['copy_server_read_only'] = 'You cannot perform updates while server is in read-only mode';
$lang['copy_dest_dn_blank'] = 'You left the destination DN blank.';
$lang['copy_server_read_only'] = 'サーバーが読み込みモードなので、更新を行うことができません。';
$lang['copy_dest_dn_blank'] = '対象 DN がブランクで残されました。';
$lang['copy_dest_already_exists'] = '対象エントリ (%s) は既に存在します。';
$lang['copy_dest_container_does_not_exist'] = '対象先コンテナー (%s) は存在しません。';
$lang['copy_source_dest_dn_same'] = '対象元と対象先 DN が同じです。';
$lang['copy_copying'] = 'Copying ';
$lang['copy_recursive_copy_progress'] = '再帰コピー進行';
$lang['copy_building_snapshot'] = 'Building snapshot of tree to copy... ';
$lang['copy_building_snapshot'] = 'コピーするツリーのスナップショットを構築中... ';
$lang['copy_successful_like_to'] = 'コピー成功! Would you like to ';
$lang['copy_view_new_entry'] = '新規エントリ閲覧';
$lang['copy_failed'] = 'DN のコピーに失敗しました: ';
@ -291,8 +290,8 @@ $lang['must_choose_template'] = 'テンプレートを選ばなければなり
$lang['invalid_template'] = '%s は無効なテンプレート';
$lang['using_template'] = '使用中のテンプレート';
$lang['go_to_dn'] = '%s に移動';
+$lang['structural_object_class_cannot_remove'] = 'これは構造 ObjectClass なので削除できませんでした。';
+$lang['structural'] = '構造';
$lang['structural_object_class_cannot_remove'] = 'これは構造 ObjectClass なので削除できませんでした。';
$lang['structural'] = '構造';
//copy_form.php
$lang['copyf_title_copy'] = 'コピー ';
@ -300,16 +299,17 @@ $lang['copyf_to_new_object'] = 'to a new object';
$lang['copyf_dest_dn'] = '対象 DN';
$lang['copyf_dest_dn_tooltip'] = 'The full DN of the new entry to be created when copying the source entry';
$lang['copyf_dest_server'] = '対象サーバー';
$lang['copyf_note'] = 'Hint: Copying between different servers only works if there are no schema violations';
$lang['copyf_note'] = 'Hint: スキーマ違反がなければ、異なるサーバー間のコピー処理のみ行います。';
$lang['copyf_recursive_copy'] = '同様にこのオブジェクトのすべての子を再帰コピーします。';
$lang['recursive_copy'] = '再帰コピー';
$lang['filter'] = 'Filter';
$lang['search_filter'] = '検索フィルター';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this filter';
$lang['filter'] = 'フィルター';
$lang['filter_tooltip'] = '再帰的なコピーを行なう場合、このフィルタと一致するエントリのみコピーしてください。';
$lang['delete_after_copy'] = 'コピーの後に削除 (移動):';
$lang['delete_after_copy_warn'] = 'Make sure your filter (above) will select all child records.';
//create.php
$lang['create_required_attribute'] = 'You left the value blank for required attribute (%s).';
$lang['redirecting'] = 'Redirecting...';
$lang['redirecting'] = 'リダイレクト中...';
$lang['here'] = 'ここ';
$lang['create_could_not_add'] = 'LDAP サーバーにオブジェクトを追加できませんでした。';
@ -318,10 +318,10 @@ $lang['createf_create_object'] = 'オブジェクト作成';
$lang['createf_choose_temp'] = 'テンプレート選択';
$lang['createf_select_temp'] = '作成処理のテンプレートを選択';
$lang['save_as_file'] = 'ファイルに保存';
$lang['rdn_field_blank'] = 'You left the RDN field blank.';
$lang['rdn_field_blank'] = 'RDN フィールドが空です。';
$lang['container_does_not_exist'] = '指定したコンテナー(%s)が存在しません。もう一度行ってください。';
$lang['no_objectclasses_selected'] = 'You did not select any ObjectClasses for this object. Please go back and do so.';
$lang['hint_structural_oclass'] = 'ヒント: You must choose exactly one structural objectClass (shown in bold above)';
$lang['no_objectclasses_selected'] = 'このオブジェクトのためのいくつかの ObjectClass を選択しませんでした。戻ってそのように実行してください。';
$lang['hint_structural_oclass'] = 'ヒント: ひとつの構造 objectClass を選択しなければなりません (上で強調表示されています)';
//creation_template.php
$lang['ctemplate_on_server'] = 'サーバー';
@ -353,10 +353,8 @@ $lang['scope_base'] = 'ベース (ベース dn のみ)';
$lang['standard_ldap_search_filter'] = '標準 LDAP 検索フィルター。例: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = '検索フィルター';
$lang['list_of_attrs_to_display_in_results'] = '結果から属性の一覧を表示 (カンマ区切り)';
$lang['show_attributes'] = '属性表示';
// search_form_simple.php
$lang['search_for_entries_whose'] = 'どのエントリ検索するか:';
$lang['equals'] = 'に一致';
$lang['starts with'] = 'で始まる';
$lang['contains'] = 'を含む';
@ -365,16 +363,16 @@ $lang['sounds like'] = 'に近い';
// server_info.php
$lang['could_not_fetch_server_info'] = 'サーバーから LDAP 情報を取得できませんでした。これはあなたの PHP バージョンの<a href="http://bugs.php.net/bug.php?id=29587">不都合</a>によるかもしれません。あるいは、あなたの LDAP サーバーは、LDAP クライアントが RootDSE にアクセスするのを防ぐアクセス制御指定をしています。';
$lang['server_info_for'] = 'Server info for: ';
$lang['server_reports_following'] = 'Server reports the following information about itself';
$lang['server_info_for'] = 'サーバー情報: ';
$lang['server_reports_following'] = 'サーバーは自分自身で次の情報を報告しました。';
$lang['nothing_to_report'] = 'このサーバーはなにも報告するものはありません。';
//update.php
$lang['update_array_malformed'] = 'update_array がオカシイです。This might be a phpLDAPadmin bug. Please report it.';
$lang['update_array_malformed'] = 'update_array がおかしいです。これは phpLDAPadmin のバグかもしれませんので、報告してください。';
$lang['could_not_perform_ldap_modify'] = 'ldap_modify 操作が実行できませんでした。';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = 'Do you want to make these changes?';
$lang['do_you_want_to_make_these_changes'] = '変更をしたいですか?';
$lang['attribute'] = '属性';
$lang['old_value'] = '古い値';
$lang['new_value'] = '新しい値';
@ -382,20 +380,19 @@ $lang['attr_deleted'] = '[属性を削除しました]';
$lang['commit'] = 'コミット';
$lang['cancel'] = '取り消し';
$lang['you_made_no_changes'] = '変更はありません';
$lang['go_back'] = 'Go back';
$lang['go_back'] = '戻る';
$lang['unable_create_samba_pass'] = 'samba パスワードを作成できませんでした。template_conf.php の設定を確認してください。';
// welcome.php
$lang['welcome_note'] = '左へのメニューを使用して捜査します';
$lang['welcome_note'] = '左へのメニューを使用して操作します';
$lang['credits'] = 'クレジット';
$lang['changelog'] = '変更履歴';
$lang['donate'] = '寄';
$lang['donate'] = '寄';
$lang['pla_logo'] = 'phpLDAPadmin ロゴ';
// Donate.php
$lang['donation_instructions'] = 'phpLDAPadmin プロジェクトに資金を寄贈するためには、PayPal ボタンのうちの 1 つを下に使用してください。';
$lang['donate_amount'] = '%s を寄贈';
$lang['wish_list_option'] = 'Or perhaps you would prefer to purchase an gift for a phpLDAPadmin developer.';
$lang['wish_list'] = 'Dave\'s phpLDAPadmin のゐっ主リストを閲覧';
$lang['purge_cache'] = 'キャッシュ破棄';
$lang['no_cache_to_purge'] = '破棄するキャッシュはありませんでした。';
@ -407,44 +404,44 @@ $lang['unsafe_file_name'] = '安全でないファイル名: ';
$lang['no_such_file'] = 'ファイルがありません: ';
//function.php
$lang['auto_update_not_setup'] = 'You have enabled auto_uid_numbers for <b>%s</b> in your configuration,
but you have not specified the auto_uid_number_mechanism. Please correct
this problem.';
$lang['uidpool_not_set'] = 'You specified the "auto_uid_number_mechanism" as "uidpool"
in your configuration for server <b>%s</b>, but you did not specify the
audo_uid_number_uid_pool_dn. Please specify it before proceeding.';
$lang['auto_update_not_setup'] = '設定ファイルの <b>%s</b>You auto_uid_numbers が有効ですが、
auto_uid_number_mechanism が指定されていません。
この問題を修正してください。.';
$lang['uidpool_not_set'] = 'サーバー <b>%s</b> の設定で、"auto_uid_number_mechanism" "uidpool" に指定していますが、
audo_uid_number_uid_pool_dn を指定していません。
続行する前にそれを指定してください';
$lang['uidpool_not_exist'] = 'It appears that the uidPool you specified in your configuration ("%s")
does not exist.';
$lang['specified_uidpool'] = 'You specified the "auto_uid_number_mechanism" as "search" in your
configuration for server <b>%s</b>, but you did not specify the
"auto_uid_number_search_base". Please specify it before proceeding.';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. Please check your configuration file.';
$lang['bad_auto_uid_search_base'] = 'Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s';
$lang['auto_uid_invalid_value'] = 'You specified an invalid value for auto_uid_number_mechanism ("%s")
in your configration. Only "uidpool" and "search" are valid.
Please correct this problem.';
$lang['error_auth_type_config'] = '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. ';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. Please check your configuration file.';
$lang['unique_attr_failed'] = '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.';
$lang['specified_uidpool'] = 'サーバー <b>%s</b> の設定で「search」に「auto_uid_number_mechanism」を指定しました。
しかし「auto_uid_number_search_base」が指定されていません。
これを実行前に指定してください。';
$lang['auto_uid_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with auto_uid credentials. 設定ファイルを確認してください。';
$lang['bad_auto_uid_search_base'] = 'phpLDAPadmin の設定で、サーバー %s に無効な auto_uid_search_base が指定されました';
$lang['auto_uid_invalid_value'] = '設定ファイルの auto_uid_number_mechanism の指定が間違った値("%s")です。
"uidpool" "search" のみ有効です。
この問題を修正してください。';
$lang['error_auth_type_config'] = 'エラー: 設定ファイルのにエラーがあります。$servers セクションの auth_type
「session」「cookie」「config」のみっつの値のみ許可されていますが、
許可されない「%s」が入力されました。';
$lang['unique_attrs_invalid_credential'] = 'Unable to bind to <b>%s</b> with your with unique_attrs credentials. 設定ファイルを確認してください。';
$lang['unique_attr_failed'] = '<b>%s</b> (<i>%s</i>) の <b>%s</b> への追加の試みは許可<b>されていません</b>。<br />その属性/値は別のエントリが所有しています。<p>そのエントリを<a href=\'%s\'>検索</a>などするしょう。';
$lang['php_install_not_supports_tls'] = 'インストールされている PHP は TLS をサポートしていません。';
$lang['could_not_start_tls'] = 'TLS を開始できません。LDAP サーバーの設定を確認してください。';
$lang['could_not_bind_anon'] = 'サーバーに匿名接続できませんでした。';
$lang['could_not_bind'] = 'LDAP サーバーに接続できませんでした。';
$lang['anonymous_bind'] = '匿名接続';
$lang['bad_user_name_or_password'] = 'ユーザー名かパスワードがおかしいです。もう一度行ってください。';
$lang['redirecting_click_if_nothing_happens'] = 'Redirecting... Click here if nothing happens.';
$lang['successfully_logged_in_to_server'] = 'サーバー <b>%s</b>へのログインに成功しました';
$lang['redirecting_click_if_nothing_happens'] = 'リダイレクト中... もし何も起こらなかったらここをクリックしてください。';
$lang['successfully_logged_in_to_server'] = 'サーバー <b>%s</b> へのログインに成功しました';
$lang['could_not_set_cookie'] = 'cookie を設定できませんでした。';
$lang['ldap_said'] = 'LDAP 回答: %s';
$lang['ldap_said'] = 'LDAP 回答: %s';
$lang['ferror_error'] = 'エラー';
$lang['fbrowse'] = '閲覧';
$lang['delete_photo'] = '写真削除';
$lang['install_not_support_blowfish'] = 'インストールされた PHP は blowfish 暗号化をサポートしていません。';
$lang['install_not_support_md5crypt'] = 'インストールされた PHP は md5crypt 暗号化をサポートしていません。';
$lang['install_no_mash'] = 'インストールされた PHP は mhash() をサポートしていません。SHA ハッシュをすることができません。';
$lang['jpeg_contains_errors'] = 'jpegPhoto contains errors<br />';
$lang['jpeg_contains_errors'] = 'エラーを含む jpeg 写真<br />';
$lang['ferror_number'] = 'エラー番号: %s (%s)';
$lang['ferror_discription'] = '説明: %s <br /><br />';
$lang['ferror_number_short'] = 'エラー番号: %s<br /><br />';
@ -455,7 +452,9 @@ $lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=
<b>致命的でない phpLDAPadmin の不都合を発見しました!</b></td></tr><tr><td>エラー:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>ファイル:</td>
<td><b>%s</b> <b>%s</b>, caller <b>%s</b></td></tr><tr><td>バージョン:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>ウェブサーバー:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
ここをクリックして個の不都合を報告してください。</a>.</center></td></tr></table></center><br />';
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>Please check and see if this bug has been reported here</a>.</center></td></tr>
<tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>If it hasnt been reported, you may report this bug by clicking here</a>.</center></td></tr>
</table></center><br />';
$lang['ferror_congrats_found_bug'] = 'おめでとうございます! phpLDAPadmin で不都合を発見しました。<br /><br />
<table class=\'bug\'>
<tr><td>エラー:</td><td><b>%s</b></td></tr>
@ -511,27 +510,26 @@ $lang['searching'] = '検索中...';
$lang['size_limit_exceeded'] = '通知です。検索サイズが制限を越えました。';
$lang['entry'] = 'エントリ';
$lang['ldif_export_for_dn'] = 'LDIF エクスポート: %s';
$lang['generated_on_date'] = 'Generated by phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) on %s';
$lang['generated_on_date'] = '%s に phpLDAPadmin ( http://www.phpldapadmin.com/ ) で生成しました。';
$lang['total_entries'] = '総エントリ';
$lang['dsml_export_for_dn'] = 'DSLM エクスポート: %s';
$lang['include_system_attrs'] = 'システム属性を含む';
$lang['csv_spreadsheet'] = 'CSV (スプレッドシート)';
// logins
$lang['could_not_find_user'] = 'ユーザー "%s" が見つかりません';
$lang['password_blank'] = 'You left the password blank.';
$lang['login_cancelled'] = 'ログインが取り消されました。';
$lang['password_blank'] = 'パスワードが空です。';
$lang['no_one_logged_in'] = 'No one is logged in to that server.';
$lang['could_not_logout'] = 'ログアウトできませんでした。';
$lang['unknown_auth_type'] = '未知の auth_type: %s';
$lang['logged_out_successfully'] = 'サーバー <b>%s</b> からログアウトに成功しました';
$lang['authenticate_to_server'] = 'Authenticate to server %s';
$lang['authenticate_to_server'] = 'サーバー %s へ認証';
$lang['warning_this_web_connection_is_unencrypted'] = '警告: このウェブ接続は暗号化されていません。';
$lang['not_using_https'] = 'You are not using \'https\'. Web browser will transmit login information in clear text.';
$lang['not_using_https'] = 'あなたは \'https\' を使っていません。ログイン情報はブラウザからクリアテキストで送信されます、';
$lang['login_dn'] = 'ログイン DN';
$lang['user_name'] = 'ユーザー名';
$lang['password'] = 'パスワード';
$lang['authenticate'] = 'Authenticate';
$lang['login_not_allowed'] = 'すみません、この LDAP サーバーと phpLDAPadmin を使用することを許可していません。';
// Entry browser
$lang['entry_chooser_title'] = 'エントリ選択';
@ -562,8 +560,7 @@ $lang['invalid_rdn'] = '無効な RDN 値';
$lang['could_not_rename'] = 'エントリの名称変更が出来ませんでした';
// General errors
$lang['php5_unsupported'] = 'phpLDAPadmin は PHP 5 をサポートしていません。You will likely encounter many weird problems if you continue.';
$lang['mismatched_search_attr_config'] = '設定にエラーがあります。$search_attributes must have the same number of attributes as $search_attributes_display.';
$lang['mismatched_search_attr_config'] = '設定にエラーがあります。$search_attributes は $search_attributes_display の属性と同じ数を持たなければいけません。';
// Password checker
$lang['passwords_match'] = 'パスワードが一致しました!';
@ -572,4 +569,117 @@ $lang['password_checker_tool'] = 'パスワードチェックツール';
$lang['compare'] = '比較';
$lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'デフォルトテンプレート';
// template_config
$lang['user_account'] = 'ユーザーアカウント (posixAccount)';
$lang['address_book_inet'] = 'アドレス帳エントリ (inetOrgPerson)';
$lang['address_book_moz'] = 'アドレス帳エントリ (mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab ユーザーエントリ';
$lang['organizational_unit'] = '所属組織';
$lang['organizational_role'] = '所属職務';
$lang['posix_group'] = 'Posix グループ';
$lang['samba_machine'] = 'Samba NT マシン';
$lang['samba3_machine'] = 'Samba 3 NT マシン';
$lang['samba_user'] = 'Samba ユーザー';
$lang['samba3_user'] = 'Samba 3 ユーザー';
$lang['samba3_group'] = 'Samba 3 グループマップ';
$lang['dns_entry'] = 'DNS エントリ';
$lang['simple_sec_object'] = '簡易セキュリティオブジェクト';
$lang['courier_mail_account'] = 'Courier メールアカウント';
$lang['courier_mail_alias'] = 'Courier メール別名';
$lang['ldap_alias'] = 'LDAP 別名';
$lang['sendmail_cluster'] = 'Sendmail クラスター';
$lang['sendmail_domain'] = 'Sendmail ドメイン';
$lang['sendmail_alias'] = 'Sendmail エイリアス';
$lang['sendmail_virt_dom'] = 'Sendmail 仮想ドメイン';
$lang['sendmail_virt_users'] = 'Sendmail 仮想ユーザー';
$lang['sendmail_relays'] = 'Sendmail リレー';
$lang['custom'] = 'カスタム';
$lang['samba_domain_name'] = '自分の Samba ドメイン名';
$lang['administrators'] = 'Administrators';
$lang['users'] = 'Users';
$lang['guests'] = 'Guests';
$lang['power_users'] = 'Power Users';
$lang['account_ops'] = 'Account Operators';
$lang['server_ops'] = 'Server Operators';
$lang['print_ops'] = 'Print Operators';
$lang['backup_ops'] = 'backup Operators';
$lang['replicator'] = 'Replicator';
$lang['unable_smb_passwords'] = ' Samba のパスワードを作成できませんでした。template_config.php の設定を確認してください。';
$lang['err_smb_conf'] = 'エラー: samba の設定にエラーがあります。';
$lang['err_smb_no_name_sid'] = 'エラー: samba ドメインの名前および sid を提供する必要があります。';
$lang['err_smb_no_name'] = 'エラー: 名前は samba ドメインに提供されませんでした。';
$lang['err_smb_no_sid'] = 'エラー: sid は samba ドメインに提供されませんでした。';
// Samba Account Template
$lang['samba_account'] = 'Samba アカウント';
$lang['samba_account_lcase'] = 'samba アカウント';
// New User (Posix) Account
$lang['t_new_user_account'] = '新規ユーザーアカウント';
$lang['t_hint_customize'] = 'ヒント: このテンプレートをカスタマイズする場合、ファイル templates/creation/new_user_template.php を編集します。';
$lang['t_name'] = '名前';
$lang['t_first_name'] = '名前';
$lang['t_last_name'] = '苗字';
$lang['t_first'] = 'first';
$lang['t_last'] = 'last';
$lang['t_common_name'] = '共通名';
$lang['t_user_name'] = 'ユーザー名';
$lang['t_password'] = 'パスワード';
$lang['t_encryption'] = '暗号化';
$lang['t_login_shell'] = 'ログインシェル';
$lang['t_home_dir'] = 'ホームディレクトリ';
$lang['t_uid_number'] = 'UID 番号';
$lang['t_auto_det'] = '(自動採決)';
$lang['t_group'] = 'グループ';
$lang['t_gid_number'] = 'GID 番号';
$lang['t_err_passwords'] = 'パスワードが一致しません。戻ってからもう一度試してください。';
$lang['t_err_field_blank'] = '%s ブランクを残すことはできません。戻ってからもう一度試してください。';
$lang['t_err_field_num'] = 'フィールド %s は数値のみ入力で出来ます。戻ってからもう一度試してください。';
$lang['t_err_bad_container'] = '指定した内容(%s)は存在しません。戻ってからもう一度試してください。';
$lang['t_confirm_account_creation'] = 'アカウント作成確認';
$lang['t_secret'] = '[secret]';
$lang['t_create_account'] = 'アカウント作成';
// New Address Template
$lang['t_new_address'] = '新規アドレス帳エントリ';
$lang['t_organization'] = '組織';
$lang['t_address'] = '住所';
$lang['t_city'] = '都市';
$lang['t_postal_code'] = '郵便番号';
$lang['t_street'] = '築町村';
$lang['t_work_phone'] = '業務電話';
$lang['t_fax'] = 'Fax';
$lang['t_mobile'] = '携帯電話';
$lang['t_email'] = '電子メール';
$lang['t_container'] = 'コンテナー';
$lang['t_err_cn_blank'] = '一般名を空にすることは出来ません。戻ってからもう一度試してください。';
$lang['t_confim_creation'] = 'エントリ作成の確認:';
$lang['t_create_address'] = 'アドレス作成';
// default template
$lang['t_check_pass'] = 'パスワード検査...';
// compare form
$lang['compare'] = '比較';
$lang['comparing'] = '次の DN と比較中';
$lang['compare_dn'] = 'Compare another DN with';
$lang['with'] = 'with ';
$lang['compf_source_dn'] = '元の DN';
$lang['compf_dn_tooltip'] = 'この DN と別のものを比較';
$lang['switch_entry'] = 'エントリの切り替え';
$lang['no_value'] = '値がありません';
$lang['compare_with'] = '別のエントリと比較';
$lang['need_oclass'] = 'この属性 %s を追加するには次の ObjectClass のうちひとつを必要とします。';
// Time out page
$lang['session_timed_out_1'] = 'セッションは';
$lang['session_timed_out_2'] = '分活動しなかったのでタイムアウトです。自動でログアウトしました。';
$lang['log_back_in'] = '再ログインするには次のリンクをクリックしてください:';
$lang['session_timed_out_tree'] = '(セッションはタイムアウトです。自動でログアウトしました)';
$lang['timeout_at'] = '%s は活動的でなかったのでログアウト';
?>

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/pl.php,v 1.10 2004/12/09 14:16:15 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/pl.php,v 1.13 2005/03/25 01:15:27 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
@ -16,10 +16,10 @@
*
*/
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/pl.php,v 1.10 2004/12/09 14:16:15 uugdave Exp $
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/pl.php,v 1.13 2005/03/25 01:15:27 wurley Exp $
* initial translation from Piotr (DrFugazi) Tarnowski on Version 0.9.3
*/
// Based on en.php version 1.80
// Based on en.php version 1.120
// Search form
$lang['simple_search_form_str'] = 'Wyszukiwanie proste';
@ -29,7 +29,6 @@ $lang['search_for_entries_whose'] = 'Szukaj wpisów w których';
$lang['base_dn'] = 'Bazowa DN';
$lang['search_scope'] = 'Zakres przeszukiwania';
$lang['show_attributes'] = 'Pokaż atrybuty';
$lang['attributes'] = 'Atrybuty';
$lang['Search'] = 'Szukaj';
$lang['equals'] = 'równa się';
$lang['contains'] = 'zawiera';
@ -42,10 +41,12 @@ $lang['format'] = 'Format';
$lang['list'] = 'lista';
$lang['table'] = 'tabela';
$lang['bad_search_display'] = 'W Twojej konfiguracji (config.php) określona jest nieprawidłowa wartość dla $default_search_display: %s. Proszę to poprawić';
$lang['page_n'] = 'Strona %d';
$lang['no_results'] = 'Wyszukiwanie nie przyniosło żadnych rezultatów.';
// Tree browser
$lang['request_new_feature'] = 'Zgłoś zapotrzebowanie na nową funkcjonalność';
$lang['report_bug'] = 'Zgłoś błąd (report a bug)';
$lang['request_new_feature'] = 'Zgłoś zapotrzebowanie';
$lang['report_bug'] = 'Zgłoś błąd';
$lang['schema'] = 'schemat';
$lang['search'] = 'szukaj';
$lang['create'] = 'utwórz';
@ -53,7 +54,7 @@ $lang['info'] = 'info';
$lang['import'] = 'import';
$lang['refresh'] = 'odśwież';
$lang['logout'] = 'wyloguj';
$lang['create_new'] = 'Utwórz nowy';
$lang['create_new'] = 'Utwórz nowy wpis';
$lang['view_schema_for'] = 'Pokaż schemat dla';
$lang['refresh_expanded_containers'] = 'Odśwież wszystkie otwarte kontenery dla';
$lang['create_new_entry_on'] = 'Utwórz nowy wpis na';
@ -62,6 +63,8 @@ $lang['view_server_info'] = 'Pokaż informacje o serwerze';
$lang['import_from_ldif'] = 'Importuj wpisy z pliku LDIF';
$lang['logout_of_this_server'] = 'Wyloguj z tego serwera';
$lang['logged_in_as'] = 'Zalogowany/a jako: ';
$lang['this_base_dn_is_not_valid'] = 'To nie jest prawidłowa DN.';
$lang['this_base_dn_does_not_exist'] = 'Ten wpis nie istnieje';
$lang['read_only'] = 'tylko-do-odczytu';
$lang['read_only_tooltip'] = 'Ten atrybut został oznaczony przez administratora phpLDAPadmin jako tylko-do-odczytu';
$lang['could_not_determine_root'] = 'Nie można ustalić korzenia Twojego drzewa LDAP.';
@ -70,11 +73,13 @@ $lang['please_specify_in_config'] = 'Proszę określić to w pliku config.php';
$lang['create_new_entry_in'] = 'Utwórz nowy wpis w';
$lang['login_link'] = 'Logowanie...';
$lang['login'] = 'login';
$lang['base_entry_does_not_exist'] = 'Ten wpis bazowy nie istnieje';
$lang['create_it'] = 'Utworzyć ?';
// Entry display
$lang['delete_this_entry'] = 'Usuń ten wpis';
$lang['delete_this_entry_tooltip'] = 'Będziesz poproszony/a o potwierdzenie tej decyzji';
$lang['copy_this_entry'] = 'Skopiuj ten wpis';
$lang['copy_this_entry'] = 'Skopiuj lub przenieś ten wpis';
$lang['copy_this_entry_tooltip'] = 'Skopiuj ten obiekt do innej lokalizacji, nowej DN, lub do innego serwera';
$lang['export'] = 'Eksportuj';
$lang['export_lcase'] = 'eksportuj';
@ -112,6 +117,7 @@ $lang['binary_value'] = 'Wartość binarna';
$lang['add_new_binary_attr'] = 'Dodaj nowy atrybut binarny';
$lang['alias_for'] = 'Uwaga: \'%s\' jest aliasem dla \'%s\'';
$lang['required_for'] = 'Atrybut wymagany dla klas(y) obiektu %s';
$lang['required_by_entry'] = 'Ten atrybut jest wymagany dla RDN';
$lang['download_value'] = 'pobierz (download) wartość';
$lang['delete_attribute'] = 'usuń atrybut';
$lang['true'] = 'prawda';
@ -121,13 +127,10 @@ $lang['really_delete_attribute'] = 'Definitywnie usuń atrybut';
$lang['add_new_value'] = 'Dodaj nową wartość';
// Schema browser
$lang['the_following_objectclasses'] = 'Następujące klasy obiektu są wspierane przez ten serwer LDAP.';
$lang['the_following_attributes'] = 'Następujące typy atrybutów są wspierane przez ten serwer LDAP.';
$lang['the_following_matching'] = 'Następujące reguły dopasowania są wspierane przez ten serwer LDAP.';
$lang['the_following_syntaxes'] = 'Następujące składnie są wspierane przez ten serwer LDAP.';
$lang['schema_retrieve_error_1']='Serwer nie wspiera w pełni protokołu LDAP.';
$lang['schema_retrieve_error_2']='Twoja wersja PHP niepoprawnie wykonuje zapytanie.';
$lang['schema_retrieve_error_3']='Lub w ostateczności, phpLDAPadmin nie wie jak uzyskać schemat dla Twojego serwera.';
$lang['schema_retrieve_error_3']='phpLDAPadmin nie wie jak uzyskać schemat z Twojego serwera.';
$lang['schema_retrieve_error_4']='Lub w ostateczności, Twój serwer nie dostarcza tej informacji.';
$lang['jump_to_objectclass'] = 'Skocz do klasy obiektu';
$lang['view_schema_for_oclass'] = 'Pokaż opis schematu dla tej klasy obiektu';
$lang['jump_to_attr'] = 'Skocz do typu atrybutu';
@ -224,17 +227,15 @@ $lang['not_enough_login_info'] = 'Brak wystarczających informacji aby zalogowa
$lang['could_not_connect'] = 'Nie można podłączyć się do serwera LDAP.';
$lang['could_not_connect_to_host_on_port'] = 'Nie można podłączyć się do "%s" na port "%s"';
$lang['could_not_perform_ldap_mod_add'] = 'Nie można dokonać operacji ldap_mod_add.';
$lang['bad_server_id_underline'] = 'Zły server_id: ';
$lang['home'] = 'Strona główna';
$lang['help'] = 'Pomoc';
$lang['success'] = 'Sukces';
$lang['server_colon_pare'] = 'Serwer: ';
$lang['look_in'] = 'Szukam w: ';
$lang['missing_server_id_in_query_string'] = 'Nie określono ID serwera w zapytaniu !';
$lang['missing_dn_in_query_string'] = 'Nie określono DN w zapytaniu !';
$lang['back_up_p'] = 'Do góry...';
$lang['no_entries'] = 'brak wpisów';
$lang['not_logged_in'] = 'Nie zalogowany/a';
$lang['could_not_det_base_dn'] = 'Nie można określić bazowego DN';
$lang['please_report_this_as_a_bug']='Proszę zgłosić to jako błąd.';
$lang['reasons_for_error']='To mogło zdarzyć się z kilku powodów, z których najbardziej prawdopodobne to:';
$lang['yes']='Tak';
$lang['no']='Nie';
@ -243,12 +244,16 @@ $lang['delete']='Usuń';
$lang['back']='Powrót';
$lang['object']='obiekt';
$lang['delete_all']='Usuń wszystko';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = 'wskazówka';
$lang['bug'] = 'błąd (bug)';
$lang['warning'] = 'ostrzeżenie';
$lang['light'] = 'żarówka'; // the word 'light' from 'light bulb'
$lang['proceed_gt'] = 'Dalej &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin nie może bezpiecznie szyfrować danych, ponieważ zmienna $blowfish_secret nie jest ustawiona w config.php. Należy wyedytować config.php i wpisać jakiś łańcuch znaków do zmiennej $blowfish_secret';
$lang['jpeg_dir_not_writable'] = 'Proszę ustawić zmienną $jpeg_temp_dir w config.php na katalog z możliwością zapisu plików';
$lang['jpeg_dir_not_writable_error'] = 'Nie można zapisać do katalogu $jpeg_temp_dir %s. Sprawdź proszę czy Twój serwer może zapisywać pliki w tym katalogu.';
$lang['jpeg_unable_toget'] = 'Nie można pobrać danych jpeg z serwera LDAP dla atrybutu %s.';
$lang['jpeg_delete'] = 'Usuń zdjęcie';
// Add value form
$lang['add_new'] = 'Dodaj';
@ -296,7 +301,9 @@ $lang['copyf_recursive_copy'] = 'Rekursywne kopiowanie wszystkich potomnych obie
$lang['recursive_copy'] = 'Kopia rekursywna';
$lang['filter'] = 'Filtr';
$lang['filter_tooltip'] = 'Podczas rekursywnego kopiowania, kopiowane są tylko wpisy pasujące do filtra';
$lang['delete_after_copy'] = 'Usuń po skopiowaniu (przenieś):';
$lang['delete_after_copy_warn'] = 'Upewnij się, że ustawienia filtra (powyżej) pozwalają na wybranie wszystkich rekordów podrzędnych.';
//create.php
$lang['create_required_attribute'] = 'Brak wartości dla wymaganego atrybutu (%s).';
$lang['redirecting'] = 'Przekierowuję';
@ -307,17 +314,17 @@ $lang['create_could_not_add'] = 'Nie można dodać obiektu do serwera LDAP.';
$lang['createf_create_object'] = 'Utwórz obiekt';
$lang['createf_choose_temp'] = 'Wybierz szablon';
$lang['createf_select_temp'] = 'Wybierz szablon dla procesu tworzenia';
$lang['createf_proceed'] = 'Dalej';
$lang['save_as_file'] = 'Zapisz jako';
$lang['rdn_field_blank'] = 'Pozostawiłeś/aś puste pole RDN.';
$lang['container_does_not_exist'] = 'Kontener który określiłeś/aś (%s) nie istnieje. Spróbuj ponownie.';
$lang['no_objectclasses_selected'] = 'Nie wybrałeś/aś żadnych Klas Obiektu dla tego obiektu. Wróć proszę i zrób to.';
$lang['hint_structural_oclass'] = 'Wskazówka: Musisz wybrać co najmniej jedną strukturalną klasę obiektu (wyróżnioną pogrubieniem)';
$lang['hint_structural_oclass'] = 'Wskazówka: Musisz wybrać dokładnie jedną strukturalną klasę obiektu (wyróżnioną pogrubieniem)';
//creation_template.php
$lang['ctemplate_on_server'] = 'Na serwerze';
$lang['ctemplate_no_template'] = 'Brak określenia szablonu w zmiennych POST.';
$lang['ctemplate_config_handler'] = 'Twoja konfiguracja określa handler';
$lang['ctemplate_handler_does_not_exist'] = 'dla tego szablonu. Ale, ten handler nie istnieje w szablonach/tworzonym katalogu';
$lang['template_not_readable'] = 'Twoja konfiguracja określa obsługę "%s" dla tego szablonu, ale tego pliku nie da się odczytać, ponieważ uprawnienia są zbyt restrykcyjne.';
$lang['template_does_not_exist'] = 'Twoja konfiguracja określa obsługę "%s" dla tego szablonu, ale pliku obsługi nie ma w katalogu templates/creation.';
$lang['create_step1'] = 'Krok 1 z 2: Nazwa i klasa/y obiektu';
$lang['create_step2'] = 'Krok 2 z 2: Określenie atrybutów i wartości';
$lang['relative_distinguished_name'] = 'Relatywna Wyróżniona Nazwa (RDN)';
@ -350,7 +357,7 @@ $lang['ends with'] = 'kończy się na';
$lang['sounds like'] = 'brzmi jak';
// server_info.php
$lang['could_not_fetch_server_info'] = 'Nie można uzyskać informacji od serwera LDAP';
$lang['could_not_fetch_server_info'] = 'Nie można uzyskać informacji od serwera LDAP. Może to być spowodowane <a href="http://bugs.php.net/bug.php?id=29587">błędem</a> w Twojej wersji PHP albo na przykład tym, że Twój serwer LDAP posiada listę kontroli dostępu nie zezwalającą na pobranie RootDSE klientom LDAP';
$lang['server_info_for'] = 'Informacja o serwerze: ';
$lang['server_reports_following'] = 'Serwer zwrócił następujące informacje o sobie';
$lang['nothing_to_report'] = 'Ten serwer nie chce nic powiedzieć o sobie :).';
@ -369,24 +376,30 @@ $lang['commit'] = 'Zatwierdź';
$lang['cancel'] = 'Anuluj';
$lang['you_made_no_changes'] = 'Nie dokonano żadnych zmian';
$lang['go_back'] = 'Powrót';
$lang['unable_create_samba_pass'] = 'Nie można utworzyć hasła dla samby. Sprawdź proszę swoją konfigurację w template_config.php';
// welcome.php
$lang['welcome_note'] = 'Użyj menu z lewej strony do nawigacji';
$lang['credits'] = 'Lista płac';
$lang['changelog'] = 'Historia zmian';
$lang['donate'] = 'Wesprzyj projekt';
$lang['purge_cache'] = 'Wyczyść pamięć podręczną';
$lang['pla_logo'] = 'phpLDAPadmin logo';
// Donate.php
$lang['donation_instructions'] = 'Aby wesprzeć projekt phpLDAPadmin skorzystaj z jednego z przycisków PayPal umieszczonych poniżej';
$lang['donate_amount'] = 'Wesprzyj kwotą %s';
$lang['purge_cache'] = 'Wyczyść cache';
$lang['no_cache_to_purge'] = 'Nie ma czego czyścić.';
$lang['done_purging_caches'] = 'Wyczyszczono %s bajtów pamięci podręcznej.';
$lang['done_purging_caches'] = 'Wyczyszczono %s bajtów pamięci podręcznej (cache).';
$lang['purge_cache_tooltip'] = 'Czyści wszystkie dane podręczne (cache) w phpLDAPadmin, łącznie ze schematami serwera';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = 'Niebezpieczna nazwa pliku: ';
$lang['no_such_file'] = 'Nie znaleziono pliku: ';
//function.php
$lang['auto_update_not_setup'] = 'Zezwoliłeś/ na automatyczne nadawanie uid (auto_uid_numbers)
dla <b>%s</b> w konfiguracji, ale nie określiłeś/ mechanizmu
(auto_uid_number_mechanism). Proszę skorygować ten problem.';
$lang['auto_update_not_setup'] = 'Zezwoliłeś/aś na automatyczne nadawanie uid (auto_uid_numbers) dla <b>%s</b> w konfiguracji, ale nie określiłeś/aś mechanizmu (auto_uid_number_mechanism). Proszę skorygować ten problem.';
$lang['uidpool_not_set'] = 'Określiłeś/aś mechanizm autonumerowania uid "auto_uid_number_mechanism" jako "uidpool" w konfiguracji Twojego serwera <b>%s</b>, lecz nie określiłeś/aś audo_uid_number_uid_pool_dn. Proszę określ to zanim przejdziesz dalej.';
$lang['uidpool_not_exist'] = 'Wygląda na to, że uidPool, którą określiłeś/aś w Twojej konfiguracji ("%s") nie istnieje.';
$lang['specified_uidpool'] = 'Określiłeś/aś "auto_uid_number_mechanism" jako "search" w konfiguracji Twojego serwera <b>%s</b>, ale nie określiłeś/aś bazy "auto_uid_number_search_base". Zrób to zanim przejdziesz dalej.';
@ -402,15 +415,15 @@ $lang['could_not_bind_anon'] = 'Nie można anonimowo podłączyć do serwera.';
$lang['could_not_bind'] = 'Nie można podłączyć się do serwera LDAP.';
$lang['anonymous_bind'] = 'Podłączenie anonimowe';
$lang['bad_user_name_or_password'] = 'Zła nazwa użytkownika lub hasło. Spróbuj ponownie.';
$lang['redirecting_click_if_nothing_happens'] = 'Przekierowuję... Kliknij tutaj jeśli nic się nie dzieje.';
$lang['successfully_logged_in_to_server'] = 'Pomyślnie zalogowano do serwera <b>%s</b>';
$lang['could_not_set_cookie'] = 'Nie można ustawić ciasteczka (cookie).';
$lang['ldap_said'] = 'LDAP odpowiedział: %s';
$lang['ferror_error'] = 'Błąd';
$lang['fbrowse'] = 'przeglądaj';
$lang['delete_photo'] = 'Usuń fotografię';
$lang['install_not_support_blowfish'] = 'Twoja instalacja PHP nie wspiera szyfrowania blowfish.';
$lang['install_not_support_md5crypt'] = 'Twoja instalacja PHP nie wspiera szyfrowania md5crypt.';
$lang['install_not_support_ext_des'] = 'Twoja systemowa biblioteka crypt nie wspiera rozszerzonego szyfrowania DES';
$lang['install_not_support_blowfish'] = 'Twoja systemowa biblioteka crypt nie wspiera szyfrowania blowfish.';
$lang['install_not_support_md5crypt'] = 'Twoja systemowa biblioteka crypt nie wspiera szyfrowania md5crypt.';
$lang['install_no_mash'] = 'Twoja instalacja PHP nie posiada funkcji mhash(). Nie mogę tworzyć haszy SHA.';
$lang['jpeg_contains_errors'] = 'jpegPhoto zawiera błędy<br />';
$lang['ferror_number'] = 'Błąd numer: %s (%s)';
@ -442,7 +455,6 @@ $lang['ferror_congrats_found_bug'] = 'Gratulacje ! Znalazłeś błąd w phpLDAPa
//ldif_import_form
$lang['import_ldif_file_title'] = 'Importuj plik LDIF';
$lang['select_ldif_file'] = 'Wybierz plik LDIF:';
$lang['select_ldif_file_proceed'] = 'Dalej &gt;&gt;';
$lang['dont_stop_on_errors'] = 'Nie zatrzymuj się po napotkaniu błędów';
//ldif_import
@ -453,7 +465,7 @@ $lang['modify_action'] = 'Modyfikowanie...';
$lang['warning_no_ldif_version_found'] = 'Nie znaleziono numeru wersji. Przyjmuję 1.';
$lang['valid_dn_line_required'] = 'Wymagana jest poprawna linia DN.';
$lang['missing_uploaded_file'] = 'Brak wgrywanego pliku.';
$lang['no_ldif_file_specified.'] = 'Nie określono pliku LDIF. Spróbuj ponownie.';
$lang['no_ldif_file_specified'] = 'Nie określono pliku LDIF. Spróbuj ponownie.';
$lang['ldif_file_empty'] = 'Wgrany plik LDIF jest pusty.';
$lang['empty'] = 'pusty';
$lang['file'] = 'Plik';
@ -489,11 +501,10 @@ $lang['generated_on_date'] = 'Wygenerowane przez phpLDAPadmin ( http://phpldapad
$lang['total_entries'] = 'Łącznie wpisów';
$lang['dsml_export_for_dn'] = 'Eksport DSLM dla: %s';
$lang['include_system_attrs'] = 'Zawiera atrybuty systemowe';
$lang['csv_spreadsheet'] = 'CVS (arkusz)';
// logins
$lang['could_not_find_user'] = 'Nie można znaleźć użytkownika "%s"';
$lang['password_blank'] = 'Pozostawiłeś/aś puste hasło.';
$lang['login_cancelled'] = 'Logowanie anulowane.';
$lang['no_one_logged_in'] = 'Nikt nie jest zalogowany do tego serwera.';
$lang['could_not_logout'] = 'Nie można wylogować.';
$lang['unknown_auth_type'] = 'Nieznany auth_type: %s';
@ -505,6 +516,7 @@ $lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'Nazwa użytkownika';
$lang['password'] = 'Hasło';
$lang['authenticate'] = 'Zaloguj';
$lang['login_not_allowed'] = 'Przykro mi, ale nie masz uprawnień aby korzystać z phpLDAPadmin na tym serwerze LDAP.';
// Entry browser
$lang['entry_chooser_title'] = 'Wybór wpisu';
@ -534,15 +546,25 @@ $lang['no_rdn_change'] = 'Nie zmieniłeś/aś RDN';
$lang['invalid_rdn'] = 'Błędna wartość RDN';
$lang['could_not_rename'] = 'Nie można zmienić nazwy wpisu';
// General errors
$lang['mismatched_search_attr_config'] = 'Twoja konfiguracja zawiera błąd. $search_attributes musi posiadać tą samą ilość atrybutów co $search_attributes_display.';
// Password checker
$lang['passwords_match'] = 'Hasła zgodne !';
$lang['passwords_do_not_match'] = 'Hasła nie zgadzają się !';
$lang['password_checker_tool'] = 'Narzędzie do sprawdzania haseł';
$lang['compare'] = 'Porównaj';
$lang['to'] = 'Do';
// Templates
$lang['using'] = 'Używając';
$lang['template'] = 'szablonu';
$lang['switch_to'] = 'Możesz przełączyć się do ';
$lang['default_template'] = 'domyślnego szablonu';
// template_config
$lang['user_account'] = 'Konto Użytkownika (posixAccount)';
$lang['address_book'] = 'Wpis Książki Adresowej (inetOrgPerson)';
$lang['address_book_inet'] = 'Wpis Książki Adresowej (inetOrgPerson)';
$lang['address_book_moz'] = 'Wpis Książki Adresowej (mozillaOrgPerson)';
$lang['kolab_user'] = 'Wpis Użytkownika Kolab';
$lang['organizational_unit'] = 'Jednostka Organizacyjna';
$lang['organizational_role'] = 'Rola w Organizacji';
@ -557,6 +579,12 @@ $lang['simple_sec_object'] = 'Prosty obiekt bezpieczeństwa (SSO)';
$lang['courier_mail_account'] = 'Konto Pocztowe w Courier';
$lang['courier_mail_alias'] = 'Alias Pocztowy w Courier';
$lang['ldap_alias'] = 'Alias w LDAP';
$lang['sendmail_cluster'] = 'Klaster Sendmail';
$lang['sendmail_domain'] = 'Domena Sendmail';
$lang['sendmail_alias'] = 'Alias Sendmail';
$lang['sendmail_virt_dom'] = 'Wirtualna Domena Sendmail';
$lang['sendmail_virt_users'] = 'Wirtualni Użytkownicy Sendmail';
$lang['sendmail_relays'] = 'Sendmail Relays';
$lang['custom'] = 'Ogólne';
$lang['samba_domain_name'] = 'Moja nazwa domeny w Samba';
$lang['administrators'] = 'Administratorzy';
@ -569,6 +597,10 @@ $lang['print_ops'] = 'Operatorzy drukowania';
$lang['backup_ops'] = 'Operatorzy archiwizacji danych';
$lang['replicator'] = 'Replikator';
$lang['unable_smb_passwords'] = ' Nie można utworzyć haseł Samba. Proszę sprawdzić konfigurację w template_config.php';
$lang['err_smb_conf'] = 'Błąd: masz błąd w konfiguracji samby';
$lang['err_smb_no_name_sid'] = 'Błąd: musisz wprowadzić nazwę oraz sid dla Twojej domeny samby.';
$lang['err_smb_no_name'] = 'Błąd: brak nazwy dla domeny samby.';
$lang['err_smb_no_sid'] = 'Błąd: brak sid dla domeny samby';
// Samba Account Template
$lang['samba_account'] = 'Konto Samba';
@ -580,6 +612,8 @@ $lang['t_hint_customize'] = 'Wskazówka: Aby dostosować ten szablon, wyedytuj p
$lang['t_name'] = 'Nazwa/Nazwisko';
$lang['t_first_name'] = 'Imię';
$lang['t_last_name'] = 'Nazwisko';
$lang['t_first'] = 'imię';
$lang['t_last'] = 'nazwisko';
$lang['t_common_name'] = 'Nazwa';
$lang['t_user_name'] = 'Nazwa użytkownika';
$lang['t_password'] = 'Hasło';
@ -614,4 +648,25 @@ $lang['t_err_cn_blank'] = 'Nie możesz pozostawić pustego pola Nazwa. Wróć i
$lang['t_confim_creation'] = 'Potwierdź utworzenie wpisu:';
$lang['t_create_address'] = 'Utwórz adres';
// default template
$lang['t_check_pass'] = 'Sprawdź hasło';
// compare form
$lang['compare'] = 'Porównaj';
$lang['comparing'] = 'Porównuję następujące DN';
$lang['compare_dn'] = 'Porównaj inny DN z';
$lang['with'] = 'z';
$lang['compf_source_dn'] = 'Źródłowa DN';
$lang['compf_dn_tooltip'] = 'Prównaj tą DN z inną';
$lang['switch_entry'] = 'Zamień wpisy';
$lang['no_value'] = 'Brak wartości';
$lang['compare_with'] = 'Porównaj z innym wpisem';
$lang['need_oclass'] = 'Musisz posiadać jedną z następujących klas obiektów, aby dodać ten atrybut %s ';
// Time out page
$lang['session_timed_out_1'] = 'Twoja sesja wygaśnie po';
$lang['session_timed_out_2'] = 'min. nieaktywności. Zostaniesz automatycznie wylogowany/a.';
$lang['log_back_in'] = 'Aby się zalogować ponownie kliknij w następujący link:';
$lang['session_timed_out_tree'] = '(Sesja wygasła. Automatycznie wylogowano)';
$lang['timeout_at'] = 'Brak aktywności wyloguje Cię o %s';
?>

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/ru.php,v 1.6 2004/06/21 20:12:18 i18phpldapadmin Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/ru.php,v 1.7 2005/06/23 14:11:24 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@ -503,7 +503,7 @@ $lang['not_using_https'] = 'Вы не используете \'https\'. Web-бр
$lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'Имя пользователя';
$lang['password'] = 'Пароль';
$lang['authenticate'] = 'Авотризация';
$lang['authenticate'] = 'Авторизация';
// Entry browser
$lang['entry_chooser_title'] = 'Выбор записи';

720
lang/recoded/zh-cn.php Normal file
View File

@ -0,0 +1,720 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/recoded/zh-cn.php,v 1.3 2005/04/05 07:33:23 wurley Exp $
// Translate to Simplified Chinese, by 张雪平(heromyth), from zxpmyth@yahoo.com.cn
// Based on en.php,v 1.119 2005/03/16 20:57:45
/*
使用说明将其转换不utf-8字符集再放到lang/recoded目录下接着修改文件lang/auto.php执行如下步骤
1、修改第7行为
$useLang="zh-cn";
2、在31行后面加下下面一行
," zh-cn"=>"zh-cn" //Simplified Chinese
*/
/* --- 翻译指导 ---
*
* 如果你想建立一个新的语言文件,
* 请把它提交到SourceForge
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* 请使用底部的选项"Check to Upload and Attach a File上传附件"
*
* 阅读doc/README-translation.txt 可以得到翻译指导。
*
* 谢谢!
*
*/
/*
* 数组$lang 包含了所有phpLDAPadmin 所使用的字体串。
* 每一个语言文件都只需要在这个数组中定义一个该语言的所对应的
* 字符串。
*/
// Search form
$lang['simple_search_form_str'] = '简单搜索表格';
$lang['advanced_search_form_str '] = '高级搜索表格';
$lang['server'] = '服务器';
$lang['search_for_entries_whose'] = '搜索条目的所属';
$lang['base_dn'] = '基本DN';
$lang['search_scope'] = '搜索范围';
$lang['show_attributes'] = '显示属性';
//$lang['attributes'] = '属性';
$lang['Search'] = '搜索';
$lang['predefined_search_str'] = '选择一个预定义的搜索';
$lang['predefined_searches'] = '预定义的搜索';
$lang['no_predefined_queries'] = '在config.php里没有条目定义。';
$lang['export_results'] = '导出结果';
$lang['unrecoginzed_search_result_format'] = '不能识别的搜索结果格式: %s';
$lang['format'] = '格式';
$lang['list'] = '列表';
$lang['table'] = '表格';
$lang['bad_search_display'] = '你的config.php 给$default_search_display指定了一个非法的值 %s请更正';
$lang['page_n'] = '第%d页';
$lang['no_results'] = '这次搜索没找到结果。';
// Tree browser
$lang['request_new_feature'] = '功能需求';
$lang['report_bug'] = '报告错漏';
$lang['schema'] = '格式';
$lang['search'] = '搜索';
$lang['create'] = '创建';
$lang['info'] = '信息';
$lang['import'] = '导入';
$lang['refresh'] = '刷新';
$lang['logout'] = '退出';
$lang['create_new'] = '创建新条目';
$lang['view_schema_for'] = '查看格式';
$lang['refresh_expanded_containers'] = '刷新所有展开的容器,来自';
$lang['create_new_entry_on'] = '创建新条目到';
$lang['new'] = '新建';
$lang['view_server_info'] = '查看附加的服务器信息';
$lang['import_from_ldif'] = '从LDIF文件导入条目';
$lang['logout_of_this_server'] = '退出这个服务器';
$lang['logged_in_as'] = '登录为: ';
$lang['this_base_dn_is_not_valid'] = '该DN是无效。';
$lang['this_base_dn_does_not_exist'] = '该条目不存在。';
$lang['read_only'] = '只读';
$lang['read_only_tooltip'] = '该属性已经被phpLDAPadmin 管理员标识为只读';
$lang['could_not_determine_root'] = '检测不到你的LDAP树的根。';
$lang['ldap_refuses_to_give_root'] = '好像你的LDAP服务器配置来限制了不要显露它的根。';
$lang['please_specify_in_config'] = '请在config.php里指定它';
$lang['create_new_entry_in'] = '创建新条目于';
$lang['login_link'] = '登录…';
$lang['login'] = '登录';
$lang['base_entry_does_not_exist'] = '该基准条目不存在。';
$lang['create_it'] = '要创建它吗?';
// Entry display
$lang['delete_this_entry'] = '删除该条目';
$lang['delete_this_entry_tooltip'] = '你会得到提示要求确认该选择';
$lang['copy_this_entry'] = '复制和移动该条目';
$lang['copy_this_entry_tooltip'] = '把这个对象复制到另一个位置一个新DN或另一个服务器。';
$lang['export'] = '导出';
$lang['export_lcase'] = '导出';
$lang['export_tooltip'] = '保存一个该对象的导出';
$lang['export_subtree_tooltip'] = '保存一个该对象及其所有孩子的导出';
$lang['export_subtree'] = '导出子树';
$lang['create_a_child_entry'] = '创建一个子条目';
$lang['rename_entry'] = '条目更名';
$lang['rename'] = '更名';
$lang['add'] = '增加';
$lang['view'] = '查看';
$lang['view_one_child'] = '查看1个子条目';
$lang['view_children'] = '查看%s个子条目';
$lang['add_new_attribute'] = '增加新的属性';
$lang['add_new_objectclass'] = '增加新的ObjectClass';
$lang['hide_internal_attrs'] = '隐藏内部属性';
$lang['show_internal_attrs'] = '显示内部属性';
$lang['attr_name_tooltip'] = '点击查看属性类型\'%s\'的格式定义';
$lang['none'] = '什么都没有';
$lang['no_internal_attributes'] = '没有内部属性';
$lang['no_attributes'] = '这个条目没有属性';
$lang['save_changes'] = '保存更改';
$lang['add_value'] = '赋值';
$lang['add_value_tooltip'] = '给属性\'%s\'赋一个附加的值';
$lang['refresh_entry'] = '刷新';
$lang['refresh_this_entry'] = '刷新这个条目';
$lang['delete_hint'] = '提示: 想要删除一个属性,请将文本字段清空,然后点击保存。';
$lang['attr_schema_hint'] = '提示: 要查看一个属性的格式,请点击属性的名称。';
$lang['attrs_modified'] = '下面有一些属性(%s) 被修改了,而且被标识为高亮。';
$lang['attr_modified'] = '下面一个属性(%s) 被修改了,而且被标识为高亮';
$lang['viewing_read_only'] = '以只读模式查看条目。';
$lang['no_new_attrs_available'] = '这个条目没有提供新的属性';
$lang['no_new_binary_attrs_available'] = '这个条目没有提供新的二进制属性';
$lang['binary_value'] = '二进制值';
$lang['add_new_binary_attr'] = '增加新的二进制值';
$lang['alias_for'] = '注意: \'%s\'是\'%s\'的一个别名';
$lang['required_for'] = 'objectClass(es) %s所必需的属性';
$lang['download_value'] = '下载值';
$lang['delete_attribute'] = '删除属性';
$lang['true'] = '真的';
$lang['false'] = '假的';
$lang['none_remove_value'] = '什么都没有,将值移除';
$lang['really_delete_attribute'] = '真的删除属性';
$lang['add_new_value'] = '增加新的值';
// Schema browser
//$lang['the_following_objectclasses'] = '这个LDAP服务器支持下列objectClasses。';
//$lang['the_following_attributes'] = '这个LDAP服务器支持下列属性类型。';
//$lang['the_following_matching'] = '这个LDAP服务器支持下列匹配规则。';
//$lang['the_following_syntaxes'] = '这个LDAP服务器支持下列语法规则。';
$lang['schema_retrieve_error_1']='这个服务器并不完全支持LDAP 协议。';
$lang['schema_retrieve_error_2']='你的PHP版本不能正确地完成查询。';
$lang['schema_retrieve_error_3']='phpLDAPadmin不知道如果获取你的服务器的格式。';
$lang['schema_retrieve_error_4']='或者最后你的LDAP服务器没有提供该信息。';
$lang['jump_to_objectclass'] = '跳转到一个objectClass';
$lang['view_schema_for_oclass'] = '查看该objectClass的格式描述';
$lang['jump_to_attr'] = '跳转到一个属性类型';
$lang['jump_to_matching_rule'] = '跳转到一个匹配的规则';
$lang['schema_for_server'] = '服务器的格式';
$lang['required_attrs'] = '必需的属性';
$lang['required'] = '必需的';
$lang['optional_attrs'] = '可选的属性';
$lang['optional_binary_attrs'] = '可选的二进制属性';
$lang['OID'] = 'OID';
$lang['aliases']='别名';
$lang['desc'] = '描述';
$lang['no_description']='没有描述';
$lang['name'] = '名称';
$lang['equality']='相等';
$lang['is_obsolete'] = '该objectClass过久了。';
$lang['inherits'] = '继承于';
$lang['inherited_from'] = '被继承于';
$lang['parent_to'] = '双亲指向';
$lang['jump_to_this_oclass'] = '跳转到该objectClass的定义处';
$lang['matching_rule_oid'] = '匹配规则 OID';
$lang['syntax_oid'] = '语法规则OID';
$lang['not_applicable'] = '不可应用';
$lang['not_specified'] = '未指定的';
$lang['character']='单个字符';
$lang['characters']='多个字符';
$lang['used_by_objectclasses']='被objectClasses所使用的';
$lang['used_by_attributes']='被属性所使用的';
$lang['maximum_length']='最大长度';
$lang['attribute_types']='属性类型';
$lang['syntaxes']='语法规则';
$lang['matchingrules']='匹配规则';
$lang['oid']='OID';
$lang['obsolete']='作废的';
$lang['ordering']='排序';
$lang['substring_rule']='子串规则';
$lang['single_valued']='单个赋值的';
$lang['collective']='集体的';
$lang['user_modification']='用户修改';
$lang['usage']='使用格式';
$lang['could_not_retrieve_schema_from']='不能找回格式的地方';
$lang['type']='类型';
$lang['no_such_schema_item'] = '没有这样的格式项目: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = '成功删除条目:%s。';
$lang['you_must_specify_a_dn'] = '你必须指定一个DN';
$lang['could_not_delete_entry'] = '不能删除该条目: %s';
$lang['no_such_entry'] = '没有这样的条目: %s';
$lang['delete_dn'] = '删除:%s';
$lang['permanently_delete_children'] = '也要永久删除所的子条目吗?';
$lang['entry_is_root_sub_tree'] = '该条目是根,其子树中包含有条目:%s。';
$lang['view_entries'] = '查看条目';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin可以递归地删除该条目及其所有子条目中的%s。 关于这个动作可能会删除的所有条目列表,请查看下面。 你真的想这样做吗?';
$lang['confirm_recursive_delete_note'] = '注释: 这个可能潜在危险,后果自负。 这个操作不可恢复。 一定要考虑到aliases别名、 referrals提名以及其它可能引起问题的事情。';
$lang['delete_all_x_objects'] = '删除所有的对象:%s ';
$lang['recursive_delete_progress'] = '递归式删除过程';
$lang['entry_and_sub_tree_deleted_successfully'] = '成功删除条目%s 和子树。';
$lang['failed_to_delete_entry'] = '删除条目:%s 失败';
$lang['list_of_entries_to_be_deleted'] = '将被删除的条目列表:';
$lang['sure_permanent_delete_object']='确认你想永久删除这个对象吗?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = ' 在phpLDAPadmin的配置中属性"%s"被标识为只读。';
$lang['no_attr_specified'] = '没有指定属性名称。';
$lang['no_dn_specified'] = '没有指定DN ';
// Adding attributes
$lang['left_attr_blank'] = '属性值为空白。 请返回再试。';
$lang['failed_to_add_attr'] = '增加属性失败。';
$lang['file_empty'] = '你选择的文件为空或不存在。 请返回再试。';
$lang['invalid_file'] = '安全错误: 上传的这个文件可能存在安全危险。';
$lang['warning_file_uploads_disabled'] = '你的PHP配置不允许上传文件。 请在进行下步之前检查一下php.ini。';
$lang['uploaded_file_too_big'] = '你上传的文件太大。 请检查php.ini中的upload_max_size 设置';
$lang['uploaded_file_partial'] = '你选择的文件上传不完整,可能是因为网络的缘故。';
$lang['max_file_size'] = '最大文件尺寸: %s';
// Updating values
$lang['modification_successful'] = '成功修改!';
$lang['change_password_new_login'] = '因为你更改了密码,你现在必须使用新的密码重新登录。';
// Adding objectClass form
$lang['new_required_attrs'] = '新增必需的属性';
$lang['requires_to_add'] = '这个动作要求你增加';
$lang['new_attributes'] = '新增属性';
$lang['new_required_attrs_instructions'] = '指导: 为了增加这个objectClass 到该条目,你必须指定';
$lang['that_this_oclass_requires'] = '这该objectClass所必需的。 你可以在这个表里完成。';
$lang['add_oclass_and_attrs'] = '增加ObjectClass 和属性';
$lang['objectclasses'] = 'ObjectClasses';
// General
$lang['chooser_link_tooltip'] = '点击弹出一个对话框来以图形方式选择一个条目(DN) ';
$lang['no_updates_in_read_only_mode'] = '服务器是以只读方式运行,你不能完成更新';
$lang['bad_server_id'] = '错误的服务器id';
$lang['not_enough_login_info'] = '没有足够的信息来登录服务器。 请检查你的配置。';
$lang['could_not_connect'] = '不能连接到LDAP服务器。';
$lang['could_not_connect_to_host_on_port'] = '不能连接到"%s" 的"%s"端口';
$lang['could_not_perform_ldap_mod_add'] = '不能完成ldap_mod_add 操作。';
//$lang['bad_server_id_underline'] = '错误的server_id';
$lang['home'] = '主页';
$lang['help'] = '帮助';
$lang['success'] = '成功';
$lang['server_colon_pare'] = '服务器:';
$lang['look_in'] = '正在查看:';
//$lang['missing_server_id_in_query_string'] = '在查询串中没有指定服务器ID';
$lang['missing_dn_in_query_string'] = '在查询串中没有指定DN';
$lang['back_up_p'] = '后退...';
$lang['no_entries'] = '没有条目';
//$lang['not_logged_in'] = '没有登录';
$lang['could_not_det_base_dn'] = '不能确定base DN基DN';
//$lang['please_report_this_as_a_bug']='请报告这个错漏。';
$lang['reasons_for_error']='出现这种情况可能有几个原因,其中最有可能的是:';
$lang['yes']='是';
$lang['no']='不';
$lang['go']='开始';
$lang['delete']='删除';
$lang['back']='后退';
$lang['object']='对象';
$lang['delete_all']='删除所有的';
//$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = '提示';
$lang['bug'] = '错漏';
$lang['warning'] = '警告';
$lang['light'] = 'light'; // 单词'light' 来自 'light bulb电灯泡'
$lang['proceed_gt'] = '继续 &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin不能安全地加密和解密你的敏感信息因为在config.php是没有设置$blowfish_secret。现在你需要编辑config.php并设置$blowfish_secret为某种隐秘的字符串。';
$lang['jpeg_dir_not_writable'] = '请在phpLDAPadmin的config.php里将$jpeg_temp_dir设置到一个可写的目录';
$lang['jpeg_dir_not_writable_error'] = '不能将%s写入$jpeg_temp_dir目录。请确定你的web服务器能够在那里写文件。';
$lang['jpeg_unable_toget'] = '不能从LDAP服务器为属性%s获得jpeg数据。';
$lang['jpeg_delete'] = '删除图片';
// Add value form
$lang['add_new'] = '新增';
$lang['value_to'] = '赋值给';
$lang['distinguished_name'] = '识别名DN';
$lang['current_list_of'] = '当前列表';
$lang['values_for_attribute'] = '属性值';
$lang['inappropriate_matching_note'] = '注释: 如果在你的LDAP服务器上没有为这个属性设置EQUALITY 规则的话,你可能会碰到"inappropriate matching不正确的匹配"这样的错误。';
$lang['enter_value_to_add'] = '输入你想增加的值:';
$lang['new_required_attrs_note'] = '注释: 可能会要求你输入该objectClass所必需的新属性。';
$lang['syntax'] = '规则';
//copy.php
$lang['copy_server_read_only'] = '服务器处于只读模式,你不能完成更新';
$lang['copy_dest_dn_blank'] = ' 目标DN项为空。';
$lang['copy_dest_already_exists'] = '目标条目 (%s) 已经存在。';
$lang['copy_dest_container_does_not_exist'] = '目标容器 (%s) 不存在。';
$lang['copy_source_dest_dn_same'] = '源和目标DN 相同。';
$lang['copy_copying'] = '正在复制 ';
$lang['copy_recursive_copy_progress'] = '递归手复制过程';
$lang['copy_building_snapshot'] = '正在建立用于复制的树的快照… ';
$lang['copy_successful_like_to'] = '复制成功! 你还想要 ';
$lang['copy_view_new_entry'] = '查看新条目';
$lang['copy_failed'] = '复制DN不成功 ';
//edit.php
$lang['missing_template_file'] = '警告: 样板文件不存在,';
$lang['using_default'] = '使用默认的。';
$lang['template'] = '样板';
$lang['must_choose_template'] = '你必须选择一个样板';
$lang['invalid_template'] = '%s 是一个非法的样板';
$lang['using_template'] = '使用样板';
$lang['go_to_dn'] = '转到 %s';
$lang['structural_object_class_cannot_remove'] = '这是个结构化的ObjectClass因此不能移除。';
$lang['structural'] = '结构化';
//copy_form.php
$lang['copyf_title_copy'] = '复制';
$lang['copyf_to_new_object'] = '成为一个新的对象';
$lang['copyf_dest_dn'] = '目标DN';
$lang['copyf_dest_dn_tooltip'] = '在复制该源条目时将被建立的新条目的完整DN ';
$lang['copyf_dest_server'] = '目标服务器';
$lang['copyf_note'] = '提示: 在两个不同的服务器之间复制时,要求它们没有"schema格式冲突"';
$lang['copyf_recursive_copy'] = '另外还要递归复制此对象的所有子内容。';
$lang['recursive_copy'] = '递归复制';
$lang['filter'] = '过滤器';
//$lang['search_filter'] = '搜索过滤器';
$lang['filter_tooltip'] = '在完成一个递归复制时,只会复制哪些匹配这个过滤器的条目。';
$lang['delete_after_copy'] = '复制后删除(即移动):';
$lang['delete_after_copy_warn'] = '确认你的过滤器(见上面)会选择所有的子记录。';
//create.php
$lang['create_required_attribute'] = '必需属性(%s)的值为空白。';
$lang['redirecting'] = '重定向...';
$lang['here'] = '这里';
$lang['create_could_not_add'] = '不能增加该对象到LDAP服务器。';
//create_form.php
$lang['createf_create_object'] = '创建对象';
$lang['createf_choose_temp'] = '选择样板';
$lang['createf_select_temp'] = '选择用于创建过程的样板';
$lang['save_as_file'] = '另存为文件';
$lang['rdn_field_blank'] = 'RDN段为空白。';
$lang['container_does_not_exist'] = '你指定的(%s)容器不存在。 请再试试。';
$lang['no_objectclasses_selected'] = '你没有为该对象选择任何ObjectClasses。 请返回照做。';
$lang['hint_structural_oclass'] = '提示: 你必有选择一个结构化的objectClass (如上面粗体所显示的)';
//creation_template.php
$lang['ctemplate_on_server'] = '在服务器上';
$lang['ctemplate_no_template'] = '在POST变量中没有指定样板。';
$lang['template_not_readable'] = '你在配置中指定了用于该样板的"%s"的手柄,但是这个文件因为禁止权限太严格而不可读。';
$lang['template_does_not_exist'] = '你在配置文件中指定了用于该 样板的"%s"的手柄但是该手柄在templates/creation 目录中不存在。';
$lang['create_step1'] = '第一步: Name 和 ObjectClass(es)';
$lang['create_step2'] = '第二步: 指定属性和值';
$lang['relative_distinguished_name'] = 'Relative Distinguished Name相对标识名';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(例如: cn=MyNewPerson)';
$lang['container'] = 'Container容器';
// search.php
$lang['you_have_not_logged_into_server'] = '你还没有登入所选择的服务器,因此你不能在它上面完成搜索。';
$lang['click_to_go_to_login_form'] = '点击这里转到登录表格';
$lang['unrecognized_criteria_option'] = '不认识的criteria标准选项 ';
$lang['if_you_want_to_add_criteria'] = '如果你想增加自己的criteria 到列表里。 记得编辑search.php 来处理它们。 退出。';
$lang['entries_found'] = '找到的条目: ';
$lang['filter_performed'] = '应用了的过滤器: ';
$lang['search_duration'] = 'phpLDAPadmin完成搜索用时';
$lang['seconds'] = '秒';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = '搜索的范围';
$lang['scope_sub'] = 'Sub (整个子树)';
$lang['scope_one'] = 'One (base之下的一级)';
$lang['scope_base'] = 'Base (仅限于base dn)';
$lang['standard_ldap_search_filter'] = '标准的LDAP搜索过滤器。 例如: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = '搜索过滤器';
$lang['list_of_attrs_to_display_in_results'] = '用于显示在结果中的属性列表(以逗号隔开)';
//$lang['show_attributes'] = '显示属性';
// search_form_simple.php
//$lang['search_for_entries_whose'] = '查找是谁的条目:';
$lang['equals'] = '等于';
$lang['starts with'] = '开始于';
$lang['contains'] = '包含';
$lang['ends with'] = '结束于';
$lang['sounds like'] = '看起来象';
// server_info.php
$lang['could_not_fetch_server_info'] = '不能从服务器上取得LDAP信息。 可能是因为你的PHP存在这个<a href="http://bugs.php.net/bug.php?id=29587">错漏</a>或者是你的LDAP服务器里指定的"访问控制"禁止LDAP客户端访问RootDSE。';
$lang['server_info_for'] = '服务器信息: ';
$lang['server_reports_following'] = '下列信息是服务器报告的关于它自己的信息';
$lang['nothing_to_report'] = '该服务器没有报告任何信息。';
//update.php
$lang['update_array_malformed'] = '看不懂update_array。 这可能是phpLDAPadmin的错漏。 请报告。';
$lang['could_not_perform_ldap_modify'] = '不能完成ldap_modify 操作。';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = '你想应用这些变化吗?';
$lang['attribute'] = '属性';
$lang['old_value'] = '旧值';
$lang['new_value'] = '新值';
$lang['attr_deleted'] = '[删除的属性]';
$lang['commit'] = '提交';
$lang['cancel'] = '取消';
$lang['you_made_no_changes'] = '你没有进行更改';
$lang['go_back'] = '返回';
$lang['unable_create_samba_pass'] = '不能建立samba密码。请在template_config.php里检查你的配置';
// welcome.php
$lang['welcome_note'] = '使用左边菜单来导航';
$lang['credits'] = '荣誉';
$lang['changelog'] = '变更记录';
$lang['donate'] = '捐赠';
$lang['pla_logo'] = 'phpLDAPadmin 标识';
// Donate.php
$lang['donation_instructions'] = '想捐款给phpLDAPadmin项目请点击下面PayPal按钮中的一个。';
$lang['donate_amount'] = '捐赠 %s';
//$lang['wish_list_option'] = '或许你可以买份礼物给phpLDAPadmin开发人员。';
//$lang['wish_list'] = '查看Dave的phpLDAPadmin 愿望列表';
$lang['purge_cache'] = '清空缓存';
$lang['no_cache_to_purge'] = '没有缓存可清空。';
$lang['done_purging_caches'] = '清空缓存%s 个字节。';
$lang['purge_cache_tooltip'] = '清空所有在phpLDAPadmin中缓存的数据包括服务器schema格式。';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = '不安全的文件名: ';
$lang['no_such_file'] = '没有这样的文件: ';
//function.php
$lang['auto_update_not_setup'] = '在你的配置中为 <b>%s</b> 启用了auto_uid_numbers
但是你没有指定auto_uid_number_mechanism。 请更正
这个问题';
$lang['uidpool_not_set'] = '你在服务<b>%s</b>的配置中指定"auto_uid_number_mechanism" "uidpool"
但是你没有指定
audo_uid_number_uid_pool_dn。 请在进行下步前指定它。';
$lang['uidpool_not_exist'] = '好像你在配置("%s")中指定的uidPool
不存在。';
$lang['specified_uidpool'] = '你在服务器<b>%s<b>的配置文件中指定了"auto_uid_number_mechanism" "search"
但是你没有指定
"auto_uid_number_search_base" 请在进行下步前指定它。';
$lang['auto_uid_invalid_credential'] = '使用auto_uid credentials不能绑定到<b>%s</b>。 请检查你的配置文件。';
$lang['bad_auto_uid_search_base'] = '你的phpLDAPadmin配置为服务器%s指定了一个非法的auto_uid_search_base ';
$lang['auto_uid_invalid_value'] = '你在配置文件中为auto_uid_number_mechanism ("%s")指定了一个非法的值
只有"uidpool" "search" 是合法的。
请更正这个问题。';
$lang['error_auth_type_config'] = '错误: 在你的配置文件中有个错误。 仅允许用于
$servers部分的auth_type的值为 \'session\', \'cookie\', and \'config\' 输入\'%s\'
这是不允许的。 ';
$lang['unique_attrs_invalid_credential'] = '不能使用unique_attrs 绑定到<b>%s</b>。 请检查你的配置文件。';
$lang['unique_attr_failed'] = '你企图增加<b>%s</b> (<i>%s</i>) 到 <br><b>%s</b><br>,这是不允许的。 该属性/值属于任何条目。<p>你可能想<a href=\'%s\'>搜索</a> 该条条目。';
$lang['php_install_not_supports_tls'] = '你安装的PHP 不支持TLS。';
$lang['could_not_start_tls'] = '不能启用TLS。 请检查你的LDAP 服务器配置。';
$lang['could_not_bind_anon'] = '不能匿名绑定到服务器。';
$lang['could_not_bind'] = '不能绑定到该LDAP服务器。';
$lang['anonymous_bind'] = '匿名绑定';
$lang['bad_user_name_or_password'] = '错误的用户名或密码。 请再试试。';
//$lang['redirecting_click_if_nothing_happens'] = '重定向... 如果没事发生请点击这里。';
$lang['successfully_logged_in_to_server'] = '成功登录到服务器<b>%s</b>';
$lang['could_not_set_cookie'] = '不能设置cookie。';
$lang['ldap_said'] = 'LDAP说 %s';
$lang['ferror_error'] = '出错';
$lang['fbrowse'] = '浏览';
$lang['delete_photo'] = '删除图片';
//$lang['install_not_support_blowfish'] = '你安装的PHP不支持blowfish 加密。';
//$lang['install_not_support_md5crypt'] = '你安装的PHP不支持 md5crypt 加密。';
//$lang['install_no_mash'] = '你安装的PHP没有mhash() 函数。 不能进行SHA哈希。';
$lang['install_not_support_ext_des'] = '你的系统加密库不支持扩展的DES加密。';
$lang['install_not_support_blowfish'] = '你的系统加密库不支持blowfish加密。';
$lang['install_not_support_md5crypt'] = '你的系统加密库不支持md5crypt加密。';
$lang['jpeg_contains_errors'] = 'jpegPhoto 包含有错<br />';
$lang['ferror_number'] = '错误代号 %s';
$lang['ferror_discription'] = '描述: %s <br /><br />';
$lang['ferror_number_short'] = '错误代号: %s <br /><br />';
$lang['ferror_discription_short'] = '描述: (没有描述可提供)<br />';
$lang['ferror_submit_bug'] = '这是个phpLDAPadmin 错漏吗? 如果是,就请<a href=\'%s\'>报告一个</a>。';
$lang['ferror_unrecognized_num'] = '不认识的错误代号: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>你发现了一个非致使的phpLDAPadmin 错漏!</b></td></tr><tr><td>错误:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>文件:</td>
<td><b>%s</b> <b>%s</b>,调用函数 <b>%s</b></td></tr><tr><td>版本:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web 服务器:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
请点击这里报告该错漏</a></center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '恭喜你! 你发现了phpLDAPadmin的一个错漏。<br /><br />
<table class=\'bug\'>
<tr><td>错误:</td><td><b>%s</b></td></tr>
<tr><td>级别:</td><td><b>%s</b></td></tr>
<tr><td>文件:</td><td><b>%s</b></td></tr>
<tr><td>行:</td><td><b>%s</b></td></tr>
<tr><td>调用者:</td><td><b>%s</b></td></tr>
<tr><td>PLA 版本:</td><td><b>%s</b></td></tr>
<tr><td>PHP 版本:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>PHP 服务器:</td><td><b>%s</b></td></tr>
</table>
<br />
请通过点击下面来报告这个错漏!';
//ldif_import_form
$lang['import_ldif_file_title'] = '导入LDIF文件';
$lang['select_ldif_file'] = '选择一个LDIF文件';
$lang['dont_stop_on_errors'] = '发生错误时不停止';
//ldif_import
$lang['add_action'] = '增加...';
$lang['delete_action'] = '删除...';
$lang['rename_action'] = '更名...';
$lang['modify_action'] = '修改...';
$lang['warning_no_ldif_version_found'] = '没有找到版本号。 假设 1。';
$lang['valid_dn_line_required'] = '要求一个合法的dn行。';
$lang['missing_uploaded_file'] = '丢失上传的文件。';
$lang['no_ldif_file_specified'] = '没有指定LDIF文件。 请再试试。';
$lang['ldif_file_empty'] = '上传的LDIF 文件为空。';
$lang['empty'] = '空的';
$lang['file'] = '文件';
$lang['number_bytes'] = '%s 字节';
$lang['failed'] = '失败';
$lang['ldif_parse_error'] = 'LDIF解析错误';
$lang['ldif_could_not_add_object'] = '不能增加对象:';
$lang['ldif_could_not_rename_object'] = '不能更名对象:';
$lang['ldif_could_not_delete_object'] = '不能删除对象:';
$lang['ldif_could_not_modify_object'] = '不能修改对象:';
$lang['ldif_line_number'] = '行号:';
$lang['ldif_line'] = '行数:';
// Exports
$lang['export_format'] = '导出格式';
$lang['line_ends'] = '行结束';
$lang['must_choose_export_format'] = '不必须选择一个导出格式。';
$lang['invalid_export_format'] = '非法的导出格式';
$lang['no_exporter_found'] = '没有找到可用导出器。';
$lang['error_performing_search'] = '在执行搜索时碰到一个错误。';
$lang['showing_results_x_through_y'] = '显示结果%s它是通过%s来完成的。';
$lang['searching'] = '搜索...';
$lang['size_limit_exceeded'] = '注意,超出搜索大小限制。';
$lang['entry'] = '条目';
$lang['ldif_export_for_dn'] = '为: %s导出LDIF';
$lang['generated_on_date'] = '由phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) 在 %s上生成的';
$lang['total_entries'] = '条目总数';
$lang['dsml_export_for_dn'] = '为: %s导出DSLM';
$lang['include_system_attrs'] = '包含系统属性';
$lang['csv_spreadsheet'] = 'CSV (Spreadsheet)';
// logins
//$lang['could_not_find_user'] = '不能找到用户"%s"';
$lang['password_blank'] = '你的密码为空。';
//$lang['login_cancelled'] = '登录取消了。';
$lang['no_one_logged_in'] = '没人登录到该服务器。';
$lang['could_not_logout'] = '不能退出。';
$lang['unknown_auth_type'] = '不能识别的auth_type %s';
$lang['logged_out_successfully'] = '成功从<b>%s</b>服务器退出';
$lang['authenticate_to_server'] = '认证到服务器%s';
$lang['warning_this_web_connection_is_unencrypted'] = '警告: 此web连接没有加密。';
$lang['not_using_https'] = '你没有使用\'https\'。 Web浏览器将会以明文传输登录信息。';
$lang['login_dn'] = '登录DN';
$lang['user_name'] = '用户名';
$lang['password'] = '密码';
$lang['authenticate'] = '认证';
$lang['login_not_allowed'] = '对不起这台LDAP服务器不允许你使用phpLDAPadmin。';
// Entry browser
$lang['entry_chooser_title'] = '条目选择器';
// Index page
$lang['need_to_configure'] = '你需要配置phpLDAPadmin。 编辑文件\'config.php\'就可以。 有个样例配置文件提供在 \'config.php.example\'里';
// Mass deletes
$lang['no_deletes_in_read_only'] = '在只读模式下不允许删除。';
$lang['error_calling_mass_delete'] = '错误调用mass_delete.php。在POST变量中丢失 mass_delete。';
$lang['mass_delete_not_array'] = 'mass_delete POST 变量不是个数组。';
$lang['mass_delete_not_enabled'] = 'Mass deletion(大量删除)没有启用。 请在进行下一步前在config.php中启用它。';
$lang['search_attrs_wrong_count'] = '你的config.php有个错误。 在$search_attributes 和 $search_attributes_display里的属性编号不一样';
$lang['mass_deleting'] = '正在大量删除';
$lang['mass_delete_progress'] = '服务器"%s"上的删除过程';
$lang['malformed_mass_delete_array'] = '不规则的mass_delete 数组。';
$lang['no_entries_to_delete'] = '你没有选择任何要删除的条目。';
$lang['deleting_dn'] = '正在删除 %s';
$lang['total_entries_failed'] = '删除条目%s属于%s失败。';
$lang['all_entries_successful'] = '所有条目删除成功。';
$lang['confirm_mass_delete'] = '确认大量删除条目%s在服务器%s上';
$lang['yes_delete'] = '是的,删除!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = '你不能更名一个带有子条目的条目,举例,更名操作允许在非叶子条目上完成';
$lang['no_rdn_change'] = '你不能更改RDN';
$lang['invalid_rdn'] = '无效的RDN值';
$lang['could_not_rename'] = '不能更名该条目';
// General errors
//$lang['php5_unsupported'] = 'phpLDAPadmin 还不支持PHP 5。如果你继续可能会遇到许多意想不到的问题。';
$lang['mismatched_search_attr_config'] = '你的配置有个错误。 $search_attributes 与 $search_attributes_display 必须要有相同数目的属性。';
// Password checker
$lang['passwords_match'] = '密码匹配!';
$lang['passwords_do_not_match'] = '密码不匹配!';
$lang['password_checker_tool'] = '密码检查工具';
$lang['compare'] = '比较';
$lang['to'] = '与';
// Templates
$lang['using'] = '使用该';
//$lang['template'] = '模板';
$lang['switch_to'] = '你可以转换到';
$lang['default_template'] = '默认模板';
// template_config
$lang['user_account'] = '用户账号(posixAccount)';
$lang['address_book_inet'] = '地址簿条目(inetOrgPerson)';
$lang['address_book_moz'] = '地址簿条目(mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab用户条目';
$lang['organizational_unit'] = '组织化单元(Organizational Unit)';
$lang['organizational_role'] = '组织化角色';
$lang['posix_group'] = 'Posix组';
$lang['samba_machine'] = 'Samba NT 主机';
$lang['samba3_machine'] = 'Samba 3 NT 主机';
$lang['samba_user'] = 'Samba 用户';
$lang['samba3_user'] = 'Samba 3 用户';
$lang['samba3_group'] = 'Samba 3 组映像(Mapping)';
$lang['dns_entry'] = 'DNS 条目';
$lang['simple_sec_object'] = '简单安全对象(Simple Security Object)';
$lang['courier_mail_account'] = 'Courier 邮件账号';
$lang['courier_mail_alias'] = 'Courier 邮件别名';
$lang['ldap_alias'] = 'LDAP 别名';
$lang['sendmail_cluster'] = 'Sendmail 集群';
$lang['sendmail_domain'] = 'Sendmail 域';
$lang['sendmail_alias'] = 'Sendmail 别名';
$lang['sendmail_virt_dom'] = 'Sendmail 虚拟域';
$lang['sendmail_virt_users'] = 'Sendmail 虚拟用户';
$lang['sendmail_relays'] = 'Sendmail 回复';
$lang['custom'] = '自定义';
$lang['samba_domain_name'] = '我的Samba域名';
$lang['administrators'] = '管理员';
$lang['users'] = '用户';
$lang['guests'] = '一般用户(Guests)';
$lang['power_users'] = '增强用户(Power Users)';
$lang['account_ops'] = '账号管理员';
$lang['server_ops'] = '服务器管理员';
$lang['print_ops'] = '打印管理员';
$lang['backup_ops'] = '备份管理员';
$lang['replicator'] = '复制器(Replicator)';
$lang['unable_smb_passwords'] = '不能建立Samba密码。请检查文件template_config.php里的配置。';
$lang['err_smb_conf'] = '错误在你的samba配置里有个错误。';
$lang['err_smb_no_name_sid'] = '错误需要为你的samba域提供一个名字(name)和一个sid。';
$lang['err_smb_no_name'] = '错误没有为samba域提供名字。';
$lang['err_smb_no_sid'] = '错误没有为samba域提供sid。';
// Samba Account Template
$lang['samba_account'] = 'Samba 账号';
$lang['samba_account_lcase'] = 'samba 账号';
// New User (Posix) Account
$lang['t_new_user_account'] = '新建用户账号';
$lang['t_hint_customize'] = '提示想要定制模板的话你可以编辑文件templates/creation/new_user_template.php';
$lang['t_name'] = '名字';
$lang['t_first_name'] = '第一个名字';
$lang['t_last_name'] = '最后一个名字';
$lang['t_first'] = '第一个';
$lang['t_last'] = '最后一个';
$lang['t_common_name'] = '公有名字(Common name)';
$lang['t_user_name'] = '用户名';
$lang['t_password'] = '密码';
$lang['t_encryption'] = '加密方法';
$lang['t_login_shell'] = '登录Shell';
$lang['t_home_dir'] = '主目录';
$lang['t_uid_number'] = 'UID号';
$lang['t_auto_det'] = '(自动检测到的)';
$lang['t_group'] = '组';
$lang['t_gid_number'] = 'GID号';
$lang['t_err_passwords'] = '你的密码不匹配。请返回再试试。';
$lang['t_err_field_blank'] = '%s处不能为空。请返回再试试。';
$lang['t_err_field_num'] = '%s字段不能只输入数字。请返回再试试。';
$lang['t_err_bad_container'] = '你指定的容器(%s)不存在。请返回再试试。';
$lang['t_confirm_account_creation'] = '确认创建账号';
$lang['t_secret'] = '[隐秘]';
$lang['t_create_account'] = '创建账号';
// New Address Template
$lang['t_new_address'] = '新建地址簿条目';
$lang['t_organization'] = '组织';
$lang['t_address'] = '地址';
$lang['t_city'] = '城市';
$lang['t_postal_code'] = '邮政编码';
$lang['t_street'] = '街道';
$lang['t_work_phone'] = '工作电话';
$lang['t_fax'] = '传真(Fax)';
$lang['t_mobile'] = '移动电话(Mobile)';
$lang['t_email'] = '电子邮件';
$lang['t_container'] = '容器';
$lang['t_err_cn_blank'] = '公有名字(Common Name)不能为空。请返回再试试。';
$lang['t_confim_creation'] = '确认创建条目:';
$lang['t_create_address'] = '创建地址簿';
// default template
$lang['t_check_pass'] = '正在检查密码……';
// compare form
$lang['compare'] = '比较';
$lang['comparing'] = '比较紧跟着的DN';
$lang['compare_dn'] = '比较另一个DN跟';
$lang['with'] = '同 ';
$lang['compf_source_dn'] = '源DN';
$lang['compf_dn_tooltip'] = '将该DN与另一个比较';
$lang['switch_entry'] = '切换条目';
$lang['no_value'] = '没有值';
$lang['compare_with'] = '同另一个条目进行比较';
$lang['need_oclass'] = '要新增属性%s你需要下面的ObjectClass(es)——对象类。';
// Time out page
$lang['session_timed_out_1'] = '你的会话期将在无活动的';
$lang['session_timed_out_2'] = '分钟后过期。你将自动退出。';
$lang['log_back_in'] = '想登录回来,请点击下面的链接:';
$lang['session_timed_out_tree'] = '(会话超时,自动退出。)';
$lang['timeout_at'] = '在%s如果活动你将被登出。';
?>

490
lang/recoded/zh-tw.php Normal file
View File

@ -0,0 +1,490 @@
<?php
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
* If you want to write a new language file for your language,
* please submit the file on SourceForge:
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* Use the option "Check to Upload and Attach a File" at the bottom
*
* Thank you!
*
*/
// Based on en.php version 1.58
// Search form
$lang['simple_search_form_str']='簡易搜尋表單';
$lang['advanced_search_form_str']='進階搜尋表單';
$lang['server']='伺服器';
// search_form_simple.php
$lang['search_for_entries_whose']='選擇搜尋條件';
$lang['base_dn']='基礎識別名稱';
$lang['search_scope']='搜尋範圍';
$lang['show_attributes']='顯示屬性';
$lang['Search']='搜尋';
$lang['predefined_search_str']='以預先定義好的條件搜尋';
$lang['predefined_searches']='預先定義好的搜尋';
$lang['no_predefined_queries']='config.php中沒有預先定義的搜尋條件';
// Tree browser
$lang['request_new_feature']='建議新功能';
$lang['report_bug']='回報問題';
$lang['schema']='schema';
$lang['search']='搜尋';
$lang['create']='建立';
$lang['info']='系統資訊';
$lang['import']='匯入';
$lang['refresh']='重新整理';
$lang['logout']='登出';
$lang['create_new']='建立新紀錄';
$lang['view_schema_for']='查閱schema';
$lang['refresh_expanded_containers']='重新整理所有展開的集合';
$lang['create_new_entry_on']='建立新紀錄於';
$lang['new']='新';
$lang['view_server_info']='查閱伺服器提供的資訊';
$lang['import_from_ldif']='從LDIF檔案匯入紀錄';
$lang['logout_of_this_server']='登出此伺服器';
$lang['logged_in_as']='登入為';
$lang['read_only']='唯讀';
$lang['could_not_determine_root']='找不到LDAP根目錄';
$lang['ldap_refuses_to_give_root']='此LDAP伺服器設定為不顯示根節點';
$lang['please_specify_in_config']='請在config.php中指定';
$lang['create_new_entry_in']='建立新紀錄於';
$lang['login_link']='登入...';
$lang['login']='登入';
// Entry display
$lang['delete_this_entry']='刪除此紀錄';
$lang['delete_this_entry_tooltip']='在您確認之後刪除此記錄';
$lang['copy_this_entry']='複製此記錄';
$lang['copy_this_entry_tooltip']='將此記錄複製到您選擇的目的地';
$lang['export']='匯出';
$lang['export_tooltip']='將此物件匯出';
$lang['export_subtree_tooltip']='將此物件及所有子物件匯出';
$lang['export_subtree']='將此子樹匯出';
$lang['create_a_child_entry']='建立子記錄';
$lang['rename_entry']='重新命名';
$lang['rename']='更名';
$lang['add']='新增';
$lang['view']='查閱';
$lang['view_one_child']='查閱 1 子紀錄';
$lang['view_children']='查閱 %s 子紀錄';
$lang['add_new_attribute']='新增屬性';
$lang['add_new_objectclass']='新增ObjectClass';
$lang['hide_internal_attrs']='不顯示隱藏屬性';
$lang['show_internal_attrs']='顯示隱藏屬性';
$lang['attr_name_tooltip']='查閱屬性 ';
$lang['none']='none';
$lang['save_changes']='儲存';
$lang['add_value']='加入新數值';
$lang['add_value_tooltip']='增加一個附加值到屬性 \"%s\"';
$lang['refresh_entry']='重新整理';
$lang['refresh_this_entry']='重整此筆資';
$lang['delete_hint']='提示: 將欄位數值刪除並按存檔即可刪除該屬性';
$lang['attr_schema_hint']='提示: 在該屬性上點一下即可查閱所使用的schema';
$lang['attrs_modified']='修改後的屬性為 (%s) 並以不同的顏色區分';
$lang['attr_modified']='修改後的屬性為 (%s) 並以不同的顏色區分';
$lang['viewing_read_only']='以唯讀模式查閱資料';
$lang['no_new_attrs_available']='此筆資料沒有新屬性';
$lang['no_new_binary_attrs_available']='此筆資料沒有二進位屬性';
$lang['binary_value']='二進位數值';
$lang['add_new_binary_attr']='新增二進位屬性';
$lang['alias_for']='Alias for %s';
$lang['download_value']='下載數值';
$lang['delete_attribute']='刪除屬性';
$lang['true']='true';
$lang['false']='false';
$lang['none_remove_value']='空白, 移除該值';
$lang['really_delete_attribute']='確定要刪除屬性?';
$lang['add_new_value']='新增數值';
// Schema browser
$lang['the_following_objectclasses']='此LDAP伺服器支援下列objectClasses';
$lang['the_following_attributes']='此LDAP伺服器支援下列屬性';
$lang['the_following_matching']='此LDAP伺服器支援下列搜尋規則';
$lang['the_following_syntaxes']='此LDAP伺服器支援下列語法';
$lang['schema_retrieve_error_1']='此伺服器並未完全支援LDAP協定';
$lang['schema_retrieve_error_2']='您的php版本並未正確執行此查詢';
$lang['schema_retrieve_error_3']='或是phpLDAPadmin不知道如何從您的伺服器擷取schema';
$lang['jump_to_objectclass']='選擇objectClass';
$lang['jump_to_attr']='選擇屬性';
$lang['jump_to_matching_rule']='選擇配對規則';
$lang['schema_for_server']='伺服器的schema';
$lang['required_attrs']='必要屬性';
$lang['optional_attrs']='選擇性屬性';
$lang['optional_binary_attrs']='選擇性二進位屬性';
$lang['OID']='OID';
$lang['aliases']='別名';
$lang['desc']='說明';
$lang['no_description']='沒有說明';
$lang['name']='名稱';
$lang['equality']='相同';
$lang['is_obsolete']='這個 objectClass 是必須得.';
$lang['inherits']='繼承';
$lang['inherited_from']='已繼承於';
$lang['jump_to_this_oclass']='選擇此objectClass定義';
$lang['matching_rule_oid']='OID配對規則';
$lang['syntax_oid']='OID語法';
$lang['not_applicable']='未應用的';
$lang['not_specified']='未指定的';
$lang['character']='字元';
$lang['characters']='字元集';
$lang['used_by_objectclasses']='已被 objectClasses 使用';
$lang['used_by_attributes']='已被屬性使用';
$lang['maximum_length']='最大長度';
$lang['attributes']='屬性型態';
$lang['syntaxes']='語法';
$lang['matchingrules']='配對規則';
$lang['oid']='OID';
$lang['obsolete']='必要';
$lang['ordering']='排序中';
$lang['substring_rule']='子字串規則';
$lang['single_valued']='單一值';
$lang['collective']='集合';
$lang['user_modification']='使用者修改';
$lang['usage']='使用量';
$lang['could_not_retrieve_schema_from']='無法恢復 Schema 於';
$lang['type']='類型';
// Deleting entries
$lang['entry_deleted_successfully']='資料 %s 成功的刪除';
$lang['you_must_specify_a_dn']='您必須指定一個識別名稱';
$lang['could_not_delete_entry']='無法刪除記錄 %s';
$lang['no_such_entry']='無此記錄 %s';
$lang['delete_dn']='刪除 %s';
$lang['permanently_delete_children']='永久刪除所有子資料?';
$lang['entry_is_root_sub_tree']='此資料';
$lang['view_entries']='查閱資料';
$lang['confirm_recursive_delete']='phpLDAPadmin可以幫您刪除此資料與所有 %s 子資料.下列資料將會被刪除,您確定要刪除?';
$lang['confirm_recursive_delete_note']='請注意:這項功能無法還原,且可能是非常危險的,且可能因此而造成問題';
$lang['delete_all_x_objects']='刪除所有 %s 物件';
$lang['recursive_delete_progress']='遞迴刪除進度';
$lang['entry_and_sub_tree_deleted_successfully']='成功刪除資料 %s 與子資料';
$lang['failed_to_delete_entry']='無法刪除資料 %s';
$lang['list_of_entries_to_be_deleted']='下列資料將被刪除:';
$lang['sure_permanent_delete_object']='您確定要永久刪除此物件?';
$lang['dn']='識別名稱';
// Deleting attributes
$lang['attr_is_read_only']='屬性 \"%s\" 在phpLDAPadmin中被設定成唯讀';
$lang['no_attr_specified']='請指定屬性名稱';
$lang['no_dn_specified']='請指定識別名稱';
// Adding attributes
$lang['left_attr_blank']='您沒有輸入屬性數值,請重新輸入';
$lang['failed_to_add_attr']='無法新增此屬性';
// Updating values
$lang['modification_successful']='修改成功';
$lang['change_password_new_login']='您的密碼已更新,請登出並以新密碼重新登入';
// Adding objectClass form
$lang['new_required_attrs']='新必須屬性';
$lang['requires_to_add']='執行此項操作前您必須先加入';
$lang['new_attributes']='新屬性';
$lang['new_required_attrs_instructions']='作法在新增objectClass之前您必須指定';
$lang['that_this_oclass_requires']='此objectClass為必須您可以在此表單中指定';
$lang['add_oclass_and_attrs']='新增ObjectClass與屬性';
$lang['objectclasses']='ObjectClasses';
// General
$lang['chooser_link_tooltip']='點選此處即可以圖形介面選擇資料(識別名稱)';
$lang['no_updates_in_read_only_mode']='伺服器為唯讀模式,無法更新資料';
$lang['bad_server_id']='錯誤的 server id';
$lang['not_enough_login_info']='沒有足夠的資訊以進行登入伺服器,請檢查您的設定值';
$lang['could_not_connect']='無法連接LDAP伺服器';
$lang['could_not_connect_to_host_on_port']='無法透過port \"%s\" 連接到 \"%s\" ';
$lang['could_not_perform_ldap_mod_add']='無法執行ldap_mod_add操作';
$lang['bad_server_id_underline']='錯誤的 server_id:';
$lang['success']='成功';
$lang['server_colon_pare']='伺服器:';
$lang['look_in']='登入:';
$lang['missing_server_id_in_query_string']='查詢字串中並未指定server ID';
$lang['missing_dn_in_query_string']='查詢字串中並未指定識別名稱';
$lang['back_up_p']='備份...';
$lang['no_entries']='沒有任何紀錄';
$lang['not_logged_in']='尚未登入';
$lang['could_not_det_base_dn']='無法確定 Base DN';
$lang['please_report_this_as_a_bug']='請回報這個問題至 Bug 系統';
$lang['reasons_for_error']='此問題可能有好幾個原因,最有可能的是:';
$lang['yes']='確定';
$lang['no']='否';
$lang['go']='衝!!';
$lang['delete']='刪除';
$lang['back']='返回';
$lang['object']='物件';
$lang['delete_all']='刪除全部';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint']='提示';
$lang['bug']='臭蟲';
$lang['warning']='警告';
$lang['light']='light';
$lang['proceed_gt']='下一步 >>';
// Add value form
$lang['add_new']='新增';
$lang['value_to']='數值至';
$lang['distinguished_name']='識別名稱';
$lang['current_list_of']='此屬性有';
$lang['values_for_attribute']='下列數值:';
$lang['inappropriate_matching_note']='請注意若您的LDAP伺服器中並未設定等式規則您將會遇到\"無適合的比對\"錯誤';
$lang['enter_value_to_add']='請輸入您要加入的數值';
$lang['new_required_attrs_note']='請注意由於此objectClass定義的';
$lang['syntax']='語法,您必須輸入新屬性';
//copy.php
$lang['copy_server_read_only']='無法在伺服器為唯讀模式時更新資料';
$lang['copy_dest_dn_blank']='目的地識別名稱不能是空白';
$lang['copy_dest_already_exists']='目的地識別名稱 (%s) 已經存在';
$lang['copy_dest_container_does_not_exist']='目的地集合 (%s) 不存在';
$lang['copy_source_dest_dn_same']='來源識別名稱與目的地識別名稱重複';
$lang['copy_copying']='複製中';
$lang['copy_recursive_copy_progress']='遞迴複製作業';
$lang['copy_building_snapshot']='對資料樹建立副本來複製';
$lang['copy_successful_like_to']='複製成功!!您要';
$lang['copy_view_new_entry']='查閱此新紀錄?';
$lang['copy_failed']='以下 DN 複製失敗:';
//edit.php
$lang['missing_template_file']='警告:找不到樣版檔案';
$lang['using_default']='使用預設值';
$lang['template']='樣版';
$lang['must_choose_template']='你必須選擇一個樣版';
$lang['invalid_template']='%s 是錯誤的樣版';
$lang['using_template']='使用樣版';
$lang['go_to_dn']='到 %s';
//copy_form.php
$lang['copyf_title_copy']='複製';
$lang['copyf_to_new_object']='成新物件';
$lang['copyf_dest_dn']='目的地識別名稱';
$lang['copyf_dest_dn_tooltip']='來源資料複製後的完整識別名稱';
$lang['copyf_dest_server']='目的伺服器';
$lang['copyf_note']='提示只有當不同的伺服器間的schema相容才能在不同的伺服器之間進行複製';
$lang['copyf_recursive_copy']='遞迴複製所有此物件的子資料';
$lang['recursive_copy']='遞迴複製';
$lang['filter']='過濾條件';
$lang['filter_tooltip']='只有符合過濾條件的資料會被遞迴複製';
//create.php
$lang['create_required_attribute']='必要的屬性 (%s) 必須有資料';
$lang['redirecting']='正在轉換至...';
$lang['here']='這裡';
$lang['create_could_not_add']='不能新增物件到此LDAP伺服器';
//create_form.php
$lang['createf_create_object']='創造物件';
$lang['createf_choose_temp']='選擇樣版';
$lang['createf_select_temp']='請選擇一個你要建立的紀錄模板';
$lang['createf_proceed']='下一步';
$lang['rdn_field_blank']='相對識別名稱欄位不能是空白';
$lang['container_does_not_exist']='您指定的集合 (%s) 不存在,請重新指定';
$lang['no_objectclasses_selected']='您必須為此物件指定ObjectClasses';
$lang['hint_structural_oclass']='提示:您必須在伺服器上至少';
//creation_template.php
$lang['ctemplate_on_server']='選擇一個objectClass';
$lang['ctemplate_no_template']='在POST變數中並未指定模版';
$lang['ctemplate_config_handler']='您的設定指定了由某個程式來執行此模版';
$lang['ctemplate_handler_does_not_exist']='但此程式在 templates/creation 目錄中找不到';
$lang['create_step1']='步驟 1 之 2:名稱與ObjectClass(es)';
$lang['create_step2']='步驟 2 之 2:指定屬性與數值';
$lang['relative_distinguished_name']='相對識別名稱';
$lang['rdn']='相對識別名稱';
$lang['rdn_example']='(範例: cn=MyNewPerson)(範例: cn=MyNewPerson)';
$lang['container']='集合';
// search.php
$lang['you_have_not_logged_into_server']='您必須先登入伺服器才能在伺服器執行搜尋';
$lang['click_to_go_to_login_form']='點選這邊回去登入表單';
$lang['unrecognized_criteria_option']='無法辨識的基準';
$lang['if_you_want_to_add_criteria']='如果您要加入自己的基準到項目列表中請編輯search.php';
$lang['entries_found']='找到的紀錄:';
$lang['filter_performed']='執行過濾條件';
$lang['search_duration']='phpLDAPadmin將會';
$lang['seconds']='馬上執行查詢';
// search_form_advanced.php
$lang['scope_in_which_to_search']='搜尋範圍';
$lang['scope_sub']='Sub (整個子樹)';
$lang['scope_one']='One (單一階層下)';
$lang['scope_base']='Base (只有基礎識別名稱)';
$lang['standard_ldap_search_filter']='標準的LDAP搜尋條件. 如: (&(sn=Smith)(givenname=David))';
$lang['search_filter']='過濾搜尋';
$lang['list_of_attrs_to_display_in_results']='下列為搜尋結果(以 , 區隔)';
$lang['equals']='等於';
$lang['starts with']='開始於';
$lang['contains']='內含';
$lang['ends with']='結束於';
$lang['sounds like']='喜愛的聲音';
// server_info.php
$lang['could_not_fetch_server_info']='無法從伺服器取得 LDAP 資訊';
$lang['server_info_for']='伺服器資訊:';
$lang['server_reports_following']='伺服器回報下列資訊:';
$lang['nothing_to_report']='此伺服器沒有資訊可以回報';
//update.php
$lang['update_array_malformed']='無法更新陣列可能是phpLDAPadmin的bug請回報此問題';
$lang['could_not_perform_ldap_modify']='無法執行ldap_modify操作';
// update_confirm.php
$lang['do_you_want_to_make_these_changes']='您確定要做這些更動?';
$lang['attribute']='屬性';
$lang['old_value']='原設定值';
$lang['new_value']='新設定植';
$lang['attr_deleted']='[屬性已刪除]';
$lang['commit']='送出';
$lang['cancel']='取消';
$lang['you_made_no_changes']='您並沒有做任何更動';
$lang['go_back']='回上頁';
// welcome.php
$lang['welcome_note']='請用左邊的選單瀏覽';
$lang['credits']='成員列表';
$lang['changelog']='更新紀錄';
$lang['donate']='捐獻';
// view_jpeg_photo.php
$lang['unsafe_file_name']='不安全的檔案名稱:';
$lang['no_such_file']='沒有以下檔案:';
//function.php
$lang['auto_update_not_setup']='您在設定中開啟 <b>%s</b>的auto_uid_numbers功能但並未指定auto_uid_number_mechanism請修正此問題';
$lang['uidpool_not_set']='伺服器<b>%s</b>的auto_uid_number_mechanism指定為uidpool但並未指定audo_uid_number_uid_pool_dn請修正此問題再繼續';
$lang['uidpool_not_exist']='您再設定檔(\"%s\")中指定的uidPool機制並不存在';
$lang['specified_uidpool']='伺服器<b>%s</b>的auto_uid_number_mechanism指定為search但您並未指定auto_uid_number_search_base請修正此問題再繼續';
$lang['auto_uid_invalid_credential']='無法以您的auto_uid設定登入<b>%s</b>,請檢查您的設定檔';
$lang['bad_auto_uid_search_base']='您在phpLDAPadmin設定中對伺服器%s指定了無效的auto_uid_search_base';
$lang['auto_uid_invalid_value']='您的auto_uid_number_mechanism (\"%s\") 設定是無效的只有uidpool與search為有效設定請修正此問題';
$lang['error_auth_type_config']='錯誤您的設定有錯誤變數auth_type只允許session , cookie與config您的設定值 ';
$lang['php_install_not_supports_tls']='您安裝的 php 並沒有支援 TLS.';
$lang['could_not_start_tls']='無法啟動 TLS 請檢查您的 LDAP 伺服器設定.';
$lang['could_not_bind_anon']='伺服器不接受匿名登入';
$lang['anonymous_bind']='匿名登入';
$lang['bad_user_name_or_password']='錯誤的 使用者名稱 或 密碼.請重新輸入一次.';
$lang['redirecting_click_if_nothing_happens']='正在重新導向...如果瀏覽器沒有動作,請點選這裡.';
$lang['successfully_logged_in_to_server']='成功登入伺服器 %s';
$lang['could_not_set_cookie']='不能設定 cookie';
$lang['ldap_said']='伺服器回應: %s';
$lang['ferror_error']='錯誤';
$lang['fbrowse']='瀏覽';
$lang['delete_photo']='刪除相片';
$lang['install_not_support_blowfish']='您所安裝的 PHP 並不支援 Blowfish 加密';
$lang['install_no_mash']='您所安裝的 PHP 並沒有 mhash() 函數,無法進行 SHA 加密';
$lang['jpeg_contains_errors']='jpegPhoto 內容發生錯誤<br />';
$lang['ferror_number']='錯誤碼: %s (%s)';
$lang['ferror_discription']='說明: %s <br /><br />';
$lang['ferror_number_short']='錯誤編號: %s';
$lang['ferror_discription_short']='說明: (無任何說明內容)<br />';
$lang['ferror_submit_bug']='這是 phpLDAPadmin 的 bug? 如果是,請<a href=\"%s\">回報這個Bug</a>.';
$lang['ferror_unrecognized_num']='無法辨識的錯誤代碼:';
$lang['ferror_nonfatil_bug']='<center><table class=\"notice\"><tr><td colspan=\"2\"><center><img src=\"images/warning.png\" height=\"12\" width=\"13\" />
<b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
<td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\"2\"><center><a target=\"new\" href=\"%s\">
Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug']='恭喜! 您發現了phpLDAPadmin的bug.<br /><br /> <table class=\"bug\">
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Level:</td><td><b>%s</b></td></tr>
<tr><td>File:</td><td><b>%s</b></td></tr>
<tr><td>Line:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>PLA Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Web server:</td><td><b>%s</b></td></tr>
</table>
<br />
Please report this bug by clicking below!';
//ldif_import_form
$lang['import_ldif_file_title']='匯入 LDIF 檔案';
$lang['select_ldif_file']='選擇一個 LDIF 檔案:';
$lang['select_ldif_file_proceed']='下一步';
//ldif_import
$lang['add_action']='增加中...';
$lang['delete_action']='刪除中...';
$lang['rename_action']='更名中...';
$lang['modify_action']='改變中...';
$lang['warning_no_ldif_version_found']='找不到版本資訊預設使用版本1';
$lang['valid_dn_line_required']='需要有效的識別名稱行';
$lang['missing_uploaded_file']='找不到指定的上傳檔案';
$lang['no_ldif_file_specified.']='沒有指定LDIF檔案請重試';
$lang['ldif_file_empty']='上傳的 LDIF 檔案是空白的';
$lang['file']='檔案';
$lang['number_bytes']='%s bytes';
$lang['failed']='失敗';
$lang['ldif_parse_error']='LDIF 解析錯誤';
$lang['ldif_could_not_add_object']='無法新增 object:';
$lang['ldif_could_not_rename_object']='無法重新命名 object:';
$lang['ldif_could_not_delete_object']='無法刪除 object:';
$lang['ldif_could_not_modify_object']='無法修改 object:';
$lang['ldif_line_number']='行數:';
$lang['ldif_line']='行:';
// Exports
$lang['export_format']='匯出格式';
$lang['line_ends']='斷行';
$lang['must_choose_export_format']='你必須選擇一種匯出格式';
$lang['invalid_export_format']='無效的匯出格式';
$lang['no_exporter_found']='沒有可用的匯出程式';
$lang['error_performing_search']='在執行搜尋時發生錯誤';
$lang['showing_results_x_through_y']='透過 %s 顯示結果 %s';
$lang['searching']='搜索中...';
$lang['size_limit_exceeded']='注意:到達搜尋大小上限';
$lang['entry']='紀錄';
$lang['ldif_export_for_dn']='匯出 LDIF :';
$lang['generated_on_date']='由';
$lang['total_entries']='全部的紀錄';
$lang['dsml_export_for_dn']='匯出 DSLM :';
// logins
$lang['could_not_find_user']='找不到使用者 \"%s\"';
$lang['password_blank']='您沒有輸入密碼欄位.';
$lang['login_cancelled']='已經取消登入.';
$lang['no_one_logged_in']='在此伺服器尚無人登入.';
$lang['could_not_logout']='無法登出.';
$lang['unknown_auth_type']='未知的認證模式: %s';
$lang['logged_out_successfully']='成功的從 %s 伺服器登出';
$lang['authenticate_to_server']='登入伺服器 %s';
$lang['warning_this_web_connection_is_unencrypted']='警告: 這個網頁連線是沒有加密的.';
$lang['not_using_https']='您並未使用https加密連線您的瀏覽器將直接以明碼傳送您的帳號與密碼';
$lang['login_dn']='登入 DN';
$lang['user_name']='使用者名稱';
$lang['password']='密碼';
$lang['authenticate']='驗證';
// Entry browser
$lang['entry_chooser_title']='紀錄選擇器';
// Index page
$lang['need_to_configure']='您必須先設定phpLDAPadmin請依照config.php.example編輯config.php';
// Mass deletes
$lang['no_deletes_in_read_only']='在唯讀模式時不允許刪除資料';
$lang['error_calling_mass_delete']='呼叫mass_delete.php時發生錯誤mass_delete不在POST變數中';
$lang['mass_delete_not_array']='mass_delete POST變數不是陣列';
$lang['mass_delete_not_enabled']='大量刪除功能並未開啟請在config.php中開啟此功能';
$lang['mass_deleting']='大量刪除';
$lang['mass_delete_progress']='正在 \"%s\" 伺服器上進行刪除程序';
$lang['malformed_mass_delete_array']='錯誤的大量刪除陣列';
$lang['no_entries_to_delete']='您沒有選擇任何要刪除的紀錄';
$lang['deleting_dn']='刪除 %s';
$lang['total_entries_failed']='無法刪除紀錄 %s %s';
$lang['all_entries_successful']='全部刪除完成';
$lang['confirm_mass_delete']='確認要刪除 %s 登入在伺服器 %s上';
$lang['yes_delete']='沒錯,刪除吧!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed']='當此記錄有子紀錄時無法重新命名';
$lang['no_rdn_change']='您並沒有改變相對識別名稱';
$lang['invalid_rdn']='無效的相對識別名稱';
$lang['could_not_rename']='無法重新命名';
?>

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/ru.php,v 1.7 2004/06/21 20:12:17 i18phpldapadmin Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/ru.php,v 1.8 2005/06/23 14:11:23 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@ -503,7 +503,7 @@ $lang['not_using_https'] = 'Вы не используете \'https\'. Web-бр
$lang['login_dn'] = 'Login DN';
$lang['user_name'] = 'Имя пользователя';
$lang['password'] = 'Пароль';
$lang['authenticate'] = 'Авотризация';
$lang['authenticate'] = 'Авторизация';
// Entry browser
$lang['entry_chooser_title'] = 'Выбор записи';

720
lang/zh-cn.php Normal file
View File

@ -0,0 +1,720 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lang/zh-cn.php,v 1.2 2005/03/25 01:21:30 wurley Exp $
// Translate to Simplified Chinese, by 张雪平(heromyth), from zxpmyth@yahoo.com.cn
// Based on en.php,v 1.119 2005/03/16 20:57:45
/*
使用说明将其转换不utf-8字符集再放到lang/recoded目录下接着修改文件lang/auto.php执行如下步骤
1、修改第7行为
$useLang="zh-cn";
2、在31行后面加下下面一行
," zh-cn"=>"zh-cn" //Simplified Chinese
*/
/* --- 翻译指导 ---
*
* 如果你想建立一个新的语言文件,
* 请把它提交到SourceForge
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* 请使用底部的选项"Check to Upload and Attach a File上传附件"
*
* 阅读doc/README-translation.txt 可以得到翻译指导。
*
* 谢谢!
*
*/
/*
* 数组$lang 包含了所有phpLDAPadmin 所使用的字体串。
* 每一个语言文件都只需要在这个数组中定义一个该语言的所对应的
* 字符串。
*/
// Search form
$lang['simple_search_form_str'] = '简单搜索表格';
$lang['advanced_search_form_str '] = '高级搜索表格';
$lang['server'] = '服务器';
$lang['search_for_entries_whose'] = '搜索条目的所属';
$lang['base_dn'] = '基本DN';
$lang['search_scope'] = '搜索范围';
$lang['show_attributes'] = '显示属性';
//$lang['attributes'] = '属性';
$lang['Search'] = '搜索';
$lang['predefined_search_str'] = '选择一个预定义的搜索';
$lang['predefined_searches'] = '预定义的搜索';
$lang['no_predefined_queries'] = '在config.php里没有条目定义。';
$lang['export_results'] = '导出结果';
$lang['unrecoginzed_search_result_format'] = '不能识别的搜索结果格式: %s';
$lang['format'] = '格式';
$lang['list'] = '列表';
$lang['table'] = '表格';
$lang['bad_search_display'] = '你的config.php 给$default_search_display指定了一个非法的值 %s请更正';
$lang['page_n'] = '第%d页';
$lang['no_results'] = '这次搜索没找到结果。';
// Tree browser
$lang['request_new_feature'] = '功能需求';
$lang['report_bug'] = '报告错漏';
$lang['schema'] = '格式';
$lang['search'] = '搜索';
$lang['create'] = '创建';
$lang['info'] = '信息';
$lang['import'] = '导入';
$lang['refresh'] = '刷新';
$lang['logout'] = '退出';
$lang['create_new'] = '创建新条目';
$lang['view_schema_for'] = '查看格式';
$lang['refresh_expanded_containers'] = '刷新所有展开的容器,来自';
$lang['create_new_entry_on'] = '创建新条目到';
$lang['new'] = '新建';
$lang['view_server_info'] = '查看附加的服务器信息';
$lang['import_from_ldif'] = '从LDIF文件导入条目';
$lang['logout_of_this_server'] = '退出这个服务器';
$lang['logged_in_as'] = '登录为: ';
$lang['this_base_dn_is_not_valid'] = '该DN是无效。';
$lang['this_base_dn_does_not_exist'] = '该条目不存在。';
$lang['read_only'] = '只读';
$lang['read_only_tooltip'] = '该属性已经被phpLDAPadmin 管理员标识为只读';
$lang['could_not_determine_root'] = '检测不到你的LDAP树的根。';
$lang['ldap_refuses_to_give_root'] = '好像你的LDAP服务器配置来限制了不要显露它的根。';
$lang['please_specify_in_config'] = '请在config.php里指定它';
$lang['create_new_entry_in'] = '创建新条目于';
$lang['login_link'] = '登录…';
$lang['login'] = '登录';
$lang['base_entry_does_not_exist'] = '该基准条目不存在。';
$lang['create_it'] = '要创建它吗?';
// Entry display
$lang['delete_this_entry'] = '删除该条目';
$lang['delete_this_entry_tooltip'] = '你会得到提示要求确认该选择';
$lang['copy_this_entry'] = '复制和移动该条目';
$lang['copy_this_entry_tooltip'] = '把这个对象复制到另一个位置一个新DN或另一个服务器。';
$lang['export'] = '导出';
$lang['export_lcase'] = '导出';
$lang['export_tooltip'] = '保存一个该对象的导出';
$lang['export_subtree_tooltip'] = '保存一个该对象及其所有孩子的导出';
$lang['export_subtree'] = '导出子树';
$lang['create_a_child_entry'] = '创建一个子条目';
$lang['rename_entry'] = '条目更名';
$lang['rename'] = '更名';
$lang['add'] = '增加';
$lang['view'] = '查看';
$lang['view_one_child'] = '查看1个子条目';
$lang['view_children'] = '查看%s个子条目';
$lang['add_new_attribute'] = '增加新的属性';
$lang['add_new_objectclass'] = '增加新的ObjectClass';
$lang['hide_internal_attrs'] = '隐藏内部属性';
$lang['show_internal_attrs'] = '显示内部属性';
$lang['attr_name_tooltip'] = '点击查看属性类型\'%s\'的格式定义';
$lang['none'] = '什么都没有';
$lang['no_internal_attributes'] = '没有内部属性';
$lang['no_attributes'] = '这个条目没有属性';
$lang['save_changes'] = '保存更改';
$lang['add_value'] = '赋值';
$lang['add_value_tooltip'] = '给属性\'%s\'赋一个附加的值';
$lang['refresh_entry'] = '刷新';
$lang['refresh_this_entry'] = '刷新这个条目';
$lang['delete_hint'] = '提示: 想要删除一个属性,请将文本字段清空,然后点击保存。';
$lang['attr_schema_hint'] = '提示: 要查看一个属性的格式,请点击属性的名称。';
$lang['attrs_modified'] = '下面有一些属性(%s) 被修改了,而且被标识为高亮。';
$lang['attr_modified'] = '下面一个属性(%s) 被修改了,而且被标识为高亮';
$lang['viewing_read_only'] = '以只读模式查看条目。';
$lang['no_new_attrs_available'] = '这个条目没有提供新的属性';
$lang['no_new_binary_attrs_available'] = '这个条目没有提供新的二进制属性';
$lang['binary_value'] = '二进制值';
$lang['add_new_binary_attr'] = '增加新的二进制值';
$lang['alias_for'] = '注意: \'%s\'是\'%s\'的一个别名';
$lang['required_for'] = 'objectClass(es) %s所必需的属性';
$lang['download_value'] = '下载值';
$lang['delete_attribute'] = '删除属性';
$lang['true'] = '真的';
$lang['false'] = '假的';
$lang['none_remove_value'] = '什么都没有,将值移除';
$lang['really_delete_attribute'] = '真的删除属性';
$lang['add_new_value'] = '增加新的值';
// Schema browser
//$lang['the_following_objectclasses'] = '这个LDAP服务器支持下列objectClasses。';
//$lang['the_following_attributes'] = '这个LDAP服务器支持下列属性类型。';
//$lang['the_following_matching'] = '这个LDAP服务器支持下列匹配规则。';
//$lang['the_following_syntaxes'] = '这个LDAP服务器支持下列语法规则。';
$lang['schema_retrieve_error_1']='这个服务器并不完全支持LDAP 协议。';
$lang['schema_retrieve_error_2']='你的PHP版本不能正确地完成查询。';
$lang['schema_retrieve_error_3']='phpLDAPadmin不知道如果获取你的服务器的格式。';
$lang['schema_retrieve_error_4']='或者最后你的LDAP服务器没有提供该信息。';
$lang['jump_to_objectclass'] = '跳转到一个objectClass';
$lang['view_schema_for_oclass'] = '查看该objectClass的格式描述';
$lang['jump_to_attr'] = '跳转到一个属性类型';
$lang['jump_to_matching_rule'] = '跳转到一个匹配的规则';
$lang['schema_for_server'] = '服务器的格式';
$lang['required_attrs'] = '必需的属性';
$lang['required'] = '必需的';
$lang['optional_attrs'] = '可选的属性';
$lang['optional_binary_attrs'] = '可选的二进制属性';
$lang['OID'] = 'OID';
$lang['aliases']='别名';
$lang['desc'] = '描述';
$lang['no_description']='没有描述';
$lang['name'] = '名称';
$lang['equality']='相等';
$lang['is_obsolete'] = '该objectClass过久了。';
$lang['inherits'] = '继承于';
$lang['inherited_from'] = '被继承于';
$lang['parent_to'] = '双亲指向';
$lang['jump_to_this_oclass'] = '跳转到该objectClass的定义处';
$lang['matching_rule_oid'] = '匹配规则 OID';
$lang['syntax_oid'] = '语法规则OID';
$lang['not_applicable'] = '不可应用';
$lang['not_specified'] = '未指定的';
$lang['character']='单个字符';
$lang['characters']='多个字符';
$lang['used_by_objectclasses']='被objectClasses所使用的';
$lang['used_by_attributes']='被属性所使用的';
$lang['maximum_length']='最大长度';
$lang['attribute_types']='属性类型';
$lang['syntaxes']='语法规则';
$lang['matchingrules']='匹配规则';
$lang['oid']='OID';
$lang['obsolete']='作废的';
$lang['ordering']='排序';
$lang['substring_rule']='子串规则';
$lang['single_valued']='单个赋值的';
$lang['collective']='集体的';
$lang['user_modification']='用户修改';
$lang['usage']='使用格式';
$lang['could_not_retrieve_schema_from']='不能找回格式的地方';
$lang['type']='类型';
$lang['no_such_schema_item'] = '没有这样的格式项目: "%s"';
// Deleting entries
$lang['entry_deleted_successfully'] = '成功删除条目:%s。';
$lang['you_must_specify_a_dn'] = '你必须指定一个DN';
$lang['could_not_delete_entry'] = '不能删除该条目: %s';
$lang['no_such_entry'] = '没有这样的条目: %s';
$lang['delete_dn'] = '删除:%s';
$lang['permanently_delete_children'] = '也要永久删除所的子条目吗?';
$lang['entry_is_root_sub_tree'] = '该条目是根,其子树中包含有条目:%s。';
$lang['view_entries'] = '查看条目';
$lang['confirm_recursive_delete'] = 'phpLDAPadmin可以递归地删除该条目及其所有子条目中的%s。 关于这个动作可能会删除的所有条目列表,请查看下面。 你真的想这样做吗?';
$lang['confirm_recursive_delete_note'] = '注释: 这个可能潜在危险,后果自负。 这个操作不可恢复。 一定要考虑到aliases别名、 referrals提名以及其它可能引起问题的事情。';
$lang['delete_all_x_objects'] = '删除所有的对象:%s ';
$lang['recursive_delete_progress'] = '递归式删除过程';
$lang['entry_and_sub_tree_deleted_successfully'] = '成功删除条目%s 和子树。';
$lang['failed_to_delete_entry'] = '删除条目:%s 失败';
$lang['list_of_entries_to_be_deleted'] = '将被删除的条目列表:';
$lang['sure_permanent_delete_object']='确认你想永久删除这个对象吗?';
$lang['dn'] = 'DN';
// Deleting attributes
$lang['attr_is_read_only'] = ' 在phpLDAPadmin的配置中属性"%s"被标识为只读。';
$lang['no_attr_specified'] = '没有指定属性名称。';
$lang['no_dn_specified'] = '没有指定DN ';
// Adding attributes
$lang['left_attr_blank'] = '属性值为空白。 请返回再试。';
$lang['failed_to_add_attr'] = '增加属性失败。';
$lang['file_empty'] = '你选择的文件为空或不存在。 请返回再试。';
$lang['invalid_file'] = '安全错误: 上传的这个文件可能存在安全危险。';
$lang['warning_file_uploads_disabled'] = '你的PHP配置不允许上传文件。 请在进行下步之前检查一下php.ini。';
$lang['uploaded_file_too_big'] = '你上传的文件太大。 请检查php.ini中的upload_max_size 设置';
$lang['uploaded_file_partial'] = '你选择的文件上传不完整,可能是因为网络的缘故。';
$lang['max_file_size'] = '最大文件尺寸: %s';
// Updating values
$lang['modification_successful'] = '成功修改!';
$lang['change_password_new_login'] = '因为你更改了密码,你现在必须使用新的密码重新登录。';
// Adding objectClass form
$lang['new_required_attrs'] = '新增必需的属性';
$lang['requires_to_add'] = '这个动作要求你增加';
$lang['new_attributes'] = '新增属性';
$lang['new_required_attrs_instructions'] = '指导: 为了增加这个objectClass 到该条目,你必须指定';
$lang['that_this_oclass_requires'] = '这该objectClass所必需的。 你可以在这个表里完成。';
$lang['add_oclass_and_attrs'] = '增加ObjectClass 和属性';
$lang['objectclasses'] = 'ObjectClasses';
// General
$lang['chooser_link_tooltip'] = '点击弹出一个对话框来以图形方式选择一个条目(DN) ';
$lang['no_updates_in_read_only_mode'] = '服务器是以只读方式运行,你不能完成更新';
$lang['bad_server_id'] = '错误的服务器id';
$lang['not_enough_login_info'] = '没有足够的信息来登录服务器。 请检查你的配置。';
$lang['could_not_connect'] = '不能连接到LDAP服务器。';
$lang['could_not_connect_to_host_on_port'] = '不能连接到"%s" 的"%s"端口';
$lang['could_not_perform_ldap_mod_add'] = '不能完成ldap_mod_add 操作。';
//$lang['bad_server_id_underline'] = '错误的server_id';
$lang['home'] = '主页';
$lang['help'] = '帮助';
$lang['success'] = '成功';
$lang['server_colon_pare'] = '服务器:';
$lang['look_in'] = '正在查看:';
//$lang['missing_server_id_in_query_string'] = '在查询串中没有指定服务器ID';
$lang['missing_dn_in_query_string'] = '在查询串中没有指定DN';
$lang['back_up_p'] = '后退...';
$lang['no_entries'] = '没有条目';
//$lang['not_logged_in'] = '没有登录';
$lang['could_not_det_base_dn'] = '不能确定base DN基DN';
//$lang['please_report_this_as_a_bug']='请报告这个错漏。';
$lang['reasons_for_error']='出现这种情况可能有几个原因,其中最有可能的是:';
$lang['yes']='是';
$lang['no']='不';
$lang['go']='开始';
$lang['delete']='删除';
$lang['back']='后退';
$lang['object']='对象';
$lang['delete_all']='删除所有的';
//$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint'] = '提示';
$lang['bug'] = '错漏';
$lang['warning'] = '警告';
$lang['light'] = 'light'; // 单词'light' 来自 'light bulb电灯泡'
$lang['proceed_gt'] = '继续 &gt;&gt;';
$lang['no_blowfish_secret'] = 'phpLDAPadmin不能安全地加密和解密你的敏感信息因为在config.php是没有设置$blowfish_secret。现在你需要编辑config.php并设置$blowfish_secret为某种隐秘的字符串。';
$lang['jpeg_dir_not_writable'] = '请在phpLDAPadmin的config.php里将$jpeg_temp_dir设置到一个可写的目录';
$lang['jpeg_dir_not_writable_error'] = '不能将%s写入$jpeg_temp_dir目录。请确定你的web服务器能够在那里写文件。';
$lang['jpeg_unable_toget'] = '不能从LDAP服务器为属性%s获得jpeg数据。';
$lang['jpeg_delete'] = '删除图片';
// Add value form
$lang['add_new'] = '新增';
$lang['value_to'] = '赋值给';
$lang['distinguished_name'] = '识别名DN';
$lang['current_list_of'] = '当前列表';
$lang['values_for_attribute'] = '属性值';
$lang['inappropriate_matching_note'] = '注释: 如果在你的LDAP服务器上没有为这个属性设置EQUALITY 规则的话,你可能会碰到"inappropriate matching不正确的匹配"这样的错误。';
$lang['enter_value_to_add'] = '输入你想增加的值:';
$lang['new_required_attrs_note'] = '注释: 可能会要求你输入该objectClass所必需的新属性。';
$lang['syntax'] = '规则';
//copy.php
$lang['copy_server_read_only'] = '服务器处于只读模式,你不能完成更新';
$lang['copy_dest_dn_blank'] = ' 目标DN项为空。';
$lang['copy_dest_already_exists'] = '目标条目 (%s) 已经存在。';
$lang['copy_dest_container_does_not_exist'] = '目标容器 (%s) 不存在。';
$lang['copy_source_dest_dn_same'] = '源和目标DN 相同。';
$lang['copy_copying'] = '正在复制 ';
$lang['copy_recursive_copy_progress'] = '递归手复制过程';
$lang['copy_building_snapshot'] = '正在建立用于复制的树的快照… ';
$lang['copy_successful_like_to'] = '复制成功! 你还想要 ';
$lang['copy_view_new_entry'] = '查看新条目';
$lang['copy_failed'] = '复制DN不成功 ';
//edit.php
$lang['missing_template_file'] = '警告: 样板文件不存在,';
$lang['using_default'] = '使用默认的。';
$lang['template'] = '样板';
$lang['must_choose_template'] = '你必须选择一个样板';
$lang['invalid_template'] = '%s 是一个非法的样板';
$lang['using_template'] = '使用样板';
$lang['go_to_dn'] = '转到 %s';
$lang['structural_object_class_cannot_remove'] = '这是个结构化的ObjectClass因此不能移除。';
$lang['structural'] = '结构化';
//copy_form.php
$lang['copyf_title_copy'] = '复制';
$lang['copyf_to_new_object'] = '成为一个新的对象';
$lang['copyf_dest_dn'] = '目标DN';
$lang['copyf_dest_dn_tooltip'] = '在复制该源条目时将被建立的新条目的完整DN ';
$lang['copyf_dest_server'] = '目标服务器';
$lang['copyf_note'] = '提示: 在两个不同的服务器之间复制时,要求它们没有"schema格式冲突"';
$lang['copyf_recursive_copy'] = '另外还要递归复制此对象的所有子内容。';
$lang['recursive_copy'] = '递归复制';
$lang['filter'] = '过滤器';
//$lang['search_filter'] = '搜索过滤器';
$lang['filter_tooltip'] = '在完成一个递归复制时,只会复制哪些匹配这个过滤器的条目。';
$lang['delete_after_copy'] = '复制后删除(即移动):';
$lang['delete_after_copy_warn'] = '确认你的过滤器(见上面)会选择所有的子记录。';
//create.php
$lang['create_required_attribute'] = '必需属性(%s)的值为空白。';
$lang['redirecting'] = '重定向...';
$lang['here'] = '这里';
$lang['create_could_not_add'] = '不能增加该对象到LDAP服务器。';
//create_form.php
$lang['createf_create_object'] = '创建对象';
$lang['createf_choose_temp'] = '选择样板';
$lang['createf_select_temp'] = '选择用于创建过程的样板';
$lang['save_as_file'] = '另存为文件';
$lang['rdn_field_blank'] = 'RDN段为空白。';
$lang['container_does_not_exist'] = '你指定的(%s)容器不存在。 请再试试。';
$lang['no_objectclasses_selected'] = '你没有为该对象选择任何ObjectClasses。 请返回照做。';
$lang['hint_structural_oclass'] = '提示: 你必有选择一个结构化的objectClass (如上面粗体所显示的)';
//creation_template.php
$lang['ctemplate_on_server'] = '在服务器上';
$lang['ctemplate_no_template'] = '在POST变量中没有指定样板。';
$lang['template_not_readable'] = '你在配置中指定了用于该样板的"%s"的手柄,但是这个文件因为禁止权限太严格而不可读。';
$lang['template_does_not_exist'] = '你在配置文件中指定了用于该 样板的"%s"的手柄但是该手柄在templates/creation 目录中不存在。';
$lang['create_step1'] = '第一步: Name 和 ObjectClass(es)';
$lang['create_step2'] = '第二步: 指定属性和值';
$lang['relative_distinguished_name'] = 'Relative Distinguished Name相对标识名';
$lang['rdn'] = 'RDN';
$lang['rdn_example'] = '(例如: cn=MyNewPerson)';
$lang['container'] = 'Container容器';
// search.php
$lang['you_have_not_logged_into_server'] = '你还没有登入所选择的服务器,因此你不能在它上面完成搜索。';
$lang['click_to_go_to_login_form'] = '点击这里转到登录表格';
$lang['unrecognized_criteria_option'] = '不认识的criteria标准选项 ';
$lang['if_you_want_to_add_criteria'] = '如果你想增加自己的criteria 到列表里。 记得编辑search.php 来处理它们。 退出。';
$lang['entries_found'] = '找到的条目: ';
$lang['filter_performed'] = '应用了的过滤器: ';
$lang['search_duration'] = 'phpLDAPadmin完成搜索用时';
$lang['seconds'] = '秒';
// search_form_advanced.php
$lang['scope_in_which_to_search'] = '搜索的范围';
$lang['scope_sub'] = 'Sub (整个子树)';
$lang['scope_one'] = 'One (base之下的一级)';
$lang['scope_base'] = 'Base (仅限于base dn)';
$lang['standard_ldap_search_filter'] = '标准的LDAP搜索过滤器。 例如: (&(sn=Smith)(givenname=David))';
$lang['search_filter'] = '搜索过滤器';
$lang['list_of_attrs_to_display_in_results'] = '用于显示在结果中的属性列表(以逗号隔开)';
//$lang['show_attributes'] = '显示属性';
// search_form_simple.php
//$lang['search_for_entries_whose'] = '查找是谁的条目:';
$lang['equals'] = '等于';
$lang['starts with'] = '开始于';
$lang['contains'] = '包含';
$lang['ends with'] = '结束于';
$lang['sounds like'] = '看起来象';
// server_info.php
$lang['could_not_fetch_server_info'] = '不能从服务器上取得LDAP信息。 可能是因为你的PHP存在这个<a href="http://bugs.php.net/bug.php?id=29587">错漏</a>或者是你的LDAP服务器里指定的"访问控制"禁止LDAP客户端访问RootDSE。';
$lang['server_info_for'] = '服务器信息: ';
$lang['server_reports_following'] = '下列信息是服务器报告的关于它自己的信息';
$lang['nothing_to_report'] = '该服务器没有报告任何信息。';
//update.php
$lang['update_array_malformed'] = '看不懂update_array。 这可能是phpLDAPadmin的错漏。 请报告。';
$lang['could_not_perform_ldap_modify'] = '不能完成ldap_modify 操作。';
// update_confirm.php
$lang['do_you_want_to_make_these_changes'] = '你想应用这些变化吗?';
$lang['attribute'] = '属性';
$lang['old_value'] = '旧值';
$lang['new_value'] = '新值';
$lang['attr_deleted'] = '[删除的属性]';
$lang['commit'] = '提交';
$lang['cancel'] = '取消';
$lang['you_made_no_changes'] = '你没有进行更改';
$lang['go_back'] = '返回';
$lang['unable_create_samba_pass'] = '不能建立samba密码。请在template_config.php里检查你的配置';
// welcome.php
$lang['welcome_note'] = '使用左边菜单来导航';
$lang['credits'] = '荣誉';
$lang['changelog'] = '变更记录';
$lang['donate'] = '捐赠';
$lang['pla_logo'] = 'phpLDAPadmin 标识';
// Donate.php
$lang['donation_instructions'] = '想捐款给phpLDAPadmin项目请点击下面PayPal按钮中的一个。';
$lang['donate_amount'] = '捐赠 %s';
//$lang['wish_list_option'] = '或许你可以买份礼物给phpLDAPadmin开发人员。';
//$lang['wish_list'] = '查看Dave的phpLDAPadmin 愿望列表';
$lang['purge_cache'] = '清空缓存';
$lang['no_cache_to_purge'] = '没有缓存可清空。';
$lang['done_purging_caches'] = '清空缓存%s 个字节。';
$lang['purge_cache_tooltip'] = '清空所有在phpLDAPadmin中缓存的数据包括服务器schema格式。';
// view_jpeg_photo.php
$lang['unsafe_file_name'] = '不安全的文件名: ';
$lang['no_such_file'] = '没有这样的文件: ';
//function.php
$lang['auto_update_not_setup'] = '在你的配置中为 <b>%s</b> 启用了auto_uid_numbers
但是你没有指定auto_uid_number_mechanism。 请更正
这个问题';
$lang['uidpool_not_set'] = '你在服务<b>%s</b>的配置中指定"auto_uid_number_mechanism" "uidpool"
但是你没有指定
audo_uid_number_uid_pool_dn。 请在进行下步前指定它。';
$lang['uidpool_not_exist'] = '好像你在配置("%s")中指定的uidPool
不存在。';
$lang['specified_uidpool'] = '你在服务器<b>%s<b>的配置文件中指定了"auto_uid_number_mechanism" "search"
但是你没有指定
"auto_uid_number_search_base" 请在进行下步前指定它。';
$lang['auto_uid_invalid_credential'] = '使用auto_uid credentials不能绑定到<b>%s</b>。 请检查你的配置文件。';
$lang['bad_auto_uid_search_base'] = '你的phpLDAPadmin配置为服务器%s指定了一个非法的auto_uid_search_base ';
$lang['auto_uid_invalid_value'] = '你在配置文件中为auto_uid_number_mechanism ("%s")指定了一个非法的值
只有"uidpool" "search" 是合法的。
请更正这个问题。';
$lang['error_auth_type_config'] = '错误: 在你的配置文件中有个错误。 仅允许用于
$servers部分的auth_type的值为 \'session\', \'cookie\', and \'config\' 输入\'%s\'
这是不允许的。 ';
$lang['unique_attrs_invalid_credential'] = '不能使用unique_attrs 绑定到<b>%s</b>。 请检查你的配置文件。';
$lang['unique_attr_failed'] = '你企图增加<b>%s</b> (<i>%s</i>) 到 <br><b>%s</b><br>,这是不允许的。 该属性/值属于任何条目。<p>你可能想<a href=\'%s\'>搜索</a> 该条条目。';
$lang['php_install_not_supports_tls'] = '你安装的PHP 不支持TLS。';
$lang['could_not_start_tls'] = '不能启用TLS。 请检查你的LDAP 服务器配置。';
$lang['could_not_bind_anon'] = '不能匿名绑定到服务器。';
$lang['could_not_bind'] = '不能绑定到该LDAP服务器。';
$lang['anonymous_bind'] = '匿名绑定';
$lang['bad_user_name_or_password'] = '错误的用户名或密码。 请再试试。';
//$lang['redirecting_click_if_nothing_happens'] = '重定向... 如果没事发生请点击这里。';
$lang['successfully_logged_in_to_server'] = '成功登录到服务器<b>%s</b>';
$lang['could_not_set_cookie'] = '不能设置cookie。';
$lang['ldap_said'] = 'LDAP说 %s';
$lang['ferror_error'] = '出错';
$lang['fbrowse'] = '浏览';
$lang['delete_photo'] = '删除图片';
//$lang['install_not_support_blowfish'] = '你安装的PHP不支持blowfish 加密。';
//$lang['install_not_support_md5crypt'] = '你安装的PHP不支持 md5crypt 加密。';
//$lang['install_no_mash'] = '你安装的PHP没有mhash() 函数。 不能进行SHA哈希。';
$lang['install_not_support_ext_des'] = '你的系统加密库不支持扩展的DES加密。';
$lang['install_not_support_blowfish'] = '你的系统加密库不支持blowfish加密。';
$lang['install_not_support_md5crypt'] = '你的系统加密库不支持md5crypt加密。';
$lang['jpeg_contains_errors'] = 'jpegPhoto 包含有错<br />';
$lang['ferror_number'] = '错误代号 %s';
$lang['ferror_discription'] = '描述: %s <br /><br />';
$lang['ferror_number_short'] = '错误代号: %s <br /><br />';
$lang['ferror_discription_short'] = '描述: (没有描述可提供)<br />';
$lang['ferror_submit_bug'] = '这是个phpLDAPadmin 错漏吗? 如果是,就请<a href=\'%s\'>报告一个</a>。';
$lang['ferror_unrecognized_num'] = '不认识的错误代号: ';
$lang['ferror_nonfatil_bug'] = '<center><table class=\'notice\'><tr><td colspan=\'2\'><center><img src=\'images/warning.png\' height=\'12\' width=\'13\' />
<b>你发现了一个非致使的phpLDAPadmin 错漏!</b></td></tr><tr><td>错误:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>文件:</td>
<td><b>%s</b> <b>%s</b>,调用函数 <b>%s</b></td></tr><tr><td>版本:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web 服务器:</td><td><b>%s</b></td></tr><tr><td colspan=\'2\'><center><a target=\'new\' href=\'%s\'>
请点击这里报告该错漏</a></center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug'] = '恭喜你! 你发现了phpLDAPadmin的一个错漏。<br /><br />
<table class=\'bug\'>
<tr><td>错误:</td><td><b>%s</b></td></tr>
<tr><td>级别:</td><td><b>%s</b></td></tr>
<tr><td>文件:</td><td><b>%s</b></td></tr>
<tr><td>行:</td><td><b>%s</b></td></tr>
<tr><td>调用者:</td><td><b>%s</b></td></tr>
<tr><td>PLA 版本:</td><td><b>%s</b></td></tr>
<tr><td>PHP 版本:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>PHP 服务器:</td><td><b>%s</b></td></tr>
</table>
<br />
请通过点击下面来报告这个错漏!';
//ldif_import_form
$lang['import_ldif_file_title'] = '导入LDIF文件';
$lang['select_ldif_file'] = '选择一个LDIF文件';
$lang['dont_stop_on_errors'] = '发生错误时不停止';
//ldif_import
$lang['add_action'] = '增加...';
$lang['delete_action'] = '删除...';
$lang['rename_action'] = '更名...';
$lang['modify_action'] = '修改...';
$lang['warning_no_ldif_version_found'] = '没有找到版本号。 假设 1。';
$lang['valid_dn_line_required'] = '要求一个合法的dn行。';
$lang['missing_uploaded_file'] = '丢失上传的文件。';
$lang['no_ldif_file_specified'] = '没有指定LDIF文件。 请再试试。';
$lang['ldif_file_empty'] = '上传的LDIF 文件为空。';
$lang['empty'] = '空的';
$lang['file'] = '文件';
$lang['number_bytes'] = '%s 字节';
$lang['failed'] = '失败';
$lang['ldif_parse_error'] = 'LDIF解析错误';
$lang['ldif_could_not_add_object'] = '不能增加对象:';
$lang['ldif_could_not_rename_object'] = '不能更名对象:';
$lang['ldif_could_not_delete_object'] = '不能删除对象:';
$lang['ldif_could_not_modify_object'] = '不能修改对象:';
$lang['ldif_line_number'] = '行号:';
$lang['ldif_line'] = '行数:';
// Exports
$lang['export_format'] = '导出格式';
$lang['line_ends'] = '行结束';
$lang['must_choose_export_format'] = '不必须选择一个导出格式。';
$lang['invalid_export_format'] = '非法的导出格式';
$lang['no_exporter_found'] = '没有找到可用导出器。';
$lang['error_performing_search'] = '在执行搜索时碰到一个错误。';
$lang['showing_results_x_through_y'] = '显示结果%s它是通过%s来完成的。';
$lang['searching'] = '搜索...';
$lang['size_limit_exceeded'] = '注意,超出搜索大小限制。';
$lang['entry'] = '条目';
$lang['ldif_export_for_dn'] = '为: %s导出LDIF';
$lang['generated_on_date'] = '由phpLDAPadmin ( http://phpldapadmin.sourceforge.net/ ) 在 %s上生成的';
$lang['total_entries'] = '条目总数';
$lang['dsml_export_for_dn'] = '为: %s导出DSLM';
$lang['include_system_attrs'] = '包含系统属性';
$lang['csv_spreadsheet'] = 'CSV (Spreadsheet)';
// logins
//$lang['could_not_find_user'] = '不能找到用户"%s"';
$lang['password_blank'] = '你的密码为空。';
//$lang['login_cancelled'] = '登录取消了。';
$lang['no_one_logged_in'] = '没人登录到该服务器。';
$lang['could_not_logout'] = '不能退出。';
$lang['unknown_auth_type'] = '不能识别的auth_type %s';
$lang['logged_out_successfully'] = '成功从<b>%s</b>服务器退出';
$lang['authenticate_to_server'] = '认证到服务器%s';
$lang['warning_this_web_connection_is_unencrypted'] = '警告: 此web连接没有加密。';
$lang['not_using_https'] = '你没有使用\'https\'。 Web浏览器将会以明文传输登录信息。';
$lang['login_dn'] = '登录DN';
$lang['user_name'] = '用户名';
$lang['password'] = '密码';
$lang['authenticate'] = '认证';
$lang['login_not_allowed'] = '对不起这台LDAP服务器不允许你使用phpLDAPadmin。';
// Entry browser
$lang['entry_chooser_title'] = '条目选择器';
// Index page
$lang['need_to_configure'] = '你需要配置phpLDAPadmin。 编辑文件\'config.php\'就可以。 有个样例配置文件提供在 \'config.php.example\'里';
// Mass deletes
$lang['no_deletes_in_read_only'] = '在只读模式下不允许删除。';
$lang['error_calling_mass_delete'] = '错误调用mass_delete.php。在POST变量中丢失 mass_delete。';
$lang['mass_delete_not_array'] = 'mass_delete POST 变量不是个数组。';
$lang['mass_delete_not_enabled'] = 'Mass deletion(大量删除)没有启用。 请在进行下一步前在config.php中启用它。';
$lang['search_attrs_wrong_count'] = '你的config.php有个错误。 在$search_attributes 和 $search_attributes_display里的属性编号不一样';
$lang['mass_deleting'] = '正在大量删除';
$lang['mass_delete_progress'] = '服务器"%s"上的删除过程';
$lang['malformed_mass_delete_array'] = '不规则的mass_delete 数组。';
$lang['no_entries_to_delete'] = '你没有选择任何要删除的条目。';
$lang['deleting_dn'] = '正在删除 %s';
$lang['total_entries_failed'] = '删除条目%s属于%s失败。';
$lang['all_entries_successful'] = '所有条目删除成功。';
$lang['confirm_mass_delete'] = '确认大量删除条目%s在服务器%s上';
$lang['yes_delete'] = '是的,删除!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed'] = '你不能更名一个带有子条目的条目,举例,更名操作允许在非叶子条目上完成';
$lang['no_rdn_change'] = '你不能更改RDN';
$lang['invalid_rdn'] = '无效的RDN值';
$lang['could_not_rename'] = '不能更名该条目';
// General errors
//$lang['php5_unsupported'] = 'phpLDAPadmin 还不支持PHP 5。如果你继续可能会遇到许多意想不到的问题。';
$lang['mismatched_search_attr_config'] = '你的配置有个错误。 $search_attributes 与 $search_attributes_display 必须要有相同数目的属性。';
// Password checker
$lang['passwords_match'] = '密码匹配!';
$lang['passwords_do_not_match'] = '密码不匹配!';
$lang['password_checker_tool'] = '密码检查工具';
$lang['compare'] = '比较';
$lang['to'] = '与';
// Templates
$lang['using'] = '使用该';
//$lang['template'] = '模板';
$lang['switch_to'] = '你可以转换到';
$lang['default_template'] = '默认模板';
// template_config
$lang['user_account'] = '用户账号(posixAccount)';
$lang['address_book_inet'] = '地址簿条目(inetOrgPerson)';
$lang['address_book_moz'] = '地址簿条目(mozillaOrgPerson)';
$lang['kolab_user'] = 'Kolab用户条目';
$lang['organizational_unit'] = '组织化单元(Organizational Unit)';
$lang['organizational_role'] = '组织化角色';
$lang['posix_group'] = 'Posix组';
$lang['samba_machine'] = 'Samba NT 主机';
$lang['samba3_machine'] = 'Samba 3 NT 主机';
$lang['samba_user'] = 'Samba 用户';
$lang['samba3_user'] = 'Samba 3 用户';
$lang['samba3_group'] = 'Samba 3 组映像(Mapping)';
$lang['dns_entry'] = 'DNS 条目';
$lang['simple_sec_object'] = '简单安全对象(Simple Security Object)';
$lang['courier_mail_account'] = 'Courier 邮件账号';
$lang['courier_mail_alias'] = 'Courier 邮件别名';
$lang['ldap_alias'] = 'LDAP 别名';
$lang['sendmail_cluster'] = 'Sendmail 集群';
$lang['sendmail_domain'] = 'Sendmail 域';
$lang['sendmail_alias'] = 'Sendmail 别名';
$lang['sendmail_virt_dom'] = 'Sendmail 虚拟域';
$lang['sendmail_virt_users'] = 'Sendmail 虚拟用户';
$lang['sendmail_relays'] = 'Sendmail 回复';
$lang['custom'] = '自定义';
$lang['samba_domain_name'] = '我的Samba域名';
$lang['administrators'] = '管理员';
$lang['users'] = '用户';
$lang['guests'] = '一般用户(Guests)';
$lang['power_users'] = '增强用户(Power Users)';
$lang['account_ops'] = '账号管理员';
$lang['server_ops'] = '服务器管理员';
$lang['print_ops'] = '打印管理员';
$lang['backup_ops'] = '备份管理员';
$lang['replicator'] = '复制器(Replicator)';
$lang['unable_smb_passwords'] = '不能建立Samba密码。请检查文件template_config.php里的配置。';
$lang['err_smb_conf'] = '错误在你的samba配置里有个错误。';
$lang['err_smb_no_name_sid'] = '错误需要为你的samba域提供一个名字(name)和一个sid。';
$lang['err_smb_no_name'] = '错误没有为samba域提供名字。';
$lang['err_smb_no_sid'] = '错误没有为samba域提供sid。';
// Samba Account Template
$lang['samba_account'] = 'Samba 账号';
$lang['samba_account_lcase'] = 'samba 账号';
// New User (Posix) Account
$lang['t_new_user_account'] = '新建用户账号';
$lang['t_hint_customize'] = '提示想要定制模板的话你可以编辑文件templates/creation/new_user_template.php';
$lang['t_name'] = '名字';
$lang['t_first_name'] = '第一个名字';
$lang['t_last_name'] = '最后一个名字';
$lang['t_first'] = '第一个';
$lang['t_last'] = '最后一个';
$lang['t_common_name'] = '公有名字(Common name)';
$lang['t_user_name'] = '用户名';
$lang['t_password'] = '密码';
$lang['t_encryption'] = '加密方法';
$lang['t_login_shell'] = '登录Shell';
$lang['t_home_dir'] = '主目录';
$lang['t_uid_number'] = 'UID号';
$lang['t_auto_det'] = '(自动检测到的)';
$lang['t_group'] = '组';
$lang['t_gid_number'] = 'GID号';
$lang['t_err_passwords'] = '你的密码不匹配。请返回再试试。';
$lang['t_err_field_blank'] = '%s处不能为空。请返回再试试。';
$lang['t_err_field_num'] = '%s字段不能只输入数字。请返回再试试。';
$lang['t_err_bad_container'] = '你指定的容器(%s)不存在。请返回再试试。';
$lang['t_confirm_account_creation'] = '确认创建账号';
$lang['t_secret'] = '[隐秘]';
$lang['t_create_account'] = '创建账号';
// New Address Template
$lang['t_new_address'] = '新建地址簿条目';
$lang['t_organization'] = '组织';
$lang['t_address'] = '地址';
$lang['t_city'] = '城市';
$lang['t_postal_code'] = '邮政编码';
$lang['t_street'] = '街道';
$lang['t_work_phone'] = '工作电话';
$lang['t_fax'] = '传真(Fax)';
$lang['t_mobile'] = '移动电话(Mobile)';
$lang['t_email'] = '电子邮件';
$lang['t_container'] = '容器';
$lang['t_err_cn_blank'] = '公有名字(Common Name)不能为空。请返回再试试。';
$lang['t_confim_creation'] = '确认创建条目:';
$lang['t_create_address'] = '创建地址簿';
// default template
$lang['t_check_pass'] = '正在检查密码……';
// compare form
$lang['compare'] = '比较';
$lang['comparing'] = '比较紧跟着的DN';
$lang['compare_dn'] = '比较另一个DN跟';
$lang['with'] = '同 ';
$lang['compf_source_dn'] = '源DN';
$lang['compf_dn_tooltip'] = '将该DN与另一个比较';
$lang['switch_entry'] = '切换条目';
$lang['no_value'] = '没有值';
$lang['compare_with'] = '同另一个条目进行比较';
$lang['need_oclass'] = '要新增属性%s你需要下面的ObjectClass(es)——对象类。';
// Time out page
$lang['session_timed_out_1'] = '你的会话期将在无活动的';
$lang['session_timed_out_2'] = '分钟后过期。你将自动退出。';
$lang['log_back_in'] = '想登录回来,请点击下面的链接:';
$lang['session_timed_out_tree'] = '(会话超时,自动退出。)';
$lang['timeout_at'] = '在%s如果活动你将被登出。';
?>

490
lang/zh-tw.php Normal file
View File

@ -0,0 +1,490 @@
<?php
/* --- INSTRUCTIONS FOR TRANSLATORS ---
*
* If you want to write a new language file for your language,
* please submit the file on SourceForge:
*
* https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498548
*
* Use the option "Check to Upload and Attach a File" at the bottom
*
* Thank you!
*
*/
// Based on en.php version 1.58
// Search form
$lang['simple_search_form_str']='簡易搜尋表單';
$lang['advanced_search_form_str']='進階搜尋表單';
$lang['server']='伺服器';
// search_form_simple.php
$lang['search_for_entries_whose']='選擇搜尋條件';
$lang['base_dn']='基礎識別名稱';
$lang['search_scope']='搜尋範圍';
$lang['show_attributes']='顯示屬性';
$lang['Search']='搜尋';
$lang['predefined_search_str']='以預先定義好的條件搜尋';
$lang['predefined_searches']='預先定義好的搜尋';
$lang['no_predefined_queries']='config.php中沒有預先定義的搜尋條件';
// Tree browser
$lang['request_new_feature']='建議新功能';
$lang['report_bug']='回報問題';
$lang['schema']='schema';
$lang['search']='搜尋';
$lang['create']='建立';
$lang['info']='系統資訊';
$lang['import']='匯入';
$lang['refresh']='重新整理';
$lang['logout']='登出';
$lang['create_new']='建立新紀錄';
$lang['view_schema_for']='查閱schema';
$lang['refresh_expanded_containers']='重新整理所有展開的集合';
$lang['create_new_entry_on']='建立新紀錄於';
$lang['new']='新';
$lang['view_server_info']='查閱伺服器提供的資訊';
$lang['import_from_ldif']='從LDIF檔案匯入紀錄';
$lang['logout_of_this_server']='登出此伺服器';
$lang['logged_in_as']='登入為';
$lang['read_only']='唯讀';
$lang['could_not_determine_root']='找不到LDAP根目錄';
$lang['ldap_refuses_to_give_root']='此LDAP伺服器設定為不顯示根節點';
$lang['please_specify_in_config']='請在config.php中指定';
$lang['create_new_entry_in']='建立新紀錄於';
$lang['login_link']='登入...';
$lang['login']='登入';
// Entry display
$lang['delete_this_entry']='刪除此紀錄';
$lang['delete_this_entry_tooltip']='在您確認之後刪除此記錄';
$lang['copy_this_entry']='複製此記錄';
$lang['copy_this_entry_tooltip']='將此記錄複製到您選擇的目的地';
$lang['export']='匯出';
$lang['export_tooltip']='將此物件匯出';
$lang['export_subtree_tooltip']='將此物件及所有子物件匯出';
$lang['export_subtree']='將此子樹匯出';
$lang['create_a_child_entry']='建立子記錄';
$lang['rename_entry']='重新命名';
$lang['rename']='更名';
$lang['add']='新增';
$lang['view']='查閱';
$lang['view_one_child']='查閱 1 子紀錄';
$lang['view_children']='查閱 %s 子紀錄';
$lang['add_new_attribute']='新增屬性';
$lang['add_new_objectclass']='新增ObjectClass';
$lang['hide_internal_attrs']='不顯示隱藏屬性';
$lang['show_internal_attrs']='顯示隱藏屬性';
$lang['attr_name_tooltip']='查閱屬性 ';
$lang['none']='none';
$lang['save_changes']='儲存';
$lang['add_value']='加入新數值';
$lang['add_value_tooltip']='增加一個附加值到屬性 \"%s\"';
$lang['refresh_entry']='重新整理';
$lang['refresh_this_entry']='重整此筆資';
$lang['delete_hint']='提示: 將欄位數值刪除並按存檔即可刪除該屬性';
$lang['attr_schema_hint']='提示: 在該屬性上點一下即可查閱所使用的schema';
$lang['attrs_modified']='修改後的屬性為 (%s) 並以不同的顏色區分';
$lang['attr_modified']='修改後的屬性為 (%s) 並以不同的顏色區分';
$lang['viewing_read_only']='以唯讀模式查閱資料';
$lang['no_new_attrs_available']='此筆資料沒有新屬性';
$lang['no_new_binary_attrs_available']='此筆資料沒有二進位屬性';
$lang['binary_value']='二進位數值';
$lang['add_new_binary_attr']='新增二進位屬性';
$lang['alias_for']='Alias for %s';
$lang['download_value']='下載數值';
$lang['delete_attribute']='刪除屬性';
$lang['true']='true';
$lang['false']='false';
$lang['none_remove_value']='空白, 移除該值';
$lang['really_delete_attribute']='確定要刪除屬性?';
$lang['add_new_value']='新增數值';
// Schema browser
$lang['the_following_objectclasses']='此LDAP伺服器支援下列objectClasses';
$lang['the_following_attributes']='此LDAP伺服器支援下列屬性';
$lang['the_following_matching']='此LDAP伺服器支援下列搜尋規則';
$lang['the_following_syntaxes']='此LDAP伺服器支援下列語法';
$lang['schema_retrieve_error_1']='此伺服器並未完全支援LDAP協定';
$lang['schema_retrieve_error_2']='您的php版本並未正確執行此查詢';
$lang['schema_retrieve_error_3']='或是phpLDAPadmin不知道如何從您的伺服器擷取schema';
$lang['jump_to_objectclass']='選擇objectClass';
$lang['jump_to_attr']='選擇屬性';
$lang['jump_to_matching_rule']='選擇配對規則';
$lang['schema_for_server']='伺服器的schema';
$lang['required_attrs']='必要屬性';
$lang['optional_attrs']='選擇性屬性';
$lang['optional_binary_attrs']='選擇性二進位屬性';
$lang['OID']='OID';
$lang['aliases']='別名';
$lang['desc']='說明';
$lang['no_description']='沒有說明';
$lang['name']='名稱';
$lang['equality']='相同';
$lang['is_obsolete']='這個 objectClass 是必須得.';
$lang['inherits']='繼承';
$lang['inherited_from']='已繼承於';
$lang['jump_to_this_oclass']='選擇此objectClass定義';
$lang['matching_rule_oid']='OID配對規則';
$lang['syntax_oid']='OID語法';
$lang['not_applicable']='未應用的';
$lang['not_specified']='未指定的';
$lang['character']='字元';
$lang['characters']='字元集';
$lang['used_by_objectclasses']='已被 objectClasses 使用';
$lang['used_by_attributes']='已被屬性使用';
$lang['maximum_length']='最大長度';
$lang['attributes']='屬性型態';
$lang['syntaxes']='語法';
$lang['matchingrules']='配對規則';
$lang['oid']='OID';
$lang['obsolete']='必要';
$lang['ordering']='排序中';
$lang['substring_rule']='子字串規則';
$lang['single_valued']='單一值';
$lang['collective']='集合';
$lang['user_modification']='使用者修改';
$lang['usage']='使用量';
$lang['could_not_retrieve_schema_from']='無法恢復 Schema 於';
$lang['type']='類型';
// Deleting entries
$lang['entry_deleted_successfully']='資料 %s 成功的刪除';
$lang['you_must_specify_a_dn']='您必須指定一個識別名稱';
$lang['could_not_delete_entry']='無法刪除記錄 %s';
$lang['no_such_entry']='無此記錄 %s';
$lang['delete_dn']='刪除 %s';
$lang['permanently_delete_children']='永久刪除所有子資料?';
$lang['entry_is_root_sub_tree']='此資料';
$lang['view_entries']='查閱資料';
$lang['confirm_recursive_delete']='phpLDAPadmin可以幫您刪除此資料與所有 %s 子資料.下列資料將會被刪除,您確定要刪除?';
$lang['confirm_recursive_delete_note']='請注意:這項功能無法還原,且可能是非常危險的,且可能因此而造成問題';
$lang['delete_all_x_objects']='刪除所有 %s 物件';
$lang['recursive_delete_progress']='遞迴刪除進度';
$lang['entry_and_sub_tree_deleted_successfully']='成功刪除資料 %s 與子資料';
$lang['failed_to_delete_entry']='無法刪除資料 %s';
$lang['list_of_entries_to_be_deleted']='下列資料將被刪除:';
$lang['sure_permanent_delete_object']='您確定要永久刪除此物件?';
$lang['dn']='識別名稱';
// Deleting attributes
$lang['attr_is_read_only']='屬性 \"%s\" 在phpLDAPadmin中被設定成唯讀';
$lang['no_attr_specified']='請指定屬性名稱';
$lang['no_dn_specified']='請指定識別名稱';
// Adding attributes
$lang['left_attr_blank']='您沒有輸入屬性數值,請重新輸入';
$lang['failed_to_add_attr']='無法新增此屬性';
// Updating values
$lang['modification_successful']='修改成功';
$lang['change_password_new_login']='您的密碼已更新,請登出並以新密碼重新登入';
// Adding objectClass form
$lang['new_required_attrs']='新必須屬性';
$lang['requires_to_add']='執行此項操作前您必須先加入';
$lang['new_attributes']='新屬性';
$lang['new_required_attrs_instructions']='作法在新增objectClass之前您必須指定';
$lang['that_this_oclass_requires']='此objectClass為必須您可以在此表單中指定';
$lang['add_oclass_and_attrs']='新增ObjectClass與屬性';
$lang['objectclasses']='ObjectClasses';
// General
$lang['chooser_link_tooltip']='點選此處即可以圖形介面選擇資料(識別名稱)';
$lang['no_updates_in_read_only_mode']='伺服器為唯讀模式,無法更新資料';
$lang['bad_server_id']='錯誤的 server id';
$lang['not_enough_login_info']='沒有足夠的資訊以進行登入伺服器,請檢查您的設定值';
$lang['could_not_connect']='無法連接LDAP伺服器';
$lang['could_not_connect_to_host_on_port']='無法透過port \"%s\" 連接到 \"%s\" ';
$lang['could_not_perform_ldap_mod_add']='無法執行ldap_mod_add操作';
$lang['bad_server_id_underline']='錯誤的 server_id:';
$lang['success']='成功';
$lang['server_colon_pare']='伺服器:';
$lang['look_in']='登入:';
$lang['missing_server_id_in_query_string']='查詢字串中並未指定server ID';
$lang['missing_dn_in_query_string']='查詢字串中並未指定識別名稱';
$lang['back_up_p']='備份...';
$lang['no_entries']='沒有任何紀錄';
$lang['not_logged_in']='尚未登入';
$lang['could_not_det_base_dn']='無法確定 Base DN';
$lang['please_report_this_as_a_bug']='請回報這個問題至 Bug 系統';
$lang['reasons_for_error']='此問題可能有好幾個原因,最有可能的是:';
$lang['yes']='確定';
$lang['no']='否';
$lang['go']='衝!!';
$lang['delete']='刪除';
$lang['back']='返回';
$lang['object']='物件';
$lang['delete_all']='刪除全部';
$lang['url_bug_report']='https://sourceforge.net/tracker/?func=add&group_id=61828&atid=498546';
$lang['hint']='提示';
$lang['bug']='臭蟲';
$lang['warning']='警告';
$lang['light']='light';
$lang['proceed_gt']='下一步 >>';
// Add value form
$lang['add_new']='新增';
$lang['value_to']='數值至';
$lang['distinguished_name']='識別名稱';
$lang['current_list_of']='此屬性有';
$lang['values_for_attribute']='下列數值:';
$lang['inappropriate_matching_note']='請注意若您的LDAP伺服器中並未設定等式規則您將會遇到\"無適合的比對\"錯誤';
$lang['enter_value_to_add']='請輸入您要加入的數值';
$lang['new_required_attrs_note']='請注意由於此objectClass定義的';
$lang['syntax']='語法,您必須輸入新屬性';
//copy.php
$lang['copy_server_read_only']='無法在伺服器為唯讀模式時更新資料';
$lang['copy_dest_dn_blank']='目的地識別名稱不能是空白';
$lang['copy_dest_already_exists']='目的地識別名稱 (%s) 已經存在';
$lang['copy_dest_container_does_not_exist']='目的地集合 (%s) 不存在';
$lang['copy_source_dest_dn_same']='來源識別名稱與目的地識別名稱重複';
$lang['copy_copying']='複製中';
$lang['copy_recursive_copy_progress']='遞迴複製作業';
$lang['copy_building_snapshot']='對資料樹建立副本來複製';
$lang['copy_successful_like_to']='複製成功!!您要';
$lang['copy_view_new_entry']='查閱此新紀錄?';
$lang['copy_failed']='以下 DN 複製失敗:';
//edit.php
$lang['missing_template_file']='警告:找不到樣版檔案';
$lang['using_default']='使用預設值';
$lang['template']='樣版';
$lang['must_choose_template']='你必須選擇一個樣版';
$lang['invalid_template']='%s 是錯誤的樣版';
$lang['using_template']='使用樣版';
$lang['go_to_dn']='到 %s';
//copy_form.php
$lang['copyf_title_copy']='複製';
$lang['copyf_to_new_object']='成新物件';
$lang['copyf_dest_dn']='目的地識別名稱';
$lang['copyf_dest_dn_tooltip']='來源資料複製後的完整識別名稱';
$lang['copyf_dest_server']='目的伺服器';
$lang['copyf_note']='提示只有當不同的伺服器間的schema相容才能在不同的伺服器之間進行複製';
$lang['copyf_recursive_copy']='遞迴複製所有此物件的子資料';
$lang['recursive_copy']='遞迴複製';
$lang['filter']='過濾條件';
$lang['filter_tooltip']='只有符合過濾條件的資料會被遞迴複製';
//create.php
$lang['create_required_attribute']='必要的屬性 (%s) 必須有資料';
$lang['redirecting']='正在轉換至...';
$lang['here']='這裡';
$lang['create_could_not_add']='不能新增物件到此LDAP伺服器';
//create_form.php
$lang['createf_create_object']='創造物件';
$lang['createf_choose_temp']='選擇樣版';
$lang['createf_select_temp']='請選擇一個你要建立的紀錄模板';
$lang['createf_proceed']='下一步';
$lang['rdn_field_blank']='相對識別名稱欄位不能是空白';
$lang['container_does_not_exist']='您指定的集合 (%s) 不存在,請重新指定';
$lang['no_objectclasses_selected']='您必須為此物件指定ObjectClasses';
$lang['hint_structural_oclass']='提示:您必須在伺服器上至少';
//creation_template.php
$lang['ctemplate_on_server']='選擇一個objectClass';
$lang['ctemplate_no_template']='在POST變數中並未指定模版';
$lang['ctemplate_config_handler']='您的設定指定了由某個程式來執行此模版';
$lang['ctemplate_handler_does_not_exist']='但此程式在 templates/creation 目錄中找不到';
$lang['create_step1']='步驟 1 之 2:名稱與ObjectClass(es)';
$lang['create_step2']='步驟 2 之 2:指定屬性與數值';
$lang['relative_distinguished_name']='相對識別名稱';
$lang['rdn']='相對識別名稱';
$lang['rdn_example']='(範例: cn=MyNewPerson)(範例: cn=MyNewPerson)';
$lang['container']='集合';
// search.php
$lang['you_have_not_logged_into_server']='您必須先登入伺服器才能在伺服器執行搜尋';
$lang['click_to_go_to_login_form']='點選這邊回去登入表單';
$lang['unrecognized_criteria_option']='無法辨識的基準';
$lang['if_you_want_to_add_criteria']='如果您要加入自己的基準到項目列表中請編輯search.php';
$lang['entries_found']='找到的紀錄:';
$lang['filter_performed']='執行過濾條件';
$lang['search_duration']='phpLDAPadmin將會';
$lang['seconds']='馬上執行查詢';
// search_form_advanced.php
$lang['scope_in_which_to_search']='搜尋範圍';
$lang['scope_sub']='Sub (整個子樹)';
$lang['scope_one']='One (單一階層下)';
$lang['scope_base']='Base (只有基礎識別名稱)';
$lang['standard_ldap_search_filter']='標準的LDAP搜尋條件. 如: (&(sn=Smith)(givenname=David))';
$lang['search_filter']='過濾搜尋';
$lang['list_of_attrs_to_display_in_results']='下列為搜尋結果(以 , 區隔)';
$lang['equals']='等於';
$lang['starts with']='開始於';
$lang['contains']='內含';
$lang['ends with']='結束於';
$lang['sounds like']='喜愛的聲音';
// server_info.php
$lang['could_not_fetch_server_info']='無法從伺服器取得 LDAP 資訊';
$lang['server_info_for']='伺服器資訊:';
$lang['server_reports_following']='伺服器回報下列資訊:';
$lang['nothing_to_report']='此伺服器沒有資訊可以回報';
//update.php
$lang['update_array_malformed']='無法更新陣列可能是phpLDAPadmin的bug請回報此問題';
$lang['could_not_perform_ldap_modify']='無法執行ldap_modify操作';
// update_confirm.php
$lang['do_you_want_to_make_these_changes']='您確定要做這些更動?';
$lang['attribute']='屬性';
$lang['old_value']='原設定值';
$lang['new_value']='新設定植';
$lang['attr_deleted']='[屬性已刪除]';
$lang['commit']='送出';
$lang['cancel']='取消';
$lang['you_made_no_changes']='您並沒有做任何更動';
$lang['go_back']='回上頁';
// welcome.php
$lang['welcome_note']='請用左邊的選單瀏覽';
$lang['credits']='成員列表';
$lang['changelog']='更新紀錄';
$lang['donate']='捐獻';
// view_jpeg_photo.php
$lang['unsafe_file_name']='不安全的檔案名稱:';
$lang['no_such_file']='沒有以下檔案:';
//function.php
$lang['auto_update_not_setup']='您在設定中開啟 <b>%s</b>的auto_uid_numbers功能但並未指定auto_uid_number_mechanism請修正此問題';
$lang['uidpool_not_set']='伺服器<b>%s</b>的auto_uid_number_mechanism指定為uidpool但並未指定audo_uid_number_uid_pool_dn請修正此問題再繼續';
$lang['uidpool_not_exist']='您再設定檔(\"%s\")中指定的uidPool機制並不存在';
$lang['specified_uidpool']='伺服器<b>%s</b>的auto_uid_number_mechanism指定為search但您並未指定auto_uid_number_search_base請修正此問題再繼續';
$lang['auto_uid_invalid_credential']='無法以您的auto_uid設定登入<b>%s</b>,請檢查您的設定檔';
$lang['bad_auto_uid_search_base']='您在phpLDAPadmin設定中對伺服器%s指定了無效的auto_uid_search_base';
$lang['auto_uid_invalid_value']='您的auto_uid_number_mechanism (\"%s\") 設定是無效的只有uidpool與search為有效設定請修正此問題';
$lang['error_auth_type_config']='錯誤您的設定有錯誤變數auth_type只允許session , cookie與config您的設定值 ';
$lang['php_install_not_supports_tls']='您安裝的 php 並沒有支援 TLS.';
$lang['could_not_start_tls']='無法啟動 TLS 請檢查您的 LDAP 伺服器設定.';
$lang['could_not_bind_anon']='伺服器不接受匿名登入';
$lang['anonymous_bind']='匿名登入';
$lang['bad_user_name_or_password']='錯誤的 使用者名稱 或 密碼.請重新輸入一次.';
$lang['redirecting_click_if_nothing_happens']='正在重新導向...如果瀏覽器沒有動作,請點選這裡.';
$lang['successfully_logged_in_to_server']='成功登入伺服器 %s';
$lang['could_not_set_cookie']='不能設定 cookie';
$lang['ldap_said']='伺服器回應: %s';
$lang['ferror_error']='錯誤';
$lang['fbrowse']='瀏覽';
$lang['delete_photo']='刪除相片';
$lang['install_not_support_blowfish']='您所安裝的 PHP 並不支援 Blowfish 加密';
$lang['install_no_mash']='您所安裝的 PHP 並沒有 mhash() 函數,無法進行 SHA 加密';
$lang['jpeg_contains_errors']='jpegPhoto 內容發生錯誤<br />';
$lang['ferror_number']='錯誤碼: %s (%s)';
$lang['ferror_discription']='說明: %s <br /><br />';
$lang['ferror_number_short']='錯誤編號: %s';
$lang['ferror_discription_short']='說明: (無任何說明內容)<br />';
$lang['ferror_submit_bug']='這是 phpLDAPadmin 的 bug? 如果是,請<a href=\"%s\">回報這個Bug</a>.';
$lang['ferror_unrecognized_num']='無法辨識的錯誤代碼:';
$lang['ferror_nonfatil_bug']='<center><table class=\"notice\"><tr><td colspan=\"2\"><center><img src=\"images/warning.png\" height=\"12\" width=\"13\" />
<b>You found a non-fatal phpLDAPadmin bug!</b></td></tr><tr><td>Error:</td><td><b>%s</b> (<b>%s</b>)</td></tr><tr><td>File:</td>
<td><b>%s</b> line <b>%s</b>, caller <b>%s</b></td></tr><tr><td>Versions:</td><td>PLA: <b>%s</b>, PHP: <b>%s</b>, SAPI: <b>%s</b>
</td></tr><tr><td>Web server:</td><td><b>%s</b></td></tr><tr><td colspan=\"2\"><center><a target=\"new\" href=\"%s\">
Please report this bug by clicking here</a>.</center></td></tr></table></center><br />';
$lang['ferror_congrats_found_bug']='恭喜! 您發現了phpLDAPadmin的bug.<br /><br /> <table class=\"bug\">
<tr><td>Error:</td><td><b>%s</b></td></tr>
<tr><td>Level:</td><td><b>%s</b></td></tr>
<tr><td>File:</td><td><b>%s</b></td></tr>
<tr><td>Line:</td><td><b>%s</b></td></tr>
<tr><td>Caller:</td><td><b>%s</b></td></tr>
<tr><td>PLA Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP Version:</td><td><b>%s</b></td></tr>
<tr><td>PHP SAPI:</td><td><b>%s</b></td></tr>
<tr><td>Web server:</td><td><b>%s</b></td></tr>
</table>
<br />
Please report this bug by clicking below!';
//ldif_import_form
$lang['import_ldif_file_title']='匯入 LDIF 檔案';
$lang['select_ldif_file']='選擇一個 LDIF 檔案:';
$lang['select_ldif_file_proceed']='下一步';
//ldif_import
$lang['add_action']='增加中...';
$lang['delete_action']='刪除中...';
$lang['rename_action']='更名中...';
$lang['modify_action']='改變中...';
$lang['warning_no_ldif_version_found']='找不到版本資訊預設使用版本1';
$lang['valid_dn_line_required']='需要有效的識別名稱行';
$lang['missing_uploaded_file']='找不到指定的上傳檔案';
$lang['no_ldif_file_specified.']='沒有指定LDIF檔案請重試';
$lang['ldif_file_empty']='上傳的 LDIF 檔案是空白的';
$lang['file']='檔案';
$lang['number_bytes']='%s bytes';
$lang['failed']='失敗';
$lang['ldif_parse_error']='LDIF 解析錯誤';
$lang['ldif_could_not_add_object']='無法新增 object:';
$lang['ldif_could_not_rename_object']='無法重新命名 object:';
$lang['ldif_could_not_delete_object']='無法刪除 object:';
$lang['ldif_could_not_modify_object']='無法修改 object:';
$lang['ldif_line_number']='行數:';
$lang['ldif_line']='行:';
// Exports
$lang['export_format']='匯出格式';
$lang['line_ends']='斷行';
$lang['must_choose_export_format']='你必須選擇一種匯出格式';
$lang['invalid_export_format']='無效的匯出格式';
$lang['no_exporter_found']='沒有可用的匯出程式';
$lang['error_performing_search']='在執行搜尋時發生錯誤';
$lang['showing_results_x_through_y']='透過 %s 顯示結果 %s';
$lang['searching']='搜索中...';
$lang['size_limit_exceeded']='注意:到達搜尋大小上限';
$lang['entry']='紀錄';
$lang['ldif_export_for_dn']='匯出 LDIF :';
$lang['generated_on_date']='由';
$lang['total_entries']='全部的紀錄';
$lang['dsml_export_for_dn']='匯出 DSLM :';
// logins
$lang['could_not_find_user']='找不到使用者 \"%s\"';
$lang['password_blank']='您沒有輸入密碼欄位.';
$lang['login_cancelled']='已經取消登入.';
$lang['no_one_logged_in']='在此伺服器尚無人登入.';
$lang['could_not_logout']='無法登出.';
$lang['unknown_auth_type']='未知的認證模式: %s';
$lang['logged_out_successfully']='成功的從 %s 伺服器登出';
$lang['authenticate_to_server']='登入伺服器 %s';
$lang['warning_this_web_connection_is_unencrypted']='警告: 這個網頁連線是沒有加密的.';
$lang['not_using_https']='您並未使用https加密連線您的瀏覽器將直接以明碼傳送您的帳號與密碼';
$lang['login_dn']='登入 DN';
$lang['user_name']='使用者名稱';
$lang['password']='密碼';
$lang['authenticate']='驗證';
// Entry browser
$lang['entry_chooser_title']='紀錄選擇器';
// Index page
$lang['need_to_configure']='您必須先設定phpLDAPadmin請依照config.php.example編輯config.php';
// Mass deletes
$lang['no_deletes_in_read_only']='在唯讀模式時不允許刪除資料';
$lang['error_calling_mass_delete']='呼叫mass_delete.php時發生錯誤mass_delete不在POST變數中';
$lang['mass_delete_not_array']='mass_delete POST變數不是陣列';
$lang['mass_delete_not_enabled']='大量刪除功能並未開啟請在config.php中開啟此功能';
$lang['mass_deleting']='大量刪除';
$lang['mass_delete_progress']='正在 \"%s\" 伺服器上進行刪除程序';
$lang['malformed_mass_delete_array']='錯誤的大量刪除陣列';
$lang['no_entries_to_delete']='您沒有選擇任何要刪除的紀錄';
$lang['deleting_dn']='刪除 %s';
$lang['total_entries_failed']='無法刪除紀錄 %s %s';
$lang['all_entries_successful']='全部刪除完成';
$lang['confirm_mass_delete']='確認要刪除 %s 登入在伺服器 %s上';
$lang['yes_delete']='沒錯,刪除吧!';
// Renaming entries
$lang['non_leaf_nodes_cannot_be_renamed']='當此記錄有子紀錄時無法重新命名';
$lang['no_rdn_change']='您並沒有改變相對識別名稱';
$lang['invalid_rdn']='無效的相對識別名稱';
$lang['could_not_rename']='無法重新命名';
?>

View File

@ -3,7 +3,7 @@
typically the result of an internal error on your LDAP server."
0x02 LDAP_PROTOCOL_ERROR "A protocol violation was detected."
0x03 LDAP_TIMELIMIT_EXCEEDED "The operation timed out waiting to complete."
0x04 LDAP_SIZELIMIT_EXCEEDED "The LDAP sever refused to serve such a large result set."
0x04 LDAP_SIZELIMIT_EXCEEDED "The LDAP server refused to serve such a large result set."
0x05 LDAP_COMPARE_FALSE "A compare operation returned false."
0x06 LDAP_COMPARE_TRUE "A compare operation returned true."
0x07 LDAP_AUTH_METHOD_NOT_SUPPORTED "The authentication method you specified is not supported by

180
ldap_supported_oids.txt Normal file
View File

@ -0,0 +1,180 @@
# $Header: /cvsroot/phpldapadmin/phpldapadmin/ldap_supported_oids.txt,v 1.3 2005/09/11 14:59:47 wurley Exp $
# If you find some reliable and more meaningful descriptions to this OIDS,
# then please let the phpldapadmin development know so that this file can be
# more descriptive.
1.2.826.0.1.334810.2.3 "LDAP_CONTROL_VALUESRETURNFILTER"
1.2.826.0.1.3344810.2.3 "Matched Values Control" "RFC 3876" "Describes a control for the LDAP v3 that is used to return a subset of attribute values from an entry. Specifically, only those values that match a 'values return' filter. Without support for this control, a client must retrieve all of an attribute's values and search for specific values locally."
1.2.826.0.1050.11.1.1 "Read-Only LDAP Server"
1.2.826.0.1050.11.2.1 "Read-Write LDAP Server"
1.2.826.0.1050.11.3.1 "White Pages Application LDAP Server"
1.2.826.0.1050.11.4.1 "Certificate Application LDAP Server"
1.2.826.0.1050.11.5.1 "Single Sign On Application LDAP Server"
1.2.840.113549.6.0.0 "Signed Operation"
1.2.840.113549.6.0.1 "Demand Signed Result"
1.2.840.113549.6.0.2 "Signed Result RFC 2649"
1.2.840.113556.1.4.319 "Simple Paged Results Manipulation Control Extension" "RFC 2696" "This control extension allows a client to control the rate at which an LDAP server returns the results of an LDAP search operation. This control may be useful when the LDAP client has limited resources and may not be able to process the entire result set from a given LDAP query, or when the LDAP client is connected over a low-bandwidth connection."
1.2.840.113556.1.4.417 "Show deleted control" "" "The LDAP_SERVER_SHOW_DELETED_OID control is used with an extended LDAP search function to specify that the search results include any deleted objects that match the search filter."
1.2.840.113556.1.4.473 "LDAP Server Sort Result extension" "draft-ietf-ldapext-sorting-01" "This control is included in the searchRequest message as part of the controls field of the LDAPMessage."
1.2.840.113556.1.4.474 "LDAP Server Sort Result extension response control" "" "This control is included in the searchResultDone message as part of the controls field of the LDAPMessage"
1.2.840.113556.1.4.521 "Cross-domain move control" "" "The LDAP_SERVER_CROSSDOM_MOVE_TARGET_OID control is used with an extended LDAP rename function to move an LDAP object from one domain to another. The control specifies the DNS hostname of the domain controller in the destination domain."
1.2.840.113556.1.4.528 "Server search notification control" "" "The LDAP_SERVER_NOTIFICATION_OID control is used with an extended LDAP asynchronous search function to register the client to be notified when changes are made to an object in Active Directory."
1.2.840.113556.1.4.529 "Extended DN control" "" "The LDAP_SERVER_EXTENDED_DN_OID control is used with an extended LDAP search function to request an extended form of an Active Directory object distinguished name. The extended form includes a string representation of the object objectGUID property. For security principal objects such as users, groups, and computers, the extended form also includes a string representation of the object objectSID property."
1.2.840.113556.1.4.616 "LDAP_CONTROL_REFERRALS"
1.2.840.113556.1.4.619 "Lazy commit control" "" "The LDAP_SERVER_LAZY_COMMIT_OID control is used to instruct the server to return the results of a DS modification command, such as add, delete, or replace, after it has been completed in memory, but before it has been committed to disk. The server can then return results quickly, and save the data to disk without holding the client."
1.2.840.113556.1.4.800 "LDAP_CAP_ACTIVE_DIRECTORY_OID" "" "This is an Actrive Directory Server (Win2k and later)."
1.2.840.113556.1.4.801 "Security descriptor flags control" "" "The LDAP_SERVER_SD_FLAGS_OID control is used to pass flags to the server to control various security descriptor results."
1.2.840.113556.1.4.802 "Attribute Range Option" "" "Server supports the Range property enabling clients to incremental retrieve values from multivalue attributes."
1.2.840.113556.1.4.803 "LDAP_MATCHING_RULE_BIT_AND"
1.2.840.113556.1.4.804 "LDAP_MATCHING_RULE_BIT_OR"
1.2.840.113556.1.4.805 "Tree Delete" "" "The LDAP_SERVER_TREE_DELETE_OID control is used with an extended LDAP delete function to delete an entire subtree in the directory."
1.2.840.113556.1.4.841 "Directory synchronization control" "" "The LDAP_SERVER_DIRSYNC_OID control enables an application to search the directory for objects changed from a previous state. It is also used with the extended LDAP search functions such as ldap_search_ext."
1.2.840.113556.1.4.906 "Microsoft Large Integer"
1.2.840.113556.1.4.970 "Get stats control (Stateless)"
1.2.840.113556.1.4.1302 "Microsoft OID used with DEN Attributes"
1.2.840.113556.1.4.1338 "Verify name control" "" "The LDAP_SERVER_VERIFY_NAME_OID control is used with extended LDAP add and modify requests to instruct the DC accepting the update which DC it should verify with, the existence of any DN attribute values."
1.2.840.113556.1.4.1339 "LDAP_SERVER_DOMAIN_SCOPE_OID" "" "The LDAP_SERVER_DOMAIN_SCOPE_OID control is used to instruct the LDAP server not to generate any referrals when completing a request. This control also limits any search using it to a single naming context."
1.2.840.113556.1.4.1340 "Search options control" "" " The LDAP_SERVER_SEARCH_OPTIONS_OID control is used to pass flags to the server to control various search behaviors."
1.2.840.113556.1.4.1413 "LDAP ease modify restrictions" "" "Allows an LDAP modify to work under less restrictive conditions. Without it, a delete will fail if an attribute does not exist, and an add will fail if an attribute already exists."
1.2.840.113556.1.4.1504 "Attribute scoped query control" "" "The LDAP_SERVER_ASQ_OID control is used with an extended LDAP search function to force the query to be based on a specific DN-valued attribute. Only one source attribute can be specified with this control and the search request is limited to base object scoped queries."
1.2.840.113556.1.4.1670 "LDAP_CAP_ACTIVE_DIRECTORY_V51_OID" "" "This server is a Whistler Active Directory server (Win2k3 and later)."
1.2.840.113556.1.4.1781 "Fast concurrent bind extended operation" "" "The Microsoft LDAP API will send an extended request with this name to Active Directory to request that all binds on this connection be processed as 'fast' binds."
1.2.840.113556.1.4.1791 "LDAP_CAP_ACTIVE_DIRECTORY_LDAP_INTEG_OID" "" "LDAP server is capable of doing signing and sealing on an NTLM authenticated connection, and that the server is capable of performing subsequent binds on a signed or sealed connection."
1.2.840.113556.1.4.1852 "LDAP_SERVER_QUOTA_CONTROL_OID" "" "The LDAP_SERVER_QUOTA_CONTROL_OID control is used to pass the SID of a security principal, whose quota is being queried, to the server in a LDAP search operation."
1.3.6.1.1.7.1 "LCUP Sync Request Control. RFC 3928 control"
1.3.6.1.1.7.2 "LCUP Sync Update Control. RFC 3928 control"
1.3.6.1.1.7.3 "LCUP Sync Done Control. RFC 3928 control"
1.3.6.1.1.8 "Cancel Operation. RFC 3909 extension"
1.3.6.1.4.1.42.2.27.8.5.1 "passwordPolicyRequest"
1.3.6.1.4.1.1466.101.119.1 "Dynamic Directory Services Refresh Request RFC2589"
1.3.6.1.4.1.1466.20036 "LDAP_NOTICE_OF_DISCONNECTION"
1.3.6.1.4.1.1466.20037 "Transport Layer Security Extension" "RFC 2830" "This operation provides for TLS establishment in an LDAP association and is defined in terms of an LDAP extended request."
1.3.6.1.4.1.1466.29539.1 "LDAP_CONTROL_ATTR_SIZELIMIT"
1.3.6.1.4.1.1466.29539.2 "LDAP_CONTROL_NO_COPY"
1.3.6.1.4.1.1466.29539.3 "LDAP_CONTROL_PARTIAL_COPY"
1.3.6.1.4.1.1466.29539.5 "LDAP_CONTROL_NO_CHAINING"
1.3.6.1.4.1.1466.29539.7 "LDAP_CONTROL_ALIAS_ON_UPDATE"
1.3.6.1.4.1.1466.29539.10 "LDAP_CONTROL_TRIGGER"
1.3.6.1.4.1.1466.29539.12 "nsTransmittedControl"
1.3.6.1.4.1.4203.1.5.1 "All Operational Attribute" "RFC 3673" "An LDAP extension which clients may use to request the return of all operational attributes."
1.3.6.1.4.1.4203.1.5.2 "Requesting Attributes by Object Class" "draft-zeilenga-ldap-adlist-10.txt" "Extends LDAP to support a mechanism that LDAP clients may use to request the return of all attributes of an object class."
1.3.6.1.4.1.4203.1.5.3 "LDAP Absolute True and False Filters" "draft-zeilenga-ldap-t-f-10.txt" "Implementations of this extension SHALL allow 'and' and 'or' choices with zero filter elements."
1.3.6.1.4.1.4203.1.5.4 "Language Tags" "RFC 3866" "Supports storing attributes with language tag options in the DIT"
1.3.6.1.4.1.4203.1.5.5 "Language Ranges" "RFC 3866" "Supports language range matching of attributes with language tag options stored in the DIT"
1.3.6.1.4.1.4203.1.10.1 "Subentries in LDAP" "RFC 3672" "The subentries control MAY be sent with a searchRequest to control the visibility of entries and subentries which are within scope. Non-visible entries or subentries are not returned in response to the request."
1.3.6.1.4.1.4203.1.10.2 "LDAP No-Op Control" "draft-zeilenga-ldap-noop-02.txt" "The No-Op control can be used to disable the normal effect of an operation. The control can be used to discover how a server might react to a particular update request without updating the directory."
1.3.6.1.4.1.4203.1.11.1 "LDAP Password Modify Extended Operation" "RFC 3062" "An LDAP extended operation to allow modification of user passwords which is not dependent upon the form of the authentication identity nor the password storage mechanism used."
1.3.6.1.4.1.4203.1.11.2 "LDAP Cancel Extended Operation"
1.3.6.1.4.1.4203.1.11.3 "Who Am I? Extended Operation" "draft-zeilenga-ldap-authzid-10.txt" "This specification provides a mechanism for Lightweight Directory Access Protocol (LDAP) clients to obtain the authorization identity which the server has associated with the user or application entity."
1.3.6.1.4.1.4203.666.5.1 "Subentries Control"
1.3.6.1.4.1.4203.666.5.2 "NO OP Control"
1.3.18.0.2.12.1 "The ACL credential controls provide a method to flow a subject's credentials associated with a bind."
1.3.18.0.2.12.5 "tranExtOpInit"
1.3.18.0.2.12.6 "tranExtOpInit"
2.16.840.1.113531.18.2.1 "LDAP_C_SETOPTIONS_OID"
2.16.840.1.113531.18.2.2 "LDAP_C_SETDONTUSECOPY_OID"
2.16.840.1.113531.18.2.3 "LDAP_C_SETLOCALSCOPE_OID"
2.16.840.1.113531.18.2.4 "Return operational attributes as well as user attributes"
2.16.840.1.113531.18.2.5 "Return only subentries"
2.16.840.1.113531.18.2.6 "LDAP_C_SETUSEALIAS_OID"
2.16.840.1.113531.18.2.7 "LDAP_C_SETPREFERCHAIN_OID"
2.16.840.1.113531.18.2.8 "LDAP_C_SETX500DN_OID"
2.16.840.1.113531.18.2.9 "LDAP_C_SETCOPYSHALLDO_OID"
2.16.840.1.113531.18.2.10 "LDAP_C_SETDONTMAPATTRS_OID"
2.16.840.1.113531.18.2.11 "Return normal entries as well as sub-entries"
2.16.840.1.113719.1.27.99.1 "Superior References"
2.16.840.1.113719.1.27.100.1 "ndsToLdapResponse"
2.16.840.1.113719.1.27.100.2 "ndsToLdapRequest"
2.16.840.1.113719.1.27.100.3 "createNamingContextRequest"
2.16.840.1.113719.1.27.100.4 "createNamingContextResponse"
2.16.840.1.113719.1.27.100.5 "mergeNamingContextRequest"
2.16.840.1.113719.1.27.100.6 "mergeNamingContextResponse"
2.16.840.1.113719.1.27.100.7 "addReplicaRequest"
2.16.840.1.113719.1.27.100.8 "addReplicaResponse"
2.16.840.1.113719.1.27.100.9 "refreshLDAPServerRequest"
2.16.840.1.113719.1.27.100.10 "refreshLDAPServerResponse"
2.16.840.1.113719.1.27.100.11 "removeReplicaRequest"
2.16.840.1.113719.1.27.100.12 "removeReplicaResponse"
2.16.840.1.113719.1.27.100.13 "namingContextEntryCountRequest"
2.16.840.1.113719.1.27.100.14 "namingContextEntryCountResponse"
2.16.840.1.113719.1.27.100.15 "changeReplicaTypeRequest"
2.16.840.1.113719.1.27.100.16 "changeReplicaTypeResponse"
2.16.840.1.113719.1.27.100.17 "getReplicaInfoRequest"
2.16.840.1.113719.1.27.100.18 "getReplicaInfoResponse"
2.16.840.1.113719.1.27.100.19 "listReplicaRequest"
2.16.840.1.113719.1.27.100.20 "listReplicaResponse"
2.16.840.1.113719.1.27.100.21 "receiveAllUpdatesRequest"
2.16.840.1.113719.1.27.100.22 "receiveAllUpdatesResponse"
2.16.840.1.113719.1.27.100.23 "sendAllUpdatesRequest"
2.16.840.1.113719.1.27.100.24 "sendAllUpdatesResponse"
2.16.840.1.113719.1.27.100.25 "requestNamingContextSyncRequest"
2.16.840.1.113719.1.27.100.26 "requestNamingContextSyncResponse"
2.16.840.1.113719.1.27.100.27 "requestSchemaSyncRequest"
2.16.840.1.113719.1.27.100.28 "requestSchemaSyncResponse"
2.16.840.1.113719.1.27.100.29 "abortNamingContextOperationRequest"
2.16.840.1.113719.1.27.100.30 "abortNamingContextOperationResponse"
2.16.840.1.113719.1.27.100.31 "Get Bind DN Request"
2.16.840.1.113719.1.27.100.32 "Get Bind DN Response"
2.16.840.1.113719.1.27.100.33 "Get Effective Privileges Request"
2.16.840.1.113719.1.27.100.34 "Get Effective Privileges Response"
2.16.840.1.113719.1.27.100.35 "Set Replication Filter Request"
2.16.840.1.113719.1.27.100.36 "Set Replication Filter Response"
2.16.840.1.113719.1.27.100.37 "Get Replication Filter Request"
2.16.840.1.113719.1.27.100.38 "Get Replication Filter Response"
2.16.840.1.113719.1.27.100.39 "Create Orphan Partition Request"
2.16.840.1.113719.1.27.100.40 "Create Orphan Partition Response"
2.16.840.1.113719.1.27.100.41 "Remove Orphan Partition Request"
2.16.840.1.113719.1.27.100.42 "Remove Orphan Partition Response"
2.16.840.1.113719.1.27.100.43 "Trigger Backlinker Request"
2.16.840.1.113719.1.27.100.44 "Trigger Backlinker Response"
2.16.840.1.113719.1.27.100.47 "Trigger Janitor Request"
2.16.840.1.113719.1.27.100.48 "Trigger Janitor Response"
2.16.840.1.113719.1.27.100.49 "Trigger Limber Request"
2.16.840.1.113719.1.27.100.50 "Trigger Limber Response"
2.16.840.1.113719.1.27.100.51 "Trigger Skulker Request"
2.16.840.1.113719.1.27.100.52 "Trigger Skulker Response"
2.16.840.1.113719.1.27.100.53 "Trigger Schema Synch Request"
2.16.840.1.113719.1.27.100.54 "Trigger Schema Synch Response"
2.16.840.1.113719.1.27.100.55 "Trigger Partition Purge Request"
2.16.840.1.113719.1.27.100.56 "Trigger Partition Purge Response"
2.16.840.1.113719.1.27.100.79 "Monitor Events Request"
2.16.840.1.113719.1.27.100.80 "Monitor Events Response"
2.16.840.1.113719.1.27.100.81 "Event Notification"
2.16.840.1.113719.1.27.101.1 "Duplicate Entry Request"
2.16.840.1.113719.1.27.101.2 "DuplicateSearchResult"
2.16.840.1.113719.1.27.101.3 "DuplicateEntryResponseDone"
2.16.840.1.113719.1.27.101.5 "Simple Password"
2.16.840.1.113719.1.27.101.6 "Forward Reference"
2.16.840.1.113719.1.142.100.1 "startFramedProtocolRequest"
2.16.840.1.113719.1.142.100.2 "startFramedProtocolResponse"
2.16.840.1.113719.1.142.100.3 "ReplicationUpdate"
2.16.840.1.113719.1.142.100.4 "endFramedProtocolRequest"
2.16.840.1.113719.1.142.100.5 "endFramedProtocolResponse"
2.16.840.1.113719.1.142.100.6 "lburpOperationRequest"
2.16.840.1.113719.1.142.100.7 "lburpOperationResponse"
2.16.840.1.113730.3.4 "Netscape LDAPv3 controls"
2.16.840.1.113730.3.4.2 "ManageDsaIT Control" "RFC 3296" "The client may provide the ManageDsaIT control with an operation to indicate that the operation is intended to manage objects within the DSA (server) Information Tree. The control causes Directory-specific entries (DSEs), regardless of type, to be treated as normal entries allowing clients to interrogate and update these entries using LDAP operations."
2.16.840.1.113730.3.4.3 "Persistent Search LDAPv3 control"
2.16.840.1.113730.3.4.4 "Netscape Password Expired LDAPv3 control"
2.16.840.1.113730.3.4.5 "Netscape Password Expiring LDAPv3 control"
2.16.840.1.113730.3.4.6 "Netscape NT Synchronization Client LDAPv3 control"
2.16.840.1.113730.3.4.7 "Entry Change Notification LDAPv3 control"
2.16.840.1.113730.3.4.8 "Transaction ID Request Control"
2.16.840.1.113730.3.4.9 "VLV Request LDAPv3 control" "" "As defined in the 'LDAPv3 Extensions for Virtual List View' IETF document."
2.16.840.1.113730.3.4.10 "VLV Response LDAPv3 control" "" "As defined in the 'LDAPv3 Extensions for Virtual List View' IETF document."
2.16.840.1.113730.3.4.11 "Transaction ID Response Control"
2.16.840.1.113730.3.4.12 "Proxied Authorization (version 1) control" "draft-weltman-ldapv3-proxy-05" "For assuming the identity of another entry for the duration of a request. This has been replaced by a new 'version 2' Proxied Authorization control."
2.16.840.1.113730.3.4.13 "iPlanet Directory Server Replication Update Information Control"
2.16.840.1.113730.3.4.14 "iPlanet Directory Server 'search on specific backend' control"
2.16.840.1.113730.3.4.15 "Authentication Response Control"
2.16.840.1.113730.3.4.16 "Authentication Request Control"
2.16.840.1.113730.3.4.17 "Real Attributes Only Request Control"
2.16.840.1.113730.3.4.18 "LDAP Proxied Authorization Control" "draft-weltman-ldapv3-proxy-06.txt" "The Proxied Authorization Control allows a client to request that an operation be processed under a provided authorization identity [AUTH] instead of as the current authorization identity associated with the connection. "
2.16.840.1.113730.3.4.999 "iPlanet Replication Modrdn Extra Mods Control"
2.16.840.1.113730.3.5.3 "iPlanet Start Replication Request Extended Operation"
2.16.840.1.113730.3.5.4 "iPlanet Replication Response Extended Operation"
2.16.840.1.113730.3.5.5 "iPlanet End Replication Request Extended Operation"
2.16.840.1.113730.3.5.6 "iPlanet Replication Entry Request Extended Operation"
2.16.840.1.113730.3.5.7 "iPlanet Bulk Import Start Extended Operation"
2.16.840.1.113730.3.5.8 "iPlanet Bulk Import Finished Extended Operation"

View File

@ -1,6 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_functions.php,v 1.23 2004/04/18 19:21:54 xrenard Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_functions.php,v 1.26 2005/02/25 13:44:06 wurley Exp $
/**
* @todo put the display_parse_error method in ldif_import here
@ -18,6 +17,7 @@
/**
* This class represente an entry in the ldif file
* @package phpLDAPadmin
*/
class LdifEntry{
@ -98,6 +98,7 @@ class LdifEntry{
* This exception is similar to the one in LdifReader
* Should be remove latter
* see comment for the class Ldif_LdapEntryReader
* @package phpLDAPadmin
*/
class LdifEntryReaderException{
@ -126,6 +127,7 @@ class LdifEntryReaderException{
/**
* Class in charge of reading a paricular entry
* @package phpLDAPadmin
*/
class LdifEntryReader{
@ -150,11 +152,13 @@ class LdifEntryReader{
*
* @param String[] $lines the line of the entry
*/
function LdifEntryReader( &$lines ){
$this->lines = &$lines;
$this->_currentLineNumber = 1;
$this->_error = 0;
}
function LdifEntryReader(){}
function readLines(&$lines){
$this->lines = &$lines;
$this->_currentLineNumber = 1;
$this->_error = 0;
}
/**
* Read the change type action associated with the entry
@ -520,6 +524,7 @@ $arr=array();
/**
* Exception which can be raised during processing the ldif file
* @package phpLDAPadmin
*/
class LdifReaderException{
@ -545,6 +550,7 @@ class LdifReaderException{
/**
* Helper base class to read file.
* @package phpLDAPadmin
*/
class FileReader{
@ -615,6 +621,7 @@ class FileReader{
/**
* Main parser of the ldif file
* @package phpLDAPadmin
*/
class LdifReader extends FileReader{
@ -642,6 +649,7 @@ class LdifReader extends FileReader{
// continuous mode operation flag
var $continuous_mode;
var $ldifEntryReader = NULL;
/**
* Private constructor of the LDIFReader class.
* Marked as private as we need to instantiate the class
@ -656,6 +664,7 @@ class LdifReader extends FileReader{
$this->_currentLines = array();
$this->_warningMessage="";
$this->_warningVersion="";
$this->ldifEntryReader = new LdifEntryReader();
//need to change this one
$this->_currentEntry = new LdifEntry();
}
@ -701,14 +710,28 @@ class LdifReader extends FileReader{
}
/**
* Return the current entry object
* Return the current entry as an object
*
* @return Ldap_Ldif_entry the current ldif entry
*/
function getCurrentEntry(){
function fetchEntryObject(){
return $this->_currentEntry;
}
/**
* Return the current entry as an array
*
*/
function fetchEntryArray(){}
/**
* Return the entry as it is.
*
* @return String[] The lines from the entry.
*/
function fetchEntryRaw(){
return getCurrentLines();
}
/**
* Get the lines of the next entry
*
@ -877,15 +900,15 @@ class LdifReader extends FileReader{
function readEntry(){
if($lines = $this->nextLines()){
$ldifEntryReader = new LdifEntryReader($lines);
$this->ldifEntryReader->readLines($lines);
//fetch entry
$entry = $ldifEntryReader->getEntry();
$entry = $this->ldifEntryReader->getEntry();
$this->_currentEntry = $entry;
// if any exception has raised, catch it and throw it to the main reader
if($ldifEntryReader->hasRaisedException()){
$exception = $ldifEntryReader->getLdifEntryReaderException();
$faultyLineNumber = $this->dnLineNumber + $exception->lineNumber - 1;
$this->setLdapLdifReaderException(new LdifReaderException($faultyLineNumber,$exception->currentLine,$exception->message));
if($this->ldifEntryReader->hasRaisedException()){
$exception = $this->ldifEntryReader->getLdifEntryReaderException();
$faultyLineNumber = $this->dnLineNumber + $exception->lineNumber - 1;
$this->setLdapLdifReaderException(new LdifReaderException($faultyLineNumber,$exception->currentLine,$exception->message));
if ( ! $this->continuous_mode )
return 0;
@ -904,6 +927,7 @@ class LdifReader extends FileReader{
/**
* Helper class to write entries into the ldap server
* @package phpLDAPadmin
*/
class LdapWriter{

View File

@ -1,23 +1,29 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_import.php,v 1.27 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_import.php,v 1.31 2005/08/16 09:02:50 wurley Exp $
/*
* ldif_import.php
/**
* Imports an LDIF file to the specified server_id.
*
* Variables that come in as POST vars:
* - ldif_file (as an uploaded file)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$debug = true;
$server_id = $_POST['server_id'];
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = $ldapservers->Instance($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$continuous_mode = isset( $_POST['continuous_mode'] ) ?1:0;
$server_name = $servers[$server_id]['name'];
$file = $_FILES['ldif_file']['tmp_name'];
$remote_file = $_FILES['ldif_file']['name'];
$file_len = $_FILES['ldif_file']['size'];
@ -25,8 +31,6 @@ $file_len = $_FILES['ldif_file']['size'];
is_array( $_FILES['ldif_file'] ) or pla_error( $lang['missing_uploaded_file'] );
file_exists( $file ) or pla_error( $lang['no_ldif_file_specified'] );
$file_len > 0 or pla_error( $lang['ldif_file_empty'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
include './header.php'; ?>
@ -34,7 +38,7 @@ include './header.php'; ?>
<h3 class="title"><?php echo $lang['import_ldif_file_title']; ?></h3>
<h3 class="subtitle">
<?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars( $server_name ); ?></b>
<?php echo $lang['server']; ?>: <b><?php echo htmlspecialchars( $ldapserver->name ); ?></b>
<?php echo $lang['file']; ?>: <b><?php echo htmlspecialchars( $remote_file ); ?>
(<?php echo sprintf( $lang['number_bytes'], number_format( $file_len ) ); ?>)</b>
</h3>
@ -64,14 +68,14 @@ $actionErrorMsg['moddn']= $lang['ldif_could_not_rename_object'];
$actionErrorMsg['modify']= $lang['ldif_could_not_modify_object'];
// get the connection
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
//$ds = pla_ldap_connect( $server_id );
//pla_ldap_connection_is_error( $ds );
//instantiate the reader
$ldifReader = new LdifReader($file,$continuous_mode);
//instantiate the writer
$ldapWriter = new LdapWriter($ds);
$ldapWriter = new LdapWriter($ldapserver->connect());
// if ldif file has no version number, just display a warning
if(!$ldifReader->hasVersionNumber()){
@ -83,7 +87,7 @@ if( $continuous_mode ){
while( $ldifReader->readEntry() ){
$i++;
// get the entry.
$currentEntry = $ldifReader->getCurrentEntry();
$currentEntry = $ldifReader->fetchEntryObject();
$changeType = $currentEntry->getChangeType();
echo "<small>".$actionString[$changeType]." ".$currentEntry->dn;
@ -99,8 +103,8 @@ echo "<small><span style=\"color:red;\">".$lang['desc'].": ".$exception->message
echo " <span style=\"color:green;\">".$lang['success']."</span></small><br>";
else{
echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br>";
echo "<small><span style=\"color:red;\">Error Code: ".ldap_errno($ds)."</span></small><br />";
echo "<small><span style=\"color:red;\">".$lang['desc'].": ".ldap_error($ds)."</span></small><br />";
echo "<small><span style=\"color:red;\">Error Code: ".ldap_errno($ldapserver->connect())."</span></small><br />";
echo "<small><span style=\"color:red;\">".$lang['desc'].": ".ldap_error($ldapserver->connect())."</span></small><br />";
}
}
if( 0 == $i % 5 )
@ -122,14 +126,14 @@ while($entry = $ldifReader->readEntry()){
else{
echo " <span style=\"color:red;\">".$lang['failed']."</span></small><br><br>";
reload_left_frame();
pla_error( $actionErrorMsg[$changeType]. " " . htmlspecialchars( $entry->dn ), ldap_error( $ds ), ldap_errno( $ds ) );
pla_error( $actionErrorMsg[$changeType]. " " . htmlspecialchars( $entry->dn ), ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
}
}
// if any errors occurs during reading file ,"catch" the exception and display it here.
if($ldifReader->hasRaisedException()){
//get the entry which raise the exception,quick hack here
$currentEntry = $ldifReader->getCurrentEntry();
$currentEntry = $ldifReader->fetchEntryObject();
if($currentEntry->dn !=""){
echo "<small>".$actionString[$currentEntry->getChangeType()]." ".$currentEntry->dn." <span style=\"color:red;\">".$lang['failed']."</span></small><br>";

View File

@ -1,30 +1,34 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_import_form.php,v 1.16 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/ldif_import_form.php,v 1.19 2005/08/16 09:02:50 wurley Exp $
/*
* ldif_import_form.php
/**
* Displays a form to allow the user to upload and import
* an LDIF file.
*
* Variables expected as GET vars:
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$server_name = $servers[$server_id]['name'];
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = $ldapservers->Instance($server_id);
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
include './header.php'; ?>
<body>
<h3 class="title"><?php echo $lang['import_ldif_file_title']?></h3>
<h3 class="subtitle"><?php echo $lang['server']?>: <b><?php echo htmlspecialchars( $server_name ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']?>: <b><?php echo htmlspecialchars( $ldapserver->name ); ?></b></h3>
<br />
<br />

200
login.php
View File

@ -1,6 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/login.php,v 1.35 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/login.php,v 1.49 2005/09/25 16:11:44 wurley Exp $
/**
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me the login info
@ -10,116 +9,149 @@
* Note: this file uses ldap_connect() and ldap_bind() only for purposes
* of verifying the user-supplied DN and Password.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as POST vars:
* - login_dn
* - login_pass
* - server_id
* - login_pass
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
// Prevents users from coming here without going through the proper channels
isset( $_POST['server_id'] ) or header( "Location: index.php" );
# Prevents users from coming here without going through the proper channels
if (! isset($ldapserver))
header("Location: index.php");
$server_id = $_POST['server_id'];
$dn = isset( $_POST['login_dn'] ) ? $_POST['login_dn'] : null;
$uid = isset( $_POST['uid'] ) ? $_POST['uid'] : null;
$pass = isset( $_POST['login_pass'] ) ? $_POST['login_pass'] : null;
$anon_bind = isset( $_POST['anonymous_bind'] ) && $_POST['anonymous_bind'] == 'on' ? true : false;
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
if ($ldapserver->isAnonBindAllowed())
$anon_bind = isset( $_POST['anonymous_bind'] ) && $_POST['anonymous_bind'] == 'on' ? true : false;
else
$anon_bind = false;
if( ! $anon_bind ) {
if( ! $anon_bind )
strlen($pass) or pla_error( $lang['password_blank'] );
}
$auth_type = $servers[$server_id]['auth_type'];
$save_auth_type = $ldapserver->auth_type;
if( $anon_bind ) {
if ($anon_bind) {
debug_log(sprintf('Anonymous Login was posted [%s].',$anon_bind),4);
$dn = null;
$pass = null;
}
// Checks if the login_attr option is enabled for this host,
// which allows users to login with a simple username like 'jdoe' rather
// than the fully qualified DN, 'uid=jdoe,ou=people,,dc=example,dc=com'.
elseif ( login_attr_enabled( $server_id ) ) {
// Is this a login string (printf-style)
if( login_string_enabled( $server_id ) ) {
$dn = str_replace( '<username>', $uid, get_login_string( $server_id ) );
} else {
// This is a standard login_attr
/* Checks if the login_attr option is enabled for this host,
which allows users to login with a simple username like 'jdoe' rather
than the fully qualified DN, 'uid=jdoe,ou=people,,dc=example,dc=com'. */
} elseif ($ldapserver->isLoginAttrEnabled()) {
// Fake the auth_type of config to do searching. This way, the admin can specify
// the DN to use when searching for the login_attr user.
$servers[$server_id]['auth_type'] = 'config';
# Is this a login string (printf-style)
if( $ldapserver->isLoginStringEnabled() ) {
$dn = str_replace( '<username>', $uid, $ldapserver->getLoginString() );
debug_log(sprintf('LoginStringDN: [%s]',$dn),3);
// search for the "uid" first
set_error_handler( 'temp_login_error_handler' );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
restore_error_handler();
$search_base = isset( $servers[$server_id]['base'] ) && '' != trim( $servers[$server_id]['base'] ) ?
$servers[$server_id]['base'] :
try_to_get_root_dn( $server_id, $ds );
if (!empty($servers[$server_id]['login_class'])) {
$filter = '(&(objectClass='.$servers[$server_id]['login_class'].')('.$servers[$server_id]['login_attr'].'='.$uid.'))';
} else {
$filter = $servers[$server_id]['login_attr'].'='.$uid;
}
$sr = @ldap_search($ds, $search_base, $filter, array('dn'), 0, 1);
$result = @ldap_get_entries($ds, $sr);
$dn = isset( $result[0]['dn'] ) ? $result[0]['dn'] : false;
if( ! $dn ) {
pla_error( $lang['bad_user_name_or_password'] );
}
} else {
# This is a standard login_attr
// restore the original auth_type
$servers[$server_id]['auth_type'] = $auth_type;
}
/* Fake the auth_type of config to do searching. This way, the admin can specify
the DN to use when searching for the login_attr user. */
$ldapserver->auth_type = 'config';
set_error_handler( 'temp_login_error_handler' );
if ($ldapserver->login_dn)
$ldapserver->connect(true,false);
else
$ldapserver->connect(true,true);
restore_error_handler();
if (! empty($ldapserver->login_class))
$filter = sprintf('(&(objectClass=%s)(%s=%s))',$ldapserver->login_class,$ldapserver->login_attr,$uid);
else
$filter = sprintf('%s=%s',$ldapserver->login_attr,$uid);
# Got through each of the BASE DNs and test the login.
foreach ($ldapserver->getBaseDN() as $base_dn) {
debug_log(sprintf('Searching LDAP with base [%s]',$base_dn),9);
$sr = @ldap_search($ldapserver->connect(false), $base_dn, $filter, array('dn'), 0, 1);
$result = @ldap_get_entries($ldapserver->connect(false), $sr);
$dn = isset( $result[0]['dn'] ) ? $result[0]['dn'] : false;
if ($dn) {
debug_log(sprintf('Got DN [%s] for user ID [%s]',$dn,$uid),5);
break;
}
}
# If we got here then we werent able to find a DN for the login filter.
if (! $dn)
pla_error($lang['bad_user_name_or_password']);
# restore the original auth_type
$ldapserver->auth_type = $save_auth_type;
}
}
// We fake a 'config' server auth_type to omit duplicated code
$auth_type = $servers[$server_id]['auth_type'];
$servers[$server_id]['auth_type'] = 'config';
$servers[$server_id]['login_dn'] = $dn;
$servers[$server_id]['login_pass'] = $pass;
# We fake a 'config' server auth_type to omit duplicated code
debug_log(sprintf('Setting login type to CONFIG with DN [%s]',$dn),9);
// verify that the login is good
if( null == $dn && null == $pass )
$ds = pla_ldap_connect( $server_id, true, false );
$save_auth_type = $ldapserver->auth_type;
$ldapserver->auth_type = 'config';
$ldapserver->login_dn = $dn;
$ldapserver->login_pass = $pass;
# Verify that dn is allowed to login
if (! userIsAllowedLogin($ldapserver,$dn))
pla_error( $lang['login_not_allowed'] );
debug_log(sprintf('User is not prohibited from logging in - now bind with DN [%s]',$dn),9);
# verify that the login is good
if( is_null($dn) && is_null($pass))
$ds = $ldapserver->connect(true,true,true);
else
$ds = pla_ldap_connect( $server_id, false, false );
$ds = $ldapserver->connect(true,false,true);
if( ! is_resource( $ds ) ) {
if( $anon_bind )
pla_error( $lang['could_not_bind_anon'] );
debug_log(sprintf('Connection returned [%s]',$ds),9);
if (! is_resource($ds)) {
if ($anon_bind)
pla_error($lang['could_not_bind_anon']);
else
pla_error( $lang['bad_user_name_or_password'] );
}
pla_error($lang['bad_user_name_or_password']);
$servers[$server_id]['auth_type'] = $auth_type;
set_login_dn( $server_id, $dn, $pass, $anon_bind ) or pla_error( $lang['could_not_set_cookie'] );
syslog_notice("Authentification FAILED for $dn");
}
$ldapserver->auth_type = $save_auth_type;
set_login_dn($ldapserver,$dn,$pass,$anon_bind) or pla_error( $lang['could_not_set_cookie'] );
set_lastactivity($ldapserver);
initialize_session_tree();
$_SESSION['tree'][$server_id] = array();
$_SESSION['tree_icons'][$server_id] = array();
$_SESSION['tree'][$ldapserver->server_id] = array();
$_SESSION['tree_icons'][$ldapserver->server_id] = array();
if(! $anon_bind) {
syslog_notice("Authentification successful for $dn");
}
session_write_close();
include realpath( 'header.php' );
include './header.php';
?>
<body>
<script language="javascript">
<?php if( $anon_bind && anon_bind_tree_disabled() ) { ?>
parent.location.href='search.php?server_id=<?php echo $server_id; ?>'
<?php } else { ?>
<?php if ($anon_bind && $config->GetValue('appearance','anonymous_bind_redirect_no_tree')) { ?>
parent.location.href='search.php?server_id=<?php echo $ldapserver->server_id; ?>'
<?php } else { ?>
parent.left_frame.location.reload();
<?php } ?>
</script>
@ -127,10 +159,9 @@ include realpath( 'header.php' );
<br />
<br />
<br />
<?php echo sprintf( $lang['successfully_logged_in_to_server'],
htmlspecialchars( $servers[$server_id]['name'] ) ); ?><br />
<?php if( $anon_bind ) { ?>
(<?php echo $lang['anonymous_bind']; ?>)
<?php echo sprintf($lang['successfully_logged_in_to_server'],htmlspecialchars($ldapserver->name)); ?><br />
<?php if($anon_bind) { ?>
(<?php echo $lang['anonymous_bind']; ?>)
<?php } ?>
<br />
</center>
@ -142,12 +173,11 @@ include realpath( 'header.php' );
/**
* Only gets called when we fail to login.
*/
function temp_login_error_handler( $errno, $errstr, $file, $lineno )
{
global $lang;
if( 0 == ini_get( 'error_reporting' ) || 0 == error_reporting() )
return;
pla_error( $lang['could_not_connect'] . "<br /><br />" . htmlspecialchars( $errstr ) );
function temp_login_error_handler($errno,$errstr,$file,$lineno) {
global $lang;
if (ini_get('error_reporting') == 0 || error_reporting() == 0)
return;
pla_error($lang['could_not_connect']."<br /><br />".htmlspecialchars($errstr));
}
?>

View File

@ -1,46 +1,39 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/login_form.php,v 1.23 2004/10/28 13:37:39 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/login_form.php,v 1.25 2005/07/22 05:47:44 wurley Exp $
/*
* login_form.php
* 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.
*
* Variables that come in as GET vars:
* - server_id
* Variables that come in via common.php
* - server_id
*
* @package phpLDAPadmin
* @author The phpLDAPadmin development team
* @see login.php
*/
/**
*/
require './common.php';
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : null;
if( $server_id != null ) {
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
}
$server = $servers[$server_id];
$anonymous_bind_allowed = is_anonymous_bind_allowed( $server_id );
isset( $servers[ $server_id ][ 'auth_type' ] ) or pla_error( $lang['error_auth_type_config'] );
$auth_type = $servers[ $server_id ][ 'auth_type' ];
if( $auth_type != 'cookie' && $auth_type != 'session' )
pla_error( sprintf( $lang['unknown_auth_type'], htmlspecialchars( $auth_type ) ) );
if (! $ldapserver->auth_type)
pla_error($lang['error_auth_type_config']);
if (! in_array($ldapserver->auth_type, array('cookie','session')))
pla_error(sprintf($lang['unknown_auth_type'],htmlspecialchars($ldapserver->auth_type)));
include './header.php'; ?>
<body>
<?php if( $anonymous_bind_allowed ) { ?>
<?php if( $ldapserver->isAnonBindAllowed() ) { ?>
<script language="javascript">
<!--
function toggle_disable_login_fields( anon_checkbox )
{
if( anon_checkbox.checked ) {
anon_checkbox.form.<?php echo login_attr_enabled( $server_id ) ? 'uid' : 'login_dn'; ?>.disabled = true;
anon_checkbox.form.<?php echo $ldapserver->isLoginAttrEnabled() ? 'uid' : 'login_dn'; ?>.disabled = true;
anon_checkbox.form.login_pass.disabled = true;
} else {
anon_checkbox.form.<?php echo login_attr_enabled( $server_id ) ? 'uid' : 'login_dn'; ?>.disabled = false;
anon_checkbox.form.<?php echo $ldapserver->isLoginAttrEnabled() ? 'uid' : 'login_dn'; ?>.disabled = false;
anon_checkbox.form.login_pass.disabled = false;
}
}
@ -48,51 +41,56 @@ include './header.php'; ?>
</script>
<?php } ?>
<h3 class="title"><?php echo sprintf( $lang['authenticate_to_server'], $servers[$server_id]['name'] ); ?></h3>
<h3 class="title"><?php printf($lang['authenticate_to_server'],$ldapserver->name); ?></h3>
<br />
<?php if( ! isset( $_SERVER['HTTPS'] ) || $_SERVER['HTTPS'] != 'on' ) { ?>
<?php if (! isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != 'on') { ?>
<center>
<span style="color:red">
<acronym title="<?php echo $lang['not_using_https']; ?>">
<?php echo $lang['warning_this_web_connection_is_unencrypted']; ?>
</acronym>
</span>
<br />
</center>
<?php } ?>
</span>
<br />
</center>
<?php } ?>
<br />
<form action="login.php" method="post" name="login_form">
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<?php if( isset( $_GET['redirect'] ) ) { ?>
<input type="hidden" name="redirect" value="<?php echo rawurlencode( $_GET['redirect'] ) ?>" />
<input type="hidden" name="redirect" value="<?php echo rawurlencode( $_GET['redirect'] ) ?>" />
<?php } ?>
<center>
<table class="login">
<tr>
</tr>
<?php if( $anonymous_bind_allowed ) { ?>
<?php if( $ldapserver->isAnonBindAllowed() ) { ?>
<tr>
<td colspan="2"><small><label for="anonymous_bind_checkbox"><?php echo $lang['anonymous_bind']; ?></label></small> <input type="checkbox" name="anonymous_bind" onclick="toggle_disable_login_fields(this)" id="anonymous_bind_checkbox"/></td>
</tr>
<?php } ?>
<tr>
<td><small><?php
if ( login_attr_enabled( $server_id ) )
echo $lang['user_name'];
else
echo $lang['login_dn'];
?></small></td>
<td><input type="text" name="<?php echo login_attr_enabled( $server_id ) ? 'uid' : 'login_dn'; ?>" size="40" value="<?php echo login_attr_enabled( $server_id ) ? '' : $servers[$server_id]['login_dn']; ?>" /></td>
<td><small>
<?php
if ($ldapserver->isLoginAttrEnabled())
echo $lang['user_name'];
else
echo $lang['login_dn'];
?>
</small></td>
<td><input type="text" name="<?php echo $ldapserver->isLoginAttrEnabled() ? 'uid' : 'login_dn'; ?>" size="40" value="<?php echo $ldapserver->isLoginAttrEnabled() ? '' : $ldapserver->login_dn; ?>" /></td>
</tr>
<tr>
<td><small><?php echo $lang['password']; ?></small></td>
<td><input type="password" size="40" value="" name="login_pass" /></td>
</tr>
<tr>
<td colspan="2"><center><input type="submit" name="submit" value="<?php echo $lang['authenticate']; ?>" /></center></td>
</tr>

View File

@ -1,32 +1,32 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/logout.php,v 1.10 2004/10/24 21:25:51 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/logout.php,v 1.17 2005/09/25 16:11:44 wurley Exp $
/*
* logout.php
* 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
* the server_id and I will log out the user (delete the cookie)
*
* Variables that come in as GET vars:
* Variables that come in via common.php
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
require './common.php';
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['no_one_logged_in'] );
if (! $ldapserver->haveAuthInfo())
pla_error($lang['no_one_logged_in']);
if( ! isset( $servers[ $server_id ][ 'auth_type' ] ) )
return false;
$auth_type = $servers[ $server_id ][ 'auth_type' ];
if( 'cookie' == $auth_type || 'session' == $auth_type )
unset_login_dn( $server_id ) or pla_error( $lang['could_not_logout'] );
else
pla_error( sprintf( $lang['unknown_auth_type'], htmlspecialchars( $auth_type ) ) );
if (in_array($ldapserver->auth_type, array('cookie','session'))) {
syslog_notice (sprintf("Logout for %s",get_logged_in_dn($ldapserver)));
unset_login_dn($ldapserver) or pla_error($lang['could_not_logout']);
unset_lastactivity($ldapserver);
include realpath( 'header.php' );
} else
pla_error(sprintf($lang['unknown_auth_type'], htmlspecialchars($ldapserver->auth_type)));
include './header.php';
?>
<script language="javascript">
@ -36,9 +36,8 @@ include realpath( 'header.php' );
<center>
<br />
<br />
<?php echo sprintf( $lang['logged_out_successfully'], htmlspecialchars($servers[$server_id]['name']) ); ?><br />
<?php echo sprintf($lang['logged_out_successfully'],htmlspecialchars($ldapserver->name)); ?><br />
</center>
</body>
</html>

View File

@ -1,139 +1,140 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/mass_delete.php,v 1.9 2004/05/27 12:50:42 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/mass_delete.php,v 1.13 2005/09/25 16:11:44 wurley Exp $
/*
* mass_delete.php
*
/**
* Enables user to mass delete multiple entries using checkboxes.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - mass_delete - an array of DNs to delete in this form:
* Array (
* [o=myorg,dc=example,dc=com] => on
* [cn=bob,dc=example,dc=com] => on
* etc.
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
require './common.php';
$server_id = $_POST['server_id'];
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_deletes_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
check_server_id( $server_id ) or
pla_error( $lang['bad_server_id'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_deletes_in_read_only'] );
have_auth_info( $server_id ) or
pla_error( $lang['no_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$confirmed = isset( $_POST['confirmed'] ) ? true : false;
isset( $_POST['mass_delete'] ) or
isset( $_POST['mass_delete'] ) or
pla_error( $lang['error_calling_mass_delete'] );
$mass_delete = $_POST['mass_delete'];
is_array( $mass_delete ) or
is_array( $mass_delete ) or
pla_error( $lang['mass_delete_not_array'] );
mass_delete_enabled( $server_id ) or
$ldapserver->isMassDeleteEnabled() or
pla_error( $lang['mass_delete_not_enabled'] );
$server_name = $servers[ $server_id ][ 'name' ];
require realpath( 'header.php' );
require './header.php';
echo "<body>\n";
echo "<h3 class=\"title\">" . $lang['mass_deleting'] . "</h3>\n";
if( $confirmed == true ) {
echo "<h3 class=\"subtitle\">" . sprintf( $lang['mass_delete_progress'], $server_name ) . "</h3>\n";
echo "<blockquote>";
echo "<small>\n";
echo "<h3 class=\"subtitle\">" . sprintf( $lang['mass_delete_progress'], $ldapserver->name ) . "</h3>\n";
echo "<blockquote>";
echo "<small>\n";
$successfully_delete_dns = array();
$failed_dns = array();
$successfully_delete_dns = array();
$failed_dns = array();
if( ! is_array( $mass_delete ) )
pla_error( $lang['malformed_mass_delete_array'] );
if( count( $mass_delete ) == 0 ) {
echo "<br />";
echo "<center>" . $lang['no_entries_to_delete'] . "</center>";
die();
if( ! is_array( $mass_delete ) )
pla_error( $lang['malformed_mass_delete_array'] );
if( count( $mass_delete ) == 0 ) {
echo "<br />";
echo "<center>" . $lang['no_entries_to_delete'] . "</center>";
die();
}
foreach( $mass_delete as $dn => $junk ) {
echo sprintf( $lang['deleting_dn'], htmlspecialchars($dn) );
flush();
if( true === run_hook ( 'pre_entry_delete', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn ) ) ) {
$success = @ldap_delete( $ldapserver->connect(), $dn );
if( $success ) {
run_hook ( 'post_entry_delete', array ( 'server_id' => $ldapserver->server_id, 'dn' => $dn ) );
echo " <span style=\"color:green\">" . $lang['success'] . "</span>.<br />\n";
$successfully_delete_dns[] = $dn;
} else {
echo " <span style=\"color:red\">" . $lang['failed'] . "</span>.\n";
echo "(" . ldap_error( $ldapserver->connect() ) . ")<br />\n";
$failed_dns[] = $dn;
}
}
foreach( $mass_delete as $dn => $junk ) {
flush();
}
echo sprintf( $lang['deleting_dn'], htmlspecialchars($dn) );
flush();
echo "<blockquote>";
echo "</small>\n";
if( true === preEntryDelete( $server_id, $dn ) ) {
$success = @ldap_delete( $ds, $dn );
if( $success ) {
postEntryDelete( $server_id, $dn );
echo " <span style=\"color:green\">" . $lang['success'] . "</span>.<br />\n";
$successfully_delete_dns[] = $dn;
}
else {
echo " <span style=\"color:red\">" . $lang['failed'] . "</span>.\n";
echo "(" . ldap_error( $ds ) . ")<br />\n";
$failed_dns[] = $dn;
}
}
$failed_count = count( $failed_dns );
$total_count = count( $mass_delete );
flush();
}
if( $failed_count > 0 ) {
echo "<span style=\"color: red; font-weight: bold;\">\n";
echo sprintf( $lang['total_entries_failed'], $failed_count, $total_count ) . "</span>\n";
echo "<blockquote>";
echo "</small>\n";
$failed_count = count( $failed_dns );
$total_count = count( $mass_delete );
if( $failed_count > 0 ) {
echo "<span style=\"color: red; font-weight: bold;\">\n";
echo sprintf( $lang['total_entries_failed'], $failed_count, $total_count ) . "</span>\n";
} else {
echo "<span style=\"color: green; font-weight: bold;\">\n";
echo $lang['all_entries_successful'] . "</span>\n";
}
} else {
echo "<span style=\"color: green; font-weight: bold;\">\n";
echo $lang['all_entries_successful'] . "</span>\n";
}
// kill the deleted DNs from the tree browser session variable and
// refresh the tree viewer frame (left_frame)
if( array_key_exists( 'tree', $_SESSION ) )
{
if( array_key_exists( 'tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
foreach( $successfully_delete_dns as $dn ) {
// does it have children? (it shouldn't, but hey, you never know)
if( isset( $tree[$server_id][$dn] ) )
unset( $tree[$server_id][$dn] );
// search and destroy
foreach( $tree[$server_id] as $tree_dn => $subtree )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$server_id][$tree_dn][$key] );
// does it have children? (it shouldn't, but hey, you never know)
if( isset( $tree[$ldapserver->server_id][$dn] ) )
unset( $tree[$ldapserver->server_id][$dn] );
// search and destroy
foreach( $tree[$ldapserver->server_id] as $tree_dn => $subtree )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$ldapserver->server_id][$tree_dn][$key] );
}
$_SESSION['tree'] = $tree;
session_write_close();
?>
session_write_close(); ?>
<script language="javascript">
parent.left_frame.location.reload();
</script>
<?php
}
<?php }
} else {
$n = count( $mass_delete );
echo "<h3 class=\"subtitle\">" . sprintf( $lang['confirm_mass_delete'], $n, $server_name ) . "</h3>\n";
?>
echo "<h3 class=\"subtitle\">" . sprintf( $lang['confirm_mass_delete'], $n, $ldapserver->name ) . "</h3>\n"; ?>
<center>
Do you really want to delete
Do you really want to delete
<?php echo ($n==1?'this':'these') . ' ' . $n . ' ' . ($n==1?'entry':'entries'); ?>?
<form action="mass_delete.php" method="post">
<input type="hidden" name="confirmed" value="true" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<table><tr><td>
<ol>
@ -148,7 +149,5 @@ if( $confirmed == true ) {
</form>
<?php
}
<?php }
?>

View File

@ -1,4 +1,11 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/password_checker.php,v 1.8 2005/07/23 17:02:54 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
include './header.php';
@ -14,12 +21,11 @@ if( isset( $_REQUEST['base64'] ) ) {
}
$enc_type = get_enc_type( $hash );
?>
<h3 class="subtitle"><?php echo $lang['password_checker_tool']; ?></h3>
<form style="margin: 0" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<form style="margin: 0" action="password_checker.php" method="post">
<input type="hidden" name="action" value="compare" />
<table style="border-spacing: 10px">
<tr>
@ -33,9 +39,9 @@ $enc_type = get_enc_type( $hash );
<tr>
<td></td><td><input type="submit" value="Compare" />
<?php if( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'compare' ) {
<?php if( isset( $_REQUEST['action'] ) && $_REQUEST['action'] == 'compare' ) {
echo "&nbsp;&nbsp;&nbsp;&nbsp;<b>";
if( password_check( $hash, $check_password) )
if( password_check( $hash, $check_password) )
echo "<span style=\"color: green\">" . $lang['passwords_match'] . "</span>";
else
echo "<span style=\"color: red\">" . $lang['passwords_do_not_match'] . "</span>";
@ -45,5 +51,3 @@ $enc_type = get_enc_type( $hash );
</tr>
</table>
</form>

View File

@ -1,10 +1,16 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/purge_cache.php,v 1.6 2005/07/22 06:12:51 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
include './header.php';
$purge_session_keys = array( 'schema' );
$purge_session_keys = array('cache','tree','tree_icons');
?>
<body>
@ -15,21 +21,21 @@ $purge_session_keys = array( 'schema' );
<center>
<?php
flush();
$size = 0;
foreach( $purge_session_keys as $key ) {
if( isset( $_SESSION[$key] ) ) {
$size += strlen( serialize( $_SESSION[$key] ) );
unset( $_SESSION[$key] );
}
foreach ($purge_session_keys as $key) {
if (isset($_SESSION[$key])) {
$size += strlen(serialize($_SESSION[$key]));
unset($_SESSION[$key]);
}
}
session_write_close();
if( 0 == $size )
if (! $size)
echo $lang['no_cache_to_purge'];
else
echo sprintf( $lang['done_purging_caches'], number_format( $size ) );
echo sprintf($lang['done_purging_caches'],number_format($size));
?>
</center>

View File

@ -1,126 +1,132 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rdelete.php,v 1.17 2004/08/15 17:35:25 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rdelete.php,v 1.22 2005/09/25 16:11:44 wurley Exp $
/*
* rdelete.php
*
/**
* Recursively deletes the specified DN and all of its children
*
* Variables that come in via common.php
* - server_id
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn = $_POST['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_POST['server_id'];
$rdn = get_rdn( $dn );
$encoded_dn = rawurlencode($dn);
$rdn = get_rdn($dn);
if( ! $dn )
pla_error( $lang['you_must_specify_a_dn'] );
if (! $dn)
pla_error($lang['you_must_specify_a_dn']);
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
dn_exists( $server_id, $dn ) or pla_error( sprintf( $lang['no_such_entry'], htmlspecialchars( $dn ) ) );
dn_exists($ldapserver,$dn) or pla_error(sprintf($lang['no_such_entry'],htmlspecialchars($dn)));
include './header.php';
echo "<body>\n";
echo "<h3 class=\"title\">" . sprintf( $lang['deleting_dn'], htmlspecialchars($rdn) ) . "</h3>\n";
echo "<h3 class=\"subtitle\">" . $lang['recursive_delete_progress'] . "</h3>";
echo "<h3 class=\"title\">".sprintf($lang['deleting_dn'],htmlspecialchars($rdn))."</h3>\n";
echo "<h3 class=\"subtitle\">".$lang['recursive_delete_progress']."</h3>";
echo "<br /><br />";
echo "<small>\n";
flush();
// prevent script from bailing early on a long delete
@set_time_limit( 0 );
@set_time_limit(0);
$del_result = pla_rdelete( $server_id, $dn );
$del_result = pla_rdelete($ldapserver,$dn);
echo "</small><br />\n";
if( $del_result )
{
// kill the DN from the tree browser session variable and
// refresh the tree viewer frame (left_frame)
if( array_key_exists( 'tree', $_SESSION ) )
{
if ($del_result) {
# kill the DN from the tree browser session variable and
# refresh the tree viewer frame (left_frame)
if (array_key_exists('tree',$_SESSION)) {
$tree = $_SESSION['tree'];
// does it have children? (it shouldn't, but hey, you never know)
if( isset( $tree[$server_id][$dn] ) )
unset( $tree[$server_id][$dn] );
// Get a tree in the session if not already gotten
initialize_session_tree();
# does it have children? (it shouldn't, but hey, you never know)
if (isset($tree[$ldapserver->server_id][$dn]))
unset($tree[$ldapserver->server_id][$dn]);
// search and destroy from the tree sesssion
foreach( $tree[$server_id] as $tree_dn => $subtree )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$server_id][$tree_dn][$key] );
# Get a tree in the session if not already gotten
initialize_session_tree();
# search and destroy from the tree sesssion
foreach ($tree[$ldapserver->server_id] as $tree_dn => $subtree)
foreach ($subtree as $key => $sub_tree_dn)
if (0 == strcasecmp($sub_tree_dn,$dn))
unset($tree[$ldapserver->server_id][$tree_dn][$key]);
}
$_SESSION['tree'] = $tree;
session_write_close();
?>
?>
<script language="javascript">
parent.left_frame.location.reload();
</script>
<?php
<?php
echo sprintf( $lang['entry_and_sub_tree_deleted_successfully'], '<b>' . htmlspecialchars( $dn ) . '</b>' );
echo sprintf($lang['entry_and_sub_tree_deleted_successfully'],'<b>'.htmlspecialchars($dn).'</b>');
} else {
pla_error( sprintf( $lang['could_not_delete_entry'], htmlspecialchars( $dn ) ), ldap_error( $ds ), ldap_errno( $ds ) );
pla_error(sprintf($lang['could_not_delete_entry'],htmlspecialchars($dn)),
ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
}
exit;
function pla_rdelete( $server_id, $dn )
{
function pla_rdelete($ldapserver,$dn) {
global $lang;
$children = get_container_contents( $server_id, $dn );
global $ds;
$ds = pla_ldap_connect( $server_id );
$children = get_container_contents($ldapserver,$dn);
if( ! is_array( $children ) || count( $children ) == 0 ) {
echo "<nobr>" . sprintf( $lang['deleting_dn'], htmlspecialchars( $dn ) ) . "...";
if (! is_array($children) || count($children) == 0) {
echo "<nobr>".sprintf($lang['deleting_dn'],htmlspecialchars($dn))."...";
flush();
if( true === preEntryDelete( $server_id, $dn ) )
if( @ldap_delete( $ds, $dn ) ) {
postEntryDelete( $server_id, $dn );
echo " <span style=\"color:green\">" . $lang['success'] . "</span></nobr><br />\n";
return true;
} else {
pla_error( sprintf( $lang['failed_to_delete_entry'], htmlspecialchars( $dn ) ),
ldap_error( $ds ), ldap_errno( $ds ) );
}
if (run_hook('pre_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn)))
if (@ldap_delete($ldapserver->connect(),$dn)) {
run_hook ('post_entry_delete',
array('server_id' => $ldapserver->server_id,'dn' => $dn));
echo " <span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
return true;
} else {
pla_error(sprintf($lang['failed_to_delete_entry'],htmlspecialchars($dn)),
ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
}
} else {
foreach( $children as $child_dn ) {
pla_rdelete( $server_id, $child_dn );
foreach ($children as $child_dn) {
pla_rdelete($ldapserver,$child_dn);
}
echo "<nobr>" . sprintf( $lang['deleting_dn'], htmlspecialchars( $dn ) ) . "...";
flush();
if( true === preEntryDelete( $server_id, $dn ) )
if( @ldap_delete( $ds, $dn ) ) {
postEntryDelete( $server_id, $dn );
echo " <span style=\"color:green\">" . $lang['success'] . "</span></nobr><br />\n";
return true;
} else {
pla_error( sprintf( $lang['failed_to_delete_entry'], htmlspecialchars( $dn ) ),
ldap_error( $ds ), ldap_errno( $ds ) );
}
}
echo "<nobr>".sprintf($lang['deleting_dn'],htmlspecialchars($dn))."...";
flush();
if (true === run_hook ('pre_entry_delete',array('server_id' => $ldapserver->server_id,'dn' => $dn)))
if (@ldap_delete($ldapserver->connect(),$dn)) {
run_hook ('post_entry_delete',
array('server_id' => $ldapserver->server_id,'dn' => $dn));
echo " <span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
return true;
} else {
pla_error(sprintf($lang['failed_to_delete_entry'],htmlspecialchars($dn)),
ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
}
}
}
?>

View File

@ -1,56 +1,51 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/refresh.php,v 1.10 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/refresh.php,v 1.15 2005/07/22 05:51:57 wurley Exp $
/*
* refresh.php
/**
* This script alters the session variable 'tree', by re-querying
* the LDAP server to grab the contents of every expanded container.
*
* Variables that come in as GET vars:
* Variables that come in via common.php
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
if( ! check_server_id( $server_id ) || ! have_auth_info( $server_id ) )
header( "Location: tree.php" );
if( ! array_key_exists( 'tree', $_SESSION ) )
header( "Location: tree.php" );
if (! isset($ldapserver) || ! array_key_exists('tree',$_SESSION))
header("Location: tree.php");
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
// Get the icon for the base object for this server
$base_dn = $servers[ $server_id ][ 'base' ];
$tree_icons[$server_id][ $base_dn ] = get_icon( $server_id, $base_dn );
# Get the icon for the base object(s) for this server
foreach ($ldapserver->getBaseDN() as $base_dn)
$tree_icons[$ldapserver->server_id][$base_dn] = get_icon($ldapserver,$base_dn);
// get all the icons and container contents for all expanded entries
if( isset($tree[$server_id]) && is_array( $tree[$server_id] ) )
{
foreach( $tree[$server_id] as $dn => $children )
{
$tree[$server_id][$dn] = get_container_contents( $server_id, $dn, 0, '(objectClass=*)', get_tree_deref_setting() );
if( is_array( $tree[$server_id][$dn] ) ) {
foreach( $tree[$server_id][$dn] as $child_dn )
$tree_icons[$server_id][$child_dn] = get_icon( $server_id, $child_dn );
sort( $tree[ $server_id ][ $dn ] );
# get all the icons and container contents for all expanded entries
if (isset($tree[$ldapserver->server_id]) && is_array($tree[$ldapserver->server_id])) {
foreach ($tree[$ldapserver->server_id] as $dn => $children) {
$tree[$ldapserver->server_id][$dn] = get_container_contents($ldapserver,$dn,0,'(objectClass=*)',
$config->GetValue('deref','tree'));
if (is_array($tree[$ldapserver->server_id][$dn])) {
foreach ($tree[$ldapserver->server_id][$dn] as $child_dn)
$tree_icons[$ldapserver->server_id][$child_dn] = get_icon($ldapserver,$child_dn);
sort($tree[$ldapserver->server_id][$dn]);
}
}
}
else
{
header( "Location: tree.php#$server_id" );
} else {
header(sprintf('Location: tree.php#%s',$ldapserver->server_id));
}
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
header( "Location: tree.php#$server_id" );
header(sprintf('Location: tree.php#%s',$ldapserver->server_id));
?>

View File

@ -1,102 +1,104 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rename.php,v 1.20 2004/05/27 12:50:42 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rename.php,v 1.27 2005/09/25 16:11:44 wurley Exp $
/*
* rename.php
* Renames a DN to a different name.
/**
* Renames a DN to a different name.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
* - new_rdn
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
require './common.php';
$dn = ( $_POST['dn'] );
$server_id = $_POST['server_id'];
$new_rdn = ( $_POST['new_rdn'] );
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn = ($_POST['dn']);
$new_rdn = ($_POST['new_rdn']);
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
if (! $ldapserver->isBranchRenameEnabled()) {
$children = get_container_contents($ldapserver,$dn,1);
if (count($children) > 0)
pla_error($lang['non_leaf_nodes_cannot_be_renamed']);
}
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
$container = get_container($dn);
$new_dn = sprintf('%s,%s',$new_rdn,$container);
$children = get_container_contents( $server_id, $dn, 1 );
if( count( $children ) > 0 )
pla_error( $lang['non_leaf_nodes_cannot_be_renamed'] );
if ($new_dn == $dn)
pla_error($lang['no_rdn_change']);
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
$old_dn_attr = explode('=',$dn);
$old_dn_attr = $old_dn_attr[0];
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$container = get_container( $dn );
$new_dn = $new_rdn . ',' . $container;
if( $new_dn == $dn )
pla_error( $lang['no_rdn_change'] );
$dn_attr = explode( '=', $dn );
$dn_attr = $dn_attr[0];
$old_dn_value = pla_explode_dn( $dn );
$old_dn_value = explode( '=', $old_dn_value[0], 2 );
$old_dn_value = pla_explode_dn($dn);
$old_dn_value = explode('=',$old_dn_value[0],2);
$old_dn_value = $old_dn_value[1];
$new_dn_value = explode( '=', $new_rdn, 2 );
if( count( $new_dn_value ) != 2 || ! isset( $new_dn_value[1] ) )
pla_error( $lang['invalid_rdn'] );
$new_dn_value = explode('=',$new_rdn,2);
if (count($new_dn_value) != 2 || ! isset($new_dn_value[1]))
pla_error($lang['invalid_rdn']);
$new_dn_attr = $new_dn_value[0];
$new_dn_value = $new_dn_value[1];
// Add the new DN attr value to the DN attr (ie, add newName to cn)
$add_new_dn_attr = array( $dn_attr => $new_dn_value );
// Remove the old DN attr value
$remove_old_dn_attr = array( $dn_attr => $old_dn_value );
$success = run_hook ('pre_rename_entry', array ('server_id' => $ldapserver->server_id,
'old_dn' => $dn, 'new_dn' => $new_dn_value ) );
// attempt to add the new DN attr value (if we can't, die a silent death)
$add_dn_attr_success = @ldap_mod_add( $ds, $dn, $add_new_dn_attr );
if( ! @ldap_rename( $ds, $dn, $new_rdn, $container, false ) )
{
pla_error( $lang['could_not_rename'], ldap_error( $ds ), ldap_errno( $ds ), false );
if ($success) {
$success = false;
// attempt to undo our changes to the DN attr
if( $add_dn_attr_success )
@ldap_mod_del( $ds, $dn, $add_new_dn_attr );
$deleteoldrdn = $old_dn_attr == $new_dn_attr;
if (! @ldap_rename($ldapserver->connect(), $dn, $new_rdn, $container, $deleteoldrdn ) ) {
pla_error($lang['could_not_rename'], ldap_error($ldapserver->connect() ),
ldap_errno($ldapserver->connect() ), false );
} else
$success = true;
} else {
pla_error($lang['could_not_rename'] );
}
else
{
// attempt to remove the old DN attr value (if we can't, die a silent death)
@ldap_mod_del( $ds, $new_dn, $remove_old_dn_attr );
if( array_key_exists( 'tree', $_SESSION ) )
{
if ($success ) {
run_hook ('post_rename_entry', array ('server_id' => $ldapserver->server_id, 'old_dn' => $dn,
'new_dn' => $new_dn_value ) );
if (array_key_exists('tree', $_SESSION ) ) {
$tree = $_SESSION['tree'];
$tree_icons = $_SESSION['tree_icons'];
$old_dn = $dn;
// gotta search the whole tree for the entry (must be a leaf node since RDN changes
// cannot occur on parents)
foreach( $tree[$server_id] as $parent_dn => $children ) {
foreach( $children as $i => $child_dn ) {
if( 0 == strcasecmp( $child_dn, $old_dn ) ) {
$tree[$server_id][$parent_dn][$i] = $new_dn;
}
foreach ($tree[$ldapserver->server_id] as $parent_dn => $children ) {
foreach ($children as $i => $child_dn ) {
if (0 == strcasecmp($child_dn, $old_dn ) )
$tree[$ldapserver->server_id][$parent_dn][$i] = $new_dn;
}
}
// Update the icon tree to reflect the change (remove the old DN and add the new one)
$tree_icons[ $server_id ][ $new_dn ] = $tree_icons[ $server_id ][ $old_dn ];
unset( $tree_icons[ $server_id ][ $old_dn ] );
$tree_icons[ $ldapserver->server_id ][ $new_dn ] = $tree_icons[ $ldapserver->server_id ][ $old_dn ];
unset($tree_icons[ $ldapserver->server_id ][ $old_dn ] );
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
session_write_close();
$edit_url="edit.php?server_id=$server_id&dn=" . rawurlencode( "$new_rdn,$container" );
?>
$edit_url = sprintf('edit.php?server_id=%s&dn=%s',$ldapserver->server_id,rawurlencode("$new_rdn,$container"));
?>
<html>
<head>
@ -115,7 +117,6 @@ else
</body>
</html>
<?php
}
<?php }
}
?>

View File

@ -1,41 +1,41 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rename_form.php,v 1.6 2004/08/15 17:39:20 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/rename_form.php,v 1.8 2005/07/22 05:51:57 wurley Exp $
/*
* rename_form.php
/**
* Displays a form for renaming an LDAP entry.
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
if ($ldapserver->isReadOnly())
pla_error($lang['no_updates_in_read_only_mode']);
if (! $ldapserver->haveAuthInfo())
pla_error($lang['not_enough_login_info']);
$dn = $_GET['dn'];
$encoded_dn = rawurlencode( $dn );
$server_id = $_GET['server_id'];
$rdn = get_rdn( $dn );
$server_name = $servers[$server_id]['name'];
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
include './header.php'; ?>
<body>
<h3 class="title"><?php echo sprintf( $lang['rename_entry'], htmlspecialchars( $rdn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $server_name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name']; ?>: <b><?php echo htmlspecialchars( ( $dn ) ); ?></b></h3>
<br />
<center>
<form action="rename.php" method="post" class="edit_dn" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo $dn; ?>" />
<input type="text" name="new_rdn" size="30" value="<?php echo htmlspecialchars( ( $rdn ) ); ?>" />
<input class="update_dn" type="submit" value="<?php echo $lang['rename']; ?>" />
@ -43,4 +43,3 @@ include './header.php'; ?>
</center>
</body>
</html>

View File

@ -1,446 +1,543 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/schema.php,v 1.55 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/schema.php,v 1.60 2005/07/22 06:09:50 wurley Exp $
/*
* schema.php
/**
* Displays the schema for the specified server_id
*
* Variables that come in as GET vars:
*
* Variables that come in via common.php
* - server_id
* Variables that come in as GET vars:
* - view (optional: can be 'attr' or empty. If 'attr', show that attribute)
* - attr (optional)
* - highlight_oid (optional)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$view = isset( $_GET['view'] ) ? $_GET['view'] : 'objectClasses';
$viewvalue = isset( $_GET['viewvalue'] ) ? $_GET['viewvalue'] : null;
if( trim( $viewvalue ) == "" )
$viewvalue = null;
if( ! is_null( $viewvalue ) )
$viewed = false;
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
check_server_id( $server_id ) or
pla_error( $lang['bad_server_id'].": " . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or
pla_error( $lang['not_enough_login_info']);
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$view = isset($_GET['view']) ? $_GET['view'] : 'objectClasses';
$viewvalue = isset($_GET['viewvalue']) ? $_GET['viewvalue'] : null;
if (trim($viewvalue) == "")
$viewvalue = null;
if (! is_null($viewvalue))
$viewed = false;
include './header.php';
$schema_error_str = $lang['could_not_retrieve_schema_from']." <b>"
. htmlspecialchars($servers[$server_id]['name'])
. "</b>.<br /><br /></center>"
.$lang['reasons_for_error']
."<ul><li>"
.$lang['schema_retrieve_error_1']
. "</li><li>"
.$lang['schema_retrieve_error_2']
."</li><li>"
.$lang['schema_retrieve_error_3']
."</li></ul><a href=\"".$lang['url_bug_report']."\" target=\"new\">".$lang['please_report_this_as_a_bug']."</a>";
$schema_error_str = sprintf('%s <b>%s</b>.<br /><br /></center>%s<ul><li>%s</li><li>%s</li><li>%s</li><li>%s</li></ul>',
$lang['could_not_retrieve_schema_from'],htmlspecialchars($ldapserver->name),
$lang['reasons_for_error'],$lang['schema_retrieve_error_1'],
$lang['schema_retrieve_error_2'],$lang['schema_retrieve_error_3'],
$lang['schema_retrieve_error_4']);
?>
<body>
<h3 class="title"><?php echo $lang['schema_for_server']; ?>
<b><?php echo htmlspecialchars($servers[$server_id]['name']); ?></b></h3>
<h3 class="title"><?php echo $lang['schema_for_server']; ?>
<b><?php echo htmlspecialchars($ldapserver->name); ?></b></h3>
<br />
<center>
<?php echo ( $view=='objectClasses' ?
$lang['objectclasses'] :
'<a href="?server_id=' . $server_id . '&amp;view=objectClasses">'.$lang['objectclasses'].'</a>' ); ?>
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>',
$ldapserver->server_id,'objectClasses',$lang['objectclasses'])); ?>
|
<?php echo ( $view=='attributes' ?
$lang['attribute_types']:
'<a href="?server_id=' . $server_id . '&amp;view=attributes">'. $lang['attribute_types'].'</a>' ); ?>
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>',
$ldapserver->server_id,'attributes',$lang['attribute_types'])); ?>
|
<?php echo ( $view=='syntaxes' ?
$lang['syntaxes'] :
'<a href="?server_id=' . $server_id . '&amp;view=syntaxes">'.$lang['syntaxes'].'</a>' ); ?>
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>',
$ldapserver->server_id,'syntaxes',$lang['syntaxes'])); ?>
|
<?php echo ( $view=='matching_rules' ?
$lang['matchingrules'] :
'<a href="?server_id=' . $server_id . '&amp;view=matching_rules">'.$lang['matchingrules'].'</a>' ); ?>
sprintf('<a href="?server_id=%s&amp;view=%s">%s</a>',
$ldapserver->server_id,'matching_rules',$lang['matchingrules'])); ?>
</center>
<br />
<?php flush(); ?>
<?php flush();
switch($view) {
case 'syntaxes':
$highlight_oid = isset($_GET['highlight_oid']) ? $_GET['highlight_oid'] : false;
print '<table class="schema_attr" width="100%">';
printf('<tr><th>%s</th><th>%s</th></tr>',$lang['syntax_oid'],$lang['desc']);
$counter = 1;
$schema_syntaxes = get_schema_syntaxes($ldapserver,null,true);
if (! $schema_syntaxes)
pla_error($schema_error_str);
foreach ($schema_syntaxes as $syntax) {
$counter++;
$oid = htmlspecialchars($syntax->getOID());
$desc = htmlspecialchars($syntax->getDescription());
if ($highlight_oid && $highlight_oid == $oid)
echo '<tr class="highlight">';
else
printf('<tr class="%s">',$counter%2==0?'even':'odd');
printf('<td><a name="%s">%s</a></td><td>%s</td></tr>',$oid,$oid,$desc);
}
print '</table>';
break;
case 'attributes':
$schema_attrs = get_schema_attributes($ldapserver,null,true);
$schema_object_classes = get_schema_objectclasses($ldapserver,null,true);
if (! $schema_attrs || ! $schema_object_classes)
pla_error($schema_error_str);
?>
<small><?php echo $lang['jump_to_attr']; ?>:</small>
<form>
<input type="hidden" name="view" value="<?php echo $view; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<select name="viewvalue" onChange="submit()">
<option value=""> - all -</option>
<?php
if( $view == 'syntaxes' ) {
$highlight_oid = isset( $_GET['highlight_oid'] ) ? $_GET['highlight_oid'] : false;
//echo "<center>" . $lang['the_following_syntaxes'] . "</center><br />\n\n";
echo "\n\n<table class=\"schema_attr\" width=\"100%\">\n";
echo "<tr><th>" . $lang['syntax_oid'] . "</th><th>" . $lang['desc'] . "</th></tr>\n";
flush();
$counter=1;
$schema_syntaxes = get_schema_syntaxes( $server_id, null, false );
if( ! $schema_syntaxes ) pla_error( $schema_error_str );
foreach( $schema_syntaxes as $syntax ) {
$counter++;
$oid = htmlspecialchars( $syntax->getOID() );
$desc = htmlspecialchars( $syntax->getDescription() );
if( $highlight_oid && $highlight_oid == $oid )
echo "<tr class=\"highlight\">";
else
echo "<tr class=\"" . ($counter%2==0?'even':'odd'). "\">";
echo "<td><a name=\"$oid\">$oid</a></td><td>$desc</td></tr>\n\n";
}
echo "</table>\n";
} elseif( $view == 'attributes' ) {
//echo "<center>" . $lang['the_following_attributes'] . "</center><br />\n";
flush();
$schema_attrs = get_schema_attributes( $server_id, null, false );
$schema_object_classes = get_schema_objectclasses( $server_id, null, false );
if( ! $schema_attrs || ! $schema_object_classes )
pla_error( $schema_error_str );
//echo "<pre>";
//print_r( $schema_attrs );
//echo "</pre>";
?>
<small><?php echo $lang['jump_to_attr']; ?>:</small>
<form><input type="hidden" name="view" value="<?php echo $view; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<select name="viewvalue" onChange="submit()">
<option value=""> - all -</option>
<?php foreach( $schema_attrs as $attr ) {
echo( '<option value="'
.$attr->getName()
.'" '
.( 0 == strcasecmp( $attr->getName(), $viewvalue ) ? ' selected ' : '' )
.'>'
. $attr->getName()
.'</option>' . "\n" );
} ?>
</select><input type="submit" value="<?php echo $lang['go']; ?>" /></form>
<br />
<table class="schema_attr" width="100%">
<?php
foreach( $schema_attrs as $attr ) {
if ( is_null( $viewvalue ) || 0 == strcasecmp( $viewvalue, $attr->getName() ) ) {
if( ! is_null( $viewvalue ) )
$viewed = true;
flush();
echo "<tr><th colspan=\"2\"><a name=\"" . strtolower( $attr->getName() ) . "\">";
echo $attr->getName() . "</a></th></tr>\n\n";
$counter = 0;
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['desc']."</td>\n";
echo "<td>" . ( $attr->getDescription() == null ? '('.$lang['no_description'].')' : $attr->getDescription() ). "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td><acronym title=\"Object Identier\">".$lang['oid']."</acronym></td>\n";
echo "<td>" . $attr->getOID() . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo '<td>'.$lang['obsolete']."?</td>\n";
echo "<td>" . ( $attr->getIsObsolete() ? '<b>' . $lang['yes'] . '</b>' : $lang['no'] ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['inherits']."</td>\n";
echo "<td>";
if( $attr->getSupAttribute()==null )
echo '('.$lang['none'].')';
else
echo "<a href=\"?server_id=".$server_id."&view=$view&amp;viewvalue=" . strtolower( $attr->getSupAttribute() ) . "\">" . $attr->getSupAttribute() . "</a></td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['equality']."</td>\n";
echo "<td>" . ( $attr->getEquality() == null ? '('.$lang['not_specified'].')' : "<a href=\"?server_id=".$server_id."&view=matching_rules&viewvalue=".$attr->getEquality()."\">".$attr->getEquality() ) . "</a></td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['ordering']."</td>\n";
echo "<td>" . ( $attr->getOrdering()==null? '('.$lang['not_specified'].')' : $attr->getOrdering() ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['substring_rule']."</td>\n";
echo "<td>" . ( $attr->getSubstr()==null? '('.$lang['not_specified'].')' : $attr->getSubstr() ) . "</td>\n";
echo "</tr>\n\n";
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['syntax']."</td>\n";
echo "<td>";
if( null != $attr->getType() ) {
echo "<a href=\"?server_id=$server_id&amp;view=syntaxes&amp;highlight_oid=";
echo $attr->getSyntaxOID() . "#" . $attr->getSyntaxOID();
echo "\">" . $attr->getType() . " (" . $attr->getSyntaxOID() . ")</a>";
} else {
echo $attr->getSyntaxOID();
foreach ($schema_attrs as $attr) {
printf('<option value="%s" %s>%s</option>',
$attr->getName(),
(! strcasecmp($attr->getName(),$viewvalue) ? 'selected' : ''),$attr->getName());
}
echo "</td>\n";
echo "</tr>\n\n";
?>
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['single_valued']."</td>\n";
echo "<td>" . ( $attr->getIsSingleValue() ? $lang['yes'] : $lang['no'] ) . "</td>\n";
echo "</tr>\n\n";
</select>
<input type="submit" value="<?php echo $lang['go']; ?>" /></form>
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['collective']."?</td>\n";
echo "<td>" . ( $attr->getIsCollective() ? $lang['yes'] : $lang['no'] ) . "</td>\n";
echo "</tr>\n\n";
<br />
<table class="schema_attr" width="100%">
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['user_modification']."</td>\n";
echo "<td>" . ( $attr->getIsNoUserModification() ? $lang['no'] : $lang['yes'] ) . "</td>\n";
echo "</tr>\n\n";
<?php
foreach ($schema_attrs as $attr) {
if (is_null($viewvalue) || ! strcasecmp($viewvalue,$attr->getName())) {
if (! is_null($viewvalue))
$viewed = true;
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['usage']."</td>\n";
echo "<td>" . ( $attr->getUsage() ? $attr->getUsage() : '('.$lang['not_specified'].')' ) . "</td>\n";
echo "</tr>\n\n";
printf('<tr><th colspan="2"><a name="%s">%s</a></th></tr>',
strtolower($attr->getName()),$attr->getName());
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['maximum_length']."</td>\n";
echo "<td>";
if ( $attr->getMaxLength() === null ) { echo '('.$lang['not_applicable'].')';}
else {
echo number_format( $attr->getMaxLength() ) ." ";
if ( $attr->getMaxLength()>1) {echo $lang['characters'];}
else { echo $lang['character'] ;}
}
echo "</td>\n";
echo "</tr>\n\n";
$counter = 0;
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['aliases']."</td>\n";
echo "<td>";
if( count( $attr->getAliases() ) == 0 )
echo '('.$lang['none'].')';
else
foreach( $attr->getAliases() as $alias_attr_name )
echo "<a href=\"?server_id=$server_id&view=attributes&amp;viewvalue=" . $alias_attr_name. "\">$alias_attr_name</a> ";
echo "</td>";
echo "</tr>\n\n";
foreach (
array('desc','obsolete','inherits','equality','ordering','substring_rule','syntax',
'single_valued','collective','user_modification','usage','maximum_length',
'aliases','used_by_objectclasses'
)
as $item) {
echo "<tr class=\"" . (++$counter%2==0?'even':'odd') . "\">\n";
echo "<td>".$lang['used_by_objectclasses']."</td>\n";
echo "<td>";
if( count( $attr->getUsedInObjectClasses() ) == 0 )
echo '('.$lang['none'].')';
else
foreach( $attr->getUsedInObjectClasses() as $used_in_oclass)
echo "<a href=\"?server_id=$server_id&amp;view=objectClasses&amp;viewvalue=" .
$used_in_oclass. "\">$used_in_oclass</a> ";
echo "</td>";
echo "</tr>\n\n";
printf('<tr class="%s">',++$counter%2 ? 'odd' : 'even');
printf('<td>%s</td>',$lang[$item]);
flush();
}
}
echo "</table>\n";
switch ($item) {
case 'desc':
printf('<td>%s</td>',
is_null($attr->getDescription()) ?
'('.$lang['no_description'].')' : $attr->getDescription());
} elseif( $view == 'matching_rules' ) {
//echo "<center>" . $lang['the_following_matching'] . "</center><br />\n\n";
$schema_matching_rules = get_schema_matching_rules( $server_id, null, false );
echo '<small>' . $lang['jump_to_matching_rule'].'</small><br />';
echo '<form get="?">';
echo '<input type="hidden" name="server_id" value="'.$server_id.'" />';
echo '<input type="hidden" name="view" value="matching_rules" />';
echo '<select name="viewvalue" onChange="submit()">';
echo '<option value=""> - all -</option>';
foreach( $schema_matching_rules as $rule ) {
echo '<option value="'.$rule->getName().'"'.($rule->getName()==$viewvalue? ' selected ': '').'>'.$rule->getName().'</option>\n';
print '</tr>';
printf('<tr class="%s">',++$counter%2 ? 'odd' : 'even');
printf('<td><acronym title="Object Identier">%s</acronym></td>',$lang['oid']);
printf('<td>%s</td>',$attr->getOID());
break;
case 'obsolete':
printf('<td>%s</td>',$attr->getIsObsolete() ? '<b>'.$lang['yes'].'</b>' : $lang['no']);
break;
case 'inherits':
print '<td>';
if (is_null($attr->getSupAttribute()))
printf('(%s)',$lang['none']);
else
printf('<a href="?server_id=%s&amp;view=%s&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,$view,
strtolower($attr->getSupAttribute()),$attr->getSupAttribute());
print '</td>';
break;
case 'equality':
printf('<td>%s</td>',
is_null($attr->getEquality()) ? '('.$lang['not_specified'].')' :
sprintf('<a href="?server_id=%s&amp;view=matching_rules&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,$attr->getEquality(),$attr->getEquality()));
break;
case 'ordering':
printf('<td>%s</td>',
is_null($attr->getOrdering()) ? '('.$lang['not_specified'].')' : $attr->getOrdering());
break;
case 'substring_rule':
printf('<td>%s</td>',
is_null($attr->getSubstr()) ? '('.$lang['not_specified'].')' : $attr->getSubstr());
break;
case 'syntax':
print '<td>';
if (is_null($attr->getType())) {
echo $attr->getSyntaxOID();
} else {
printf('<a href="?server_id=%s&amp;view=syntaxes&amp;highlight_oid=%s#%s">%s (%s)</a>',
$ldapserver->server_id,
$attr->getSyntaxOID(),$attr->getSyntaxOID(),
$attr->getType(),$attr->getSyntaxOID());
}
print '</td>';
break;
case 'single_valued':
printf('<td>%s</td>',$attr->getIsSingleValue() ? $lang['yes'] : $lang['no']);
break;
case 'collective':
printf('<td>%s</td>',$attr->getIsCollective() ? $lang['yes'] : $lang['no']);
break;
case 'user_modification':
printf('<td>%s</td>',$attr->getIsNoUserModification() ? $lang['no'] : $lang['yes']);
break;
case 'usage':
printf('<td>%s</td>',$attr->getUsage() ? $attr->getUsage() : '('.$lang['not_specified'].')');
break;
case 'maximum_length':
print '<td>';
if ( is_null($attr->getMaxLength()))
echo '('.$lang['not_applicable'].')';
else
printf('%s %s',number_format($attr->getMaxLength()),
$attr->getMaxLength()>1 ? $lang['characters'] : $lang['character']);
print '</td>';
break;
case 'aliases':
print '<td>';
if (count($attr->getAliases()) == 0)
echo '('.$lang['none'].')';
else
foreach ($attr->getAliases() as $alias_attr_name)
printf('<a href="?server_id=%s&amp;view=attributes&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,$alias_attr_name,$alias_attr_name);
print '</td>';
break;
case 'used_by_objectclasses':
print '<td>';
if (count($attr->getUsedInObjectClasses()) == 0)
echo '('.$lang['none'].')';
else
foreach ($attr->getUsedInObjectClasses() as $used_in_oclass)
printf('<a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a> ',
$ldapserver->server_id,$used_in_oclass,$used_in_oclass);
print '</td>';
break;
}
print '</tr>';
}
flush();
}
}
echo '</select>';
echo '<input type="submit" value="'.$lang['go'].'" />';
echo '</form>';
echo "\n\n<table class=\"schema_attr\" width=\"100%\">\n";
echo "<tr><th>" . $lang['matching_rule_oid'] . "</th><th>" . $lang['name'] . "</th><th>".$lang['used_by_attributes']."</th></tr>\n";
flush();
$counter=1;
$schema_matching_rules = get_schema_matching_rules( $server_id, null, false );
if( ! $schema_matching_rules ) pla_error( $schema_error_str );
foreach( $schema_matching_rules as $rule ) {
$counter++;
$oid = htmlspecialchars( $rule->getOID() );
$desc = htmlspecialchars( $rule->getName() );
if ( $viewvalue==null || $viewvalue==($rule->getName() )) {
if( ! is_null( $viewvalue ) )
$viewed = true;
if( null != $rule->getDescription() )
$desc .= ' (' . $rule->getDescription() . ')';
if( true === $rule->getIsObsolete() )
$desc .= ' <span style="color:red">' . $lang['obsolete'] . '</span>';
echo "<tr class=\"" . ($counter%2==0?'even':'odd'). "\">";
echo "<td>$oid</td>";
echo "<td>$desc</td>";
echo "<td>";
if( count( $rule->getUsedByAttrs() ) == 0 ) {
echo "<center>(" . $lang['none'] . ")</center><br /><br />\n";
} else {
echo "<table><tr><td style=\"text-align: right\"><form>";
echo "<input type=\"hidden\" name=\"server_id\" value=\"".$server_id."\" />";
echo "<input type=\"hidden\" name=\"view\" value=\"attributes\" />";
echo "<select style=\"width: 150px; color:black; background-color: #eee\" size=\"4\" name=\"viewvalue\">\n";
foreach( $rule->getUsedByAttrs() as $attr )
echo "<option>$attr</option>\n";
echo "</select><br /><input type=\"submit\" value=\"".$lang['go']."\" /></form></td></tr></table>\n";
}
echo "</td></tr>\n";
}
}
echo "</table>\n";
} elseif( $view == 'objectClasses' ) {
//echo "<center>" . $lang['the_following_objectclasses'] . "</center><br />\n";
flush();
$schema_oclasses = get_schema_objectclasses( $server_id, null, false );
if( ! $schema_oclasses ) pla_error( $schema_error_str );
?>
print '</table>';
break;
case 'matching_rules':
$schema_matching_rules = get_schema_matching_rules($ldapserver,null,true);
if (! $schema_matching_rules)
pla_error($schema_error_str);
printf('<small>%s</small><br />',$lang['jump_to_matching_rule']);
print '<form get="?">';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
print '<input type="hidden" name="view" value="matching_rules" />';
print '<select name="viewvalue" onChange="submit()">';
print '<option value=""> - all -</option>';
foreach ($schema_matching_rules as $rule)
printf('<option value="%s" %s>%s</option>',
$rule->getName(),
($rule->getName() == $viewvalue ? 'selected': ''),
$rule->getName());
print '</select>';
printf('<input type="submit" value="%s" />',$lang['go']);
print '</form>';
print '<table class="schema_attr" width="100%">';
printf('<tr><th>%s</th><th>%s</th><th>%s</th></tr>',
$lang['matching_rule_oid'],$lang['name'],$lang['used_by_attributes']);
$counter = 1;
foreach ($schema_matching_rules as $rule) {
$counter++;
$oid = htmlspecialchars($rule->getOID());
$desc = htmlspecialchars($rule->getName());
if ( is_null($viewvalue) || $viewvalue == ($rule->getName())) {
if (! is_null($viewvalue))
$viewed = true;
if (null != $rule->getDescription())
$desc .= sprintf(' (%s)',$rule->getDescription());
if ( $rule->getIsObsolete())
$desc .= sprintf(' <span style="color:red">%s</span>',$lang['obsolete']);
printf('<tr class="%s">',$counter%2 ? 'odd' : 'even');
printf('<td>%s</td>',$oid);
printf('<td>%s</td>',$desc);
print '<td>';
if (count($rule->getUsedByAttrs()) == 0) {
printf('<center>(%s)</center><br /><br />',$lang['none']);
} else {
print '<table><tr><td style="text-align: right">';
print '<form>';
printf('<input type="hidden" name="server_id" value="%s" />',$ldapserver->server_id);
print '<input type="hidden" name="view" value="attributes" />';
print '<select style="width: 150px; color:black; background-color: #eee" size="4" name="viewvalue">';
foreach ($rule->getUsedByAttrs() as $attr)
printf('<option>%s</option>',$attr);
print '</select><br />';
printf('<input type="submit" value="%s" />',$lang['go']);
print '</form>';
print '</td></tr></table>';
}
print '</td>';
print '</tr>';
}
}
print '</table>';
break;
case 'objectClasses':
$schema_oclasses = get_schema_objectclasses($ldapserver,null,true);
if (! $schema_oclasses)
pla_error($schema_error_str);
?>
<small><?php echo $lang['jump_to_objectclass']; ?>:</small>
<form><input type="hidden" name="view" value="<?php echo $view; ?>" />
<input type="hidden" name="server_id" value="<?php echo $server_id; ?>" />
<select name="viewvalue"
onChange="submit()">
<option value=""> - all - </option>
<?php foreach( $schema_oclasses as $name => $oclass ) {
echo '<option value="'
.$oclass->getName()
.'"'
. ( 0 == strcasecmp( $oclass->getName(), $viewvalue ) ? ' selected ':'')
.'>'.$oclass->getName()
.'</option>';
} ?>
</select><input type="submit" value="<?php echo $lang['go']; ?>" />
</form>
<form>
<input type="hidden" name="view" value="<?php echo $view; ?>" />
<input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" />
<select name="viewvalue" onChange="submit()">
<option value=""> - all - </option>
<?php flush(); ?>
<?php
foreach( $schema_oclasses as $name => $oclass ) {
printf('<option value="%s" %s>%s</option>',
$oclass->getName(),
(strcasecmp($oclass->getName(),$viewvalue) == 0 ? ' selected ':''),
$oclass->getName());
<?php foreach( $schema_oclasses as $name => $oclass ) {
foreach( $oclass->getSupClasses() as $parent_name ) {
$parent_name = $parent_name;
if( isset( $schema_oclasses[ $parent_name ] ) ) {
$schema_oclasses[ $parent_name ]->addChildObjectClass( $oclass->getName() );
}
}
}
?>
} ?>
</select>
<input type="submit" value="<?php echo $lang['go']; ?>" />
</form>
<br />
<?php foreach( $schema_oclasses as $name => $oclass ) {
if ( $viewvalue==null || 0 == strcasecmp( $viewvalue, $oclass->getName() ) ){
if( ! is_null( $viewvalue ) )
$viewed = true;
?>
<?php
flush();
foreach ($schema_oclasses as $name => $oclass) {
foreach ($oclass->getSupClasses() as $parent_name) {
if (isset($schema_oclasses[$parent_name]))
$schema_oclasses[$parent_name]->addChildObjectClass($oclass->getName());
}
if ( is_null($viewvalue) || ! strcasecmp($viewvalue,$oclass->getName())) {
if ( ! is_null($viewvalue))
$viewed = true;
?>
<h4 class="oclass"><a name="<?php echo $name; ?>"><?php echo $oclass->getName(); ?></a></h4>
<h4 class="oclass_sub"><?php echo $lang['OID']; ?>: <b><?php echo $oclass->getOID(); ?></b></h4>
<?php if( $oclass->getDescription() ) { ?>
<?php if ($oclass->getDescription()) { ?>
<h4 class="oclass_sub"><?php echo $lang['desc']; ?>: <b><?php echo $oclass->getDescription(); ?></b></h4>
<?php } ?>
<h4 class="oclass_sub"><?php echo $lang['type']; ?>: <b><?php echo $oclass->getType(); ?></b></h4>
<?php if( $oclass->getIsObsolete() == true ) { ?>
<?php if ( $oclass->getIsObsolete()) { ?>
<h4 class="oclass_sub"><?php echo $lang['is_obsolete']; ?></h4>
<?php } ?>
<h4 class="oclass_sub"><?php echo $lang['inherits']; ?>: <b><?php
if( count( $oclass->getSupClasses() ) == 0 )
echo "(" . $lang['none'] . ")";
else
foreach( $oclass->getSupClasses() as $i => $object_class ) {
echo '<a title="' . $lang['jump_to_this_oclass'] . ' "
href="?server_id='.$server_id.'&amp;view='.$view.'&amp;viewvalue='.htmlspecialchars( $object_class ) ;
echo '">' . htmlspecialchars( $object_class ) . '</a>';
if( $i < count( $oclass->getSupClasses() ) - 1 )
echo ', ';
}
?></b></h4>
<h4 class="oclass_sub"><?php echo $lang['inherits']; ?>: <b>
<h4 class="oclass_sub"><?php echo $lang['parent_to']; ?>: <b><?php
if( 0 == strcasecmp( $oclass->getName(), 'top' ) )
echo "(<a href=\"schema.php?view=objectClasses&amp;server_id=$server_id\">all</a>)";
elseif( count( $oclass->getChildObjectClasses() ) == 0 )
echo "(" . $lang['none'] . ")";
else
foreach( $oclass->getChildObjectClasses() as $i => $object_class ) {
echo '<a title="' . $lang['jump_to_this_oclass'] . ' "
href="?server_id='.$server_id.'&view='.$view.'&amp;viewvalue='.htmlspecialchars( $object_class ) ;
echo '">' . htmlspecialchars( $object_class ) . '</a>';
if( $i < count( $oclass->getChildObjectClasses() ) - 1 )
echo ', ';
}
?></b></h4>
<?php
if (count($oclass->getSupClasses()) == 0)
printf('(%s)',$lang['none']);
else
foreach ($oclass->getSupClasses() as $i => $object_class) {
printf('<a title="%s" href="?server_id=%s&amp;view=%s&amp;viewvalue=%s">%s</a>',
$lang['jump_to_this_oclass'],$ldapserver->server_id,$view,htmlspecialchars($object_class),
htmlspecialchars($object_class));
if ($i < count($oclass->getSupClasses()) - 1)
print ', ';
}
?>
</b></h4>
<h4 class="oclass_sub"><?php echo $lang['parent_to']; ?>: <b>
<?php
if (strcasecmp($oclass->getName(),'top') == 0)
printf('(<a href="schema.php?view=objectClasses&amp;server_id=%s">all</a>)',$ldapserver->server_id);
elseif (count($oclass->getChildObjectClasses()) == 0)
printf('(%s)',$lang['none']);
else
foreach ($oclass->getChildObjectClasses() as $i => $object_class) {
printf('<a title="%s" href="?server_id=%s&view=%s&amp;viewvalue=%s">%s</a>',
$lang['jump_to_this_oclass'],$ldapserver->server_id,$view,htmlspecialchars($object_class),
htmlspecialchars($object_class));
if ( $i < count($oclass->getChildObjectClasses()) - 1)
print ', ';
}
?>
</b></h4>
<table width="100%" class="schema_oclasses">
<tr>
<th width="50%"><b><?php echo $lang['required_attrs']; ?></b></th>
<th width="50%"><b><?php echo $lang['optional_attrs']; ?></b></th>
</tr>
<tr>
<td>
<?php if( count( $oclass->getMustAttrs($schema_oclasses) ) > 0 ) {
echo '<ul class="schema">';
foreach( $oclass->getMustAttrs($schema_oclasses) as $attr ) {
echo "<li><a href=\"?server_id=$server_id&amp;view=attributes&amp;viewvalue=";
echo rawurlencode( $attr->getName() ). "\">" . htmlspecialchars($attr->getName());
echo "</a>";
if( $attr->getSource() != $oclass->getName() )
{
echo "<br /><small>&nbsp;&nbsp;(".$lang['inherited_from']." ";
echo "<a href=\"?server_id=$server_id&amp;view=objectClasses&amp;viewvalue=" . $attr->getSource() . "\">" . $attr->getSource() . "</a>";
echo ")</small>";
<?php
if (count($oclass->getMustAttrs($schema_oclasses)) > 0) {
print '<ul class="schema">';
foreach ($oclass->getMustAttrs($schema_oclasses) as $attr) {
print '<li>';
printf('<a href="?server_id=%s&amp;view=attributes&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,rawurlencode($attr->getName()),htmlspecialchars($attr->getName()));
if ($attr->getSource() != $oclass->getName()) {
printf('<br /><small>&nbsp;&nbsp;(%s ',$lang['inherited_from']);
printf('<a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=">%s</a>',
$ldapserver->server_id,$attr->getSource(),$attr->getSource());
print ')</small>';
}
print '</li>';
}
echo "</li>\n";
}
} else
echo "<center>(" . $lang['none'] . ")</center>\n";
?>
</ul>
print '</ul>';
} else
printf('<center>(%s)</center>',$lang['none']);
?>
</td>
<td width="50%">
<?php
if( count( $oclass->getMayAttrs($schema_oclasses) ) > 0 ) {
echo '<ul class="schema">';
foreach( $oclass->getMayAttrs($schema_oclasses) as $attr ) {
echo "<li><a href=\"?server_id=$server_id&amp;view=attributes&amp;viewvalue=";
echo rawurlencode( $attr->getName() ) . "\">" . htmlspecialchars($attr->getName() );
echo "</a>\n";
if( $attr->getSource() != $oclass->getName() )
{
echo "<br /><small>&nbsp;&nbsp; (".$lang['inherited_from']." ";
echo "<a href=\"?server_id=$server_id&amp;view=objectClasses&amp;viewvalue=" . $attr->getSource() . "\">" . $attr->getSource() . "</a>";
echo ")</small>";
}
echo "</li>";
}
}
else
echo "<center>(" . $lang['none'] . ")</center>\n";
?>
<?php
if (count($oclass->getMayAttrs($schema_oclasses)) > 0) {
print '<ul class="schema">';
foreach ($oclass->getMayAttrs($schema_oclasses) as $attr) {
print '<li>';
printf('<a href="?server_id=%s&amp;view=attributes&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,rawurlencode($attr->getName()),htmlspecialchars($attr->getName()));
if ($attr->getSource() != $oclass->getName()) {
printf('<br /><small>&nbsp;&nbsp; (%s ',$lang['inherited_from']);
printf('<a href="?server_id=%s&amp;view=objectClasses&amp;viewvalue=%s">%s</a>',
$ldapserver->server_id,$attr->getSource(),$attr->getSource());
print ')</small>';
}
print '</li>';
}
print '</ul>';
} else
printf('<center>(%s)</center>',$lang['none']);
?>
</ul>
</td>
</tr>
</table>
<?php } } /* End foreach objectClass */ ?>
<?php } /* End else (displaying objectClasses */ ?>
<?php
}
} /* End foreach objectClass */
break;
}
if (! is_null( $viewvalue ) && ! $viewed)
pla_error(sprintf($lang['no_such_schema_item'],htmlspecialchars($viewvalue)));
<?php if( ! is_null( $viewvalue ) && ! $viewed )
pla_error( sprintf( $lang['no_such_schema_item'], htmlspecialchars( $viewvalue ) ) );
?>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -1,253 +1,251 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search.php,v 1.58 2004/12/10 04:43:17 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search.php,v 1.71 2005/09/25 16:11:44 wurley Exp $
/*
* search.php
/**
* Perform LDAP searches and draw the advanced/simple search forms
*
* Variables that come in as GET vars:
* - server_id
* - server_id (handled in common.php)
* - search (true if performing a search, empty to just draw form)
* For simple searches:
* - attribute, criterion, filter
* For advanced searches:
* - base_dn, scope, filter
*
* @package phpLDAPadmin
* @todo Search is probably broken, since base_dn is now an array
*/
/**
*/
require './common.php';
// try to get an available server_id if one is not provided
if( ! isset( $_GET['server_id'] ) )
$server_id = get_avail_server_id();
else {
$server_id = $_GET['server_id'];
check_server_id( $server_id ) or pla_error( $lang['bad_server_id'] );
}
if( isset($ldapserver) && ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
// Output format, table or list?
$result_formats = array( 'list', 'table' );
$format = isset( $_GET['format'] ) ? $_GET['format'] : get_default_search_display();
if( ! in_array( $format, $result_formats ) )
$format = 'list';
$format = isset( $_GET['format'] ) ? $_GET['format'] : $config->GetValue('search','display');
$js_on_change_string ='';
if( isset( $_GET['form'] ) && $_GET['form'] == 'advanced' )
$js_on_change_string =
'onChange="document.forms[0].base_dn.value=servers[document.forms[0].server_id.value].getBaseDn()"';
if( ! in_array( $format, $result_formats ) )
$format = 'list';
// build the server drop-down html and JavaScript array (for base_dns)
$js_on_change_string = '';
if( isset( $_GET['form'] ) && $_GET['form'] == 'advanced' )
$js_on_change_string =
'onChange="document.forms[0].base_dn.value=servers[document.forms[0].server_id.value].base_dn"';
$server_info_list =array();
$server_menu_html = '';
if (count($servers)>1){
$server_menu_html = '<select style="width: 200px" name="server_id" '.$js_on_change_string.'>';
foreach( $servers as $id => $server ) {
$base_dn = $server['base'] ? $server['base'] : try_to_get_root_dn( $id );
$server_info_list[$id]['id'] = $id;
$server_info_list[$id]['name'] = $server['name'];
$server_info_list[$id]['base_dn'] = $base_dn;
if( $server['host'] ) {
$server_menu_html .= '<option value="'.$id.'"' . ( $id==$server_id? ' selected="true"' : '' ) . '>';
$server_menu_html .= $server['name'] . '</option>';
}
}
$server_menu_html .= '</select>';
} else {
$server = reset($servers);
$id = key($servers);
$base_dn = $server['base'] ? $server['base'] : try_to_get_root_dn( $id );
$server_info_list[$id]['id'] = $id;
$server_info_list[$id]['name'] = $server['name'];
$server_info_list[$id]['base_dn'] = $base_dn;
if( $server['host'] )
$server_menu_html .= '<input type="hidden" name="server_id" value="'.$id.'" />' .
'<b>' . $server['name'] . '</b>';
if (isset($ldapserver)) {
$server_menu_html = server_select_list($ldapserver->server_id,true,'server_id',$js_on_change_string);
$server_info_list = server_info_list();
}
$filter = isset( $_GET['filter'] ) ? $_GET['filter'] : null;
$filter = isset( $_GET['filter'] ) ? clean_search_vals($_GET['filter']) : null;
$attr = isset( $_GET['attribute'] ) ? $_GET['attribute'] : null;
// grab the base dn for the search
if( isset( $_GET['base_dn'] ) ) {
if( isset( $_GET['base_dn'] ) && $_GET['base_dn'] ) {
$base_dn = $_GET['base_dn'];
$base_dn_is_invalid = false;
$base_dn_does_not_exist = false;
if( trim( $base_dn ) )
if( ! is_dn_string( $base_dn ) )
$base_dn_is_invalid = true;
elseif( ! dn_exists( $server_id, $base_dn ) )
$base_dn_does_not_exist = true;
} elseif( '' != $servers[$server_id]['base'] )
$base_dn = $servers[$server_id]['base'];
else
$base_dn = try_to_get_root_dn( $server_id );
$base_dn_is_invalid = false;
$base_dn_does_not_exist = false;
if( trim( $base_dn ) )
if( ! is_dn_string( $base_dn ) )
$base_dn_is_invalid = true;
elseif( ! dn_exists( $ldapserver, $base_dn ) )
$base_dn_does_not_exist = true;
$base_dns = array($base_dn);
} else
if (isset($ldapserver))
$base_dns = $ldapserver->getBaseDN();
$criterion = isset( $_GET['criterion'] ) ? $_GET['criterion'] : null;
$form = isset( $_GET['form'] ) ? $_GET['form'] : null;
if (isset($_GET['form']))
$_SESSION['form'] = $_GET['form'];
$form = isset( $_SESSION['form'] ) ? $_SESSION['form'] : null;
$scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'sub';
include './header.php'; ?>
include './header.php';
?>
<body>
<center>
<?php if( $form == 'advanced' ) {
include 'search_form_advanced.php';
<?php
if( $form == 'advanced' ) {
require LIBDIR.'search_form_advanced.php';
} elseif( $form == 'predefined' ) {
include 'search_form_predefined.php';
require LIBDIR.'search_form_predefined.php';
} else /* Draw simple search form */ {
process_config();
if( count( $search_attributes ) != count( $search_attributes_display ) )
pla_error( $lang['mismatched_search_attr_config'] );
include 'search_form_simple.php';
// process_config();
} ?>
require LIBDIR.'search_form_simple.php';
}
?>
</center>
<?php
<?php
flush();
if( isset( $_GET['search'] ) )
{
if( isset( $_GET['search'] ) ) {
if( $form == 'advanced' ) {
$search_result_attributes = isset( $_GET['display_attrs'] ) ?
rawurldecode( $_GET['display_attrs'] ) :
( isset( $search_result_attributes ) ?
$search_result_attributes :
"dn, cn" );
process_config();
}
if (isset( $_GET['display_attrs'])) {
preg_replace('/\s+/','',$_GET['display_attrs']);
$search_result_attributes = explode(',',rawurldecode($_GET['display_attrs']));
} else {
$search_result_attributes = $config->GetValue('search','result_attributes');
}
// $search_result_attributes = isset( $_GET['display_attrs'] ) ?
// rawurldecode( $_GET['display_attrs'] ) : ( isset( $search_result_attributes ) ?
// $search_result_attributes : "dn, cn" );
//process_config();
} else {
$search_result_attributes = $config->GetValue('search','result_attributes');
}
// do we have enough authentication information for the specified server_id
if( ! have_auth_info( $server_id ) )
{
$login_url = "login_form.php?server_id=$server_id&amp;redirect=" . rawurlencode( $_SERVER['REQUEST_URI'] );
?>
if( ! $ldapserver->haveAuthInfo() ) {
$login_url = sprintf('login_form.php?server_id=%s&amp;redirect=%s',
$ldapserver->server_id,rawurlencode($_SERVER['REQUEST_URI'])); ?>
<center>
<br />
<?php echo $lang['you_have_not_logged_into_server']; ?><br />
<a href="<?php echo $login_url; ?>"><?php echo $lang['click_to_go_to_login_form']; ?></a>.
</center>
<?php
exit;
}
//making $predefined safe for "register_globals off"
if( isset( $_GET['predefined'] ) )
{
if( isset( $_GET['predefined'] ) ) {
$predefined = $_GET['predefined'];
if( is_numeric( $predefined ) )
{
if( is_numeric( $predefined ) ) {
$query = get_cleaned_up_predefined_search( $predefined );
$search_result_attributes = $query['attributes'];
$search_result_attributes = explode(', ',$query['attributes']);
$search_attributes_display = $search_result_attributes;
$search_attributes = $search_result_attributes;
process_config();
//process_config();
$filter = $query['filter'];
$scope = $query['scope'];
$base_dn = $query['base'];
$server_id = $query['server'];
}
} else {
$predefined = '';
if (is_array($query['base']))
$base_dns = $query['base'];
else
$base_dns = array($query['base']);
$ldapserver = $ldapservers->Instance($query['server']);
}
} else {
$predefined = '';
}
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
if( $filter )
{
if( $filter ) {
// if they are using the simple search form, build an LDAP search filter from their input
if( $form == 'simple' & ! is_numeric( $predefined ) )
{
if( $form == 'simple' & ! is_numeric( $predefined ) ) {
switch( $criterion ) {
case 'starts with':
// to fix bug 789113
if( $filter == "*" )
$filter = "";
$filter = "($attr=$filter*)";
break;
case 'contains':
// to fix bug 789113
if( $filter == "*" )
$filter = "($attr=*)";
else
$filter = "($attr=*$filter*)";
break;
case 'ends with':
// to fix bug 789113
if( $filter == "*" )
$filter = "";
$filter = "($attr=*$filter)";
break;
case 'equals':
$filter = "($attr=$filter)";
break;
case 'sounds like':
$filter = "($attr~=$filter)";
break;
default:
pla_error( $lang['unrecognized_criteria_option'] .
htmlspecialchars( $criterion ) .
$lang['if_you_want_to_add_criteria'] );
pla_error( $lang['unrecognized_criteria_option'] .
htmlspecialchars( $criterion ) .
$lang['if_you_want_to_add_criteria'] );
}
}
echo "<center>" . $lang['searching'] . "</center>\n";
flush();
// prevent script from bailing early on a long delete
@set_time_limit( 0 );
// grab the size limit set in config.php
$size_limit = isset ( $search_result_size_limit ) && is_numeric( $search_result_size_limit ) ?
$search_result_size_limit :
50;
// Sanity check
if( $size_limit < 1 )
$size_limit = 1;
$size_limit = $config->GetValue('search','size_limit');
// Sanity check
if( $size_limit < 1 )
$size_limit = 1;
$page = isset( $_GET['page'] ) ? $_GET['page'] : 0;
$time_start = utime();
$time_elapsed = 0;
foreach ($base_dns as $base_dn) {
if (! dn_exists( $ldapserver, $base_dn ) ) {
debug_log(sprintf('BaseDN [%s] skipped as it doesnt exist in [%s].',$base_dn,$ldapserver->server_id),1);
continue;
} else {
debug_log(sprintf('Search with base DN [%s]',$base_dn),9);
}
if( $scope == 'base' )
$results = @ldap_read( $ds, $base_dn, $filter, $search_result_attributes,
0, 0, 0, get_search_deref_setting() );
$results = @ldap_read( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, $config->GetValue('deref','search') );
elseif( $scope == 'one' )
$results = @ldap_list( $ds, $base_dn, $filter, $search_result_attributes,
0, 0, 0, get_search_deref_setting() );
$results = @ldap_list( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, $config->GetValue('deref','search') );
else // scope == 'sub'
$results = @ldap_search( $ds, $base_dn, $filter, $search_result_attributes,
0, 0, 0, get_search_deref_setting() );
$errno = @ldap_errno( $ds );
$results = @ldap_search( $ldapserver->connect(false), $base_dn, $filter, $search_result_attributes,
0, 0, 0, $config->GetValue('deref','search') );
$errno = @ldap_errno( $ldapserver->connect(false) );
if( ! $results ) {
pla_error( $lang['error_performing_search'], ldap_error( $ds ), ldap_errno( $ds ) );
pla_error( $lang['error_performing_search'], ldap_error( $ldapserver->connect(false) ), ldap_errno( $ldapserver->connect(false) ) );
}
$time_end = utime();
$time_elapsed = round( $time_end - $time_start, 2 );
$count = @ldap_count_entries( $ds, $results );
$time_elapsed += round( $time_end - $time_start, 2 );
$count = @ldap_count_entries( $ldapserver->connect(), $results );
$start_entry = $page * $size_limit;
$end_entry = min( $start_entry + $size_limit + 1, $count+1 );
?>
<table class="search_header">
@ -260,119 +258,130 @@ if( isset( $_GET['search'] ) )
<small>
<nobr>
<?php echo "[ <a href=\"export_form.php?server_id=$server_id&amp;scope=$scope&amp;dn=" .
urlencode($base_dn) . "&amp;filter=" . urlencode($filter) . "&amp;attributes=" .
urlencode( join( ', ', $search_result_attributes ) ) . "\"><img src=\"images/save.png\" /> " .
$lang['export_results'] . "</a> ]"; ?>
<?php
echo '[ <img src="images/rename.png" /> ' . $lang['format'] . ':';
foreach( $result_formats as $f ) {
echo '&nbsp;';
if( $format == $f ) {
echo '<b>' . $lang[$f] . '</b>';
} else {
$php_self = $_SERVER['PHP_SELF'];
$query_string = array_to_query_string( $_GET, array( 'format' ) );
$query_string .= "&amp;format=$f";
echo "<a href=\"$php_self?$query_string\">" . $lang[$f] . "</a>";
}
}
?>
<?php
printf('[ <a href="export_form.php?server_id=%s&amp;scope=%s&amp;dn=%s&amp;filter=%s&amp;attributes=%s" /><img src="images/save.png" /> %s</a> ]',
$ldapserver->server_id,$scope,urlencode($base_dn),urlencode($filter),urlencode(join(', ',$search_result_attributes)),$lang['export_results']);
printf('[ <img src="images/rename.png" /> %s:',$lang['format']);
foreach( $result_formats as $f ) {
echo '&nbsp;';
if( $format == $f ) {
echo '<b>' . $lang[$f] . '</b>';
} else {
$php_self = $_SERVER['PHP_SELF'];
$query_string = array_to_query_string( $_GET, array( 'format' ) );
$query_string .= "&amp;format=$f";
echo "<a href=\"$php_self?$query_string\">" . $lang[$f] . "</a>";
}
} ?>
]
</small>
</nobr>
<?php if( $form == 'simple' || $form == 'predefined' ) { ?>
<br /><nobr><small><?php echo $lang['filter_performed']; ?>
<?php echo htmlspecialchars( $filter ); ?></small></nobr>
<?php } ?>
<?php if( $form == 'simple' || $form == 'predefined' ) { ?>
<br /><nobr><small><?php echo $lang['filter_performed']; ?>
<?php echo htmlspecialchars( $filter ); ?></small></nobr>
<?php } ?>
</td>
</tr>
</table>
<?php
<?php
// The LDAP error code for the size limit exceeded error.
define( 'SIZE_LIMIT_EXCEEDED', 4 );
if( $errno && $errno == SIZE_LIMIT_EXCEEDED ) {
echo "<br /><center><small>" . $lang['size_limit_exceeded'] . "</small></center><br />\n";
}
// The LDAP error code for the size limit exceeded error.
define( 'SIZE_LIMIT_EXCEEDED', 4 );
if( $errno && $errno == SIZE_LIMIT_EXCEEDED ) {
echo "<br /><center><small style=\"color:red; white-space: nowrap\">" . $lang['size_limit_exceeded'] . "</small></center><br />\n";
}
// Draw the paging links
$pager_html = '';
$total_pages = $count / $size_limit;
$results_per_page = $size_limit;
$pager_html = '';
$total_pages = $count / $size_limit;
$results_per_page = $size_limit;
if( $count > $size_limit ) {
echo sprintf( $lang['showing_results_x_through_y'], "<b>" . number_format($start_entry+1) . "</b>", "<b>" . number_format($end_entry-1) . "</b>" ) . "<br />\n";
echo sprintf( $lang['showing_results_x_through_y'], "<b>" . number_format($start_entry+1) . "</b>", "<b>" . number_format($end_entry-1) . "</b>" ) . "<br />\n";
$php_self = $_SERVER['PHP_SELF'];
if( $page != 0 ) {
if( $page != 0 ) {
$query_string = array_to_query_string( $_GET, array( 'page' ) );
$query_string .= '&page=' . ($page-1);
$pager_html .= "<a title=\"" . sprintf( $lang['page_n'],$page ) . "\" href=\"$php_self?$query_string\">&lsaquo;&lsaquo;</a>";
} else {
$pager_html .= "&lsaquo;&lsaquo;";
}
$pager_html .= '&nbsp;&nbsp;';
// for large search results where we page beyone the first 20 pages,
// print elipsis instead of making the pager be super wide.
$elipsis_printed = false;
// for large search results where we page beyone the first 20 pages,
// print elipsis instead of making the pager be super wide.
$elipsis_printed = false;
for( $i=0; $i<$count; $i+=$size_limit ) {
$page_num = $i/$size_limit;
if( $count > $size_limit * 20 && abs( $page_num - $page ) > 10 ) {
if( ! $elipsis_printed ) {
$pager_html .= '...&nbsp;&nbsp;';
$elipsis_printed = true;
}
} else if( $page == $page_num ) {
if( $count > $size_limit * 20 && abs( $page_num - $page ) > 10 ) {
if( ! $elipsis_printed ) {
$pager_html .= '...&nbsp;&nbsp;';
$elipsis_printed = true;
}
} else if( $page == $page_num ) {
$pager_html .= '<b>' . ($page_num + 1) . '</b>';
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
} else {
$query_string = array_to_query_string( $_GET, array( 'page' ) );
$query_string .= '&page=' . $page_num;
$pager_html .= "<a href=\"$php_self?$query_string\">" . ($page_num+1) . "</a>";
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
$pager_html .= '&nbsp;&nbsp;';
$elipsis_printed = false;
}
}
if( $page+1 < $total_pages ) {
$query_string = array_to_query_string( $_GET, array( 'page' ) );
$query_string .= '&page=' . ($page+1);
$pager_html .= "<a title=\"" . sprintf( $lang['page_n'],($page+2) ) . "\" href=\"$php_self?$query_string\">&rsaquo;&rsaquo;</a>";
} else {
$pager_html .= "&rsaquo;&rsaquo;";
}
}
}
if( 0 == $count )
echo '<center><h2>' . $lang['no_results'] . '</h2></center>';
else {
echo '<center>' . $pager_html . '</center><br />';
flush();
if( $format == 'list' )
include realpath( './search_results_list.php' );
elseif( $format == 'table' )
include realpath( './search_results_table.php' );
else
pla_error( sprintf( $lang['unrecoginzed_search_result_format'], htmlspecialchars( $format ) ) );
echo '<br /><center>' . $pager_html . '</center>';
}
if( 0 == $count )
echo '<center><h2>' . $lang['no_results'] . '</h2></center>';
?>
else {
echo '<center>' . $pager_html . '</center><br />';
flush();
if( $format == 'list' )
// $lang['list'] - this is here so check_lang_files doesnt prompt us to remove this $lang variable.
require LIBDIR.'search_results_list.php';
elseif( $format == 'table' )
// $lang['table'] - this is here so check_lang_files doesnt prompt us to remove this $lang variable.
require LIBDIR.'search_results_table.php';
else
pla_error( sprintf( $lang['unrecoginzed_search_result_format'], htmlspecialchars( $format ) ) );
echo '<br /><center>' . $pager_html . '</center>';
}
} ?>
<br /><br />
<div class="search_result"><center><span style="font-weight:normal;font-size:75%;">
<?php echo $lang['search_duration']; ?>
<b><?php echo $time_elapsed; ?></b> <?php echo $lang['seconds'];?>.</small></center></div>
<?php
}
}
?>
<?php }
} ?>
</body>
</html>

View File

@ -1,17 +1,23 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_advanced.php,v 1.19 2004/12/17 15:10:51 uugdave Exp $
?><script>
<?php
$num_server = count($server_info_list);
for($i=0;$i<$num_server;$i++){
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_advanced.php,v 1.22 2005/07/16 03:13:54 wurley Exp $
/**
* @package phpLDAPadmin
*/
?>
addToServersList(new server(<?php echo $i; ?>,"<?php echo $server_info_list[$i]['name']; ?>","<?php echo $server_info_list[$i]['base_dn']; ?>"));
<?php
}
?>
function focus_filter() {
<script>
<?php foreach ($server_info_list as $i => $ignore) { ?>
addToServersList(new server(<?php echo $i; ?>,"<?php echo $server_info_list[$i]['name']; ?>","<?php echo $server_info_list[$i]['base_dn']; ?>"));
<?php } ?>
function focus_filter() {
document.advanced_search_form.filter.focus();
}
}
</script>
<form action="search.php" method="get" class="search" name="advanced_search_form">
@ -20,8 +26,8 @@ for($i=0;$i<$num_server;$i++){
<input type="hidden" name="format" value="<?php echo $format; ?>" />
<center><b><?php echo $lang['advanced_search_form_str']; ?></b></center>
<small>(<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=simple"><?php echo $lang['simple_search_form_str']; ?></a> |
<a href="search.php?form=predefined"><?php echo $lang['predefined_searches']; ?></a>)</small><br />
<small>(<a href="search.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;form=simple"><?php echo $lang['simple_search_form_str']; ?></a> |
<a href="search.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;form=predefined"><?php echo $lang['predefined_searches']; ?></a>)</small><br />
<br />
<table>
@ -32,11 +38,17 @@ for($i=0;$i<$num_server;$i++){
<tr>
<td><small><?php echo $lang['base_dn']; ?></small></td>
<td><input type="text" name="base_dn" value="<?php echo htmlspecialchars($base_dn); ?>" style="width: 200px" id="base_dn" />
<?php draw_chooser_link( 'advanced_search_form.base_dn' ); ?>
<?php if( isset( $base_dn_is_invalid ) && $base_dn_is_invalid ) echo "<small style=\"color:red; white-space: nowrap\">" . $lang['this_base_dn_is_not_valid'] . "</small>"; ?>
<?php if( isset( $base_dn_does_not_exist ) && $base_dn_does_not_exist ) echo "<small style=\"color:red; white-space: nowrap\">" . $lang['this_base_dn_does_not_exist'] . "</small>"; ?>
</td>
<td><input type="text" name="base_dn" value="<?php echo count($base_dns) == 1 ? $base_dns[0] : '' ?>" style="width: 200px" id="base_dn" />
<?php draw_chooser_link( 'advanced_search_form.base_dn' );
if( isset( $base_dn_is_invalid ) && $base_dn_is_invalid )
echo "<small style=\"color:red; white-space: nowrap\">" . $lang['this_base_dn_is_not_valid'] . "</small>";
if( isset( $base_dn_does_not_exist ) && $base_dn_does_not_exist )
echo "<small style=\"color:red; white-space: nowrap\">" . $lang['this_base_dn_does_not_exist'] . "</small>"; ?>
</td>
</tr>
<tr>
@ -60,25 +72,27 @@ for($i=0;$i<$num_server;$i++){
<tr>
<td><small><acronym title="<?php echo $lang['standard_ldap_search_filter']; ?>">
<?php echo $lang['search_filter']; ?></acronym></small></td>
<td><input type="text" name="filter" id="filter" style="width: 200px" value="<?php echo $filter ? htmlspecialchars($filter) : 'objectClass=*'; ?>" /></td>
</tr>
<tr>
<td><small><acronym title="<?php echo $lang['list_of_attrs_to_display_in_results']; ?>">
<?php echo $lang['show_attributes']; ?></acronym></small></td>
<td><input type="text" name="display_attrs" style="width: 200px" value="<?php
echo isset( $_GET['display_attrs'] ) ?
htmlspecialchars( $_GET['display_attrs'] ) :
$search_result_attributes; ?>" />
<td><input type="text" name="display_attrs" style="width: 200px" value="<?php
echo isset( $_GET['display_attrs'] ) ?
htmlspecialchars( $_GET['display_attrs'] ) :
join(', ',$config->GetValue('search','result_attributes')); ?>" />
</tr>
<tr>
<td colspan="2"><br /><center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center></td>
</tr>
</table>
</form>
<script language="javascript">
// Move the cursor to the filter field
focus_filter();
</script>

View File

@ -1,51 +1,68 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_predefined.php,v 1.6 2004/06/04 13:42:08 uugdave Exp $
?><form action="search.php" method="get" class="search">
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_predefined.php,v 1.8 2005/07/16 03:13:54 wurley Exp $
/**
* @package phpLDAPadmin
*/
?>
<form action="search.php" method="get" class="search">
<input type="hidden" name="search" value="true" />
<input type="hidden" name="form" value="predefined" />
<input type="hidden" name="format" value="<?php echo $format; ?>" />
<table>
<td>
<?php
if( isset( $_GET['predefined'] ) )
$selected_q_number = intval( $_GET['predefined'] );
<tr>
<td>
<?php if( isset( $_GET['predefined'] ) )
$selected_q_number = intval( $_GET['predefined'] );
else
$selected_q_number = null;
?>
<center><b><?php echo $lang['predefined_searches']; ?></b><br />
<small>(<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=simple"><?php echo $lang['simple_search_form_str']; ?></a> |
<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=advanced"><?php echo $lang['advanced_search_form_str']; ?></a>)</small><br />
<br />
<?php
if( ! isset( $queries ) || ! is_array( $queries ) || 0 == count( $queries ) ) {
$selected_q_number = null; ?>
<center><b><?php echo $lang['predefined_searches']; ?></b><br />
<small>(<a href="search.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;form=simple"><?php echo $lang['simple_search_form_str']; ?></a> |
<a href="search.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;form=advanced"><?php echo $lang['advanced_search_form_str']; ?></a>)</small><br />
<br />
<?php if( ! isset( $queries ) || ! is_array( $queries ) || 0 == count( $queries ) ) {
echo "<br />\n";
echo $lang['no_predefined_queries'];
echo $lang['no_predefined_queries'];
echo "<br />\n";
echo "<br />\n";
echo "<br />\n";
echo "</td></table>\n";
echo "</td></tr></table>\n";
echo "</body>\n";
echo "</html>\n";
die();
} else { ?>
<small><?php echo $lang['predefined_search_str']; ?>: </small>
<select name="predefined">
<?php
foreach( $queries as $q_number => $q ) {
if ($selected_q_number === $q_number)
$selected = " selected";
else $selected = "";
print("\t<option value=\"" . $q_number . "\"" . $selected . ">\n");
print("\t" . htmlspecialchars( $q['name'] ) . "\n");
print("\t</option>\n");
}
?>
<?php foreach( $queries as $q_number => $q ) {
if ($selected_q_number === $q_number)
$selected = " selected";
else
$selected = "";
print("\t<option value=\"" . $q_number . "\"" . $selected . ">\n");
print("\t" . htmlspecialchars( $q['name'] ) . "\n");
print("\t</option>\n");
} ?>
</select>
<?php } ?>
<br />
<br />
<center><input type="hidden" name="server_id" value="<?php echo $ldapserver->server_id; ?>" /></center>
<center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center>
</td>
</table>

View File

@ -1,6 +1,12 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_simple.php,v 1.12 2004/10/28 13:37:39 uugdave Exp $
?><script language="javascript">
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_form_simple.php,v 1.14 2005/07/16 03:13:54 wurley Exp $
/**
* @package phpLDAPadmin
*/
?>
<script language="javascript">
function focus_filter() {
document.simple_search_form.filter.focus();
}
@ -13,47 +19,47 @@
<input type="hidden" name="format" value="<?php echo $format; ?>" />
<table>
<td>
<center><b><?php echo $lang['simple_search_form_str']; ?></b><br />
<small>(<a href="search.php?server_id=<?php echo $server_id; ?>&amp;form=advanced"><?php echo $lang['advanced_search_form_str']; ?></a> |
<a href="search.php?form=predefined"><?php echo $lang['predefined_searches']; ?></a>)</small><br />
</center>
<br />
<tr>
<td>
<center><b><?php echo $lang['simple_search_form_str']; ?></b><br />
<small>(<a href="search.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;form=advanced"><?php echo $lang['advanced_search_form_str']; ?></a> |
<a href="search.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;form=predefined"><?php echo $lang['predefined_searches']; ?></a>)</small><br />
</center>
<br />
<small><?php echo $lang['server']; ?></small><br /> <?php echo $server_menu_html; ?><br />
<br />
<small><?php echo $lang['search_for_entries_whose']; ?></small><br />
<small><?php echo $lang['server']; ?></small><br /> <?php echo $server_menu_html; ?><br />
<br />
<small><?php echo $lang['search_for_entries_whose']; ?></small><br />
<nobr>
<select name="attribute">
<?php foreach( $search_attributes as $id => $attribute ) { ?>
<option value="<?php echo rawurlencode( $attribute ); ?>"<?php echo $attribute==$attr?' selected="true"':''; ?>>
<?php echo htmlspecialchars($search_attributes_display[$id]); ?>
</option>
<?php } ?>
</select>
<nobr>
<select name="attribute">
<?php foreach( $config->GetValue('search','attributes') as $id => $attribute ) { ?>
<option value="<?php echo rawurlencode( $attribute ); ?>"<?php echo $attribute==$attr?' selected="true"':''; ?>>
<?php echo htmlspecialchars(show_friendly_attribute($attribute)); ?>
</option>
<?php } ?>
</select>
<select name="criterion">
<select name="criterion">
<?php
foreach( $config->GetValue('search','criteria_options') as $c ) { ?>
<option value="<?php echo $c; ?>"<?php echo $c==$criterion?' selected="true"':''; ?>>
<?php echo htmlspecialchars( $lang[$c] ); ?>
</option>
<?php } ?>
</select>
<?php
if( ! isset( $search_criteria_options ) || ! is_array( $search_criteria_options ) )
$search_criteria_options = array( "equals", "starts with", "contains", "ends with", "sounds like" );
foreach( $search_criteria_options as $c ) { ?>
<option value="<?php echo $c; ?>"<?php echo $c==$criterion?' selected="true"':''; ?>>
<?php echo htmlspecialchars( $lang[$c] ); ?>
</option>
<?php } ?>
</select>
<input type="text" name="filter" id="filter" size="20" value="<?php echo htmlspecialchars($filter); ?>" /><br />
<br />
<input type="text" name="filter" id="filter" size="20" value="<?php echo htmlspecialchars($filter); ?>" /><br />
<br />
<center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center>
</nobr>
</td>
<center><input type="submit" value="<?php echo $lang['Search']; ?>" /></center>
</nobr>
</td>
</tr>
</table>
</form>
<script language="javascript">
// Move the cursor to the filter field
focus_filter();

View File

@ -1,90 +1,92 @@
<?php
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_results_list.php,v 1.5 2005/04/29 11:24:15 wurley Exp $
/**
* @package phpLDAPadmin
*/
$friendly_attrs = process_friendly_attr_table();
$entry_id = ldap_first_entry( $ds, $results );
$entry_id = ldap_first_entry( $ldapserver->connect(), $results );
// Iterate over each entry
$i = 0;
while( $entry_id ) {
$i++;
if( $i <= $start_entry ) {
$entry_id = ldap_next_entry( $ds, $entry_id );
continue;
}
if( $i >= $end_entry )
break;
$dn = ldap_get_dn( $ds, $entry_id );
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
?>
$i++;
<div class="search_result">
<table>
<tr>
<td><img src="images/<?php echo get_icon_use_cache( $server_id, $dn ); ?>" /></td>
<td><a href="edit.php?server_id=<?php
echo $server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"><?php echo htmlspecialchars($rdn); ?></a>
</td>
</tr>
</table>
</div>
if( $i <= $start_entry ) {
$entry_id = ldap_next_entry( $ldapserver->connect(), $entry_id );
continue;
}
<table class="attrs">
if( $i >= $end_entry )
break;
<?php
$dn = ldap_get_dn( $ldapserver->connect(), $entry_id );
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn ); ?>
$attrs = ldap_get_attributes( $ds, $entry_id );
$attr = ldap_first_attribute( $ds, $entry_id, $attrs );
<div class="search_result">
<table>
<tr>
<td><img src="images/<?php echo get_icon_use_cache( $ldapserver, $dn ); ?>" /></td>
<td><a href="edit.php?server_id=<?php echo $ldapserver->server_id; ?>&amp;dn=<?php echo $encoded_dn; ?>"><?php echo htmlspecialchars($rdn); ?></a></td>
</tr>
</table>
</div>
// Always print out the DN in the attribute list
echo "<tr><td class=\"attr\" valign=\"top\">dn</td>";
echo "<td>" . htmlspecialchars($dn) . "</td></tr>\n";
<table class="attrs">
// Iterate over each attribute for this entry
while( $attr ) {
<?php $attrs = ldap_get_attributes( $ldapserver->connect(), $entry_id );
$attr = ldap_first_attribute( $ldapserver->connect(), $entry_id, $attrs );
if( is_attr_binary( $server_id, $attr ) )
$values = array( "(binary)" );
else
$values = ldap_get_values( $ds, $entry_id, $attr );
if( isset( $values['count'] ) )
unset( $values['count'] );
// Always print out the DN in the attribute list
echo "<tr><td class=\"attr\" valign=\"top\">dn</td>";
echo "<td>" . htmlspecialchars($dn) . "</td></tr>\n";
if( isset( $friendly_attrs[ strtolower( $attr ) ] ) )
$attr = "<acronym title=\"Alias for $attr\">" .
htmlspecialchars( $friendly_attrs[ strtolower($attr) ] ) .
"</acronym>";
else
$attr = htmlspecialchars( $attr );
?>
// Iterate over each attribute for this entry
while( $attr ) {
<tr>
<td class="attr" valign="top"><?php echo $attr; ?></td>
<td class="val">
<?php
if( is_jpeg_photo( $server_id, $attr ) )
draw_jpeg_photos( $server_id, $dn, $attr, false, false, 'align="left"' );
else
foreach( $values as $value )
echo str_replace( ' ', '&nbsp;',
htmlspecialchars( $value ) ) . "<br />\n";
?>
</td>
</tr>
<?php
$attr = ldap_next_attribute( $ds, $entry_id, $attrs );
} // end while( $attr )
if( is_attr_binary( $ldapserver, $attr ) )
$values = array( "(binary)" );
?>
else
$values = ldap_get_values( $ldapserver->connect(), $entry_id, $attr );
if( isset( $values['count'] ) )
unset( $values['count'] );
if( isset( $friendly_attrs[ strtolower( $attr ) ] ) )
$attr = "<acronym title=\"Alias for $attr\">".htmlspecialchars( $friendly_attrs[ strtolower($attr) ] ) .
"</acronym>";
else
$attr = htmlspecialchars( $attr ); ?>
<tr>
<td class="attr" valign="top"><?php echo $attr; ?></td>
<td class="val">
<?php if( is_jpeg_photo( $ldapserver, $attr ) )
draw_jpeg_photos( $ldapserver, $dn, $attr, false, false, 'align="left"' );
else
foreach( $values as $value )
echo str_replace( ' ', '&nbsp;', htmlspecialchars( $value ) ) . "<br />\n"; ?>
</td>
</tr>
<?php $attr = ldap_next_attribute( $ldapserver->connect(), $entry_id, $attrs );
} // end while( $attr ) ?>
</table>
<?php
<?php $entry_id = ldap_next_entry( $ldapserver->connect(), $entry_id );
$entry_id = ldap_next_entry( $ds, $entry_id );
// flush every 5th entry (sppeds things up a bit)
if( 0 == $i % 5 )
flush();
// flush every 5th entry (speeds things up a bit)
if( 0 == $i % 5 )
flush();
} // end while( $entry_id )
?>

View File

@ -1,17 +1,18 @@
<?php
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_results_table.php,v 1.7 2005/04/29 11:24:15 wurley Exp $
/**
* Incoming variables (among others)
* $results: The result of ldap_search(), ldap_list(), or ldap_read().
* $ds: LDAP connection resource.
* $ldapserver: LDAP Server Object.
* $start_entry: The index of the entry at which to begin displaying
* $end_entry: The index of the entry at which to end displaying
* @package phpLDAPadmin
*/
$friendly_attrs = process_friendly_attr_table();
$entry_id = ldap_first_entry( $ds, $results );
$all_attrs = array( '' => 1,
'dn' => 1 );
$entry_id = ldap_first_entry( $ldapserver->connect(), $results );
$all_attrs = array( '' => 1, 'dn' => 1 );
// Iterate over each entry and store the whole dang thing in memory (necessary to extract
// all attribute names and display in table format in a single pass)
@ -21,23 +22,23 @@ $entries_display = array();
while( $entry_id ) {
$i++;
if( $i <= $start_entry ) {
$entry_id = ldap_next_entry( $ds, $entry_id );
$entry_id = ldap_next_entry( $ldapserver->connect(), $entry_id );
continue;
}
if( $i >= $end_entry )
break;
$dn = ldap_get_dn( $ds, $entry_id );
$dn_display = strlen( $dn ) > 40 ? "<acronym title=\"" . htmlspecialchars( $dn ) . "\">" .
$dn = ldap_get_dn( $ldapserver->connect(), $entry_id );
$dn_display = strlen( $dn ) > 40 ? "<acronym title=\"" . htmlspecialchars( $dn ) . "\">" .
htmlspecialchars( substr( $dn, 0, 40 ) . '...' ) .
"</acronym>"
: htmlspecialchars( $dn );
$encoded_dn = rawurlencode( $dn );
$rdn = get_rdn( $dn );
$icon = get_icon_use_cache( $server_id, $dn );
$attrs = ldap_get_attributes( $ds, $entry_id );
$attr = ldap_first_attribute( $ds, $entry_id, $attrs );
$icon = get_icon_use_cache( $ldapserver, $dn );
$attrs = ldap_get_attributes( $ldapserver->connect(), $entry_id );
$attr = ldap_first_attribute( $ldapserver->connect(), $entry_id, $attrs );
$attrs_display = array();
$edit_url = "edit.php?server_id=$server_id&amp;dn=$encoded_dn";
$edit_url = sprintf("edit.php?server_id=%s&amp;dn=%s",$ldapserver->server_id,$encoded_dn);
$attrs_display[''] = "<center><a href=\"$edit_url\"><img src=\"images/$icon\" /></a><center>";
$attrs_display['dn'] = "<a href=\"$edit_url\">$dn_display</a>";
@ -47,7 +48,7 @@ while( $entry_id ) {
// Clean up the attr name
if( isset( $friendly_attrs[ strtolower( $attr ) ] ) )
$attr_display = "<acronym title=\"Alias for $attr\">" .
$attr_display = "<acronym title=\"Alias for $attr\">" .
htmlspecialchars( $friendly_attrs[ strtolower($attr) ] ) .
"</acronym>";
else
@ -58,15 +59,15 @@ while( $entry_id ) {
// Get the values
$display = '';
if( is_jpeg_photo( $server_id, $attr ) ) {
if( is_jpeg_photo( $ldapserver, $attr ) ) {
ob_start();
draw_jpeg_photos( $server_id, $dn, $attr, false, false, 'align="center"' );
draw_jpeg_photos( $ldapserver, $dn, $attr, false, false, 'align="center"' );
$display = ob_get_contents();
ob_end_clean();
} elseif( is_attr_binary( $server_id, $attr ) ) {
} elseif( is_attr_binary( $ldapserver, $attr ) ) {
$display = array( "(binary)" );
} else {
$values = @ldap_get_values( $ds, $entry_id, $attr );
$values = @ldap_get_values( $ldapserver->connect(), $entry_id, $attr );
if( ! is_array( $values ) ) {
$display = 'Error';
} else {
@ -78,7 +79,7 @@ while( $entry_id ) {
}
}
$attrs_display[ $attr_display ] = $display;
$attr = ldap_next_attribute( $ds, $entry_id, $attrs );
$attr = ldap_next_attribute( $ldapserver->connect(), $entry_id, $attrs );
} // end while( $attr )
$entries_display[] = $attrs_display;
@ -86,7 +87,7 @@ while( $entry_id ) {
//echo '<pre>';
//print_r( $attrs_display );
//echo "\n\n";
$entry_id = ldap_next_entry( $ds, $entry_id );
$entry_id = ldap_next_entry( $ldapserver->connect(), $entry_id );
} // end while( $entry_id )
@ -126,5 +127,7 @@ for( $i=0; $i<count($entries_display); $i++ ) {
}
echo "</tr>\n";
}
echo "</table>";
echo "</center>";
?>

1066
server_functions.php Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,121 +1,162 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/server_info.php,v 1.15 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/server_info.php,v 1.21 2005/07/22 05:51:57 wurley Exp $
/*
* server_info.php
/**
* Fetches and displays all information that it can from the specified server
*
* Variables that come in as GET vars:
*
* Variables that come in via common.php
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
// The attributes we'll examine when searching the LDAP server's RootDSE
$root_dse_attributes = array( 'namingContexts',
'subschemaSubentry',
'altServer',
'supportedExtension',
'supportedControl',
'supportedSASLMechanisms',
'supportedLDAPVersion',
'currentTime',
'dsServiceName',
'defaultNamingContext',
'schemaNamingContext',
'configurationNamingContext',
'rootDomainNamingContext',
'supportedLDAPPolicies',
'highestCommittedUSN',
'dnsHostName',
'ldapServiceName',
'serverName',
'supportedCapabilities',
'changeLog',
'tlsAvailableCipherSuites',
'tlsImplementationVersion',
'supportedSASLMechanisms',
'dsaVersion',
'myAccessPoint',
'dseType',
'+',
'*'
);
# The attributes we'll examine when searching the LDAP server's RootDSE
$root_dse_attributes = array(
'namingContexts',
'subschemaSubentry',
'altServer',
'supportedExtension',
'supportedControl',
'supportedSASLMechanisms',
'supportedLDAPVersion',
'currentTime',
'dsServiceName',
'defaultNamingContext',
'schemaNamingContext',
'configurationNamingContext',
'rootDomainNamingContext',
'supportedLDAPPolicies',
'highestCommittedUSN',
'dnsHostName',
'ldapServiceName',
'serverName',
'supportedCapabilities',
'changeLog',
'tlsAvailableCipherSuites',
'tlsImplementationVersion',
'supportedSASLMechanisms',
'dsaVersion',
'myAccessPoint',
'dseType',
'+',
'*'
);
$server_id = $_GET['server_id'];
$server_name = $servers[$server_id]['name'];
if (! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
# Fetch basic RootDSE attributes using the + and *.
$r = @ldap_read($ldapserver->connect(),'','objectClass=*',array('+','*'));
if (! $r)
pla_error($lang['could_not_fetch_server_info'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
// Fetch basic RootDSE attributes using the + and *.
$r = @ldap_read( $ds, '', 'objectClass=*', array( '+', '*' ) );
if( ! $r )
pla_error( $lang['could_not_fetch_server_info'], ldap_error( $ds ), ldap_errno( $ds ) );
$entry = @ldap_first_entry( $ds, $r );
if( ! $entry )
pla_error( $lang['could_not_fetch_server_info'], ldap_error( $ds ), ldap_errno( $ds ) );
$attrs = @ldap_get_attributes( $ds, $entry );
$count = @ldap_count_entries( $ds, $r );
$entry = @ldap_first_entry($ldapserver->connect(),$r);
if (! $entry)
pla_error($lang['could_not_fetch_server_info'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()));
// After fetching the "basic" attributes from the RootDSE, try fetching the
// more advanced ones (from ths list). Add them to the list of attrs to display
// if they weren't already fetched. (this was added as a work-around for OpenLDAP
// on RHEL 3.
$r2 = @ldap_read( $ds, '', 'objectClass=*', $root_dse_attributes );
if( $r2 ) {
$entry2 = @ldap_first_entry( $ds, $r );
$attrs2 = @ldap_get_attributes( $ds, $entry );
for( $i=0; $i<$attrs2['count']; $i++ ) {
$attr = $attrs2[$i];
if( ! isset( $attrs[ $attr ] ) ) {
$attrs[ $attr ] = $attrs2[ $attr ];
$attrs[ 'count' ]++;
$attrs[] = $attr;
}
}
$attrs = @ldap_get_attributes($ldapserver->connect(),$entry);
$count = @ldap_count_entries($ldapserver->connect(),$r);
/* After fetching the "basic" attributes from the RootDSE, try fetching the
more advanced ones (from ths list). Add them to the list of attrs to display
if they weren't already fetched. (this was added as a work-around for OpenLDAP
on RHEL 3. */
$r2 = @ldap_read($ldapserver->connect(),'','objectClass=*',$root_dse_attributes);
if ($r2) {
$entry2 = @ldap_first_entry($ldapserver->connect(),$r);
$attrs2 = @ldap_get_attributes($ldapserver->connect(),$entry);
for ($i = 0; $i < $attrs2['count']; $i++) {
$attr = $attrs2[$i];
if (! isset($attrs[$attr])) {
$attrs[$attr] = $attrs2[$attr];
$attrs['count']++;
$attrs[] = $attr;
}
}
}
unset( $attrs2, $entry, $entry2 );
unset($attrs2,$entry,$entry2);
include './header.php';
?>
<body>
<h3 class="title"><?php echo $lang['server_info_for'] . htmlspecialchars( $server_name ); ?></h3>
<h3 class="subtitle"><?php echo $lang['server_reports_following']; ?></h3>
<h3 class="title"><?php echo $lang['server_info_for'] . htmlspecialchars($ldapserver->name); ?></h3>
<h3 class="subtitle"><?php echo $lang['server_reports_following']; ?></h3>
<?php if( $count == 0 || $attrs['count'] == 0 ) { ?>
<?php if ($count == 0 || $attrs['count'] == 0) { ?>
<br />
<br />
<center><?php echo $lang['nothing_to_report']; ?></center>
<br /><br /><center><?php echo $lang['nothing_to_report']; ?></center>
<?php exit; ?>
<?php } ?>
<table class="edit_dn">
<?php
for( $i=0; $i<$attrs['count']; $i++ ) {
$attr = $attrs[$i];
$schema_href = "schema.php?server_id=$server_id&amp;view=attributes&amp;viewvalue=$attr";
?>
exit;
}
?>
<table class="edit_dn">
<?php
for ($i = 0; $i < $attrs['count']; $i++ ) {
$attr = $attrs[$i];
$schema_href = sprintf('schema.php?server_id=%s&amp;view=attributes&amp;viewvalue=%s',$ldapserver->server_id,$attr);
?>
<tr>
<td class="attr">
<b>
<a title="<?php echo sprintf($lang['attr_name_tooltip'],$attr); ?>"
href="<?php echo $schema_href; ?>"><?php echo htmlspecialchars($attr); ?></a>
</b>
</td>
</tr>
<tr>
<td class="val">
<table class="edit_dn">
<?php
for ($j = 0; $j < $attrs[$attr]['count']; $j++) {
$oidtext = '';
print '<tr>';
if (preg_match('/^[0-9]+\.[0-9]+/',$attrs[$attr][$j])) {
printf('<td width=5%%><acronym title="%s"><img src="images/rfc.png"></acronym></td>',
htmlspecialchars($attrs[$attr][$j]));
if ($oidtext = support_oid_to_text($attrs[$attr][$j]))
if (isset($oidtext['ref']))
printf('<td><acronym title="%s">%s</acronym></td>',$oidtext['ref'],$oidtext['title']);
else
printf('<td>%s</td>',$oidtext['title']);
else
printf('<td><small>%s</small></td>',$attrs[$attr][$j]);
} else {
printf('<td>%s</td>',htmlspecialchars($attrs[$attr][$j]));
}
print '</tr>';
if (isset($oidtext['desc']))
printf('<tr><td colspan=2><small>%s</small></td></tr>',$oidtext['desc']);
}
?>
</table>
</td>
</tr>
<tr>
<td class="attr">
<b>
<a title="<?php echo sprintf( $lang['attr_name_tooltip'], $attr ); ?>"
href="<?php echo $schema_href; ?>"><?php echo htmlspecialchars( $attr ); ?></a>
</b>
</td>
</tr>
<tr>
<td class="val">
<?php for( $j=0; $j<$attrs[ $attr ][ 'count' ]; $j++ )
echo htmlspecialchars( $attrs[ $attr ][ $j ] ) . "<br />\n"; ?>
</td>
</tr>
<?php } ?>
</table>
</table>
</body>
</html>

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/session_functions.php,v 1.12 2004/09/09 12:45:09 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/session_functions.php,v 1.14 2005/07/16 03:13:54 wurley Exp $
/**
* A collection of functions to handle sessions throughout phpLDAPadmin.
@ -23,8 +23,9 @@ define('pla_session_id_ses_max', 36);
*
* @return string the new session ID string
*/
function pla_session_get_id()
{
function pla_session_get_id() {
debug_log(sprintf('pla_session_get_id(): Entered with ()'),2);
$id_md5 = md5(rand(1,1000000));
$ip_md5 = md5($_SERVER['REMOTE_ADDR']);
$id_hex = hexdec($id_md5[0]) + 1;
@ -34,10 +35,10 @@ function pla_session_get_id()
else
$ip_len = $ip_hex - 1;
$new_id = substr($id_md5, 0, $id_hex) .
$new_id = substr($id_md5, 0, $id_hex) .
substr($ip_md5, $ip_hex, $ip_len) .
substr($id_md5, $id_hex, pla_session_id_ses_max - ($id_hex + $ip_len));
return $new_id;
}
@ -46,8 +47,9 @@ function pla_session_get_id()
*
* @return bool True, if the session is valid
*/
function pla_session_verify_id()
{
function pla_session_verify_id() {
debug_log(sprintf('pla_session_verify_id(): Entered with ()'),2);
$check_id = session_id();
$ip_md5 = md5($_SERVER['REMOTE_ADDR']);
$id_hex = hexdec($check_id[0]) + 1;
@ -56,7 +58,7 @@ function pla_session_verify_id()
$ip_len = pla_session_id_ip_min;
else
$ip_len = $ip_hex - 1;
$ip_ses = substr($check_id, $id_hex, $ip_len);
$ip_ver = substr($ip_md5, $ip_hex, $ip_len);
@ -70,8 +72,9 @@ function pla_session_verify_id()
* @see PLA_SESSION_ID
* @return bool Returns true if the session was started the first time
*/
function pla_session_start()
{
function pla_session_start() {
debug_log(sprintf('pla_session_start(): Entered with ()'),2);
// If session.auto_start is on in the server's PHP configuration (php.ini), then
// we will have problems loading our schema cache since the session will have started
// prior to loading the SchemaItem (and descedants) class. Destroy the auto-started
@ -111,9 +114,7 @@ function pla_session_start()
/**
* Stops the current session.
*/
function pla_session_close()
{
function pla_session_close() {
@session_write_close();
}
?>

Some files were not shown because too many files have changed in this diff Show More