RELEASE 0.9.6

This commit is contained in:
Deon George 2009-06-30 19:24:29 +10:00
parent d12096bbd3
commit 7ff3528665
122 changed files with 13604 additions and 6011 deletions

View File

@ -1 +1 @@
0.9.5
0.9.6

View File

@ -1,9 +1,7 @@
<?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.12 2005/03/05 06:27:06 wurley Exp $
/*
* add_attr.php
/**
* Adds an attribute/value pair to an object
*
* Variables that come in as POST vars:
@ -12,130 +10,158 @@
* - attr
* - val
* - binary
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
require 'templates/template_config.php';
$server_id = $_POST['server_id'];
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
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'];
$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):
// 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',$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'] );
}
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'] );
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;
$f = fopen( $file, 'r' );
$binary_data = fread( $f, filesize( $file ) );
fclose( $f );
$val = $binary_data;
if( is_binary_option_required( $server_id, $attr ) )
$attr .=";binary";
$attr .= ";binary";
}
// Automagically hash new userPassword attributes according to the
// chosen in config.php.
if( 0 == strcasecmp( $attr, 'userpassword' ) )
{
if( 0 == strcasecmp( $attr, 'userpassword' ) ) {
if( isset( $servers[$server_id]['default_hash'] ) &&
$servers[$server_id]['default_hash'] != '' )
{
$servers[$server_id]['default_hash'] != '' ) {
$enc_type = $servers[$server_id]['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( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=$encoded_attr" );
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 int $server_id Server ID 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( $server_id, $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"
);
// 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 ) )
// 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,32 @@
<?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.11 2005/03/05 06:27:06 wurley Exp $
/*
* add_attr_form.php
/**
* Displays a form for adding an attribute/value to an LDAP entry.
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($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 = $_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 +34,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,93 +60,111 @@ 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 $server_id; ?>" />
<input type="hidden" name="dn" value="<?php echo htmlspecialchars($dn); ?>" />
<select name="attr"><?php
<select name="attr">
$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 ) ] ) . " (" .
<?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 />
} else {
$attr_display = htmlspecialchars( $a );
}
<?php } ?>
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 ) { ?>
<?php echo $lang['add_new_binary_attr']; ?>
<?php 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="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 ) ] ) . " (" .
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 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 ) ] ) . " (" .
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="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 />
@ -159,16 +182,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,41 @@
<?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.14 2005/03/20 04:43:36 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:
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
* - new_oclass
* - new_attrs (array, if any)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($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 = rawurldecode( $_POST['dn'] );
$encoded_dn = rawurlencode( $dn );
$new_oclass = $_POST['new_oclass'];
$server_id = $_POST['server_id'];
$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,9 +47,9 @@ 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',$server_id,$attr,$badattr);
pla_error(sprintf( $lang['unique_attr_failed'],$attr,$badattr,$dn,$search_href ) );
}
$new_entry[ $attr ] = $val;
@ -54,17 +59,12 @@ if( is_array( $new_attrs ) && count( $new_attrs ) > 0 )
//print_r( $new_entry );
//exit;
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$add_res = @ldap_mod_add( $ds, $dn, $new_entry );
$add_res = @ldap_mod_add( $ldapserver->connect(), $dn, $new_entry );
if( ! $add_res )
{
pla_error( $lang['could_not_perform_ldap_mod_add'], ldap_error( $ds ), ldap_errno( $ds ) );
}
else
{
if( ! $add_res ) {
pla_error( $lang['could_not_perform_ldap_mod_add'],ldap_error($ldapserver->connect()),ldap_errno($ldapserver->connect()) );
} else {
header( "Location: edit.php?server_id=$server_id&dn=$encoded_dn&modified_attrs[]=objectclass" );
}
?>

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.18 2005/03/12 14:03:36 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,38 +9,44 @@
* 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:
* Variables that come in as REQUEST vars:
* - dn (rawurlencoded)
* - server_id
* - 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'];
$server_id = (isset($_REQUEST['server_id']) ? $_REQUEST['server_id'] : '');
$ldapserver = new LDAPServer($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 );
$oclass = get_schema_objectclass( $ldapserver, $new_oclass );
if( $oclass )
$must_attrs = $oclass->getMustAttrs();
else
$must_attrs = array();
@ -54,35 +58,39 @@ 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->getName() );
// 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>
' ' . $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 />
@ -97,9 +105,10 @@ if( count( $needed_attrs ) > 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,14 @@ 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 ) );
<?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( $ds ), ldap_errno( $ds ) );
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" );
}
?>

View File

@ -1,10 +1,9 @@
<?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.17 2005/03/12 10:42:27 wurley Exp $
/*
* add_value.php
/**
* Adds a value to an attribute for a given dn.
*
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - attr (rawurlencoded) the attribute to which we are adding a value
@ -12,58 +11,63 @@
* - new_value (form element)
* - 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 );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
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'] );
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
if( is_attr_read_only( $ldapserver, $attr ) )
pla_error(sprintf($lang['attr_is_read_only'],htmlspecialchars( $attr )));
// 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',$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' => $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 ) );
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" );

View File

@ -1,49 +1,56 @@
<?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.29 2005/03/12 14:03:36 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 as GET vars:
* - dn (rawurlencoded)
* - attr (rawurlencoded) the attribute to which we are adding a value
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
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'] );
$encoded_attr = rawurlencode( $attr );
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 );
$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;
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
$is_jpeg_photo = is_jpeg_photo( $ldapserver, $attr ); //( 0 == strcasecmp( $attr, 'jpegPhoto' ) ) ? true : false;
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'; ?>
@ -55,19 +62,21 @@ include './header.php'; ?>
<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;
<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['values_for_attribute']; ?> <b><?php echo htmlspecialchars($attr); ?></b>:
<?php if ($num_current_values) { ?>
<?php if( $is_jpeg_photo ) { ?>
<table><td>
<?php draw_jpeg_photos( $server_id, $dn, $attr, false ); ?>
</td></table>
<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>
@ -75,15 +84,24 @@ include './header.php'; ?>
</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',
$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',$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 -->
<p><small>
@ -93,21 +111,25 @@ include './header.php'; ?>
<?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 />
@ -123,14 +145,14 @@ include './header.php'; ?>
<?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>
<input type="submit" value="<?php echo $lang['add_new_objectclass']; ?>" />
<br />
<?php if( show_hints() ) { ?>
@ -138,31 +160,35 @@ include './header.php'; ?>
<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\""; ?>>
if( is_attr_binary( $ldapserver, $attr ) ) echo "enctype=\"multipart/form-data\""; ?>>
<input type="hidden" name="server_id" value="<?php echo $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, $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 +202,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 {

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,9 +1,7 @@
<?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.12 2005/02/25 13:44:05 wurley Exp $
/*
* collapse.php
/**
* This script alters the session variable 'tree', collapsing it
* at the dn specified in the query string.
*
@ -12,15 +10,21 @@
* - server_id
*
* Note: this script is equal and opposite to expand.php
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
//$ldapserver = new LDAPServer($server_id);
//if( ! $ldapserver->haveAuthInfo())
// pla_error( $lang['not_enough_login_info'] );
$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 ) );
initialize_session_tree();
@ -35,10 +39,9 @@ $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();
}
$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" );
?>

View File

@ -1,10 +1,11 @@
<?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.59 2005/03/16 11:20:23 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.
*
* @package phpLDAPadmin
*/
// Work-around to get PLA to work in PHP5
@ -19,8 +20,9 @@ else
// For PHP4
error_reporting( E_ALL );
// For PHP5 backward/forward compatibility
/**
* For PHP5 backward/forward compatibility
*/
if( ! defined( 'E_STRICT' ) ) {
define( 'E_STRICT', 2048 );
}
@ -69,6 +71,8 @@ if( file_exists( realpath( './config.php' ) ) ) {
$required_files = array(
// The base English language strings
'./lang/recoded/en.php',
// Functions for talking to LDAP servers.
'./server_functions.php',
// Functions for managing the session (pla_session_start(), etc.)
'./session_functions.php',
// Functions for reading the server schema (get_schema_object_classes(), etc.)
@ -76,8 +80,13 @@ $required_files = array(
// 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' );
'./emuhash_functions.php',
// Functions for sending syslog messages
'./syslog.php',
// Functions for running various hooks
'./hooks.php',
// Functions for timeout and automatic logout feature
'./timeout_functions.php' );
// Include each required file and check for sanity.
foreach( $required_files as $file_name ) {
@ -91,7 +100,7 @@ foreach( $required_files as $file_name ) {
}
if( pla_session_start() )
postSessionInit();
run_hook ( 'post_session_init', array () );
// Language configuration. Auto or specified?
// Shall we attempt to auto-determine the language?
@ -121,6 +130,7 @@ if( isset( $language ) ) {
}
}
}
} else {
// grab the language file configured in config.php
if( $language != null ) {
@ -152,6 +162,7 @@ $templates['custom'] =
// 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 +170,11 @@ 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 = new LDAPServer($_REQUEST['server_id']);
if ( $ldapserver->haveAuthInfo() )
set_lastactivity( $ldapserver );
}
?>

559
compare.php Normal file
View File

@ -0,0 +1,559 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/compare.php,v 1.4 2005/03/18 07:24:30 wurley Exp $
/**
* Compare two DNs - the destination DN is editable.
*
* Variables that come in as POST vars:
*/
/**
* @todo Dont allow adding values if the objectclass doesnt exist.
* @todo Show what objectclass needs to be added to add a value.
*/
require realpath( '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 = new LDAPServer($server_id_src);
if( ! $ldapserver_src->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$ldapserver_dst = new LDAPServer($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, get_view_deref_setting() );
$attrs_dst = get_object_attrs( $ldapserver_dst, $dn_dst, false, get_view_deref_setting() );
# 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=4>
<h3 class="title"><?php echo $lang['comparing']; ?></h3>
</td></tr>
<tr>
<td colspan=2>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver_src->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name'];?>: <b><?php echo htmlspecialchars( ( $dn_src ) ); ?></b></h3>
</td>
<td colspan=2>
<h3 class="subtitle"><?php echo $lang['server']; ?>: <b><?php echo $ldapserver_dst->name; ?></b> &nbsp;&nbsp;&nbsp; <?php echo $lang['distinguished_name'];?>: <b><?php echo htmlspecialchars( ( $dn_dst ) ); ?></b></h3>
</td>
</tr>
<tr>
<td colspan=3><td 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 ) ) {
echo "<tr><td colspan=\"2\">(" . $lang['no_attributes'] . ")</td></tr>\n";
echo "</table>";
echo "</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 = '';
// is there a user-friendly translation available for this attribute?
if( isset( $friendly_attrs[ strtolower( $attr ) ] ) ) {
$attr_display = $friendly_attrs[ strtolower( $attr ) ];
$attr_note = "<acronym title=\"" . sprintf( $lang['alias_for'], $attr_display, $attr ) . "\">alias</acronym>";
} 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( $required_by ) {
if( trim( $attr_note ) )
$attr_note .= ', ';
$attr_note .= "<acronym title=\"" . sprintf( $lang['required_for'], $required_by ) . "\">" . $lang['required'] . "</acronym>&nbsp;";
} ?>
<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>
<?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; ?>
<td>&nbsp</td><td class="val">
<?php // If this attribute isnt set, then show a blank.
$toJump = 0;
switch ($side) {
case 'src':
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':
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' ) && obfuscate_password_display() )
echo preg_replace( '/./', '*', $val ) . "<br />";
else
echo htmlspecialchars( $val ) . "<br />";
}
} else {
if( 0 == strcasecmp( $attr, 'userPassword' ) && 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( 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>&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 );
echo "<div class=\"add_value\">(<a href=\"$add_href\" title=\"" . sprintf( $lang['add_value_tooltip'], $attr ) . "\">" . $lang['add_value'] . "</a>)</div>\n";
}
}
}
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>

82
compare_form.php Normal file
View File

@ -0,0 +1,82 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/compare_form.php,v 1.1 2005/03/12 14:03:36 wurley Exp $
/**
* Compares to DN entries side by side.
*
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
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($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 $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

@ -140,6 +140,22 @@ $servers[$i]['unique_attrs_dn'] = '';
$servers[$i]['unique_attrs_dn_pass'] = '';
/* The password for the dn above */
// $servers[$i]['only_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' );
/* If you set this, then only these DNs are allowed to log in.
This array can contain individual users, groups or ldap search filter(s).
Keep in mind that the user has not authenticated yet, so this will be an
anonymous search to the LDAP server, so make your ACLs allow these searches
to return results! */
// $servers[$i]['visible'] = false;
/* Set this if you dont want this LDAP server to show in the tree */
// $servers[$i]['session_timeout'] = 5;
/* 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 ) */
// If you want to configure additional LDAP servers, do so below.
$i++;
$servers[$i]['name'] = 'Another server';
@ -161,6 +177,8 @@ $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';
$servers[$i]['unique_attrs_dn'] = '';
$servers[$i]['unique_attrs_dn_pass'] = '';
// If you want to configure more LDAP servers, copy and paste the above (including the "$i++;")
@ -173,6 +191,9 @@ $jpeg_temp_dir = "/tmp"; // Example for Unix systems
/** Appearance and Behavior **/
/** **/
// Whenever we display a date use this format.
$date_format = "%A %e %B %Y";
// Set this to true if you want to hide the Request New Feature and Report bugs.
$hide_configuration_management = false;
@ -316,6 +337,28 @@ $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 **/
/** **/

179
copy.php
View File

@ -1,48 +1,59 @@
<?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.31 2005/03/14 11:46:24 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' );
$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;
$source_server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$dest_server_id = (isset($_POST['dest_server_id']) ? $_POST['dest_server_id'] : '');
if( is_server_read_only( $dest_server_id ) )
$ldapserver_source = new LDAPServer($source_server_id);
$ldapserver_dest = new LDAPServer($dest_server_id);
if( $ldapserver_dest->isReadOnly() )
pla_error( $lang['copy_server_read_only'] );
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_source->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
if( ! $ldapserver_dest->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$source_dn = $_POST['old_dn'];
$dest_dn = $_POST['new_dn'];
$do_recursive = ( isset( $_POST['recursive'] ) && $_POST['recursive'] == 'on' ) ? true : false;
$remove = ( isset( $_POST['remove'] ) && $_POST['remove'] == 'yes' ) ? true : false;
$encoded_dn = rawurlencode( $source_dn );
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 ) )
if( dn_exists( $ldapserver_dest, $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 ) ) )
if( ! dn_exists( $ldapserver_dest, get_container( $dest_dn ) ) )
pla_error( sprintf( $lang['copy_dest_container_does_not_exist'], pretty_print_dn( get_container($dest_dn) ) ) );
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";
@ -51,105 +62,103 @@ if( $do_recursive ) {
echo "<br /><br />";
echo "<small>\n";
echo $lang['copy_building_snapshot'];
flush();
build_tree( $source_server_id, $source_dn, $snapshot_tree, $filter );
build_tree( $ldapserver_source, $source_dn, $snapshot_tree, $filter );
echo " <span style=\"color:green\">" . $lang['success'] . "</span><br />\n";
flush();
// prevent script from bailing early on a long delete
@set_time_limit( 0 );
$copy_result = r_copy_dn( $source_server_id, $dest_server_id, $snapshot_tree, $source_dn, $dest_dn );
$copy_result = r_copy_dn( $ldapserver_source, $ldapserver_dest, $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_source, $source_dn, $ldapserver_dest, $dest_dn );
}
if( $copy_result )
{
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( 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] ) )
{
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 );
$tree_icons[$dest_server_id][$dest_dn] = get_icon( $ldapserver_dest, $dest_dn );
$_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 echo $lang['copy_successful_like_to']. "<a href=\"$edit_url\">" . $lang['copy_view_new_entry'] ."</a>"?>
</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 ($remove) {
sleep(2);
$delete_url = "delete_form.php?server_id=$dest_server_id&dn=" .rawurlencode( $source_dn ); ?>
<!-- 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_source, $ldapserver_dest, $tree, $root_dn, $dest_dn ) {
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 ) {
$copy_result = copy_dn( $ldapserver_source, $root_dn, $ldapserver_dest, $dest_dn );
if( ! $copy_result )
return false;
}
echo "<span style=\"color:green\">".$lang['success']."</span></nobr><br />\n";
flush();
$children = isset( $tree[ $root_dn ] ) ? $tree[ $root_dn ] : null;
if( is_array( $children ) && count( $children ) > 0 )
{
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 );
r_copy_dn( $ldapserver_source, $ldapserver_dest, $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_source, $source_dn, $ldapserver_dest, $dest_dn ) {
global $lang;
$ds = pla_ldap_connect( $dest_server_id );
pla_ldap_connection_is_error( $ds );
$attrs = get_object_attrs( $ldapserver_source, $source_dn );
$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, '=' ) );
@ -160,27 +169,39 @@ function copy_dn( $source_server_id, $source_dn, $dest_server_id, $dest_dn )
unset( $new_entry['dn'] );
// 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 ) );
}
if( true === run_hook ( 'pre_entry_create',
array ( 'server_id' => $ldapserver_dest->server_id, 'dn' => $dest_dn, 'attrs' => $new_entry ) ) ) {
$add_result = @ldap_add( $ldapserver_dest->connect(), $dest_dn, $new_entry );
if( ! $add_result ) {
run_hook ( 'post_entry_create', array ( 'server_id' => $ldapserver_dest->server_id,
'dn' => $dest_dn, 'attrs' => $new_entry ) );
echo "</small><br /><br />";
pla_error( $lang['copy_failed'] . $dest_dn, ldap_error( $ldapserver_dest->connect() ), ldap_errno( $ldapserver_dest->connect() ) );
}
return $add_result;
return $add_result;
} else {
return false;
return false;
}
}
function build_tree( $source_server_id, $root_dn, &$tree, $filter='(objectClass=*)' )
/**
* @param object $ldapserver
* @param dn $root_dn
* @param unknown $tree
* @param string $filter
*/
function build_tree( $ldapserver, $root_dn, &$tree, $filter='(objectClass=*)' )
{
$children = get_container_contents( $source_server_id, $root_dn, 0, $filter );
if( is_array( $children ) && count( $children ) > 0 )
{
$children = get_container_contents( $ldapserver, $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 );
build_tree( $ldapserver, $child_dn, $tree, $filter );
}
}
?>

View File

@ -1,71 +1,69 @@
<?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.22 2005/03/05 06:27:06 wurley Exp $
/*
* copy_form.php
/**
* Copies a given object to create a new one.
*
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($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 = $_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( $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 );
$attrs = get_object_attrs( $ldapserver, $dn );
$select_server_html = server_select_list($server_id,true,'dest_server_id');
$children = get_container_contents( $ldapserver, $dn );
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; ?>" />
@ -75,7 +73,7 @@ if( is_array( $children ) && count( $children ) > 0 ) { ?>
<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 +92,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,11 +110,10 @@ 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() ) {?>

View File

@ -1,9 +1,7 @@
<?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.32 2005/03/05 06:27:06 wurley Exp $
/*
* create.php
/**
* Creates a new object.
*
* Variables that come in as POST vars:
@ -14,26 +12,32 @@
* and the values being their respective values)
* - object_classes (rawurlencoded, and serialized array of objectClasses)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( './common.php' );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
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'] );
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'] );
// build the new entry
$new_entry = array();
if( isset( $required_attrs ) && is_array( $required_attrs ) ) {
@ -46,20 +50,24 @@ if( isset( $required_attrs ) && is_array( $required_attrs ) ) {
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] : '';
$val = isset( $vals[$i] ) ? $vals[$i] : '';
if( '' !== trim($val) )
$new_entry[ $attr ][] = $val;
$new_entry[ $attr ][] = $val;
}
}
}
@ -71,78 +79,80 @@ 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',$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 ][ $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' => $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' => $server_id, 'dn' => $new_dn, 'attrs' => $new_entry ) );
if( $redirect )
$redirect_url = $redirect;
else
$redirect_url = "edit.php?server_id=$server_id&dn=" . 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 );
$tree_icons[$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[$server_id][$container] ) || $new_dn == $servers[$server_id]['base'] ) { ?>
<?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,34 @@
<?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.22 2005/02/25 13:44:05 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 as GET vars
* - server_id (optional)
* - container (rawurlencoded) (optional)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
require 'templates/template_config.php';
$server_id = $_REQUEST['server_id'];
$server_id = (isset($_REQUEST['server_id']) ? $_REQUEST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( $ldapserver->isReadOnly() )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$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($server_id,true);
include './header.php'; ?>
@ -51,76 +36,99 @@ 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;
}
<td class="heading"><?php echo $lang['template']; ?>:</td>
<td>
?>
<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 class="template_display">
<tr>
<td>
<table class="templates">
</table>
</td>
</tr>
</table>
<?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;
} ?>
</td>
</tr>
<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>
<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,20 +1,32 @@
<?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.22 2005/03/12 00:57:17 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:
* server_id
* template
*
* @package phpLDAPadmin
*/
/**
*/
require_once 'common.php';
require 'templates/template_config.php';
$template = http_get_value( 'template' );
$template !== false or pla_error( $lang['ctemplate_no_template'] );
$server_id = (isset($_REQUEST['server_id']) ? $_REQUEST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
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 ) {
@ -28,35 +40,29 @@ if( $template == 'custom' ) {
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';
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'] ) ) );
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,53 +1,55 @@
<?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.21 2005/03/05 06:27:06 wurley Exp $
/*
* delete.php
/**
* Deletes a DN and presents a "job's done" message.
*
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($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 );
$server_id = $_POST['server_id'];
if( $dn === null )
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 );
if( true === run_hook ( 'pre_entry_delete', array ( 'server_id' => $server_id, 'dn' => $dn ) ) ) {
$del_result = @ldap_delete( $ldapserver->connect(), $dn );
} else {
exit;
pla_error( sprintf( $lang['could_not_delete_entry'], '<b>' . pretty_print_dn( $dn ) . '</b>' ));
}
if( $del_result )
{
if( $del_result ) {
// Custom callback
postEntryDelete( $server_id, $dn );
run_hook ( 'post_entry_delete', array ( 'server_id' => $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 ) )
{
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)
@ -59,14 +61,13 @@ if( $del_result )
foreach( $subtree as $key => $sub_tree_dn )
if( 0 == strcasecmp( $sub_tree_dn, $dn ) )
unset( $tree[$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();
@ -76,11 +77,8 @@ if( $del_result )
<br />
<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 ) );
<?php } else {
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,51 @@
<?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.11 2005/03/05 06:27:06 wurley Exp $
/*
* delete_attr.php
/**
* Deletes an attribute from an entry with NO confirmation.
*
* On success, redirect to edit.php
* On failure, echo an error.
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_POST['server_id'];
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($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'];
if( is_attr_read_only( $server_id, $attr ) )
$encoded_dn = rawurlencode( $dn );
if( is_attr_read_only( $ldapserver, $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'] );
$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 )
{
$res = @ldap_modify( $ldapserver->connect(), $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 ) );
}
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,154 @@
<?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.19 2005/03/05 06:27:06 wurley Exp $
/*
/**
* delete_form.php
* Displays a last chance confirmation form to delete a dn.
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($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 = $_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 ) {
<?php flush(); // so the user can get something on their screen while we figure out how many children this object has
// get the total number of child objects (whole sub-tree)
$s = pla_ldap_search( $server_id, 'objectClass=*', $dn, array('dn'), 'sub' );
$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>
<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 />
<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>
<?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>
</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 $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>
<?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 />
<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>
<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" />
</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 $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,11 @@
- 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
* Translators:
@ -30,11 +38,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 +53,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,58 @@
* 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,6 +1,11 @@
<?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.8 2005/02/25 13:44:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
include './common.php';
include './header.php';
@ -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,28 +1,39 @@
<?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.10 2005/03/05 06:27:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($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 = 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 ) ) );
dn_exists( $ldapserver, $dn ) or
pla_error( sprintf( $lang['no_such_entry'], pretty_print_dn( $dn ) ) );
$search = @ldap_read( $ds, $dn, "(objectClass=*)", array( $attr ), 0, 0, 0, get_view_deref_setting() );
$search = @ldap_read( $ldapserver->connect(),$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 );
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
@ -31,5 +42,4 @@ 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,9 +1,7 @@
<?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.52 2005/03/05 06:27:06 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
@ -14,40 +12,42 @@
* - 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' );
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$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 );
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : false;
$server_id !== false or pla_error( $lang['missing_server_id_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";
$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 );
if( $use_default_template ) {
require realpath( 'templates/modification/default.php' );
} else {
$template = get_template( $server_id, $dn );
} else {
$template = get_template( $ldapserver, $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'];
@ -57,5 +57,4 @@ if( $use_default_template ) {
require realpath( 'templates/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,90 +1,100 @@
<?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.23 2005/03/25 16:30:21 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;
$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";
flush();
?>
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";
<?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";
}
/* 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( $server_id !== false && $container !== false ) {
$ldapserver = new LDAPServer($server_id);
$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() );
$dn_list = get_container_contents( $ldapserver, $container, 0, '(objectClass=*)', get_tree_deref_setting() );
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 = sprintf('entry_chooser.php?form_element=%s&rdn=%s',$return_form_element,$rdn);
break;
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 );
} 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,$server_id,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( 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".
$href = sprintf("javascript:returnDN( '%s%s' )",($rdn ? "$rdn," : ''),$dn);
echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=$return_form_element&rdn=$rdn".
"&amp;server_id=$server_id&amp;container=" .
rawurlencode( $dn ) . "\"><img src=\"images/plus.png\" /></a> " .
"<a href=\"$href\">" . htmlspecialchars( $dn ) . "</a><br />\n";
}
}
/* draw the root of the selection tree (ie, list all the servers) */
else
{
} 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 />";
$ldapserver = new LDAPServer($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";
echo "<b>" . htmlspecialchars( $ldapserver->name ) . "</b><br />\n";
foreach ($ldapserver->getBaseDN() as $dn) {
if( ! $dn ) {
echo "<small>&nbsp;&nbsp;&nbsp;(". $lang['could_not_det_base_dn'] .")</small><br />";
} else {
$href = sprintf("javascript:returnDN( '%s%s' )",($rdn ? "$rdn," : ''),$dn);
echo "&nbsp;&nbsp;&nbsp;<a href=\"entry_chooser.php?form_element=" .
"$return_form_element&rdn=$rdn&amp;server_id=$id&amp;container=" .
rawurlencode( $dn ) . "\"><img src=\"images/plus.png\" /></a> " .
"<a href=\"$href\">" . htmlspecialchars( $dn ) . "</a><br />\n";
}
}
}
}
@ -102,5 +112,4 @@ $elmpart =substr($return_form_element,strpos($return_form_element,".")+1);
// rebuilt return value
$return_form_element = $formpart . ".elements[\"" . $elmpart . "\"]";
?>

View File

@ -1,9 +1,7 @@
<?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.20 2005/03/05 06:27:06 wurley Exp $
/*
* expand.php
/**
* This script alters the session variable 'tree', expanding it
* at the dn specified in the query string.
*
@ -12,10 +10,20 @@
* - server_id
*
* Note: this script is equal and opposite to collapse.php
* @package phpLDAPadmin
* @see collapse.php
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
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");
@ -30,17 +38,12 @@ $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=*)', get_tree_deref_setting() );
usort( $contents, 'pla_compare_dns' );
$tree[$server_id][$dn] = $contents;
@ -50,7 +53,7 @@ $tree[$server_id][$dn] = $contents;
//exit;
foreach( $contents as $dn )
$tree_icons[$server_id][$dn] = get_icon( $server_id, $dn );
$tree_icons[$server_id][$dn] = get_icon( $ldapserver, $dn );
$_SESSION['tree'] = $tree;
$_SESSION['tree_icons'] = $tree_icons;
@ -64,9 +67,8 @@ $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();

View File

@ -1,30 +1,39 @@
<?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.13 2005/03/05 04:26:25 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require 'export_functions.php';
// get the POST parameters
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($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 );

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.20 2005/02/25 13:44:06 wurley Exp $
/**
* export_form.php
@ -7,6 +7,9 @@
*
* Html form to choose an export format(ldif,...)
*
* @package phpLDAPadmin
*/
/**
*/
require 'export_functions.php';

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.26 2005/03/21 12:43:17 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 extends LDAPServer{
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;
function LdapExportInfo($server_id,$base_dn = NULL,$query_filter = NULL,$scope = NULL){
// Call our parent to initialise.
parent::LDAPServer($server_id);
// 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;
}
}
@ -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.
@ -266,17 +273,16 @@ class PlaLdapExporter extends PlaAbstractExporter{
$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->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' )
@ -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,16 +1,20 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/header.php,v 1.14 2004/10/24 23:51:49 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/header.php,v 1.15 2005/02/25 13:44:06 wurley Exp $
// We want to get $language into scope in case we were included
// from within a function
global $language;
/**
* @package phpLDAPadmin
*/
// 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\"" );
// We want to get $language into scope in case we were included
// from within a function
global $language;
// XML version and encoding for well-behaved browsers
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
// 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"
@ -19,12 +23,14 @@
<head>
<title>phpLDAPadmin</title>
<link rel="stylesheet" href="style.css" media="screen" />
<?php
if( isset( $server_id ) ) {
<?php if( isset( $server_id ) ) {
$custom_file = get_custom_file( $server_id, 'style.css' );
if( strcmp( $custom_file, 'style.css' ) != 0 ) { ?>
if( strcmp( $custom_file, 'style.css' ) != 0 ) { ?>
<link rel="stylesheet" href="<?php echo $custom_file ?>" media="screen" />
<?php } } ?>
<?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>

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>

190
hooks.php Normal file
View File

@ -0,0 +1,190 @@
<?
// $Header: /cvsroot/phpldapadmin/phpldapadmin/hooks.php,v 1.4 2005/03/05 09:38:46 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;
if ($debug)
syslog_msg ( LOG_DEBUG, "Running hook $hook_name." );
if ( ! array_key_exists ( $hook_name, $hooks ) ) {
syslog_msg ( LOG_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'] );
if ($debug)
syslog_msg ( LOG_DEBUG,"Calling " . $hook['hook_function'] . "\n" );
$result = call_user_func_array ( $hook['hook_function'], $args );
syslog_msg ( "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 ) {
if ($debug)
syslog_msg ( LOG_DEBUG, "Function " . $hook['hook_function'] . " returned $result\n" );
while ( $rollbacks ) {
$rollback = array_pop ( $rollbacks );
if ( $rollback != false ) {
if ($debug)
syslog_msg ( LOG_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

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/timeout.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 608 B

145
index.php
View File

@ -1,6 +1,9 @@
<?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.32 2005/02/26 12:35:05 wurley Exp $
/**
* @package phpLDAPadmin
*/
/*******************************************
<pre>
@ -14,7 +17,6 @@ PHP is not installed on your web server!!!
require './common.php';
if( ! file_exists(realpath( 'config.php' )) ) {
?>
<html>
@ -27,23 +29,24 @@ if( ! file_exists(realpath( 'config.php' )) ) {
<h3 class="title">Configure phpLDAPadmin</h1>
<br />
<br />
<center>
<?php echo $lang['need_to_configure']; ?>
</center>
</body>
</html>
<?php } elseif( check_config() ) {
<?php } elseif( check_config() ) {
require 'config.php';
require './config.php';
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
?>
<!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; ?>,*">
@ -53,12 +56,7 @@ echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
</html>
<?php } else { ?>
<?php } ?>
<?php
<?php }
/*
* Makes sure that the config file is properly setup and
@ -66,24 +64,22 @@ echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
* TODO: Check ALL config elements for correctness in syntax
* TODO: Make sure all required config stuff is defined.
*/
function check_config()
{
global $lang;
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() );
}
/* Make sure this PHP install has LDAP support */
if( ! extension_loaded( 'ldap' ) )
{
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." );
return false;
@ -91,69 +87,75 @@ function check_config()
// 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;
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
ob_start();
include 'config.php';
include './config.php';
$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' );
?>
<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>
<html>
<head>
<title>phpLDAPadmin Config File Error</title>
<link rel="stylesheet" href="style.css" />
</head>
<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>
<body>
<h3 class="title">Config file error</h3>
<h3 class="subtitle">Syntax error on line <?php echo $line_num; ?></h3>
<?php
return false;
<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';
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 );
Please see the sample file config.php.example ", false );
return false;
}
@ -162,6 +164,7 @@ function check_config()
foreach( $servers as $i => $server )
if( isset( $server['host'] ) )
$count++;
if( $count == 0 ) {
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.
@ -170,13 +173,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 +188,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;
}
@ -200,5 +204,4 @@ 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.121 2005/03/26 01:18:28 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';
@ -74,13 +73,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';
@ -118,6 +117,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 +127,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';
@ -233,19 +230,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 +247,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';
@ -294,8 +290,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 +303,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).';
@ -356,10 +353,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,6 +381,7 @@ $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';
@ -397,8 +393,6 @@ $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 +431,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 +451,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 +510,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 +529,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';
@ -565,7 +560,6 @@ $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
@ -577,7 +571,6 @@ $lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'template';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'default template';
@ -671,4 +664,22 @@ $lang['t_create_address'] = 'Create Address';
// default template
$lang['t_check_pass'] = 'Check password...';
// 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.4 2005/03/08 10:21:59 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@ -37,7 +37,7 @@ $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 +56,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 +75,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,35 +94,35 @@ $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['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'] = '新規値追加';
@ -132,6 +134,7 @@ $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,16 +156,16 @@ $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']='Attributes で使する';
$lang['maximum_length']='最大長';
$lang['attribute_types']='属性タイプ';
$lang['syntaxes']='Syntaxes';
$lang['syntaxes']='文法一覧';
$lang['matchingrules']='一致ルール';
$lang['oid']='OID';
$lang['obsolete']='旧式';
@ -182,16 +185,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 +204,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,22 +220,23 @@ $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['bad_server_id_underline'] = '間違った server_id: ';
$lang['home'] = 'ホーム';
$lang['help'] = 'ヘルプ';
$lang['success'] = '成功';
$lang['server_colon_pare'] = 'サーバー: ';
$lang['look_in'] = 'Looking in: ';
@ -240,8 +244,8 @@ $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['not_logged_in'] = 'ログインしていません';
$lang['could_not_det_base_dn'] = 'ベース DN を決定することが出来ませんでした';
$lang['please_report_this_as_a_bug']='この不都合を報告してください。';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='はい';
@ -257,7 +261,11 @@ $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,14 +273,14 @@ $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['inappropriate_matching_note'] = '注: LDAP サーバーでこの属性の EQUALITY ルールをセットアップしていなかった場合、"inappropriate matching" エラーを取得するでしょう。';
$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['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 が同じです。';
@ -291,8 +299,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 +308,18 @@ $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['filter'] = 'フィルター';
$lang['search_filter'] = '検索フィルター';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this 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 +328,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'] = 'サーバー';
@ -365,16 +375,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 +392,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 +416,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 />';
@ -511,7 +520,7 @@ $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'] = 'システム属性を含む';
@ -519,19 +528,20 @@ $lang['csv_spreadsheet'] = 'CSV (スプレッドシート)';
// logins
$lang['could_not_find_user'] = 'ユーザー "%s" が見つかりません';
$lang['password_blank'] = 'You left the password blank.';
$lang['password_blank'] = 'パスワードが空です。';
$lang['login_cancelled'] = 'ログインが取り消されました。';
$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'] = 'エントリ選択';
@ -563,7 +573,7 @@ $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 +582,100 @@ $lang['password_checker_tool'] = 'パスワードチェックツール';
$lang['compare'] = '比較';
$lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'テンプレート';
$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'] = 'パスワード検査...';
?>

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,6 +301,8 @@ $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).';
@ -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.107 2005/03/26 01:18:28 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';
@ -74,13 +73,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';
@ -118,6 +117,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 +127,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';
@ -233,19 +230,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 +247,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';
@ -294,8 +290,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 +303,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).';
@ -356,10 +353,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,6 +381,7 @@ $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';
@ -397,8 +393,6 @@ $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 +431,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 +451,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 +510,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 +529,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';
@ -565,7 +560,6 @@ $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
@ -577,7 +571,6 @@ $lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'template';
$lang['switch_to'] = 'You may switch to the ';
$lang['default_template'] = 'default template';
@ -671,4 +664,22 @@ $lang['t_create_address'] = 'Create Address';
// default template
$lang['t_check_pass'] = 'Check password...';
// 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.4 2005/03/08 10:22:10 wurley Exp $
/* --- INSTRUCTIONS FOR TRANSLATORS ---
@ -37,7 +37,7 @@ $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 +56,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 +75,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,35 +94,35 @@ $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['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'] = '新規値追加';
@ -132,6 +134,7 @@ $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,16 +156,16 @@ $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']='Attributes で使する';
$lang['maximum_length']='最大長';
$lang['attribute_types']='属性タイプ';
$lang['syntaxes']='Syntaxes';
$lang['syntaxes']='文法一覧';
$lang['matchingrules']='一致ルール';
$lang['oid']='OID';
$lang['obsolete']='旧式';
@ -182,16 +185,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 +204,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,22 +220,23 @@ $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['bad_server_id_underline'] = '間違った server_id: ';
$lang['home'] = 'ホーム';
$lang['help'] = 'ヘルプ';
$lang['success'] = '成功';
$lang['server_colon_pare'] = 'サーバー: ';
$lang['look_in'] = 'Looking in: ';
@ -240,8 +244,8 @@ $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['not_logged_in'] = 'ログインしていません';
$lang['could_not_det_base_dn'] = 'ベース DN を決定することが出来ませんでした';
$lang['please_report_this_as_a_bug']='この不都合を報告してください。';
$lang['reasons_for_error']='This could happen for several reasons, the most probable of which are:';
$lang['yes']='はい';
@ -257,7 +261,11 @@ $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,14 +273,14 @@ $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['inappropriate_matching_note'] = '注: LDAP サーバーでこの属性の EQUALITY ルールをセットアップしていなかった場合、"inappropriate matching" エラーを取得するでしょう。';
$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['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 が同じです。';
@ -291,8 +299,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 +308,18 @@ $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['filter'] = 'フィルター';
$lang['search_filter'] = '検索フィルター';
$lang['filter_tooltip'] = 'When performing a recursive copy, only copy those entries which match this 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 +328,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'] = 'サーバー';
@ -365,16 +375,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 +392,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 +416,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 />';
@ -511,7 +520,7 @@ $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'] = 'システム属性を含む';
@ -519,19 +528,20 @@ $lang['csv_spreadsheet'] = 'CSV (スプレッドシート)';
// logins
$lang['could_not_find_user'] = 'ユーザー "%s" が見つかりません';
$lang['password_blank'] = 'You left the password blank.';
$lang['password_blank'] = 'パスワードが空です。';
$lang['login_cancelled'] = 'ログインが取り消されました。';
$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'] = 'エントリ選択';
@ -563,7 +573,7 @@ $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 +582,100 @@ $lang['password_checker_tool'] = 'パスワードチェックツール';
$lang['compare'] = '比較';
$lang['to'] = 'To';
// Templates
$lang['using'] = 'Using the';
$lang['template'] = 'テンプレート';
$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'] = 'パスワード検査...';
?>

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,6 +301,8 @@ $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).';
@ -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';
?>

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.2 2005/03/25 01:21:31 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 @@
<?
/* --- 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']='無法重新命名';
?>

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 @@
<?
/* --- 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']='無法重新命名';
?>

180
ldap_supported_oids.txt Normal file
View File

@ -0,0 +1,180 @@
# $Header: /cvsroot/phpldapadmin/phpldapadmin/ldap_supported_oids.txt,v 1.1 2005/03/07 20:24:42 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 control"
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 "Pages Results RFC 2696"
1.2.840.113556.1.4.417 "Show deleted control (Stateless)"
1.2.840.113556.1.4.473 "LDAP Server Sort Result extesion"
1.2.840.113556.1.4.474 "LDAP Server Sort Result extension response control"
1.2.840.113556.1.4.521 "Cross-domain move control (Stateless)"
1.2.840.113556.1.4.528 "Server search notification control (Forbidden)"
1.2.840.113556.1.4.529 "Extended DN control (Stateless)"
1.2.840.113556.1.4.616 "LDAP_CONTROL_REFERRALS"
1.2.840.113556.1.4.619 "Lazy commit control (Stateless)"
1.2.840.113556.1.4.800 "LDAP_CAP_ACTIVE_DIRECTORY_OID"
1.2.840.113556.1.4.801 "Security descriptor flags control (Stateless)"
1.2.840.113556.1.4.802 "Attribute Range Option"
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"
1.2.840.113556.1.4.841 "Directory synchronization control (Stateless)"
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 (Stateless)"
1.2.840.113556.1.4.1339 "Domain scope control (Stateless)"
1.2.840.113556.1.4.1340 "Search options control (Stateless)"
1.2.840.113556.1.4.1413 "LDAP ease modify restrictions"
1.2.840.113556.1.4.1504 "Attribute scoped query control (Stateless)"
1.2.840.113556.1.4.1670 "LDAP_CAP_ACTIVE_DIRECTORY_V51_OID"
1.2.840.113556.1.4.1781 "Fast concurrent bind extended operation (Forbidden)"
1.2.840.113556.1.4.1791 "LDAP_CAP_ACTIVE_DIRECTORY_LDAP_INTEG_OID"
1.2.840.113556.1.4.1852 "LDAP_SERVER_QUOTA_CONTROL_OID"
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 "Start TLS extended operation RFC2830"
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"
1.3.6.1.4.1.4203.1.5.2 "Return of all attributes of an object class"
1.3.6.1.4.1.4203.1.5.3 "Supports absolute True (&) and False (|) filters"
1.3.6.1.4.1.4203.1.5.4 "Server supports storing attributes with language tag options in the DIT"
1.3.6.1.4.1.4203.1.5.5 "Server 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. RFC 3672 control"
1.3.6.1.4.1.4203.1.10.2 "LDAP_CONTROL_NOOP"
1.3.6.1.4.1.4203.1.11.1 "Modify Password. RFC 3062 extension"
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"
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 "Manage DSA IT LDAPv3 control"
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"
2.16.840.1.113730.3.4.10 "VLV Response LDAPv3 control"
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"
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 "Proxied Authorization (version 2) Control"
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.30 2005/03/05 02:37:18 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 = new LDAPServer($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.18 2005/03/05 06:27:06 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 = new LDAPServer($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 />

140
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.40 2005/03/16 11:20:25 wurley Exp $
/**
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me the login info
@ -14,6 +13,10 @@
* - login_dn
* - login_pass
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
@ -22,87 +25,113 @@ require './common.php';
isset( $_POST['server_id'] ) or header( "Location: index.php" );
$server_id = $_POST['server_id'];
$ldapserver = new LDAPServer($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( ! $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 ) {
$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 ) ) {
elseif ( $ldapserver->isLoginAttrEnabled() ) {
// 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
// Is this a login string (printf-style)
if( $ldapserver->isLoginStringEnabled() ) {
$dn = str_replace( '<username>', $uid, $ldapserver->getLoginString() );
// 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';
} else {
// This is a standard login_attr
// 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'] );
}
// 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';
// restore the original auth_type
$servers[$server_id]['auth_type'] = $auth_type;
}
// search for the "uid" first, this will be an anonymous bind.
set_error_handler( 'temp_login_error_handler' );
$ldapserver->connect(true,true);
restore_error_handler();
if (!empty($servers[$ldapserver->server_id]['login_class'])) {
$filter = '(&(objectClass='.$servers[$ldapserver->server_id]['login_class'].')('.$servers[$ldapserver->server_id]['login_attr'].'='.$uid.'))';
} else {
$filter = $servers[$ldapserver->server_id]['login_attr'].'='.$uid;
}
// Got through each of the BASE DNs and test the login.
foreach ($ldapserver->getBaseDN() as $base_dn) {
debug_log(sprintf('login.php: 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('login.php: 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;
debug_log(sprintf('Setting login type to config with DN [%s]',$dn),9);
$save_auth_type = $ldapserver->auth_type;
$ldapserver->auth_type = 'config';
$servers[$ldapserver->server_id]['login_dn'] = $dn;
$servers[$ldapserver->server_id]['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 [%s]',$dn),9);
// verify that the login is good
if( null == $dn && null == $pass )
$ds = pla_ldap_connect( $server_id, true, false );
$ds = $ldapserver->connect(true,true,true);
else
$ds = pla_ldap_connect( $server_id, false, false );
$ds = $ldapserver->connect(true,false,true);
debug_log(sprintf('login.php: ds is a [%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'] );
syslog_msg ( LOG_NOTICE,"Authentification FAILED for $dn" );
}
$servers[$server_id]['auth_type'] = $auth_type;
set_login_dn( $server_id, $dn, $pass, $anon_bind ) or pla_error( $lang['could_not_set_cookie'] );
$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_msg ( LOG_NOTICE,"Authentification successful for $dn" );
}
session_write_close();
@ -113,13 +142,13 @@ include realpath( 'header.php' );
<script language="javascript">
<?php if( $anon_bind && anon_bind_tree_disabled() ) { ?>
parent.location.href='search.php?server_id=<?php echo $server_id; ?>'
parent.location.href='search.php?server_id=<?php echo $ldapserver->server_id; ?>'
<?php } else { ?>
parent.left_frame.location.reload();
<?php } ?>
<?php if ( isset($custom_welcome_page) and $custom_welcome_page ) { ?>
parent.right_frame.location.href='welcome.php';
<?php } ?>
</script>
@ -128,7 +157,7 @@ include realpath( 'header.php' );
<br />
<br />
<?php echo sprintf( $lang['successfully_logged_in_to_server'],
htmlspecialchars( $servers[$server_id]['name'] ) ); ?><br />
htmlspecialchars( $ldapserver->name ) ); ?><br />
<?php if( $anon_bind ) { ?>
(<?php echo $lang['anonymous_bind']; ?>)
<?php } ?>
@ -144,10 +173,9 @@ include realpath( 'header.php' );
*/
function temp_login_error_handler( $errno, $errstr, $file, $lineno )
{
global $lang;
global $lang;
if( 0 == ini_get( 'error_reporting' ) || 0 == error_reporting() )
return;
pla_error( $lang['could_not_connect'] . "<br /><br />" . htmlspecialchars( $errstr ) );
return;
pla_error( $lang['could_not_connect'] . "<br /><br />" . htmlspecialchars( $errstr ) );
}
?>

View File

@ -1,46 +1,40 @@
<?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.24 2005/02/25 13:44:06 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
* @param int $server_id - Should come via a GET variable.
* @package phpLDAPadmin
* @author The phpLDAPadmin development team
* @see login.php
*/
/**
*/
require './common.php';
$server_id = isset( $_GET['server_id'] ) ? $_GET['server_id'] : null;
$ldapserver = new LDAPServer($server_id);
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,21 +42,19 @@ include './header.php'; ?>
</script>
<?php } ?>
<h3 class="title"><?php echo sprintf( $lang['authenticate_to_server'], $servers[$server_id]['name'] ); ?></h3>
<h3 class="title"><?php echo sprintf( $lang['authenticate_to_server'], $ldapserver->name ); ?></h3>
<br />
<?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 />
@ -71,28 +63,34 @@ include './header.php'; ?>
<?php if( isset( $_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,34 @@
<?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.14 2005/03/16 11:20:25 wurley Exp $
/*
* logout.php
/**
* 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:
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( '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'] );
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer ($server_id);
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( ! $ldapserver->haveAuthInfo())
pla_error( $lang['no_one_logged_in'] );
if( in_array($ldapserver->auth_type, array('cookie','session')) ) {
syslog_msg ( LOG_NOTICE,"Logout for " . get_logged_in_dn( $ldapserver ) );
unset_login_dn( $ldapserver ) or pla_error( $lang['could_not_logout'] );
unset_lastactivity( $ldapserver );
} else
pla_error( sprintf( $lang['unknown_auth_type'], htmlspecialchars( $ldapserver->auth_type ) ) );
include realpath( 'header.php' );
?>
<script language="javascript">
@ -41,4 +43,3 @@ include realpath( 'header.php' );
</body>
</html>

View File

@ -1,10 +1,7 @@
<?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.11 2005/02/25 13:44:06 wurley Exp $
/*
* mass_delete.php
*
/**
* Enables user to mass delete multiple entries using checkboxes.
*
* Variables that come in as GET vars:
@ -14,118 +11,125 @@
* [cn=bob,dc=example,dc=com] => on
* etc.
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$server_id = $_POST['server_id'];
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($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
pla_error( $lang['error_calling_mass_delete'] );
$mass_delete = $_POST['mass_delete'];
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' );
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' => $server_id, 'dn' => $dn ) ) ) {
$success = @ldap_delete( $ldapserver->connect(), $dn );
if( $success ) {
run_hook ( 'post_entry_delete', array ( 'server_id' => $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 ) )
{
$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] );
}
$_SESSION['tree'] = $tree;
session_write_close();
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] );
}
$_SESSION['tree'] = $tree;
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
@ -148,7 +152,5 @@ if( $confirmed == true ) {
</form>
<?php
}
<?php }
?>

View File

@ -1,4 +1,11 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/password_checker.php,v 1.7 2005/02/25 13:44:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
include './header.php';
@ -14,7 +21,6 @@ if( isset( $_REQUEST['base64'] ) ) {
}
$enc_type = get_enc_type( $hash );
?>
<h3 class="subtitle"><?php echo $lang['password_checker_tool']; ?></h3>
@ -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.5 2005/02/25 13:44:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
include './header.php';
$purge_session_keys = array( 'schema' );
?>
<body>

View File

@ -1,63 +1,65 @@
<?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.20 2005/03/05 06:27:06 wurley Exp $
/*
* rdelete.php
*
/**
* Recursively deletes the specified DN and all of its children
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($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 );
$server_id = $_POST['server_id'];
$rdn = get_rdn( $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 "<br /><br />";
echo "<small>\n";
flush();
// prevent script from bailing early on a long delete
@set_time_limit( 0 );
$del_result = pla_rdelete( $server_id, $dn );
$del_result = pla_rdelete( $ldapserver, $dn );
echo "</small><br />\n";
if( $del_result )
{
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( 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();
// Get a tree in the session if not already gotten
initialize_session_tree();
// search and destroy from the tree sesssion
foreach( $tree[$server_id] as $tree_dn => $subtree )
@ -80,47 +82,51 @@ if( $del_result )
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 ) ) . "...";
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( 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() ) );
}
} else {
foreach( $children as $child_dn ) {
pla_rdelete( $server_id, $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 ) );
}
}
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,48 +1,47 @@
<?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.13 2005/03/05 09:41:01 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:
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! check_server_id( $server_id ) || ! have_auth_info( $server_id ) )
header( "Location: tree.php" );
if( ! array_key_exists( 'tree', $_SESSION ) )
if( ! $ldapserver->haveAuthInfo() || ! 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[$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( isset($tree[$server_id]) && is_array( $tree[$server_id] ) ) {
foreach( $tree[$server_id] as $dn => $children ) {
$tree[$server_id][$dn] = get_container_contents( $ldapserver, $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 );
$tree_icons[$server_id][$child_dn] = get_icon( $ldapserver, $child_dn );
sort( $tree[ $server_id ][ $dn ] );
}
}
}
else
{
} else {
header( "Location: tree.php#$server_id" );
}
@ -51,6 +50,4 @@ $_SESSION['tree_icons'] = $tree_icons;
session_write_close();
header( "Location: tree.php#$server_id" );
?>

View File

@ -1,78 +1,94 @@
<?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.23 2005/03/05 06:27:06 wurley Exp $
/*
* rename.php
/**
* Renames a DN to a different name.
*
* Variables that come in as POST vars:
* - dn (rawurlencoded)
* - server_id
* - new_rdn
*
* @package phpLDAPadmin
*/
/**
*/
require realpath( 'common.php' );
$server_id = (isset($_POST['server_id']) ? $_POST['server_id'] : '');
$ldapserver = new LDAPServer($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'] );
$server_id = $_POST['server_id'];
$new_rdn = ( $_POST['new_rdn'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
if( is_server_read_only( $server_id ) )
pla_error( $lang['no_updates_in_read_only_mode'] );
$children = get_container_contents( $server_id, $dn, 1 );
$children = get_container_contents( $ldapserver, $dn, 1 );
if( count( $children ) > 0 )
pla_error( $lang['non_leaf_nodes_cannot_be_renamed'] );
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 );
$container = get_container( $dn );
$new_dn = $new_rdn . ',' . $container;
if( $new_dn == $dn )
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 = $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 = $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 );
// 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 );
$success = run_hook ( 'pre_rename_entry', array ( 'server_id' => $server_id,
'old_dn' => $dn, 'new_dn' => $new_dn_value ) );
// attempt to undo our changes to the DN attr
if( $add_dn_attr_success )
@ldap_mod_del( $ds, $dn, $add_new_dn_attr );
if ( $success ) {
$success = false;
// attempt to add the new DN attr value (if we can't, die a silent death)
$add_dn_attr_success = @ldap_mod_add( $ldapserver->connect(), $dn, $add_new_dn_attr );
if( ! @ldap_rename( $ldapserver->connect(), $dn, $new_rdn, $container, false ) ) {
pla_error( $lang['could_not_rename'], ldap_error( $ldapserver->connect() ),
ldap_errno( $ldapserver->connect() ), false );
// attempt to undo our changes to the DN attr
if( $add_dn_attr_success )
@ldap_mod_del( $ldapserver->connect(), $dn, $add_new_dn_attr );
} 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 ) {
// attempt to remove the old DN attr value (if we can't, die a silent death)
@ldap_mod_del( $ldapserver->connect(), $new_dn, $remove_old_dn_attr );
run_hook ( 'post_rename_entry', array ( 'server_id' => $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;
@ -81,11 +97,11 @@ else
// 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 ) ) {
if( 0 == strcasecmp( $child_dn, $old_dn ) )
$tree[$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 ] );
@ -95,7 +111,6 @@ else
session_write_close();
$edit_url="edit.php?server_id=$server_id&dn=" . rawurlencode( "$new_rdn,$container" );
?>
<html>
@ -115,7 +130,6 @@ else
</body>
</html>
<?php
}
<?php }
}
?>

View File

@ -1,36 +1,38 @@
<?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.7 2005/02/25 13:44:06 wurley Exp $
/*
* rename_form.php
/**
* Displays a form for renaming an LDAP entry.
*
* Variables that come in as GET vars:
* - dn (rawurlencoded)
* - server_id
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($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 = $_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>
@ -43,4 +45,3 @@ include './header.php'; ?>
</center>
</body>
</html>

View File

@ -1,56 +1,51 @@
<?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.59 2005/03/07 20:19:32 wurley Exp $
/*
* schema.php
/**
* Displays the schema for the specified server_id
*
* Variables that come in as GET vars:
* - server_id
* - view (optional: can be 'attr' or empty. If 'attr', show that attribute)
* - attr (optional)
*
* @package phpLDAPadmin
*/
/**
*/
require './common.php';
$server_id = $_GET['server_id'];
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
$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;
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 );
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>
<b><?php echo htmlspecialchars($ldapserver->name); ?></b></h3>
<br />
<center>
<?php echo ( $view=='objectClasses' ?
$lang['objectclasses'] :
@ -70,44 +65,50 @@ $schema_error_str = $lang['could_not_retrieve_schema_from']." <b>"
</center>
<br />
<?php flush(); ?>
<?php
<?php flush();
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 );
$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
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 );
$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 );
//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; ?>" />
@ -115,292 +116,333 @@ if( $view == 'syntaxes' ) {
<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" );
} ?>
printf( '<option value="%s" %s>%s</option>',
$attr->getName(),
( 0 == strcasecmp( $attr->getName(), $viewvalue ) ? 'selected' : '' ),
$attr->getName());
} ?>
</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;
<?php foreach( $schema_attrs as $attr ) {
if ( is_null( $viewvalue ) || 0 == strcasecmp( $viewvalue, $attr->getName() ) ) {
if( ! is_null( $viewvalue ) )
$viewed = true;
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";
flush();
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><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['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['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['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['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['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['inherits']."</td>\n";
echo "<td>";
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";
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 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();
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();
}
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";
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";
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";
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";
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";
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";
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";
flush();
}
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";
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";
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";
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";
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";
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";
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";
flush();
}
}
echo "</table>\n";
} 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 );
$schema_matching_rules = get_schema_matching_rules( $ldapserver, null, true );
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';
}
foreach( $schema_matching_rules as $rule )
printf( '<option value="%s" %s>%s</option>',
$rule->getName(),
($rule->getName() == $viewvalue ? 'selected': ''),
$rule->getName());
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 );
$schema_matching_rules = get_schema_matching_rules( $ldapserver, null, true );
if( ! $schema_matching_rules ) pla_error( $schema_error_str );
$counter=1;
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";
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 "</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 );
?>
$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>';
} ?>
printf( '<option value="%s" %s>%s</option>',
$oclass->getName(),
( 0 == strcasecmp( $oclass->getName(), $viewvalue ) ? ' selected ':''),
$oclass->getName());
} ?>
</select><input type="submit" value="<?php echo $lang['go']; ?>" />
</form>
<?php flush(); ?>
<?php flush();
<?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() );
}
}
} ?>
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() );
}
}
} ?>
<br />
<?php foreach( $schema_oclasses as $name => $oclass ) {
if ( $viewvalue==null || 0 == strcasecmp( $viewvalue, $oclass->getName() ) ){
if( ! is_null( $viewvalue ) )
$viewed = true;
if ( $viewvalue==null || 0 == 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() ) { ?>
<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 ) { ?>
<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>
}
?>
</b></h4>
<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>)";
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>
}
?>
</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() )
{
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>\n";
}
} else
@ -409,23 +451,24 @@ if( $view == 'syntaxes' ) {
</ul>
</td>
<td width="50%">
<?php
if( count( $oclass->getMayAttrs($schema_oclasses) ) > 0 ) {
<?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() )
{
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
} else
echo "<center>(" . $lang['none'] . ")</center>\n";
?>
@ -434,13 +477,13 @@ if( $view == 'syntaxes' ) {
</tr>
</table>
<?php } } /* End foreach objectClass */ ?>
<?php } /* End else (displaying objectClasses */ ?>
<?php }
} /* End foreach objectClass */
<?php if( ! is_null( $viewvalue ) && ! $viewed )
pla_error( sprintf( $lang['no_such_schema_item'], htmlspecialchars( $viewvalue ) ) );
?>
} /* End else (displaying objectClasses */
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,9 +1,7 @@
<?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.66 2005/03/26 01:07:32 wurley Exp $
/*
* search.php
/**
* Perform LDAP searches and draw the advanced/simple search forms
*
* Variables that come in as GET vars:
@ -13,79 +11,55 @@
* - 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'] );
}
$server_id = (isset($_REQUEST['server_id']) ? $_REQUEST['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $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';
$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 = server_select_list($server_id,true,'server_id',$js_on_change_string);
$server_info_list = server_info_list();
$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>';
}
$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
$base_dns = $ldapserver->getBaseDN();
$criterion = isset( $_GET['criterion'] ) ? $_GET['criterion'] : null;
$form = isset( $_GET['form'] ) ? $_GET['form'] : null;
@ -94,24 +68,22 @@ $scope = isset( $_GET['scope'] ) ? $_GET['scope'] : 'sub';
include './header.php'; ?>
<body>
<center>
<?php if( $form == 'advanced' ) {
include 'search_form_advanced.php';
<?php if( $form == 'advanced' ) {
include './search_form_advanced.php';
} elseif( $form == 'predefined' ) {
include 'search_form_predefined.php';
include './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';
if( count( $search_attributes ) != count( $search_attributes_display ) )
pla_error( $lang['mismatched_search_attr_config'] );
include './search_form_simple.php';
} ?>
</center>
@ -120,38 +92,33 @@ include './header.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" );
rawurldecode( $_GET['display_attrs'] ) : ( isset( $search_result_attributes ) ?
$search_result_attributes : "dn, cn" );
process_config();
}
// 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',
$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'];
@ -162,51 +129,61 @@ if( isset( $_GET['search'] ) )
$filter = $query['filter'];
$scope = $query['scope'];
$base_dn = $query['base'];
$server_id = $query['server'];
}
if (is_array($query['base']))
$base_dns = $query['base'];
else
$base_dns = array($query['base']);
$ldapserver = new LDAPServer($query['server']);
}
} else {
$predefined = '';
$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'] );
htmlspecialchars( $criterion ) .
$lang['if_you_want_to_add_criteria'] );
}
}
@ -218,36 +195,49 @@ if( isset( $_GET['search'] ) )
// 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;
$search_result_size_limit : 50;
// 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, get_search_deref_setting() );
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, get_search_deref_setting() );
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, get_search_deref_setting() );
$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">
@ -263,116 +253,128 @@ if( isset( $_GET['search'] ) )
<?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>";
}
}
?>
$lang['export_results'] . "</a> ]";
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>";
}
} ?>
]
</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
// 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.
include realpath( './search_results_list.php' );
elseif( $format == 'table' )
// $lang['table'] - this is here so check_lang_files doesnt prompt us to remove this $lang variable.
include realpath( './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.21 2005/03/05 09:41:01 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">
@ -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; ?>" />
</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,49 +1,65 @@
<?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.7 2005/02/25 13:44:06 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'] ) )
<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> |
$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 ) ) {
<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="submit" value="<?php echo $lang['Search']; ?>" /></center>

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.13 2005/02/25 13:44:06 wurley Exp $
/**
* @package phpLDAPadmin
*/
?>
<script language="javascript">
function focus_filter() {
document.simple_search_form.filter.focus();
}
@ -13,47 +19,49 @@
<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> |
<tr>
<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 />
</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( $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>
<select name="criterion">
<select name="criterion">
<?php if( ! isset( $search_criteria_options ) || ! is_array( $search_criteria_options ) )
$search_criteria_options = array( "equals", "starts with", "contains", "ends with", "sounds like" );
<?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>
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
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_results_list.php,v 1.4 2005/03/05 06:27:06 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 $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
// $Header: /cvsroot/phpldapadmin/phpldapadmin/search_results_table.php,v 1.6 2005/03/05 06:27:06 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,21 +22,21 @@ $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 = 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";
$attrs_display[''] = "<center><a href=\"$edit_url\"><img src=\"images/$icon\" /></a><center>";
@ -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>";
?>

838
server_functions.php Normal file
View File

@ -0,0 +1,838 @@
<?php
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/server_functions.php,v 1.9 2005/03/25 15:45:01 wurley Exp $ */
/**
* Classes and functions for LDAP server configuration and capability
*
* @author The phpLDAPadmin development team
* @package phpLDAPadmin
*/
/**
* @package phpLDAPadmin
*/
class LDAPServer
{
/** Server ID as defined in config.php */
var $server_id;
/** Server Name as defined in config.php */
var $name;
/** Server Hostname as defined in config.php */
var $host;
/** Server Port as defined in config.php */
var $port;
/** Server Authentication method as defined in config.php */
var $auth_type;
/** Server Authentication Login DN as defined in config.php */
var $login_dn;
/** Server Authentication Password as defined in config.php */
var $login_pass;
/** Array of our connections to this LDAP server */
var $connections = array();
/** Server Base Dn */
var $_baseDN;
/** Default constructor.
* @param int $server_id the server_id of the LDAP server as defined in config.php
* @todo Need some error checking here in case the config is screwed.
*/
function LDAPServer($server_id,$ignore=true)
{
global $servers, $lang;
// Other Internal Values
$this->_baseDN = null;
$this->_schemaDN = null;
$this->server_id = $server_id;
$this->name = isset( $servers[$server_id]['name'] ) ? $servers[$server_id]['name'] : '';
$this->auth_type = isset( $servers[$server_id]['auth_type'] ) ? $servers[$server_id]['auth_type'] : '';
if ($this->isValidServer($server_id)) {
$this->host = isset( $servers[$server_id]['host'] ) ? $servers[$server_id]['host'] : '';
$this->port = isset( $servers[$server_id]['port'] ) ? $servers[$server_id]['port'] : '';
} else {
if (! $ignore)
pla_error ( $lang['bad_server_id']." ($server_id)",null,-1,true );
else
return null;
}
$this->login_dn = isset( $servers[$server_id]['login_dn'] ) ? $servers[$server_id]['login_dn'] : false;
$this->login_pass = isset( $servers[$server_id]['login_pass'] ) ? $servers[$server_id]['login_pass'] : false;
}
/**
* Checks the specified server id for sanity. Ensures that the server is indeed in the configured
* list and active. This is used by many many scripts to ensure that valid server ID values
* are passed in POST and GET.
*
* @param int $server_id the server_id of the LDAP server as defined in config.php
* @return bool
*/
function isValidServer( $server_id )
{
global $servers;
if( ! is_numeric( $server_id )
|| ! isset( $servers[$server_id] )
|| ! isset( $servers[$server_id]['host'] )
|| trim($servers[$server_id]['host']) == '' )
return false;
else
return true;
}
/**
* Check if there is sufficent information to Authenticate to the LDAP server.
*
* Given a server, returns whether or not we have enough information
* to authenticate against the server. For example, if the user specifies
* auth_type of 'cookie' in the config for that server, it checks the $_COOKIE array to
* see if the cookie username and password is set for the server. If the auth_type
* is 'session', the $_SESSION array is checked.
*
* There are three cases for this function depending on the auth_type configured for
* the specified server. If the auth_type is session or cookie, then get_logged_in_dn() is
* called to verify that the user has logged in. If the auth_type is config, then the
* $servers array in config.php is checked to ensure that the user has specified
* login information. In any case, if phpLDAPadmin has enough information to login
* to the server, true is returned. Otherwise false is returned.
*
* @return bool
* @see get_logged_in_dn
*/
function haveAuthInfo()
{
global $servers;
// For session or cookie auth_types, we check the session or cookie to see if a user has logged in.
if( in_array( $this->auth_type, array( 'session', 'cookie' ) ) ) {
// we don't look at get_logged_in_pass() cause it may be null for anonymous binds
// get_logged_in_dn() will never return null if someone is really logged in.
if( get_logged_in_dn( $this ) )
return true;
else
return false;
}
// whether or not the login_dn or pass is specified, we return
// true here. (if they are blank, we do an anonymous bind anyway)
elseif( ! isset( $server['auth_type'] ) || $server['auth_type'] == 'config' ) {
return true;
} else {
global $lang;
pla_error( sprintf($lang['error_auth_type_config'],htmlspecialchars($server['auth_type'])) );
}
return false;
}
/**
* Connect to the LDAP server.
* @param bool $anonymous Connect as the anonymous user.
* @param bool $reconnect Use a cached connetion, or create a new one.
* @returns resource|false Connection resource to LDAP server, or false if no connection made.
* @todo Need to make changes so that multiple connects can be made.
*/
function connect($process_error=true,$anonymous=false,$reconnect=false,$connect_num=0)
{
debug_log(sprintf('%s::connect(): Starting with (%s,%s,%s,%s)',get_class($this),$process_error,$anonymous,$reconnect,$connect_num),8);
if (isset($this->connections[$connect_num]['resource']) && ! $reconnect) {
debug_log(sprintf('%s::connect(): Returning CACHED connection resource [%s](%s)',get_class($this),$this->connections[$connect_num]['resource'
],$connect_num),7);
return $this->connections[$connect_num]['resource'];
} else {
debug_log(sprintf('%s::connect(): Creating new connection #[%s] for Server ID [%s]',get_class($this),$connect_num,$this->server_id),9);
global $servers, $lang;
if( $anonymous == true ) {
debug_log(sprintf('%s::connect(): This IS an anonymous login',get_class($this)),9);
$this->connections[$connect_num]['login_dn'] = null;
$this->connections[$connect_num]['login_pass'] = null;
} // grab the auth info based on the auth_type for this server
elseif( $this->auth_type == 'config' ) {
debug_log(sprintf('%s::connect(): This IS a "config" login',get_class($this)),9);
$this->connections[$connect_num]['login_dn'] = $servers[$this->server_id]['login_dn'];
$this->connections[$connect_num]['login_pass'] = $servers[$this->server_id]['login_pass'];
$this->connections[$connect_num]['login_dn'] = expand_dn_with_base( $this, $this->connections[$connect_num]['login_dn'], false );
debug_log(sprintf('%s::connect(): Config settings, DN [%s], PASS [%s]',get_class($this),
$this->connections[$connect_num]['login_dn'],
$this->connections[$connect_num]['login_pass'] ? md5($this->connections[$connect_num]['login_pass']) : ''),9);
} else {
debug_log(sprintf('%s::connect(): This IS some other login',get_class($this)),9);
$this->connections[$connect_num]['login_dn'] = get_logged_in_dn( $this );
$this->connections[$connect_num]['login_pass'] = get_logged_in_pass( $this );
debug_log(sprintf('%s::connect(): Config settings, DN [%s], PASS [%s]',get_class($this),
$this->connections[$connect_num]['login_dn'],
$this->connections[$connect_num]['login_pass'] ? md5($this->connections[$connect_num]['login_pass']) : ''),9);
// Was this an anonyous bind (the cookie stores 0 if so)?
if( 'anonymous' == $this->connections[$connect_num]['login_dn'] ) {
$this->connections[$connect_num]['login_dn'] = null;
$this->connections[$connect_num]['login_pass'] = null;
$anonymous = true;
}
}
if (! $anonymous && ! $this->connections[$connect_num]['login_dn'] && ! $this->connections[$connect_num]['login_pass']) {
debug_log(sprintf('%s::connect(): We dont have enough auth info for server [%s]',get_class($this),$this->server_id),9);
return false;
}
run_hook ( 'pre_connect', array ( 'server_id' => $this->server_id,
'connect_num' => $connect_num,
'anonymous' => $anonymous ) );
if( $this->port )
$resource = @ldap_connect( $this->host, $this->port );
else
$resource = @ldap_connect( $this->host );
debug_log(sprintf('%s::connect(): LDAP Resource [%s], Host [%s], Port [%s]',get_class($this),$resource,$this->host,$this->port),9);
// go with LDAP version 3 if possible (needed for renaming and Novell schema fetching)
@ldap_set_option( $resource, LDAP_OPT_PROTOCOL_VERSION, 3 );
// Disabling this makes it possible to browse the tree for Active Directory, and seems
// to not affect other LDAP servers (tested with OpenLDAP) as phpLDAPadmin explicitly
// specifies deref behavior for each ldap_search operation.
@ldap_set_option( $resource, LDAP_OPT_REFERRALS, 0);
// try to fire up TLS is specified in the config
if( $this->isTLSEnabled() ) {
function_exists( 'ldap_start_tls' ) or pla_error( $lang['php_install_not_supports_tls'] );
@ldap_start_tls( $resource ) or pla_error( $lang['could_not_start_tls'], ldap_error($resource));
}
$bind_result = @ldap_bind( $resource, $this->connections[$connect_num]['login_dn'],
$this->connections[$connect_num]['login_pass'] );
debug_log(sprintf('%s::connect(): Resource [%s], Bind Result [%s]',
get_class($this),$resource,$bind_result),9);
if( ! $bind_result ) {
debug_log(sprintf('%s::connect(): Leaving with FALSE, bind FAILed',get_class($this)),9);
if ($process_error) {
switch( ldap_errno($resource) ) {
case 0x31:
pla_error( $lang['bad_user_name_or_password'] );
break;
case 0x32:
pla_error( $lang['insufficient_access_rights'] );
break;
case -1:
pla_error( sprintf($lang['could_not_connect_to_host_on_port'],$this->host,$this->port) );
break;
default:
pla_error( $lang['could_not_bind'], ldap_err2str( $resource ), $resource );
}
} else {
return false; // ldap_errno( $resource );
}
}
if (is_resource($resource) && ($bind_result)) {
debug_log(sprintf('%s::connect(): Bind successful',get_class($this)),9);
$this->connections[$connect_num]['connected'] = true;
$this->connections[$connect_num]['resource'] = $resource;
/*
} else {
if ($process_error) {
debug_log(sprintf('Server: [%s], Username: [%s], Password: [%s]',
$this->server_id,
$this->connections[$connect_num]['login_dn'],
$this->connections[$connect_num]['login_pass']),9);
if( is_numeric( $resource ) ) {
switch( $resource ) {
case -1: pla_error( $lang['bad_server_id'] ); break;
case -2: pla_error( $lang['not_enough_login_info'] ); break;
default: pla_error( $lang['ferror_error'] ); break;
}
// return true; Do we get here?
}
switch( $resource ) {
case 0x31:
pla_error( $lang['bad_user_name_or_password'] );
break;
case 0x32:
pla_error( $lang['insufficient_access_rights'] );
break;
case 0x5b:
pla_error( $lang['could_not_connect'] );
break;
default:
pla_error( $lang['could_not_bind'], ldap_err2str( $this->connections[$connect_num]['resource'] ), $this->connections[$connect_num]['resource'] );
}
}
debug_log(sprintf('%s::connect(): Leaving with FALSE',get_class($this)),9);
return false;
*/
}
}
debug_log(sprintf('%s::connect(): Leaving with Connect #[%s], Resource [%s]',get_class($this),$connect_num,$this->connections[$connect_num]['resource']),9);
return $this->connections[$connect_num]['resource'];
}
/**
* Gets the root DN of the specified LDAPServer, or null if it
* can't find it (ie, the server won't give it to us, or it isnt
* specified in the configuration file).
*
* Tested with OpenLDAP 2.0, Netscape iPlanet, and Novell eDirectory 8.7 (nldap.com)
* Please report any and all bugs!!
*
* Please note: On FC systems, it seems that php_ldap uses /etc/openldap/ldap.conf in
* the search base if it is blank - so edit that file and comment out the BASE line.
*
* @return array dn|null The root DN of the server on success (string) or null on error.
* @todo Sort the entries, so that they are in the correct DN order.
*/
function getBaseDN()
{
global $servers;
debug_log(sprintf('%s::getBaseDN(): Looking for BaseDN',get_class($this)),8);
// Return the cached entry if we've been here before.
if (! is_null($this->_baseDN)) {
debug_log(sprintf('%s::getBaseDN(): Return CACHED BaseDN [%s]',get_class($this),implode('|',$this->_baseDN)),7);
return $this->_baseDN;
}
debug_log(sprintf('%s::getBaseDN(): Checking config for BaseDN',get_class($this)),9);
// If the base is set in the configuration file, then just return that.
// @todo Do we need to test if the config array is blank?
if (isset($servers[$this->server_id]['base']) && $servers[$this->server_id]['base']) {
$this->_baseDN = is_array($servers[$this->server_id]['base']) ? $servers[$this->server_id]['base'] : array($servers[$this->server_id]['base']);
debug_log(sprintf('%s::getBaseDN(): Return BaseDN from Config [%s]',get_class($this),implode('|',$this->_baseDN)),4);
return $this->_baseDN;
// We need to figure it out.
} else {
debug_log(sprintf('%s::getBaseDN(): Connect to LDAP to find BaseDN',get_class($this)),9);
// Are we connected
// @todo This bit needs to be more robust.
if ($this->connect()) {
$r = @ldap_read( $this->connect(), "", 'objectClass=*', array( 'namingContexts' ) );
debug_log(sprintf('%s::getBaseDN(): Search Results [%s], Resource [%s], Msg [%s]',get_class($this),$r,$this->connect(),ldap_error($this->connect())),9);
if( ! $r )
return array('');
$r = @ldap_get_entries( $this->connect(false), $r );
if( isset( $r[0]['namingcontexts'] ) ) {
// If we have a count key, delete it - dont need it.
if (isset($r[0]['namingcontexts']['count']))
unset($r[0]['namingcontexts']['count']);
debug_log(sprintf('%s::getBaseDN(): LDAP Entries:%s',get_class($this),implode('|',$r[0]['namingcontexts'])),5);
$this->_baseDN = $r[0]['namingcontexts'];
// @todo Do we need this session?
//$_SESSION[ "pla_root_dn_$this->server_id" ] = $this->_baseDN;
return $this->_baseDN;
} else {
return array('');
}
} else {
return array('');
}
}
}
/**
* Returns true if the specified server is configured to be displayed
* in read only mode.
*
* If a user has logged in via anonymous bind, and config.php specifies
* anonymous_bind_implies_read_only as true, then
* this also returns true. Servers can be configured read-only in
* config.php thus:
* <code>
* $server[$i]['read_only'] = true;
* </code>
*
* @return bool
*/
function isReadOnly()
{
global $servers;
if( isset( $servers[$this->server_id]['read_only'] ) &&
$servers[$this->server_id]['read_only'] == true )
return true;
global $anonymous_bind_implies_read_only;
if( "anonymous" == get_logged_in_dn( $this ) &&
isset( $anonymous_bind_implies_read_only ) &&
$anonymous_bind_implies_read_only == true )
return true;
return false;
}
/**
* Returns true if the user has configured the specified server to enable mass deletion.
*
* Mass deletion is enabled in config.php this:
* <code>
* $enable_mass_delete = true;
* </code>
* Notice that mass deletes are not enabled on a per-server basis, but this
* function checks that the sever is not in a read-only state as well.
*
* @return bool
*/
function isMassDeleteEnabled()
{
global $enable_mass_delete;
if( $this->connect(false) &&
$this->haveAuthInfo() &&
! $this->isReadOnly() &&
isset( $enable_mass_delete ) &&
true === $enable_mass_delete )
return true;
else
return false;
}
/**
* Gets whether the admin has configured phpLDAPadmin to show the "Create New" link in the tree viewer.
*
* <code>
* $server[$i]['show_create'] = true|false;
* </code>
* If $servers[$server_id]['show_create'] is NOT set, then default to show the Create New item.
* If $servers[$server_id]['show_create'] IS set, then return the value (it should be true or false).
*
* @return bool True if the feature is enabled and false otherwise.
*/
function isShowCreateEnabled()
{
global $servers;
if( isset( $servers[$this->server_id]['show_create'] ))
return $servers[$this->server_id]['show_create'];
else
return true;
}
/**
* Fetch whether the user has configured a certain server as "low bandwidth".
*
* Users may choose to configure a server as "low bandwidth" in config.php thus:
* <code>
* $servers[$i]['low_bandwidth'] = true;
* </code>
* @return bool
*/
function isLowBandwidth()
{
global $servers;
if( isset( $servers[$this->server_id]['low_bandwidth'] ) && true == $servers[$this->server_id]['low_bandwidth'] )
return true;
else
return false;
}
/**
* Should this LDAP server be shown in the tree?
*
* <code>
* $server[$i]['visible'] = true;
* </code>
* @return bool True if the feature is enabled and false otherwise.
*/
function isVisible()
{
global $servers;
$is_visible = ( ! isset( $servers[$this->server_id]['visible'] )
|| ( $servers[$this->server_id]['visible'] === true ) );
if( $this->isValidServer($this->server_id) && $is_visible )
return true;
else
return false;
}
/**
* This function will query the ldap server and request the subSchemaSubEntry which should be the Schema DN.
*
* If we cant connect to the LDAP server, we'll return false.
* If we can connect but cant get the entry, then we'll return null.
*
* @return array|false Schema if available, null if its not or false if we cant connect.
* @param bool $debug Switch to true to see some nice and copious output. :)
*/
function getSchemaDN($dn='', $debug = false)
{
// If we already got the SchemaDN, then return it.
if ($this->_schemaDN)
return $this->_schemaDN;
if( $debug ) echo "<pre>";
if (! $this->connect())
return false;
$search = @ldap_read( $this->connect(), $dn, 'objectClass=*', array( 'subschemaSubentry' ) );
if( $debug ) { printf("%s::getSchemaDN(): ldap_read: ",get_class($this)); var_dump( $search ); echo "\n"; }
if( ! $search ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (search result is blank)<BR>",get_class($this));
return null;
}
if( @ldap_count_entries( $this->connect(), $search ) == 0 ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (ldap_count_entries() == 0)<BR>",get_class($this));
return null;
}
$entries = @ldap_get_entries( $this->connect(), $search );
if( $debug ) { echo "Entries (ldap_get_entries): "; var_dump( $entries ); echo "\n"; }
if( ! $entries || ! is_array( $entries ) ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (Bad entries, false or not array)<BR>",get_class($this));
return null;
}
$entry = isset( $entries[0] ) ? $entries[0] : false;
if( ! $entry ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (entry is false)<BR>",get_class($this));
return null;
}
$sub_schema_sub_entry = isset( $entry[0] ) ? $entry[0] : false;
if( ! $sub_schema_sub_entry ) {
if( $debug ) printf("%s::getSchemaDN(): returning null. (sub_schema_sub_entry val is false)<BR>",get_class($this));
return null;
}
$this->_schemaDN = isset( $entry[ $sub_schema_sub_entry ][0] ) ? $entry[ $sub_schema_sub_entry ][0] : false;
if( $debug ) printf("%s::getSchemaDN(): returning (%s)<BR>",get_class($this),$this->_schemaDN);
return $this->_schemaDN;
}
/**
* Fetches the raw schema array for the subschemaSubentry of the server. Note,
* this function has grown many hairs to accomodate more LDAP servers. It is
* needfully complicated as it now supports many popular LDAP servers that
* don't necessarily expose their schema "the right way".
*
* Please note: On FC systems, it seems that php_ldap uses /etc/openldap/ldap.conf in
* the search base if it is blank - so edit that file and comment out the BASE line.
*
* @param string $schema_to_fetch - A string indicating which type of schema to
* fetch. Five valid values: 'objectclasses', 'attributetypes',
* 'ldapsyntaxes', 'matchingruleuse', or 'matchingrules'.
* Case insensitive.
* @param dn $dn (optional) This paremeter is the DN of the entry whose schema you
* would like to fetch. Entries have the option of specifying
* their own subschemaSubentry that points to the DN of the system
* schema entry which applies to this attribute. If unspecified,
* this will try to retrieve the schema from the RootDSE subschemaSubentry.
* Failing that, we use some commonly known schema DNs. Default
* value is the Root DSE DN (zero-length string)
* @return array an array of strings of this form:
* Array (
* [0] => "( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' DESC 'Pool ...
* [1] => "( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' DESC 'Sa ...
* etc.
*/
function getRawSchema($schema_to_fetch, $dn='')
{
global $lang;
// Swith to true to enable verbose output of schema fetching progress
$debug = false;
if (! $this->connect())
return false;
// error checking
$schema_to_fetch = strtolower( $schema_to_fetch );
$valid_schema_to_fetch = array( 'objectclasses', 'attributetypes', 'ldapsyntaxes',
'matchingrules', 'matchingruleuse' );
if( ! in_array( $schema_to_fetch, $valid_schema_to_fetch ) )
// This error message is not localized as only developers should ever see it
pla_error( "Bad parameter provided to function to ". get_class($this) ."::getRawSchema(). '"
. htmlspecialchars( $schema_to_fetch ) . "' is not valid for the schema_to_fetch parameter." );
// Try to get the schema DN from the specified entry.
$schema_dn = $this->getSchemaDN($dn,$debug);
// Do we need to try again with the Root DSE?
if( ! $schema_dn )
$schema_dn = $this->getSchemaDN('', $debug);
// Store the eventual schema retrieval in $schema_search
$schema_search = null;
if( $schema_dn ) {
if( $debug ) { printf("%s::getRawSchema(): Found the Schema DN:<BR>",get_class($this)); var_dump( $schema_dn ); echo "\n"; }
$schema_search = @ldap_read( $this->connect(), $schema_dn, '(objectClass=*)',
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
// Were we not able to fetch the schema from the $schema_dn?
$schema_entries = @ldap_get_entries( $this->connect(), $schema_search );
if( $schema_search === false ||
0 == @ldap_count_entries( $this->connect(), $schema_search ) ||
! isset( $schema_entries[0][$schema_to_fetch] ) ) {
// Try again with a different filter (some servers require (objectClass=subschema) like M-Vault)
if( $debug ) printf("%s::getRawSchema(): Did not find the schema with (objectClass=*). Attempting with (objetClass=subschema):<BR>",get_class($this));
$schema_search = @ldap_read( $this->connect(), $schema_dn, '(objectClass=subschema)',
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
$schema_entries = @ldap_get_entries( $this->connect(), $schema_search );
// Still didn't get it?
if( $schema_search === false ||
0 == @ldap_count_entries( $this->connect(), $schema_search ) ||
! isset( $schema_entries[0][$schema_to_fetch] ) ) {
if( $debug ) printf("%s::getRawSchema(): Did not find the schema with DN: %s (with objectClass=* nor objectClass=subschema)<BR>",get_class($this),$schema_dn);
unset( $schema_entries );
$schema_search = null;
} else {
if( $debug ) printf("%s::getRawSchema(): Found the schema at DN: %s (objectClass=subschema)<BR>",get_class($this),$schema_dn);
}
} else {
if( $debug ) printf("%s::getRawSchema(): Found the schema at DN: %s (objectClass=*)<BR>",get_class($this),$schema_dn);
}
}
// Second chance: If the DN or Root DSE didn't give us the subschemaSubentry, ie $schema_search
// is still null, use some common subSchemaSubentry DNs as a work-around.
if ($schema_search == null) {
if( $debug )
printf("%s::getRawSchema(): Attempting work-arounds for 'broken' LDAP servers...<BR>",get_class($this));
// OpenLDAP and Novell
// @todo Fix expand_dn_with_base - no longer works since getBaseDN is now an arrya.
$ldap['OpenLDAP']['cn=subschema'] = '(objectClass=*)';
// $ldap['W2K3 AD'][expand_dn_with_base($this,'cn=Aggregate,cn=Schema,cn=configuration,',true)] = '(objectClass=*)';
// $ldap['W2K AD'][expand_dn_with_base($this,'cn=Schema,cn=configuration,',true)] = '(objectClass=*)';
// $ldap['W2K AD'][expand_dn_with_base($this,'cn=Schema,ou=Admin,',true)] = '(objectClass=*)';
foreach ($ldap as $ldap_server_name => $ldap_options) {
foreach ($ldap_options as $ldap_dn => $ldap_filter) {
if( $debug ) printf("%s::getRawSchema(): Attempting [%s] (%s) (%s)<BR>",get_class($this),$ldap_server_name,$ldap_dn,$ldap_filter);
$schema_search = @ldap_read($this->connect(), $ldap_dn, $ldap_filter,
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
}
if ($schema_search)
break;
}
// Still cant find the schema, try with the RootDSE
// Attempt to pull schema from Root DSE with scope "base", or
// Attempt to pull schema from Root DSE with scope "one" (work-around for Isode M-Vault X.500/LDAP)
}
if ($schema_search == null) {
foreach (array('base','one') as $ldap_scope) {
if( $debug ) printf("%s::getRawSchema(): Attempting [%s] (%s) (%s) - %s<BR>",get_class($this),'RootDSE','','(objectClass=*)',$ldap_scope);
if ($ldap_scope == 'base')
$schema_search = @ldap_read($this->connect(), '', '(objectClass=*)',
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
else
$schema_search = @ldap_list($this->connect(), '', '(objectClass=*)',
array( $schema_to_fetch ), 0, 0, 0, LDAP_DEREF_ALWAYS );
$schema_entries = @ldap_get_entries( $this->connect(), $schema_search );
if( ! isset( $schema_entries[0][$schema_to_fetch] ) )
$schema_search = null;
else
break;
}
}
// Shall we just give up?
if( $schema_search == null ) {
if( $debug ) printf("%s::getRawSchema(): Returning false since schema_search came back null",get_class($this));
set_schema_cache_unavailable( $this->server_id, $schema_to_fetch );
return false;
}
// Did we get something unrecognizable?
if( 'resource' != gettype( $schema_search ) ) {
if( $debug ) printf("%s::getRawSchema(): Returning false since schema_search is not of type 'resource', here is a dump:",get_class($this));
if( $debug ) var_dump( $schema_search );
if( $debug ) echo "</pre>";
set_schema_cache_unavailable( $this->server_id, $schema_to_fetch );
return false;
}
$schema = @ldap_get_entries( $this->connect(), $schema_search );
if( $schema == false ) {
if( $debug ) printf("%s::getRawSchema(): Returning false since ldap_get_entries() returned false.</pre>",get_class($this));
set_schema_cache_unavailable( $this->server_id, $schema_to_fetch );
return false;
}
if( ! isset( $schema[0][$schema_to_fetch] ) ) {
if( $debug ) printf("%s::getRawSchema(): Returning false since '%s' isn't in the schema array. Showing schema array:\n",get_class($this),$schema_to_fetch);
if( $debug ) var_dump( $schema );
if( $debug ) echo "</pre>";
set_schema_cache_unavailable( $this->server_id,$schema_to_fetch );
return false;
}
// Make a nice array of this form:
// Array (
// [0] => "( 1.3.6.1.4.1.7165.1.2.2.4 NAME 'gidPool' DESC 'Pool ...
// [1] => "( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' DESC 'Sa ...
// etc.
$schema = $schema[0][$schema_to_fetch];
unset( $schema['count'] );
if( $debug ) var_dump( $schema );
if( $debug ) echo "</pre>";
return $schema;
}
/**
* Fetches whether the login_attr feature is enabled for a specified server.
*
* This is configured in config.php thus:
* <code>
* $servers[$server_id]['login_attr'] = 'uid';
* </code>
* By virtue of the fact that the login_attr is not blank and not 'dn', the
* feature is configured to be enabled.
*
* @return bool
*/
function isLoginAttrEnabled()
{
global $servers;
if( isset( $servers[$this->server_id]['login_attr'] ) &&
0 != strcasecmp( $servers[$this->server_id]['login_attr'], "dn" ) &&
trim( $servers[$this->server_id]['login_attr'] != "" ) )
return true;
else
return false;
}
/**
* Fetches whether the login_attr feature is enabled for a specified server.
*
* This is configured in config.php thus:
* <code>
* $servers[$server_id]['login_attr'] = 'uid';
* </code>
*
* @return bool
*/
function isLoginStringEnabled()
{
global $servers;
if( isset( $servers[$this->server_id]['login_attr'] ) &&
0 == strcasecmp( $servers[$this->server_id]['login_attr'], "string" ) )
return true;
else
return false;
}
/**
* Fetches the login_attr string if enabled for a specified server.
*
* This is configured in config.php thus:
* <code>
* $servers[$server_id]['login_attr'] = 'uid';
* </code>
*
* @return string|false
*/
function getLoginString( $server_id )
{
global $servers;
if( isset( $servers[$this->server_id]['login_string'] ) )
return $servers[$this->server_id]['login_string'];
else
return false;
}
/**
* Fetch whether the user has configured a certain server login to be non anonymous
*
* <code>
* $servers[$i]['disable_anon_bind'] = true;
* </code>
* @return bool
*/
function isAnonBindAllowed()
{
global $servers;
// If only_login_allowed_dns is set, then we cant have anonymous.
if ( isset( $servers[$this->server_id]['only_login_allowed_dns'] )
&& is_array( $servers[$this->server_id]['only_login_allowed_dns'] )
&& count($servers[$this->server_id]['only_login_allowed_dns'] ) > 0 )
return false;
else
return ( ! isset( $servers[$this->server_id]['disable_anon_bind'] )
|| false == $servers[$this->server_id]['disable_anon_bind'] )
? true
: false;
}
/**
* Fetches whether TLS has been configured for use with a certain server.
*
* Users may configure phpLDAPadmin to use TLS in config,php thus:
* <code>
* $servers[$i]['tls'] = true;
* </code>
* @param int $server_id The ID of the server of interest from config.php.
* @return bool
*/
function isTLSEnabled()
{
global $servers;
if( isset( $servers[$this->server_id]['tls'] ) && true == $servers[$this->server_id]['tls'] )
return true;
else
return false;
}
}
?>

View File

@ -1,80 +1,85 @@
<?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.18 2005/03/16 09:52:31 wurley Exp $
/*
* server_info.php
/**
* Fetches and displays all information that it can from the specified server
*
* Variables that come in as GET vars:
* - 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',
'+',
'*'
);
$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'];
$ds = pla_ldap_connect( $server_id );
pla_ldap_connection_is_error( $ds );
$server_id = (isset($_GET['server_id']) ? $_GET['server_id'] : '');
$ldapserver = new LDAPServer($server_id);
if( ! $ldapserver->haveAuthInfo())
pla_error( $lang['not_enough_login_info'] );
// Fetch basic RootDSE attributes using the + and *.
$r = @ldap_read( $ds, '', 'objectClass=*', array( '+', '*' ) );
$r = @ldap_read( $ldapserver->connect(), '', 'objectClass=*', array( '+', '*' ) );
if( ! $r )
pla_error( $lang['could_not_fetch_server_info'], ldap_error( $ds ), ldap_errno( $ds ) );
$entry = @ldap_first_entry( $ds, $r );
pla_error( $lang['could_not_fetch_server_info'], ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
$entry = @ldap_first_entry( $ldapserver->connect(), $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 );
pla_error( $lang['could_not_fetch_server_info'], ldap_error( $ldapserver->connect() ), ldap_errno( $ldapserver->connect() ) );
$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( $ds, '', 'objectClass=*', $root_dse_attributes );
$r2 = @ldap_read( $ldapserver->connect(), '', '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;
}
}
$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 );
@ -82,22 +87,19 @@ include './header.php';
?>
<body>
<h3 class="title"><?php echo $lang['server_info_for'] . htmlspecialchars( $server_name ); ?></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 ) { ?>
<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++ ) {
<?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";
?>
$schema_href = "schema.php?server_id=$server_id&amp;view=attributes&amp;viewvalue=$attr"; ?>
<tr>
<td class="attr">
@ -106,13 +108,18 @@ for( $i=0; $i<$attrs['count']; $i++ ) {
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>
</tr>
<tr>
<td class="val"><table class="edit_dn">
<?php for( $j=0; $j<$attrs[ $attr ][ 'count' ]; $j++ ) {
echo "<tr><td>".htmlspecialchars( $attrs[ $attr ][ $j ] )."</td>";
if (support_oid_to_text($attrs[ $attr ][ $j ] ))
echo "<td>".support_oid_to_text($attrs[ $attr ][ $j ] ). "</td></tr>";
} ?>
</table></td>
</tr>
<?php } ?>

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.13 2005/02/25 13:44:06 wurley Exp $
/**
* A collection of functions to handle sessions throughout phpLDAPadmin.
@ -111,9 +111,7 @@ function pla_session_start()
/**
* Stops the current session.
*/
function pla_session_close()
{
function pla_session_close() {
@session_write_close();
}
?>

View File

@ -1,10 +1,16 @@
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/style.css,v 1.40 2004/10/23 21:13:16 uugdave Exp $ */
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/style.css,v 1.44 2005/03/12 14:03:36 wurley Exp $ */
span.hint {
font-size: small;
font-weight: normal;
color: #888;
}
span.warning {
font-size: small;
font-weight: normal;
color: #f00;
}
span.x-small {
font-size: x-small;
}
@ -81,7 +87,7 @@ table.error tr td h2 {
}
table.error tr td.img {
vertical-align: center;
vertical-align: middle;
text-align: center;
width: 20px;
}
@ -130,7 +136,7 @@ table.template_display tr td {
table.templates tr td {
text-align: left;
vertical-align: center;
vertical-align: middle;
}
table.templates tr {
@ -143,7 +149,7 @@ table.templates td.icon {
table.exporters tr td {
text-align: left;
vertical-align: center;
vertical-align: middle;
}
table.exporters tr {
@ -278,11 +284,32 @@ h3.subtitle {
font-weight: normal;
}
table.comp_dn {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
font-size: 80%;
}
table.comp_dn tr {
width: 200px;
}
table.comp_dn tr td.attr {
background-color: #eee;
vertical-align: top;
}
table.comp_dn tr td.attr_note {
text-align: right;
background-color: #eee;
padding-right: 50px;
}
table.edit_dn {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
width: 500px;
width: 600px;
}
table.edit_dn input {
@ -292,7 +319,7 @@ table.edit_dn input {
table.edit_dn input.val {
font-size: 14px;
width: 350px;
font-family: arial, helvetica, sans-serif
font-family: arial, helvetica, sans-serif;
background-color: white;
}
@ -335,9 +362,9 @@ table.edit_dn tr td.attr a:hover {
table.edit_dn tr td.val {
text-align: left;
vertical-align: center;
vertical-align: middle;
padding-bottom: 10px;
padding-left: 80px;
padding-left: 50px;
}
@ -615,6 +642,16 @@ table.export_form tr td {
padding: 4px;
}
table.form tr td {
vertical-align: top;
padding: 4px;
}
.attribute_failed {
color: red;
}
img.chooser {
/* This makes the chooser image line up properly when placed next to a form element in a table cell*/
vertical-align: bottom;

56
syslog.php Normal file
View File

@ -0,0 +1,56 @@
<?
// $Header: /cvsroot/phpldapadmin/phpldapadmin/syslog.php,v 1.4 2005/03/05 09:38:46 wurley Exp $
/**
* Functions related to syslog logging.
*
* @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
*/
// require_once 'config.php';
/* Initialize syslog */
if ( isset($use_syslog) && $use_syslog != false ) {
define_syslog_variables();
openlog('phpldapadmin', LOG_ODELAY, LOG_DAEMON );
}
/**
* Verify that syslog logging is activated in the config via the
* $use_syslog variable and does a call to the syslog() function is it
* is true.
*
* @param emergency Syslog emergency.
* @param log_string String to log.
*/
function syslog_msg ( $emergency, $log_string, $ldapserver=null ) {
global $use_syslog;
if ( isset($ldapserver->server_id) ) {
$log_string = "(" . get_logged_in_dn( $ldapserver->ldapserver ) . ") " . $log_string;
}
if ( isset($use_syslog) && $use_syslog != false) {
syslog ( $emergency, $log_string );
}
return true;
}
?>

View File

@ -1,10 +1,11 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/custom.php,v 1.37 2004/10/24 23:51:51 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/custom.php,v 1.40 2005/03/12 00:57:18 wurley Exp $
// Common to all templates
$rdn = isset( $_POST['rdn'] ) ? $_POST['rdn'] : null;
$container = $_POST['container'];
$server_id = $_POST['server_id'];
$ldapserver = new LDAPServer ($server_id);
// Unique to this template
$step = isset( $_POST['step'] ) ? $_POST['step'] : 1;
@ -14,7 +15,7 @@ have_auth_info( $server_id ) or pla_error( $lang['not_enough_login_info'] );
if( $step == 1 )
{
$oclasses = get_schema_objectClasses( $server_id );
$oclasses = get_schema_objectClasses( $ldapserver );
if( ! $oclasses || ! is_array( $oclasses ) )
pla_error( "Unable to retrieve the schema from your LDAP server. Cannot continue with creation." );
?>
@ -77,7 +78,7 @@ if( $step == 2 )
strlen( trim( $rdn ) ) != 0 or
pla_error( $lang['rdn_field_blank'] );
strlen( trim( $container ) ) == 0 or dn_exists( $server_id, $container ) or
strlen( trim( $container ) ) == 0 or dn_exists( $ldapserver, $container ) or
pla_error( sprintf( $lang['container_does_not_exist'], htmlspecialchars( $container ) ) );
$friendly_attrs = process_friendly_attr_table();
@ -87,11 +88,11 @@ if( $step == 2 )
$dn = trim( $container ) ? $rdn . ',' . $container : $rdn;
// incrementally build up the all_attrs and required_attrs arrays
$schema_oclasses = get_schema_objectclasses( $server_id );
$schema_oclasses = get_schema_objectclasses( $ldapserver );
$required_attrs = array();
$all_attrs = array();
foreach( $oclasses as $oclass_name ) {
$oclass = get_schema_objectclass( $server_id, $oclass_name );
$oclass = get_schema_objectclass( $ldapserver, $oclass_name );
if( $oclass ) {
$required_attrs = array_merge( $required_attrs,
$oclass->getMustAttrNames( $schema_oclasses ) );
@ -103,8 +104,8 @@ if( $step == 2 )
$required_attrs = array_unique( $required_attrs );
$all_attrs = array_unique( $all_attrs );
remove_aliases( $required_attrs, $server_id );
remove_aliases( $all_attrs, $server_id );
remove_aliases( $required_attrs, $ldapserver );
remove_aliases( $all_attrs, $ldapserver );
sort( $required_attrs );
sort( $all_attrs );
@ -128,7 +129,7 @@ if( $step == 2 )
// remove binary attributes and add them to the binary_attrs array
$binary_attrs = array();
foreach( $all_attrs as $i => $attr_name ) {
if( is_attr_binary( $server_id, $attr_name ) ) {
if( is_attr_binary( $ldapserver, $attr_name ) ) {
unset( $all_attrs[ $i ] );
$binary_attrs[] = $attr_name;
}
@ -183,7 +184,7 @@ if( $step == 2 )
?></b></td></tr>
<tr>
<td class="val"><input type="<?php echo (is_attr_binary( $server_id, $attr ) ? "file" : "text"); ?>"
<td class="val"><input type="<?php echo (is_attr_binary( $ldapserver, $attr ) ? "file" : "text"); ?>"
name="required_attrs[<?php echo htmlspecialchars($attr); ?>]"
value="<?php echo ($attr == $rdn_attr ? htmlspecialchars($rdn_value) : '') ?>" size="40" />
</tr>
@ -272,7 +273,7 @@ function get_binary_attr_select_html( $binary_attrs, $friendly_attrs, $highlight
* Removes attributes from the array that are aliases for eachother
* (just removes the second instance of the aliased attr)
*/
function remove_aliases( &$attribute_list, $server_id )
function remove_aliases( &$attribute_list, $ldapserver )
{
// remove aliases from the attribute_list array
for( $i=0; $i<count( $attribute_list ); $i++ ) {
@ -286,7 +287,7 @@ function remove_aliases( &$attribute_list, $server_id )
continue;
$attr_name2 = $attribute_list[ $k ];
//echo "Comparing $attr_name1 and $attr_name2<br>";
$attr1 = get_schema_attribute( $server_id, $attr_name1 );
$attr1 = get_schema_attribute( $ldapserver, $attr_name1 );
if( null == $attr1 )
continue;
if( $attr1->isAliasFor( $attr_name2 ) ) {
@ -298,4 +299,3 @@ function remove_aliases( &$attribute_list, $server_id )
$attribute_list = array_values( $attribute_list );
}
?>

View File

@ -59,7 +59,7 @@ have_auth_info( $server_id ) or pla_error( "Not enough information to login to s
$attribute_name = $attribute_parts[1];
$alias_slashed = str_replace(',', '\,', $alias);
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_dns_entry.php,v 1.9 2004/10/24 23:51:51 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_dns_entry.php,v 1.10 2005/03/05 06:27:07 wurley Exp $
// Common to all templates
$container = $_POST['container'];
@ -56,7 +56,7 @@ if( isset($_POST['step']) )
$container = trim( $_POST['container'] );
$associateddomain = trim( $_POST['associateddomain'] );
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );
?>

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_nt_machine.php,v 1.13 2004/12/16 22:59:50 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_nt_machine.php,v 1.14 2005/03/05 06:27:07 wurley Exp $
// Common to all templates
@ -21,7 +21,7 @@ $default_home_dir = '/dev/null';
check_server_id( $server_id ) or pla_error( "Bad server_id: " . htmlspecialchars( $server_id ) );
have_auth_info( $server_id ) or pla_error( "Not enough information to login to server. Please check your configuration." );
if( get_schema_objectclass( $server_id, 'sambaAccount' ) == null )
if( get_schema_objectclass( $ldapserver, 'sambaAccount' ) == null )
pla_error( "Your LDAP server does not have schema support for the sambaAccount objectClass. Cannot continue." );
?>
@ -87,7 +87,7 @@ if( get_schema_objectclass( $server_id, 'sambaAccount' ) == null )
$machine_name = trim( $_POST['machine_name'] );
$uid_number = trim( $_POST['uid_number'] );
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );
?>

View File

@ -174,10 +174,10 @@ if ( !$verify ) {
$reg_zip = trim( $_POST['reg_zip'] );
$container = trim( $_POST['container'] );
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );
dn_exists( $server_id, $occupant ) or
dn_exists( $ldapserver, $occupant ) or
pla_error( "The occupant you specified (" . htmlspecialchars( $occupant ) . ") does not exist. " .
"Please go back and try again." );
0 != strlen( $or_name ) or

View File

@ -1,5 +1,5 @@
<?php
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_ou_template.php,v 1.11 2004/10/24 23:51:51 uugdave Exp $
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/creation/new_ou_template.php,v 1.12 2005/03/05 06:27:07 wurley Exp $
// Common to all templates
$container = $_POST['container'];
@ -48,7 +48,7 @@ have_auth_info( $server_id ) or pla_error( "Not enough information to login to s
$ou_name = trim( $_POST['ou_name'] );
$container = trim( $_POST['container'] );
dn_exists( $server_id, $container ) or
dn_exists( $ldapserver, $container ) or
pla_error( "The container you specified (" . htmlspecialchars( $container ) . ") does not exist. " .
"Please go back and try again." );

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