RELEASE 0.9.8.4
This commit is contained in:
parent
a01f7c8289
commit
c131e8b479
4
INSTALL
4
INSTALL
@ -1,5 +1,5 @@
|
|||||||
For install instructions in non-English languages, see the wiki:
|
For install instructions in non-English languages, see the wiki:
|
||||||
http://wiki.pldapadmin.com
|
http://wiki.phpldapadmin.info
|
||||||
|
|
||||||
* Requirements
|
* Requirements
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ For install instructions in non-English languages, see the wiki:
|
|||||||
* For additional help
|
* For additional help
|
||||||
|
|
||||||
See the wiki:
|
See the wiki:
|
||||||
http://wiki.pldapadmin.com
|
http://wiki.phpldapadmin.info
|
||||||
|
|
||||||
Join our mailing list:
|
Join our mailing list:
|
||||||
https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel
|
https://lists.sourceforge.net/lists/listinfo/phpldapadmin-devel
|
||||||
|
@ -1,4 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
/** NOTE **
|
||||||
|
** Make sure that <?php is the FIRST line of this file!
|
||||||
|
** IE: There should NOT be any blank lines or spaces BEFORE <?php
|
||||||
|
**/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The phpLDAPadmin config file
|
* The phpLDAPadmin config file
|
||||||
*
|
*
|
||||||
@ -9,8 +14,8 @@
|
|||||||
* For example, the default for defining the language in config_default.php
|
* For example, the default for defining the language in config_default.php
|
||||||
*
|
*
|
||||||
* $this->default->appearance['lang'] = array(
|
* $this->default->appearance['lang'] = array(
|
||||||
* 'desc'=>'Language',
|
* 'desc'=>'Language',
|
||||||
* 'default'=>'auto');
|
* 'default'=>'auto');
|
||||||
*
|
*
|
||||||
* to override this, use $config->custom->appearance['lang'] = 'en';
|
* to override this, use $config->custom->appearance['lang'] = 'en';
|
||||||
*
|
*
|
||||||
@ -141,7 +146,7 @@ $ldapservers->SetValue($i,'server','name','My LDAP Server');
|
|||||||
/* If 'login_attr' is used above such that phpLDAPadmin will search for your DN
|
/* If 'login_attr' is used above such that phpLDAPadmin will search for your DN
|
||||||
at login, you may restrict the search to a specific objectClass. EG, set this
|
at login, you may restrict the search to a specific objectClass. EG, set this
|
||||||
to 'posixAccount' or 'inetOrgPerson', depending upon your setup. */
|
to 'posixAccount' or 'inetOrgPerson', depending upon your setup. */
|
||||||
// $ldapservers->SetValue($i,'login','class','');
|
// $ldapservers->SetValue($i,'login','class',null);
|
||||||
|
|
||||||
/* Specify true If you want phpLDAPadmin to not display or permit any
|
/* Specify true If you want phpLDAPadmin to not display or permit any
|
||||||
modification to the LDAP server. */
|
modification to the LDAP server. */
|
||||||
@ -164,50 +169,50 @@ $ldapservers->SetValue($i,'server','name','My LDAP Server');
|
|||||||
// $ldapservers->SetValue($i,'auto_number','mechanism','search');
|
// $ldapservers->SetValue($i,'auto_number','mechanism','search');
|
||||||
|
|
||||||
/* The DN of the search base when the 'search' mechanism is used above. */
|
/* The DN of the search base when the 'search' mechanism is used above. */
|
||||||
// $ldapservers->SetValue($i,'auto_number','search_base','ou=People,dc=example,dc=com');
|
# $ldapservers->SetValue($i,'auto_number','search_base','ou=People,dc=example,dc=com');
|
||||||
|
|
||||||
/* The minimum number to use when searching for the next available UID number
|
/* The minimum number to use when searching for the next available UID number
|
||||||
(only when 'search' is used for auto_uid_number_mechanism' */
|
(only when 'search' is used for auto_uid_number_mechanism' */
|
||||||
// $ldapservers->SetValue($i,'auto_number','min','1000');
|
// $ldapservers->SetValue($i,'auto_number','min','1000');
|
||||||
|
|
||||||
/* The DN of the uidPool entry when 'uidpool' mechanism is used above. */
|
/* The DN of the uidPool entry when 'uidpool' mechanism is used above. */
|
||||||
// $servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
|
# $servers[$i]['auto_uid_number_uid_pool_dn'] = 'cn=uidPool,dc=example,dc=com';
|
||||||
|
|
||||||
/* If you set this, then phpldapadmin will bind to LDAP with this user ID when
|
/* If you set this, then phpldapadmin will bind to LDAP with this user ID when
|
||||||
searching for the uidnumber. The idea is, this user id would have full
|
searching for the uidnumber. The idea is, this user id would have full
|
||||||
(readonly) access to uidnumber in your ldap directory (the logged in user
|
(readonly) access to uidnumber in your ldap directory (the logged in user
|
||||||
may not), so that you can be guaranteed to get a unique uidnumber for your
|
may not), so that you can be guaranteed to get a unique uidnumber for your
|
||||||
directory. */
|
directory. */
|
||||||
// $ldapservers->SetValue($i,'auto_number','dn','');
|
// $ldapservers->SetValue($i,'auto_number','dn',null);
|
||||||
|
|
||||||
/* The password for the dn above. */
|
/* The password for the dn above. */
|
||||||
// $ldapservers->SetValue($i,'auto_number','pass','');
|
// $ldapservers->SetValue($i,'auto_number','pass',null);
|
||||||
|
|
||||||
/* Enable anonymous bind login. */
|
/* Enable anonymous bind login. */
|
||||||
// $ldapservers->SetValue($i,'login','anon_bind',true);
|
// $ldapservers->SetValue($i,'login','anon_bind',true);
|
||||||
|
|
||||||
/* Use customized page with prefix when available. */
|
/* Use customized page with prefix when available. */
|
||||||
// $ldapservers->SetValue($i,'custom','pages_prefix','custom_');
|
# $ldapservers->SetValue($i,'custom','pages_prefix','custom_');
|
||||||
|
|
||||||
/* If you set this, then phpldapadmin will bind to LDAP with this user when
|
/* If you set this, then phpldapadmin will bind to LDAP with this user when
|
||||||
testing for unique attributes (as set in unique_attrs array). If you want to
|
testing for unique attributes (as set in unique_attrs array). If you want to
|
||||||
enforce unique attributes, than this id should have full (readonly) access
|
enforce unique attributes, than this id should have full (readonly) access
|
||||||
to the attributes in question (the logged in user may not have enough access)
|
to the attributes in question (the logged in user may not have enough access)
|
||||||
*/
|
*/
|
||||||
// $ldapservers->SetValue($i,'unique_attrs','dn','');
|
// $ldapservers->SetValue($i,'unique_attrs','dn',null);
|
||||||
|
|
||||||
/* The password for the dn above */
|
/* The password for the dn above */
|
||||||
// $ldapservers->SetValue($i,'unique_attrs','pass','');
|
// $ldapservers->SetValue($i,'unique_attrs','pass',null);
|
||||||
|
|
||||||
/* If you set this, then only these DNs are allowed to log in. This array can
|
/* 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
|
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 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! */
|
the LDAP server, so make your ACLs allow these searches to return results! */
|
||||||
# $ldapservers->SetValue($i,'login','allowed_dns',array(
|
# $ldapservers->SetValue($i,'login','allowed_dns',array(
|
||||||
# 'uid=stran,ou=People,dc=example,dc=com',
|
# 'uid=stran,ou=People,dc=example,dc=com',
|
||||||
# '(&(gidNumber=811)(objectClass=groupOfNames))',
|
# '(&(gidNumber=811)(objectClass=groupOfNames))',
|
||||||
# '(|(uidNumber=200)(uidNumber=201))',
|
# '(|(uidNumber=200)(uidNumber=201))',
|
||||||
# 'cn=callcenter,ou=Group,dc=example,dc=com'));
|
# 'cn=callcenter,ou=Group,dc=example,dc=com'));
|
||||||
|
|
||||||
/* Set this if you dont want this LDAP server to show in the tree */
|
/* Set this if you dont want this LDAP server to show in the tree */
|
||||||
// $ldapservers->SetValue($i,'appearance','visible',true);
|
// $ldapservers->SetValue($i,'appearance','visible',true);
|
||||||
@ -240,20 +245,20 @@ $ldapservers->SetValue($i,'server','tls',false);
|
|||||||
$ldapservers->SetValue($i,'server','low_bandwidth',false);
|
$ldapservers->SetValue($i,'server','low_bandwidth',false);
|
||||||
$ldapservers->SetValue($i,'appearance','password_hash','md5');
|
$ldapservers->SetValue($i,'appearance','password_hash','md5');
|
||||||
$ldapservers->SetValue($i,'login','attr','dn');
|
$ldapservers->SetValue($i,'login','attr','dn');
|
||||||
$ldapservers->SetValue($i,'login','string','');
|
$ldapservers->SetValue($i,'login','string',null);
|
||||||
$ldapservers->SetValue($i,'login','class','');
|
$ldapservers->SetValue($i,'login','class',null);
|
||||||
$ldapservers->SetValue($i,'server','read_only',false);
|
$ldapservers->SetValue($i,'server','read_only',false);
|
||||||
$ldapservers->SetValue($i,'appearance','show_create',true);
|
$ldapservers->SetValue($i,'appearance','show_create',true);
|
||||||
$ldapservers->SetValue($i,'auto_number','enable',true);
|
$ldapservers->SetValue($i,'auto_number','enable',true);
|
||||||
$ldapservers->SetValue($i,'auto_number','mechanism','search');
|
$ldapservers->SetValue($i,'auto_number','mechanism','search');
|
||||||
$ldapservers->SetValue($i,'auto_number','search_base','');
|
$ldapservers->SetValue($i,'auto_number','search_base',null);
|
||||||
$ldapservers->SetValue($i,'auto_number','min','1000');
|
$ldapservers->SetValue($i,'auto_number','min','1000');
|
||||||
$ldapservers->SetValue($i,'auto_number','dn','');
|
$ldapservers->SetValue($i,'auto_number','dn',null);
|
||||||
$ldapservers->SetValue($i,'auto_number','pass','');
|
$ldapservers->SetValue($i,'auto_number','pass',null);
|
||||||
$ldapservers->SetValue($i,'login','anon_bind',true);
|
$ldapservers->SetValue($i,'login','anon_bind',true);
|
||||||
$ldapservers->SetValue($i,'custom','pages_prefix','custom_');
|
$ldapservers->SetValue($i,'custom','pages_prefix','custom_');
|
||||||
$ldapservers->SetValue($i,'unique_attrs','dn','');
|
$ldapservers->SetValue($i,'unique_attrs','dn',null);
|
||||||
$ldapservers->SetValue($i,'unique_attrs','pass','');
|
$ldapservers->SetValue($i,'unique_attrs','pass',null);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*********************************************/
|
/*********************************************/
|
||||||
@ -265,7 +270,7 @@ $ldapservers->SetValue($i,'unique_attrs','pass','');
|
|||||||
$friendly_attrs = array();
|
$friendly_attrs = array();
|
||||||
|
|
||||||
$friendly_attrs['facsimileTelephoneNumber'] = 'Fax';
|
$friendly_attrs['facsimileTelephoneNumber'] = 'Fax';
|
||||||
$friendly_attrs['telephoneNumber'] = 'Phone';
|
$friendly_attrs['telephoneNumber'] = 'Phone';
|
||||||
|
|
||||||
/*********************************************/
|
/*********************************************/
|
||||||
/* Support for attrs display order */
|
/* Support for attrs display order */
|
||||||
@ -277,16 +282,16 @@ $friendly_attrs['telephoneNumber'] = 'Phone';
|
|||||||
attributes that are not specified in this array will be displayed after in
|
attributes that are not specified in this array will be displayed after in
|
||||||
alphabetical order. */
|
alphabetical order. */
|
||||||
# $attrs_display_order = array(
|
# $attrs_display_order = array(
|
||||||
# 'givenName',
|
# 'givenName',
|
||||||
# 'sn',
|
# 'sn',
|
||||||
# 'cn',
|
# 'cn',
|
||||||
# 'displayName',
|
# 'displayName',
|
||||||
# 'uid',
|
# 'uid',
|
||||||
# 'uidNumber',
|
# 'uidNumber',
|
||||||
# 'gidNumber',
|
# 'gidNumber',
|
||||||
# 'homeDirectory',
|
# 'homeDirectory',
|
||||||
# 'mail',
|
# 'mail',
|
||||||
# 'userPassword'
|
# 'userPassword'
|
||||||
# );
|
# );
|
||||||
|
|
||||||
/*********************************************/
|
/*********************************************/
|
||||||
@ -305,8 +310,8 @@ $friendly_attrs['telephoneNumber'] = 'Phone';
|
|||||||
/* Hidden attributes in read-only mode. If undefined, it will be equal to
|
/* Hidden attributes in read-only mode. If undefined, it will be equal to
|
||||||
$hidden_attrs. */
|
$hidden_attrs. */
|
||||||
# $hidden_attrs_ro = array(
|
# $hidden_attrs_ro = array(
|
||||||
# 'objectClass','shadowWarning', 'shadowLastChange', 'shadowMax',
|
# 'objectClass','shadowWarning', 'shadowLastChange', 'shadowMax',
|
||||||
# 'shadowFlag', 'shadowInactive', 'shadowMin', 'shadowExpire');
|
# 'shadowFlag', 'shadowInactive', 'shadowMin', 'shadowExpire');
|
||||||
|
|
||||||
/** **/
|
/** **/
|
||||||
/** Read-only attributes **/
|
/** Read-only attributes **/
|
||||||
@ -357,7 +362,7 @@ $queries[$q]['scope'] = 'sub';
|
|||||||
$queries[$q]['filter'] = '(&(objectClass=posixAccount)(uid=*))';
|
$queries[$q]['filter'] = '(&(objectClass=posixAccount)(uid=*))';
|
||||||
|
|
||||||
/* The attributes to return */
|
/* The attributes to return */
|
||||||
$queries[$q]['attributes'] = 'cn, uid, homeDirectory';
|
$queries[$q]['attributes'] = 'cn, uid, homeDirectory, telephonenumber, jpegphoto';
|
||||||
|
|
||||||
/* If you want to configure more pre-defined queries, copy and paste the above (including the "$q++;") */
|
/* If you want to configure more pre-defined queries, copy and paste the above (including the "$q++;") */
|
||||||
$q++;
|
$q++;
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
Please see http://wiki.pldapadmin.com/Translating now for information on
|
Please see http://wiki.phpldapadmin.info/Translating now for information on
|
||||||
translating PLA.
|
translating PLA.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value_form.php,v 1.34.2.4 2005/12/11 08:59:08 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/add_value_form.php,v 1.34.2.5 2007/01/27 12:51:47 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays a form to allow the user to enter a new value to add
|
* Displays a form to allow the user to enter a new value to add
|
||||||
@ -34,10 +34,16 @@ else
|
|||||||
$rdn = null;
|
$rdn = null;
|
||||||
|
|
||||||
$current_values = $ldapserver->getDNAttr($dn,$attr);
|
$current_values = $ldapserver->getDNAttr($dn,$attr);
|
||||||
if ($current_values)
|
if ($current_values) {
|
||||||
$num_current_values = (is_array($current_values) ? count($current_values) : 1);
|
if (! is_array($current_values))
|
||||||
else
|
$current_values = array($current_values);
|
||||||
|
|
||||||
|
$num_current_values = count($current_values);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$current_values = array();
|
||||||
$num_current_values = 0;
|
$num_current_values = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$is_object_class = (strcasecmp($attr, 'objectClass') == 0) ? true : false;
|
$is_object_class = (strcasecmp($attr, 'objectClass') == 0) ? true : false;
|
||||||
|
|
||||||
@ -107,18 +113,18 @@ if ($num_current_values) {
|
|||||||
if (strcasecmp($attr,'userPassword') == 0) {
|
if (strcasecmp($attr,'userPassword') == 0) {
|
||||||
foreach ($current_values as $key => $value) {
|
foreach ($current_values as $key => $value) {
|
||||||
if (obfuscate_password_display(get_enc_type($value)))
|
if (obfuscate_password_display(get_enc_type($value)))
|
||||||
echo '<li><nobr>'.preg_replace('/./','*',$value).'<br /></li>';
|
echo '<li><span style="white-space: nowrap;">'.preg_replace('/./','*',$value).'<br /></li>';
|
||||||
else
|
else
|
||||||
echo '<li><nobr>'.htmlspecialchars($value).'<br /></li>';
|
echo '<li><span style="white-space: nowrap;">'.htmlspecialchars($value).'<br /></li>';
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
foreach ($current_values as $val)
|
foreach ($current_values as $val)
|
||||||
printf('<li><nobr>%s</nobr></li>',htmlspecialchars($val));
|
printf('<li><span style="white-space: nowrap;">%s</span></li>',htmlspecialchars($val));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
printf('<li><nobr>%s</nobr></li>',htmlspecialchars($current_values));
|
printf('<li><span style="white-space: nowrap;">%s</span></li>',htmlspecialchars($current_values));
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '</ul>';
|
echo '</ul>';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/collapse.php,v 1.13.4.1 2005/11/26 05:17:06 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/collapse.php,v 1.13.4.2 2007/03/18 03:16:05 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script alters the session variable 'tree', collapsing it
|
* This script alters the session variable 'tree', collapsing it
|
||||||
@ -23,17 +23,11 @@ $tree = get_cached_item($ldapserver->server_id,'tree');
|
|||||||
$tree['browser'][$dn]['open'] = false;
|
$tree['browser'][$dn]['open'] = false;
|
||||||
set_cached_item($ldapserver->server_id,'tree','null',$tree);
|
set_cached_item($ldapserver->server_id,'tree','null',$tree);
|
||||||
|
|
||||||
/* This is for Opera. By putting "random junk" in the query string, it thinks
|
|
||||||
that it does not have a cached version of the page, and will thus
|
|
||||||
fetch the page rather than display the cached version */
|
|
||||||
$time = gettimeofday();
|
|
||||||
$random_junk = md5(strtotime('now').$time['usec']);
|
|
||||||
|
|
||||||
/* If cookies were disabled, build the url parameter for the session id.
|
/* If cookies were disabled, build the url parameter for the session id.
|
||||||
It will be append to the url to be redirect */
|
It will be append to the url to be redirect */
|
||||||
$id_session_param = '';
|
$id_session_param = '';
|
||||||
if (SID != '')
|
if (SID != '')
|
||||||
$id_session_param = sprintf('&%s=%s',session_name(),session_id());
|
$id_session_param = sprintf('&%s=%s',session_name(),session_id());
|
||||||
|
|
||||||
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',$random_junk,$ldapserver->server_id,rawurlencode($dn),$id_session_param));
|
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',random_junk(),$ldapserver->server_id,rawurlencode($dn),$id_session_param));
|
||||||
?>
|
?>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare.php,v 1.12.2.5 2005/12/17 01:28:33 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/compare.php,v 1.12.2.6 2007/01/27 12:38:59 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare two DNs - the destination DN is editable.
|
* Compare two DNs - the destination DN is editable.
|
||||||
@ -163,7 +163,7 @@ foreach ($attrs_all as $attr) {
|
|||||||
if ($side == 'src') { ?>
|
if ($side == 'src') { ?>
|
||||||
<td class="attr">
|
<td class="attr">
|
||||||
<?php $schema_href="schema.php?server_id=$server_id_src&view=attributes&viewvalue=".real_attr_name($attr); ?>
|
<?php $schema_href="schema.php?server_id=$server_id_src&view=attributes&viewvalue=".real_attr_name($attr); ?>
|
||||||
<b><a title="<?php echo sprintf(_('Click to view the schema defintion for attribute type \'%s\''),$attr) ?>" href="<?php echo $schema_href; ?>"><?php echo $attr_display; ?></a></b>
|
<b><a title="<?php echo sprintf(_('Click to view the schema definition for attribute type \'%s\''),$attr) ?>" href="<?php echo $schema_href; ?>"><?php echo $attr_display; ?></a></b>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td class="attr_note">
|
<td class="attr_note">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy.php,v 1.36.2.10 2005/12/31 03:13:47 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/copy.php,v 1.36.2.12 2007/03/18 01:31:19 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copies a given object to create a new one.
|
* Copies a given object to create a new one.
|
||||||
@ -88,7 +88,7 @@ if ($copy_result) {
|
|||||||
|
|
||||||
if ($do_remove) {
|
if ($do_remove) {
|
||||||
sleep(2);
|
sleep(2);
|
||||||
$delete_url = sprintf('delete_form.php?server_id=%s&dn=%s',$server_id_dst,rawurlencode($dn_src));
|
$delete_url = sprintf('delete_form.php?server_id=%s&dn=%s',$server_id_src,rawurlencode($dn_src));
|
||||||
echo '<!-- redirect to the delete form -->';
|
echo '<!-- redirect to the delete form -->';
|
||||||
printf('<script type="text/javascript" language="javascript">parent.right_frame.location="%s" </script>',$delete_url);
|
printf('<script type="text/javascript" language="javascript">parent.right_frame.location="%s" </script>',$delete_url);
|
||||||
}
|
}
|
||||||
@ -99,7 +99,7 @@ function r_copy_dn($ldapserver_src,$ldapserver_dst,$snapshottree,$root_dn,$dn_ds
|
|||||||
debug_log('r_copy_dn: Entered with (%s,%s,%s,%s,%s)',1,
|
debug_log('r_copy_dn: Entered with (%s,%s,%s,%s,%s)',1,
|
||||||
$ldapserver_src->server_id,$ldapserver_dst->server_id,$snapshottree,$root_dn,$dn_dst);
|
$ldapserver_src->server_id,$ldapserver_dst->server_id,$snapshottree,$root_dn,$dn_dst);
|
||||||
|
|
||||||
printf('<nobr>%s %s...',_('Copying '),htmlspecialchars($root_dn));
|
printf('<span style="white-space: nowrap;">%s %s...',_('Copying'),htmlspecialchars($root_dn));
|
||||||
flush();
|
flush();
|
||||||
|
|
||||||
$copy_result = copy_dn($ldapserver_src,$ldapserver_dst,$root_dn,$dn_dst);
|
$copy_result = copy_dn($ldapserver_src,$ldapserver_dst,$root_dn,$dn_dst);
|
||||||
@ -107,7 +107,7 @@ function r_copy_dn($ldapserver_src,$ldapserver_dst,$snapshottree,$root_dn,$dn_ds
|
|||||||
if (! $copy_result)
|
if (! $copy_result)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
printf('<span style="color:green">%s</span></nobr><br />',_('Success'));
|
printf('<span style="color:green">%s</span><br />',_('Success'));
|
||||||
flush();
|
flush();
|
||||||
|
|
||||||
$children = isset($snapshottree[$root_dn]) ? $snapshottree[$root_dn] : null;
|
$children = isset($snapshottree[$root_dn]) ? $snapshottree[$root_dn] : null;
|
||||||
@ -172,6 +172,7 @@ function build_tree($ldapserver,$dn,$buildtree) {
|
|||||||
debug_log('build_tree: Entered with (%s,%s,%s)',1,
|
debug_log('build_tree: Entered with (%s,%s,%s)',1,
|
||||||
$ldapserver->server_id,$dn,$buildtree);
|
$ldapserver->server_id,$dn,$buildtree);
|
||||||
|
|
||||||
|
# we search all children, not only the visible children in the tree
|
||||||
$children = $ldapserver->getContainerContents($dn,0);
|
$children = $ldapserver->getContainerContents($dn,0);
|
||||||
|
|
||||||
if (is_array($children) && count($children) > 0) {
|
if (is_array($children) && count($children) > 0) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/expand.php,v 1.22.4.2 2005/12/08 11:50:06 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/expand.php,v 1.22.4.3 2007/03/18 03:16:05 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script alters the session variable 'tree', expanding it
|
* This script alters the session variable 'tree', expanding it
|
||||||
@ -35,17 +35,11 @@ $tree = get_cached_item($ldapserver->server_id,'tree');
|
|||||||
$tree['browser'][$dn]['open'] = true;
|
$tree['browser'][$dn]['open'] = true;
|
||||||
set_cached_item($ldapserver->server_id,'tree','null',$tree);
|
set_cached_item($ldapserver->server_id,'tree','null',$tree);
|
||||||
|
|
||||||
/* This is for Opera. By putting "random junk" in the query string, it thinks
|
|
||||||
that it does not have a cached version of the page, and will thus
|
|
||||||
fetch the page rather than display the cached version */
|
|
||||||
$time = gettimeofday();
|
|
||||||
$random_junk = md5(strtotime('now').$time['usec']);
|
|
||||||
|
|
||||||
/* If cookies were disabled, build the url parameter for the session id.
|
/* If cookies were disabled, build the url parameter for the session id.
|
||||||
It will be append to the url to be redirect */
|
It will be append to the url to be redirect */
|
||||||
$id_session_param = '';
|
$id_session_param = '';
|
||||||
if (SID != '')
|
if (SID != '')
|
||||||
$id_session_param = sprintf('&%s=%s',session_name(),session_id());
|
$id_session_param = sprintf('&%s=%s',session_name(),session_id());
|
||||||
|
|
||||||
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',$random_junk,$ldapserver->server_id,rawurlencode($dn),$id_session_param));
|
header(sprintf('Location:tree.php?foo=%s#%s_%s%s',random_junk(),$ldapserver->server_id,rawurlencode($dn),$id_session_param));
|
||||||
?>
|
?>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export_form.php,v 1.22.4.6 2005/12/11 07:41:04 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/export_form.php,v 1.22.4.7 2007/03/18 03:16:05 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* export_form.php
|
* export_form.php
|
||||||
@ -52,9 +52,9 @@ printf('<tr><td>%s</td><td>%s</td></tr>',_('Server'),server_select_list());
|
|||||||
|
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
printf('<td style="white-space:nowrap">%s</td>',_('Base DN'));
|
printf('<td style="white-space:nowrap">%s</td>',_('Base DN'));
|
||||||
printf('<td><nobr><input type="text" name="dn" id="dn" style="width:230px" value="%s" /> ',htmlspecialchars($dn));
|
printf('<td><span style="white-space: nowrap;"><input type="text" name="dn" id="dn" style="width:230px" value="%s" /> ',htmlspecialchars($dn));
|
||||||
draw_chooser_link('export_form.dn');
|
draw_chooser_link('export_form.dn');
|
||||||
echo '</nobr></td>';
|
echo '</span></td>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
|
|
||||||
echo '<tr>';
|
echo '<tr>';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login.php,v 1.51.2.9 2005/12/31 03:13:48 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/login.php,v 1.51.2.10 2007/01/27 13:03:56 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me the
|
* For servers whose auth_type is set to 'cookie' or 'session'. Pass me the
|
||||||
@ -38,7 +38,7 @@ if (! $anon_bind)
|
|||||||
$save_auth_type = $ldapserver->auth_type;
|
$save_auth_type = $ldapserver->auth_type;
|
||||||
|
|
||||||
if ($anon_bind) {
|
if ($anon_bind) {
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
debug_log('Anonymous Login was posted [%s].',64,$anon_bind);
|
debug_log('Anonymous Login was posted [%s].',64,$anon_bind);
|
||||||
|
|
||||||
$dn = null;
|
$dn = null;
|
||||||
@ -78,14 +78,15 @@ if ($anon_bind) {
|
|||||||
|
|
||||||
# Got through each of the BASE DNs and test the login.
|
# Got through each of the BASE DNs and test the login.
|
||||||
foreach ($ldapserver->getBaseDN() as $base_dn) {
|
foreach ($ldapserver->getBaseDN() as $base_dn) {
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
debug_log('Searching LDAP with base [%s]',64,$base_dn);
|
debug_log('Searching LDAP with base [%s]',64,$base_dn);
|
||||||
|
|
||||||
$result = array_pop($ldapserver->search(null,$base_dn,$filter,array('dn')));
|
$result = $ldapserver->search(null,$base_dn,$filter,array('dn'));
|
||||||
|
$result = array_pop($result);
|
||||||
$dn = $result['dn'];
|
$dn = $result['dn'];
|
||||||
|
|
||||||
if ($dn) {
|
if ($dn) {
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
debug_log('Got DN [%s] for user ID [%s]',64,$dn,$uid);
|
debug_log('Got DN [%s] for user ID [%s]',64,$dn,$uid);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rdelete.php,v 1.23.2.2 2005/12/08 11:54:19 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/rdelete.php,v 1.23.2.3 2007/03/18 03:16:05 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Recursively deletes the specified DN and all of its children
|
* Recursively deletes the specified DN and all of its children
|
||||||
@ -57,13 +57,13 @@ function pla_rdelete($ldapserver,$dn) {
|
|||||||
$children = $ldapserver->getContainerContents($dn);
|
$children = $ldapserver->getContainerContents($dn);
|
||||||
|
|
||||||
if (! is_array($children) || count($children) == 0) {
|
if (! is_array($children) || count($children) == 0) {
|
||||||
printf('<nobr>'._('Deleting %s').'...',htmlspecialchars($dn));
|
printf('<span style="white-space: nowrap;">%s %s...',_('Deleting'),htmlspecialchars($dn));
|
||||||
flush();
|
flush();
|
||||||
|
|
||||||
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn)))
|
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn)))
|
||||||
if ($ldapserver->delete($dn)) {
|
if ($ldapserver->delete($dn)) {
|
||||||
run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
|
run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
|
||||||
printf(' <span style="color:green">%s</span></nobr><br />',_('Success'));
|
printf(' <span style="color:green">%s</span></span><br />',_('Success'));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -74,13 +74,13 @@ function pla_rdelete($ldapserver,$dn) {
|
|||||||
foreach ($children as $child_dn)
|
foreach ($children as $child_dn)
|
||||||
pla_rdelete($ldapserver,$child_dn);
|
pla_rdelete($ldapserver,$child_dn);
|
||||||
|
|
||||||
printf('<nobr>'._('Deleting %s').'...',htmlspecialchars($dn));
|
printf('<span style="white-space: nowrap;">%s %s...',_('Deleting'),htmlspecialchars($dn));
|
||||||
flush();
|
flush();
|
||||||
|
|
||||||
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn)))
|
if (run_hook('pre_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn)))
|
||||||
if ($ldapserver->delete($dn)) {
|
if ($ldapserver->delete($dn)) {
|
||||||
run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
|
run_hook('post_entry_delete',array('server_id'=>$ldapserver->server_id,'dn'=>$dn));
|
||||||
printf(' <span style="color:green">%s</span></nobr><br />',_('Success'));
|
printf(' <span style="color:green">%s</span></span><br />',_('Success'));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/schema.php,v 1.61.2.5 2005/12/30 11:52:54 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/schema.php,v 1.61.2.7 2007/03/21 23:33:19 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Displays the schema for the specified server_id
|
* Displays the schema for the specified server_id
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/search.php,v 1.72.2.12 2006/04/29 05:45:34 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/search.php,v 1.72.2.13 2006/10/28 05:56:56 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Perform LDAP searches and draw the advanced/simple search forms
|
* Perform LDAP searches and draw the advanced/simple search forms
|
||||||
@ -43,6 +43,7 @@ if (isset($ldapserver)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
$filter = isset($_GET['filter']) ? clean_search_vals($_GET['filter']) : null;
|
$filter = isset($_GET['filter']) ? clean_search_vals($_GET['filter']) : null;
|
||||||
|
$orderby = isset($_GET['orderby']) ? clean_search_vals($_GET['orderby']) : null;
|
||||||
$attr = isset($_GET['attribute']) ? $_GET['attribute'] : null;
|
$attr = isset($_GET['attribute']) ? $_GET['attribute'] : null;
|
||||||
|
|
||||||
# grab the base dn for the search
|
# grab the base dn for the search
|
||||||
@ -207,7 +208,8 @@ if (isset($_GET['search'])) {
|
|||||||
debug_log('Search with base DN [%s]',64,$base_dn);
|
debug_log('Search with base DN [%s]',64,$base_dn);
|
||||||
}
|
}
|
||||||
|
|
||||||
$results = $ldapserver->search(null,dn_escape($base_dn),$filter,$search_result_attributes,$scope,true,$config->GetValue('deref','search'));
|
$results = $ldapserver->search(null,dn_escape($base_dn),$filter,
|
||||||
|
$search_result_attributes,$scope,$orderby,$config->GetValue('deref','search'));
|
||||||
|
|
||||||
if ((! $results) && $ldapserver->errno())
|
if ((! $results) && $ldapserver->errno())
|
||||||
pla_error(_('Encountered an error while performing search.'),$ldapserver->error(),$ldapserver->errno());
|
pla_error(_('Encountered an error while performing search.'),$ldapserver->error(),$ldapserver->errno());
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/server_info.php,v 1.22.2.4 2006/03/08 23:00:18 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/server_info.php,v 1.22.2.5 2007/01/27 13:11:06 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches and displays all information that it can from the specified server
|
* Fetches and displays all information that it can from the specified server
|
||||||
@ -50,13 +50,15 @@ if (! $ldapserver->haveAuthInfo())
|
|||||||
pla_error( _('Not enough information to login to server. Please check your configuration.') );
|
pla_error( _('Not enough information to login to server. Please check your configuration.') );
|
||||||
|
|
||||||
# Fetch basic RootDSE attributes using the + and *.
|
# Fetch basic RootDSE attributes using the + and *.
|
||||||
$attrs = array_pop($ldapserver->search(null,'','objectClass=*',array('+','*'),'base'));
|
$attrs = $ldapserver->search(null,'','objectClass=*',array('+','*'),'base');
|
||||||
|
$attrs = array_pop($attrs);
|
||||||
|
|
||||||
/* After fetching the "basic" attributes from the RootDSE, try fetching the
|
/* 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
|
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
|
if they weren't already fetched. (this was added as a work-around for OpenLDAP
|
||||||
on RHEL 3. */
|
on RHEL 3. */
|
||||||
$attrs2 = array_pop($ldapserver->search(null,'','objectClass=*',$root_dse_attributes,'base'));
|
$attrs2 = $ldapserver->search(null,'','objectClass=*',$root_dse_attributes,'base');
|
||||||
|
$attrs2 = array_pop($attrs2);
|
||||||
|
|
||||||
if (is_array($attrs2))
|
if (is_array($attrs2))
|
||||||
foreach ($attrs2 as $attr => $values)
|
foreach ($attrs2 as $attr => $values)
|
||||||
@ -83,7 +85,7 @@ foreach ($attrs as $attr => $values) {
|
|||||||
$schema_href = sprintf('schema.php?server_id=%s&view=attributes&viewvalue=%s',$ldapserver->server_id,$attr);
|
$schema_href = sprintf('schema.php?server_id=%s&view=attributes&viewvalue=%s',$ldapserver->server_id,$attr);
|
||||||
|
|
||||||
echo '<tr><td class="attr">';
|
echo '<tr><td class="attr">';
|
||||||
printf('<b><a title="'._('Click to view the schema defintion for attribute type \'%s\'').'" href="%s">%s</a></b>',
|
printf('<b><a title="'._('Click to view the schema definition for attribute type \'%s\'').'" href="%s">%s</a></b>',
|
||||||
$attr,$schema_href,htmlspecialchars($attr));
|
$attr,$schema_href,htmlspecialchars($attr));
|
||||||
echo '</td></tr>';
|
echo '</td></tr>';
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/template_engine.php,v 1.26.2.37 2006/05/05 12:50:34 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/template_engine.php,v 1.26.2.38 2007/03/21 23:16:06 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Template render engine.
|
* Template render engine.
|
||||||
@ -519,9 +519,11 @@ if (isset($template['empty_attrs'])) {
|
|||||||
|
|
||||||
else {
|
else {
|
||||||
$display = $value;
|
$display = $value;
|
||||||
if (isset($template['attribute'][$attr]['type']) && $template['attribute'][$attr]['type'] == 'password')
|
if (isset($template['attribute'][$attr]['type']) && $template['attribute'][$attr]['type'] == 'password') {
|
||||||
if (obfuscate_password_display($_REQUEST['enc']))
|
$enc = (isset($_REQUEST['enc'])) ? $_REQUEST['enc'] : get_enc_type($value);
|
||||||
|
if (obfuscate_password_display($enc))
|
||||||
$display = '********';
|
$display = '********';
|
||||||
|
}
|
||||||
|
|
||||||
printf('<input type="hidden" name="vals[]" value="%s" />',$value);
|
printf('<input type="hidden" name="vals[]" value="%s" />',$value);
|
||||||
printf('%s</td><td><b>%s</b></td></tr>',$attr,htmlspecialchars($display));
|
printf('%s</td><td><b>%s</b></td></tr>',$attr,htmlspecialchars($display));
|
||||||
@ -742,7 +744,7 @@ foreach ($template['attrs'] as $attr => $vals) {
|
|||||||
$schema_href = sprintf('schema.php?server_id=%s&view=attributes&viewvalue=%s',
|
$schema_href = sprintf('schema.php?server_id=%s&view=attributes&viewvalue=%s',
|
||||||
$ldapserver->server_id,real_attr_name($attr));
|
$ldapserver->server_id,real_attr_name($attr));
|
||||||
|
|
||||||
printf('<b><a title="'._('Click to view the schema defintion for attribute type \'%s\'').'" href="%s">%s</a></b>',$attr,$schema_href,$attr_display);
|
printf('<b><a title="'._('Click to view the schema definition for attribute type \'%s\'').'" href="%s">%s</a></b>',$attr,$schema_href,$attr_display);
|
||||||
echo '</td>';
|
echo '</td>';
|
||||||
|
|
||||||
echo '<td class="attr_note">';
|
echo '<td class="attr_note">';
|
||||||
@ -968,10 +970,10 @@ foreach ($template['attrs'] as $attr => $vals) {
|
|||||||
$val = $vals[0];
|
$val = $vals[0];
|
||||||
|
|
||||||
printf('<input type="hidden" name="old_values[%s][]" value="%s" />',htmlspecialchars($attr),htmlspecialchars($val));
|
printf('<input type="hidden" name="old_values[%s][]" value="%s" />',htmlspecialchars($attr),htmlspecialchars($val));
|
||||||
printf('<nobr><input type="text" size="30" id="f_date_%s" name="new_values[%s][0]" value="%s" /> ',
|
printf('<span style="white-space: nowrap;"><input type="text" size="30" id="f_date_%s" name="new_values[%s][0]" value="%s" /> ',
|
||||||
$attr,htmlspecialchars($attr),htmlspecialchars($val));
|
$attr,htmlspecialchars($attr),htmlspecialchars($val));
|
||||||
draw_date_selector_link($attr);
|
draw_date_selector_link($attr);
|
||||||
echo '</nobr></td>';
|
echo '</span></td>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
$js[] = sprintf('<script type="text/javascript" language="javascript">defaults[\'f_date_%s\'] = \'%s\';</script>',$attr,$js_date_attrs[$attr]);
|
$js[] = sprintf('<script type="text/javascript" language="javascript">defaults[\'f_date_%s\'] = \'%s\';</script>',$attr,$js_date_attrs[$attr]);
|
||||||
|
|
||||||
@ -1005,7 +1007,7 @@ foreach ($template['attrs'] as $attr => $vals) {
|
|||||||
if (! strcasecmp($attr,'objectClass')) {
|
if (! strcasecmp($attr,'objectClass')) {
|
||||||
|
|
||||||
printf('<a title="%s" href="schema.php?server_id=%s&view=objectClasses&viewvalue=%s"><img src="images/info.png" alt="Info" /></a> ',
|
printf('<a title="%s" href="schema.php?server_id=%s&view=objectClasses&viewvalue=%s"><img src="images/info.png" alt="Info" /></a> ',
|
||||||
_('View the schema description for this objectClass'),$ldapserver->server_id,htmlspecialchars($val));
|
_('View the schema description for this objectClass'),$ldapserver->server_id,strtolower(htmlspecialchars($val)));
|
||||||
|
|
||||||
$schema_object = $ldapserver->getSchemaObjectClass($val);
|
$schema_object = $ldapserver->getSchemaObjectClass($val);
|
||||||
|
|
||||||
@ -1022,10 +1024,10 @@ foreach ($template['attrs'] as $attr => $vals) {
|
|||||||
if (is_dn_string($val) || $ldapserver->isDNAttr($attr))
|
if (is_dn_string($val) || $ldapserver->isDNAttr($attr))
|
||||||
|
|
||||||
if ($ldapserver->dnExists($val)) {
|
if ($ldapserver->dnExists($val)) {
|
||||||
printf('<a title="'._('Go to %s').'" href="template_engine.php?server_id=%s&dn=%s"><img style="vertical-align: top" src="images/go.png" /></a> ',
|
printf('<a title="'._('Go to %s').'" href="template_engine.php?server_id=%s&dn=%s"><img style="vertical-align: top" src="images/go.png" alt="Go" /></a> ',
|
||||||
htmlspecialchars($val),$ldapserver->server_id,rawurlencode($val));
|
htmlspecialchars($val),$ldapserver->server_id,rawurlencode($val));
|
||||||
} else {
|
} else {
|
||||||
printf('<a title="'._('DN not available %s').'"><img style="vertical-align: top" src="images/nogo.png" /></a> ',
|
printf('<a title="'._('DN not available %s').'"><img style="vertical-align: top" src="images/nogo.png" alt="N/E" /></a> ',
|
||||||
htmlspecialchars($val),$ldapserver->server_id,rawurlencode($val));
|
htmlspecialchars($val),$ldapserver->server_id,rawurlencode($val));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/tree.php,v 1.88.4.9 2005/12/21 19:28:31 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/tree.php,v 1.88.4.10 2007/03/18 03:16:06 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This script displays the LDAP tree for all the servers that you have
|
* This script displays the LDAP tree for all the servers that you have
|
||||||
@ -77,24 +77,24 @@ echo "\n\n";
|
|||||||
echo '<!-- Links at the top of the tree viewer -->';
|
echo '<!-- Links at the top of the tree viewer -->';
|
||||||
echo '<table class="edit_dn_menu" width=100%><tr>';
|
echo '<table class="edit_dn_menu" width=100%><tr>';
|
||||||
printf('<td><img src="images/home.png" alt="%s" /></td>',_('Home'));
|
printf('<td><img src="images/home.png" alt="%s" /></td>',_('Home'));
|
||||||
printf('<td width=50%%><nobr><a href="welcome.php" target="right_frame">%s</a></nobr></td>',_('Home'));
|
printf('<td width=50%%><span style="white-space: nowrap;"><a href="welcome.php" target="right_frame">%s</a></span></td>',_('Home'));
|
||||||
printf('<td><img src="images/trash.png" alt="%s" /></td>',_('Purge caches'));
|
printf('<td><img src="images/trash.png" alt="%s" /></td>',_('Purge caches'));
|
||||||
printf('<td width=50%%><nobr><a href="purge_cache.php" target="right_frame" title="%s">%s</a></nobr></td>',_('Purge all cached data in phpLDAPadmin, including server schemas.'),_('Purge caches'));
|
printf('<td width=50%%><span style="white-space: nowrap;"><a href="purge_cache.php" target="right_frame" title="%s">%s</a></span></td>',_('Purge all cached data in phpLDAPadmin, including server schemas.'),_('Purge caches'));
|
||||||
echo '</tr><tr>';
|
echo '</tr><tr>';
|
||||||
|
|
||||||
if (! $config->GetValue('appearance','hide_configuration_management')) {
|
if (! $config->GetValue('appearance','hide_configuration_management')) {
|
||||||
printf('<td><img src="images/light.png" alt="%s" /></td>',_('light'));
|
printf('<td><img src="images/light.png" alt="%s" /></td>',_('light'));
|
||||||
printf('<td width=50%%><nobr><a href="%s" target="new">%s</a></nobr></td>',get_href('add_rfe'),_('Request feature'));
|
printf('<td width=50%%><span style="white-space: nowrap;"><a href="%s" target="new">%s</a></span></td>',get_href('add_rfe'),_('Request feature'));
|
||||||
printf('<td><img src="images/bug.png" alt="%s" /></td>',_('bug'));
|
printf('<td><img src="images/bug.png" alt="%s" /></td>',_('bug'));
|
||||||
printf('<td width=50%%><nobr><a href="%s" target="new">%s</a></nobr></td>',get_href('add_bug'),_('Report a bug'));
|
printf('<td width=50%%><span style="white-space: nowrap;"><a href="%s" target="new">%s</a></span></td>',get_href('add_bug'),_('Report a bug'));
|
||||||
echo '</tr><tr>';
|
echo '</tr><tr>';
|
||||||
|
|
||||||
printf('<td><img src="images/smile.png" alt="%s" /></td>',_('Donate'));
|
printf('<td><img src="images/smile.png" alt="%s" /></td>',_('Donate'));
|
||||||
printf('<td width=50%%><nobr><a href="%s" target="right_frame">%s</a></nobr></td>',get_href('donate'),_('Donate'));
|
printf('<td width=50%%><span style="white-space: nowrap;"><a href="%s" target="right_frame">%s</a></span></td>',get_href('donate'),_('Donate'));
|
||||||
}
|
}
|
||||||
|
|
||||||
printf('<td><img src="images/help.png" alt="%s" /></td>',_('Help'));
|
printf('<td><img src="images/help.png" alt="%s" /></td>',_('Help'));
|
||||||
printf('<td><nobr><a href="help.php" target="right_frame">%s</a></nobr></td>',_('Help'));
|
printf('<td><span style="white-space: nowrap;"><a href="help.php" target="right_frame">%s</a></span></td>',_('Help'));
|
||||||
echo '</tr></table>';
|
echo '</tr></table>';
|
||||||
|
|
||||||
echo "\n\n";
|
echo "\n\n";
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update_confirm.php,v 1.43.2.11 2006/05/13 12:43:47 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/htdocs/update_confirm.php,v 1.43.2.12 2007/03/18 03:16:06 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Takes the results of clicking "Save" in template_engine.php and determines which
|
* Takes the results of clicking "Save" in template_engine.php and determines which
|
||||||
@ -144,7 +144,7 @@ if (count($update_array) > 0) {
|
|||||||
|
|
||||||
printf('<tr class="%s">',$counter%2 ? 'even' : 'odd');
|
printf('<tr class="%s">',$counter%2 ? 'even' : 'odd');
|
||||||
printf('<td><b>%s</b></td>',htmlspecialchars($attr));
|
printf('<td><b>%s</b></td>',htmlspecialchars($attr));
|
||||||
echo '<td><nobr>';
|
echo '<td><span style="white-space: nowrap;">';
|
||||||
|
|
||||||
if (strcasecmp($attr,'userPassword') == 0) {
|
if (strcasecmp($attr,'userPassword') == 0) {
|
||||||
foreach ($old_values[$attr] as $key => $value) {
|
foreach ($old_values[$attr] as $key => $value) {
|
||||||
@ -161,8 +161,8 @@ if (count($update_array) > 0) {
|
|||||||
else
|
else
|
||||||
echo nl2br(htmlspecialchars($old_values[$attr])).'<br />';
|
echo nl2br(htmlspecialchars($old_values[$attr])).'<br />';
|
||||||
|
|
||||||
echo '</nobr></td>';
|
echo '</span></td>';
|
||||||
echo '<td><nobr>';
|
echo '<td><span style="white-space: nowrap;">';
|
||||||
|
|
||||||
# Is this a multi-valued attribute?
|
# Is this a multi-valued attribute?
|
||||||
if (is_array($new_val)) {
|
if (is_array($new_val)) {
|
||||||
@ -201,7 +201,7 @@ if (count($update_array) > 0) {
|
|||||||
} elseif ($new_val != '')
|
} elseif ($new_val != '')
|
||||||
printf('<span style="color: red">%s</span>',_('[attribute deleted]'));
|
printf('<span style="color: red">%s</span>',_('[attribute deleted]'));
|
||||||
|
|
||||||
echo '</nobr></td>';
|
echo '</span></td>';
|
||||||
|
|
||||||
printf('<td><input name="skip_array[%s]" type="checkbox" /></td>',htmlspecialchars($attr));
|
printf('<td><input name="skip_array[%s]" type="checkbox" /></td>',htmlspecialchars($attr));
|
||||||
echo '</tr>'."\n\n";
|
echo '</tr>'."\n\n";
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/common.php,v 1.76.2.7 2006/04/29 06:31:27 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/common.php,v 1.76.2.8 2007/01/27 13:21:35 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contains code to be executed at the top of each phpLDAPadmin page.
|
* Contains code to be executed at the top of each phpLDAPadmin page.
|
||||||
@ -107,6 +107,7 @@ if ($language == 'auto') {
|
|||||||
|
|
||||||
# Set language
|
# Set language
|
||||||
putenv('LANG='.$HTTP_LANG); # e.g. LANG=de_DE
|
putenv('LANG='.$HTTP_LANG); # e.g. LANG=de_DE
|
||||||
|
$HTTP_LANG .= '.UTF-8';
|
||||||
setlocale(LC_ALL,$HTTP_LANG); # set LC_ALL to de_DE
|
setlocale(LC_ALL,$HTTP_LANG); # set LC_ALL to de_DE
|
||||||
bindtextdomain('messages',LANGDIR);
|
bindtextdomain('messages',LANGDIR);
|
||||||
bind_textdomain_codeset('messages','UTF-8');
|
bind_textdomain_codeset('messages','UTF-8');
|
||||||
@ -127,6 +128,7 @@ if ($language == 'auto') {
|
|||||||
|
|
||||||
# Set language
|
# Set language
|
||||||
putenv('LANG='.$language); # e.g. LANG=de_DE
|
putenv('LANG='.$language); # e.g. LANG=de_DE
|
||||||
|
$language .= '.UTF-8';
|
||||||
setlocale(LC_ALL,$language); # set LC_ALL to de_DE
|
setlocale(LC_ALL,$language); # set LC_ALL to de_DE
|
||||||
bindtextdomain('messages',LANGDIR);
|
bindtextdomain('messages',LANGDIR);
|
||||||
bind_textdomain_codeset('messages','UTF-8');
|
bind_textdomain_codeset('messages','UTF-8');
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/config_default.php,v 1.16.2.5 2005/12/08 19:54:38 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/config_default.php,v 1.16.2.6 2007/01/27 13:25:49 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration processing and defaults.
|
* Configuration processing and defaults.
|
||||||
@ -94,7 +94,7 @@ class Config {
|
|||||||
*/
|
*/
|
||||||
$this->default->appearance['obfuscate_password_display'] = array(
|
$this->default->appearance['obfuscate_password_display'] = array(
|
||||||
'desc'=>'Obfuscate the display of passwords',
|
'desc'=>'Obfuscate the display of passwords',
|
||||||
'default'=>false);
|
'default'=>true);
|
||||||
|
|
||||||
$this->default->appearance['show_clear_password'] = array(
|
$this->default->appearance['show_clear_password'] = array(
|
||||||
'desc'=>'Whether to show clear passwords if we dont obfuscate them',
|
'desc'=>'Whether to show clear passwords if we dont obfuscate them',
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/export_functions.php,v 1.32.2.8 2005/12/10 12:04:37 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/export_functions.php,v 1.32.2.10 2007/01/27 13:28:06 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fuctions and classes for exporting ldap entries to others formats
|
* Fuctions and classes for exporting ldap entries to others formats
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/functions.php,v 1.283.2.36 2006/05/07 05:25:56 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/functions.php,v 1.283.2.39 2007/03/18 03:12:10 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A collection of functions used throughout phpLDAPadmin.
|
* A collection of functions used throughout phpLDAPadmin.
|
||||||
@ -420,15 +420,16 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid') {
|
|||||||
|
|
||||||
if (is_null($base_dn))
|
if (is_null($base_dn))
|
||||||
pla_error(sprintf(_('You specified the "auto_uid_number_mechanism" as "search" in your
|
pla_error(sprintf(_('You specified the "auto_uid_number_mechanism" as "search" in your
|
||||||
configuration for server <b>%s</b>, but you did not specify the
|
configuration for server <b>%s</b>, but you did not specify the
|
||||||
"auto_uid_number_search_base". Please specify it before proceeding.'),$ldapserver->name));
|
"auto_uid_number_search_base". Please specify it before proceeding.'),$ldapserver->name));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$base_dn = $startbase;
|
$base_dn = $startbase;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! $ldapserver->dnExists($base_dn))
|
if (! $ldapserver->dnExists($base_dn))
|
||||||
pla_error(sprintf(_('Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s'),$ldapserver->name));
|
pla_error(sprintf(_('Your phpLDAPadmin configuration specifies an invalid auto_uid_search_base for server %s'),
|
||||||
|
$ldapserver->name));
|
||||||
|
|
||||||
$filter = '(|(uidNumber=*)(gidNumber=*))';
|
$filter = '(|(uidNumber=*)(gidNumber=*))';
|
||||||
$results = array();
|
$results = array();
|
||||||
@ -500,8 +501,8 @@ function get_next_number(&$ldapserver,$startbase='',$type='uid') {
|
|||||||
# No other cases allowed. The user has an error in the configuration
|
# No other cases allowed. The user has an error in the configuration
|
||||||
default :
|
default :
|
||||||
pla_error( sprintf( _('You specified an invalid value for auto_uid_number_mechanism ("%s")
|
pla_error( sprintf( _('You specified an invalid value for auto_uid_number_mechanism ("%s")
|
||||||
in your configration. Only "uidpool" and "search" are valid.
|
in your configration. Only "uidpool" and "search" are valid.
|
||||||
Please correct this problem.') , $mechanism) );
|
Please correct this problem.') , $mechanism) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1088,15 +1089,16 @@ function pla_error( $msg, $ldap_err_msg=null, $ldap_err_no=-1, $fatal=true ) {
|
|||||||
*
|
*
|
||||||
* @see set_error_handler
|
* @see set_error_handler
|
||||||
*/
|
*/
|
||||||
function pla_error_handler( $errno, $errstr, $file, $lineno ) {
|
function pla_error_handler($errno,$errstr,$file,$lineno) {
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
debug_log('pla_error_handler(): Entered with (%s,%s,%s,%s)',1,$errno,$errstr,$file,$lineno);
|
debug_log('pla_error_handler(): Entered with (%s,%s,%s,%s)',1,$errno,$errstr,$file,$lineno);
|
||||||
|
|
||||||
// error_reporting will be 0 if the error context occurred
|
/* error_reporting will be 0 if the error context occurred
|
||||||
// within a function call with '@' preprended (ie, @ldap_bind() );
|
* within a function call with '@' preprended (ie, @ldap_bind() );
|
||||||
// So, don't report errors if the caller has specifically
|
* So, don't report errors if the caller has specifically
|
||||||
// disabled them with '@'
|
* disabled them with '@'
|
||||||
if( 0 == ini_get( 'error_reporting' ) || 0 == error_reporting() )
|
*/
|
||||||
|
if (ini_get('error_reporting') == 0 || error_reporting() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$file = basename( $file );
|
$file = basename( $file );
|
||||||
@ -1216,7 +1218,8 @@ function draw_jpeg_photos($ldapserver,$dn,$attr_name='jpegPhoto',$draw_delete_bu
|
|||||||
if (isset($table_html_attrs) && trim($table_html_attrs) )
|
if (isset($table_html_attrs) && trim($table_html_attrs) )
|
||||||
printf('<table %s><tr><td><center>',$table_html_attrs);
|
printf('<table %s><tr><td><center>',$table_html_attrs);
|
||||||
|
|
||||||
$jpeg_data = array_pop($ldapserver->search(null,$dn,'objectClass=*',array($attr_name),'base'));
|
$jpeg_data = $ldapserver->search(null,$dn,'objectClass=*',array($attr_name),'base');
|
||||||
|
$jpeg_data = array_pop($jpeg_data);
|
||||||
if (! $jpeg_data) {
|
if (! $jpeg_data) {
|
||||||
printf(_('Could not fetch jpeg data from LDAP server for attribute %s.'),htmlspecialchars($attr_name));
|
printf(_('Could not fetch jpeg data from LDAP server for attribute %s.'),htmlspecialchars($attr_name));
|
||||||
return;
|
return;
|
||||||
@ -1719,7 +1722,7 @@ function dn_unescape($dn) {
|
|||||||
*/
|
*/
|
||||||
function get_href($type,$extra_info='') {
|
function get_href($type,$extra_info='') {
|
||||||
$sf = 'https://sourceforge.net';
|
$sf = 'https://sourceforge.net';
|
||||||
$pla = 'http://wiki.pldapadmin.com';
|
$pla = 'http://wiki.phpldapadmin.info';
|
||||||
$group_id = '61828';
|
$group_id = '61828';
|
||||||
$bug_atid = '498546';
|
$bug_atid = '498546';
|
||||||
$rfe_atid = '498549';
|
$rfe_atid = '498549';
|
||||||
@ -2680,7 +2683,7 @@ function password_generate() {
|
|||||||
$leftover = array_merge($leftover,$llower,$lupper,$numbers,$punc);
|
$leftover = array_merge($leftover,$llower,$lupper,$numbers,$punc);
|
||||||
|
|
||||||
shuffle($leftover);
|
shuffle($leftover);
|
||||||
$outarray = array_merge($outarray, a_array_rand($leftover, $criteria['num'] - $num_spec));
|
$outarray = array_merge($outarray, a_array_rand($leftover,$length-$num_spec));
|
||||||
}
|
}
|
||||||
|
|
||||||
shuffle($outarray);
|
shuffle($outarray);
|
||||||
@ -2814,4 +2817,14 @@ function no_expire_header() {
|
|||||||
header('Cache-Control: post-check=0, pre-check=0', false);
|
header('Cache-Control: post-check=0, pre-check=0', false);
|
||||||
header('Pragma: no-cache');
|
header('Pragma: no-cache');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is for Opera. By putting "random junk" in the query string, it thinks
|
||||||
|
* that it does not have a cached version of the page, and will thus
|
||||||
|
* fetch the page rather than display the cached version
|
||||||
|
*/
|
||||||
|
function random_junk() {
|
||||||
|
$time = gettimeofday();
|
||||||
|
return md5(strtotime('now').$time['usec']);
|
||||||
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/hooks.php,v 1.6.4.1 2006/01/26 11:49:15 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/hooks.php,v 1.6.4.2 2007/01/27 13:53:20 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Functions related to hooks management.
|
* Functions related to hooks management.
|
||||||
@ -171,13 +171,13 @@ function clear_hooks ( $hook_name ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Evaluating user-made hooks */
|
/* Evaluating user-made hooks */
|
||||||
if ( is_dir(HOOKSDIR) ) {
|
if (is_dir(HOOKSDIR)) {
|
||||||
$dir = dir (HOOKSDIR);
|
$dir = dir(HOOKSDIR);
|
||||||
|
|
||||||
while (false !== ($entry = $dir -> read() ) ) {
|
while (false !== ($entry = $dir->read())) {
|
||||||
if ( is_file ("hooks/$entry") and eregi ('php[0-9]?$', $entry) ) {
|
$filename = sprintf('%s/%s',HOOKSDIR,$entry);
|
||||||
require_once "hooks/$entry";
|
if (is_file($filename) and eregi('php[0-9]?$',$entry))
|
||||||
}
|
require_once "hooks/$entry";
|
||||||
}
|
}
|
||||||
|
|
||||||
$dir -> close();
|
$dir -> close();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/search_form_advanced.php,v 1.23.2.2 2005/12/08 12:06:58 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/search_form_advanced.php,v 1.23.2.3 2006/10/28 05:56:56 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package phpLDAPadmin
|
* @package phpLDAPadmin
|
||||||
@ -87,6 +87,12 @@ if( isset( $base_dn_does_not_exist ) && $base_dn_does_not_exist )
|
|||||||
join(', ',$config->GetValue('search','result_attributes')); ?>" />
|
join(', ',$config->GetValue('search','result_attributes')); ?>" />
|
||||||
|
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><small><acronym title="<?php echo htmlspecialchars(_('Order by').'...'); ?>">
|
||||||
|
<?php echo _('Order by'); ?></acronym></small></td>
|
||||||
|
|
||||||
|
<td><input type="text" name="orderby" id="orderby" style="width: 200px" value="<?php echo $filter ? htmlspecialchars($orderby) : ''; ?>" /></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td colspan="2"><br /><center><input type="submit" value="<?php echo _('Search'); ?>" /></center></td>
|
<td colspan="2"><br /><center><input type="submit" value="<?php echo _('Search'); ?>" /></center></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/server_functions.php,v 1.34.2.29 2006/05/07 05:25:56 wurley Exp $ */
|
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/server_functions.php,v 1.34.2.32 2007/03/18 01:57:18 wurley Exp $ */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Classes and functions for LDAP server configuration and capability
|
* Classes and functions for LDAP server configuration and capability
|
||||||
@ -148,7 +148,7 @@ class LDAPserver {
|
|||||||
|
|
||||||
# Quick return if we have already connected.
|
# Quick return if we have already connected.
|
||||||
$resource = $this->_connect($connect_id);
|
$resource = $this->_connect($connect_id);
|
||||||
if ($resource && ! $reconnect)
|
if (is_resource($resource) && ! $reconnect)
|
||||||
return $resource;
|
return $resource;
|
||||||
|
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
@ -219,7 +219,7 @@ class LDAPserver {
|
|||||||
|
|
||||||
# Now that we have worked out the connect_id, lets just check and see if we have already connected.
|
# Now that we have worked out the connect_id, lets just check and see if we have already connected.
|
||||||
$resource = $this->_connect($connect_id);
|
$resource = $this->_connect($connect_id);
|
||||||
if ($resource && ! $reconnect)
|
if (is_resource($resource) && ! $reconnect)
|
||||||
return $resource;
|
return $resource;
|
||||||
|
|
||||||
run_hook('pre_connect',array('server_id'=>$this->server_id,'connect_id'=>$connect_id));
|
run_hook('pre_connect',array('server_id'=>$this->server_id,'connect_id'=>$connect_id));
|
||||||
@ -335,7 +335,8 @@ class LDAPserver {
|
|||||||
debug_log('%s::getBaseDN(): Connect to LDAP to find BaseDN',80,get_class($this));
|
debug_log('%s::getBaseDN(): Connect to LDAP to find BaseDN',80,get_class($this));
|
||||||
|
|
||||||
if ($this->connect()) {
|
if ($this->connect()) {
|
||||||
$r = array_pop($this->search(null,'','objectClass=*',array('namingContexts'),'base'));
|
$r = $this->search(null,'','objectClass=*',array('namingContexts'),'base');
|
||||||
|
$r = array_pop($r);
|
||||||
if (is_array($r))
|
if (is_array($r))
|
||||||
$r = array_change_key_case($r);
|
$r = array_change_key_case($r);
|
||||||
|
|
||||||
@ -1670,13 +1671,13 @@ class LDAPserver {
|
|||||||
* @param array $attrs An array of attributes to include in the search result (example: array( "objectClass", "uid", "sn" )).
|
* @param array $attrs An array of attributes to include in the search result (example: array( "objectClass", "uid", "sn" )).
|
||||||
* @param string $scope The LDAP search scope. Must be one of "base", "one", or "sub". Standard LDAP search scope.
|
* @param string $scope The LDAP search scope. Must be one of "base", "one", or "sub". Standard LDAP search scope.
|
||||||
* @param bool $sort_results Specify false to not sort results by DN or true to have the
|
* @param bool $sort_results Specify false to not sort results by DN or true to have the
|
||||||
* returned array sorted by DN (uses ksort)
|
* returned array sorted by DN (uses ksort)
|
||||||
* @param int $deref When handling aliases or referrals, this specifies whether to follow referrals. Must be one of
|
* @param int $deref When handling aliases or referrals, this specifies whether to follow referrals. Must be one of
|
||||||
* LDAP_DEREF_ALWAYS, LDAP_DEREF_NEVER, LDAP_DEREF_SEARCHING, or LDAP_DEREF_FINDING. See the PHP LDAP API for details.
|
* LDAP_DEREF_ALWAYS, LDAP_DEREF_NEVER, LDAP_DEREF_SEARCHING, or LDAP_DEREF_FINDING. See the PHP LDAP API for details.
|
||||||
* @param int $size_limit Size limit for search
|
* @param int $size_limit Size limit for search
|
||||||
* @todo: Add entries to tree cache.
|
* @todo: Add entries to tree cache.
|
||||||
*/
|
*/
|
||||||
function search($resource=null,$base_dn=null,$filter,$attrs=array(),$scope='sub',$sort_results=true,$deref=LDAP_DEREF_NEVER,$size_limit=0) {
|
function search($resource=null,$base_dn=null,$filter,$attrs=array(),$scope='sub',$sort_results=false,$deref=LDAP_DEREF_NEVER,$size_limit=0) {
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
debug_log('%s::search(): Entered with (%s,%s,%s,%s,%s,%s,%s)',17,
|
debug_log('%s::search(): Entered with (%s,%s,%s,%s,%s,%s,%s)',17,
|
||||||
get_class($this),is_resource($this),$base_dn,$filter,$attrs,$scope,$sort_results,$deref);
|
get_class($this),is_resource($this),$base_dn,$filter,$attrs,$scope,$sort_results,$deref);
|
||||||
@ -1719,6 +1720,10 @@ class LDAPserver {
|
|||||||
|
|
||||||
$return = array();
|
$return = array();
|
||||||
|
|
||||||
|
if ($sort_results && is_array($return))
|
||||||
|
if (version_compare(phpversion(),'4.2.0','>='))
|
||||||
|
ldap_sort($resource, $search,$sort_results);
|
||||||
|
|
||||||
# Get the first entry identifier
|
# Get the first entry identifier
|
||||||
if ($entry_id = ldap_first_entry($resource,$search))
|
if ($entry_id = ldap_first_entry($resource,$search))
|
||||||
|
|
||||||
@ -1758,8 +1763,6 @@ class LDAPserver {
|
|||||||
|
|
||||||
} # End while entry_id
|
} # End while entry_id
|
||||||
|
|
||||||
if ($sort_results && is_array($return))
|
|
||||||
ksort($return);
|
|
||||||
|
|
||||||
if (DEBUG_ENABLED)
|
if (DEBUG_ENABLED)
|
||||||
debug_log('%s::search(): Returning (%s)',17,get_class($this),$return);
|
debug_log('%s::search(): Returning (%s)',17,get_class($this),$return);
|
||||||
@ -2440,7 +2443,8 @@ class LDAPserver {
|
|||||||
debug_log('%s:getDNAttrs(): Entered with (%s,%s,%s)',17,
|
debug_log('%s:getDNAttrs(): Entered with (%s,%s,%s)',17,
|
||||||
get_class($this),$dn,$lower_case_attr_names,$deref);
|
get_class($this),$dn,$lower_case_attr_names,$deref);
|
||||||
|
|
||||||
$attrs = array_pop($this->search(null,dn_escape($dn),'(objectClass=*)',array(),'base',false,$deref));
|
$attrs = $this->search(null,dn_escape($dn),'(objectClass=*)',array(),'base',false,$deref);
|
||||||
|
$attrs = array_pop($attrs);
|
||||||
|
|
||||||
if (is_array($attrs)) {
|
if (is_array($attrs)) {
|
||||||
if ($lower_case_attr_names)
|
if ($lower_case_attr_names)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/template_functions.php,v 1.29.2.19 2006/04/27 12:33:17 wurley Exp $ */
|
/* $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/template_functions.php,v 1.29.2.20 2007/03/21 23:12:03 wurley Exp $ */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Classes and functions for the template engine.ation and capability
|
* Classes and functions for the template engine.ation and capability
|
||||||
@ -670,7 +670,7 @@ class Templates {
|
|||||||
|
|
||||||
else
|
else
|
||||||
# @todo: Enable size and width configuration in template
|
# @todo: Enable size and width configuration in template
|
||||||
$html = sprintf('<input type="text" name="%s" size="8">',$id);
|
$html = sprintf('<input type="text" name="%s" size="8" />',$id);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (is_array($helper)) {
|
if (is_array($helper)) {
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/tree_functions.php,v 1.20.2.21 2006/05/07 05:25:56 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/lib/tree_functions.php,v 1.20.2.23 2007/03/18 03:21:18 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @package phpLDAPadmin
|
* @package phpLDAPadmin
|
||||||
@ -39,13 +39,13 @@ function draw_server_tree() {
|
|||||||
echo '<tr class="server">';
|
echo '<tr class="server">';
|
||||||
printf('<td class="icon"><img src="images/server.png" alt="%s" /></td>',_('Server'));
|
printf('<td class="icon"><img src="images/server.png" alt="%s" /></td>',_('Server'));
|
||||||
printf('<td colspan="99"><a name="%s"></a>',$ldapserver->server_id);
|
printf('<td colspan="99"><a name="%s"></a>',$ldapserver->server_id);
|
||||||
printf('<nobr>%s ',htmlspecialchars($ldapserver->name));
|
printf('<span style="white-space: nowrap;">%s ',htmlspecialchars($ldapserver->name));
|
||||||
|
|
||||||
if ($ldapserver->haveAuthInfo() && $ldapserver->auth_type != 'config')
|
if ($ldapserver->haveAuthInfo() && $ldapserver->auth_type != 'config')
|
||||||
printf('<acronym title="%s"><img width=14 height=14 src="images/timeout.png" alt="timeout" /></acronym>',
|
printf('<acronym title="%s"><img width=14 height=14 src="images/timeout.png" alt="timeout" /></acronym>',
|
||||||
sprintf(_('Inactivity will log you off at %s'),strftime('%H:%M',time()+($ldapserver->session_timeout*60))));
|
sprintf(_('Inactivity will log you off at %s'),strftime('%H:%M',time()+($ldapserver->session_timeout*60))));
|
||||||
|
|
||||||
echo '</nobr></td></tr>';
|
echo '</span></td></tr>';
|
||||||
|
|
||||||
/* do we have what it takes to authenticate here, or do we need to
|
/* do we have what it takes to authenticate here, or do we need to
|
||||||
present the user with a login link (for 'cookie' and 'session' auth_types)? */
|
present the user with a login link (for 'cookie' and 'session' auth_types)? */
|
||||||
@ -62,7 +62,7 @@ function draw_server_tree() {
|
|||||||
|
|
||||||
# Draw the quick-links below the server name:
|
# Draw the quick-links below the server name:
|
||||||
echo '<tr><td colspan="100" class="links">';
|
echo '<tr><td colspan="100" class="links">';
|
||||||
echo '<nobr>';
|
echo '<span style="white-space: nowrap;">';
|
||||||
echo '( ';
|
echo '( ';
|
||||||
printf('<a title="%s %s" href="%s">%s</a> | ',_('View schema for'),$ldapserver->name,$schema_href,_('schema'));
|
printf('<a title="%s %s" href="%s">%s</a> | ',_('View schema for'),$ldapserver->name,$schema_href,_('schema'));
|
||||||
printf('<a title="%s %s" href="%s">%s</a> | ',_('search'),$ldapserver->name,$search_href,_('search'));
|
printf('<a title="%s %s" href="%s">%s</a> | ',_('search'),$ldapserver->name,$search_href,_('search'));
|
||||||
@ -74,11 +74,11 @@ function draw_server_tree() {
|
|||||||
if ($ldapserver->auth_type != 'config')
|
if ($ldapserver->auth_type != 'config')
|
||||||
printf(' | <a title="%s" href="%s" target="right_frame">%s</a>',_('Logout of this server'),$logout_href,_('logout'));
|
printf(' | <a title="%s" href="%s" target="right_frame">%s</a>',_('Logout of this server'),$logout_href,_('logout'));
|
||||||
|
|
||||||
echo ' )</nobr></td></tr>';
|
echo ' )</span></td></tr>';
|
||||||
|
|
||||||
if ($ldapserver->auth_type != 'config') {
|
if ($ldapserver->auth_type != 'config') {
|
||||||
$logged_in_dn = $ldapserver->getLoggedInDN();
|
$logged_in_dn = $ldapserver->getLoggedInDN();
|
||||||
echo '<tr><td class="links" colspan="100"><nobr>'._('Logged in as: ');
|
echo '<tr><td class="links" colspan="100"><span style="white-space: nowrap;">'._('Logged in as: ');
|
||||||
|
|
||||||
if ($ldapserver->getDNBase($logged_in_dn) == $logged_in_dn) {
|
if ($ldapserver->getDNBase($logged_in_dn) == $logged_in_dn) {
|
||||||
$logged_in_branch = '';
|
$logged_in_branch = '';
|
||||||
@ -86,7 +86,7 @@ function draw_server_tree() {
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
$logged_in_branch = preg_replace('/,'.$ldapserver->getDNBase($logged_in_dn).'$/','',$logged_in_dn);
|
$logged_in_branch = preg_replace('/,'.$ldapserver->getDNBase($logged_in_dn).'$/','',$logged_in_dn);
|
||||||
$logged_in_dn_array = explode(',',$logged_in_branch);
|
$logged_in_dn_array = pla_explode_dn($logged_in_branch);
|
||||||
}
|
}
|
||||||
|
|
||||||
$bases = $ldapserver->getDNBase($logged_in_dn);
|
$bases = $ldapserver->getDNBase($logged_in_dn);
|
||||||
@ -110,11 +110,11 @@ function draw_server_tree() {
|
|||||||
} else
|
} else
|
||||||
echo 'Anonymous';
|
echo 'Anonymous';
|
||||||
|
|
||||||
echo '</nobr></td></tr>';
|
echo '</span></td></tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($ldapserver->isReadOnly())
|
if ($ldapserver->isReadOnly())
|
||||||
printf('<tr><td class="links" colspan="100"><nobr>(%s)</nobr></td></tr>',_('read only'));
|
printf('<tr><td class="links" colspan="100"><span style="white-space: nowrap;">(%s)</span></td></tr>',_('read only'));
|
||||||
|
|
||||||
$javascript_forms = '';
|
$javascript_forms = '';
|
||||||
$javascript_id = 0;
|
$javascript_id = 0;
|
||||||
@ -206,12 +206,12 @@ function draw_server_tree() {
|
|||||||
|
|
||||||
printf('<td class="expander"><a href="%s"><img src="%s" alt="%s" /></a></td>',$expand_href,$expand_img,$expand_alt);
|
printf('<td class="expander"><a href="%s"><img src="%s" alt="%s" /></a></td>',$expand_href,$expand_img,$expand_alt);
|
||||||
printf('<td class="icon"><a href="%s" target="right_frame"><img src="images/%s" alt="img" /></a></td>',$edit_href,$icon);
|
printf('<td class="icon"><a href="%s" target="right_frame"><img src="images/%s" alt="img" /></a></td>',$edit_href,$icon);
|
||||||
printf('<td class="rdn" colspan="98"><nobr><a href="%s" target="right_frame">%s</a>',$edit_href,pretty_print_dn($base_dn));
|
printf('<td class="rdn" colspan="98"><span style="white-space: nowrap;"><a href="%s" target="right_frame">%s</a>',$edit_href,pretty_print_dn($base_dn));
|
||||||
|
|
||||||
if ($child_count)
|
if ($child_count)
|
||||||
printf(' <span class="count">(%s)</span>',$child_count);
|
printf(' <span class="count">(%s)</span>',$child_count);
|
||||||
|
|
||||||
echo '</nobr></td>';
|
echo '</span></td>';
|
||||||
echo '</tr>';
|
echo '</tr>';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -336,9 +336,9 @@ function draw_tree_html($dn,$ldapserver,$level=0) {
|
|||||||
$child_count = number_format(count($tree['browser'][$dn]['children']));
|
$child_count = number_format(count($tree['browser'][$dn]['children']));
|
||||||
|
|
||||||
if ((! $child_count) && (! $ldapserver->isShowCreateEnabled()))
|
if ((! $child_count) && (! $ldapserver->isShowCreateEnabled()))
|
||||||
echo '<td class="expander"><nobr><img src="images/minus.png" alt="-" /></nobr></td>';
|
echo '<td class="expander"><span style="white-space: nowrap;"><img src="images/minus.png" alt="-" /></span></td>';
|
||||||
else
|
else
|
||||||
printf('<td class="expander"><nobr><a href="%s"><img src="images/minus.png" alt="-" /></a></nobr></td>',$collapse_href);
|
printf('<td class="expander"><span style="white-space: nowrap;"><a href="%s"><img src="images/minus.png" alt="-" /></a></span></td>',$collapse_href);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$size_limit = $config->GetValue('search','size_limit');
|
$size_limit = $config->GetValue('search','size_limit');
|
||||||
@ -354,21 +354,21 @@ function draw_tree_html($dn,$ldapserver,$level=0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ((! $child_count) && (! $ldapserver->isShowCreateEnabled()))
|
if ((! $child_count) && (! $ldapserver->isShowCreateEnabled()))
|
||||||
echo '<td class="expander"><nobr><img src="images/minus.png" alt="-" /></nobr></td>';
|
echo '<td class="expander"><span style="white-space: nowrap;"><img src="images/minus.png" alt="-" /></span></td>';
|
||||||
else
|
else
|
||||||
printf('<td class="expander"><nobr><a href="%s"><img src="images/plus.png" alt="+" /></a></nobr></td>',$expand_href);
|
printf('<td class="expander"><span style="white-space: nowrap;"><a href="%s"><img src="images/plus.png" alt="+" /></a></span></td>',$expand_href);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf('<td class="icon"><a href="%s" target="right_frame" name="%s_%s"><img src="%s" alt="img" /></a></td>',
|
printf('<td class="icon"><a href="%s" target="right_frame" name="%s_%s"><img src="%s" alt="img" /></a></td>',
|
||||||
$edit_href,$ldapserver->server_id,$encoded_dn,$img_src);
|
$edit_href,$ldapserver->server_id,$encoded_dn,$img_src);
|
||||||
|
|
||||||
printf('<td class="rdn" colspan="%s"><nobr>',97-$level);
|
printf('<td class="rdn" colspan="%s"><span style="white-space: nowrap;">',97-$level);
|
||||||
printf('<a href="%s" target="right_frame">%s</a>',$edit_href,draw_formatted_dn($ldapserver,$dn));
|
printf('<a href="%s" target="right_frame">%s</a>',$edit_href,draw_formatted_dn($ldapserver,$dn));
|
||||||
|
|
||||||
if ($child_count)
|
if ($child_count)
|
||||||
printf(' <span class="count">(%s)</span>',$child_count);
|
printf(' <span class="count">(%s)</span>',$child_count);
|
||||||
|
|
||||||
echo '</nobr></td></tr>';
|
echo '</span></td></tr>';
|
||||||
|
|
||||||
if (isset($tree['browser'][$dn]['open']) && $tree['browser'][$dn]['open']) {
|
if (isset($tree['browser'][$dn]['open']) && $tree['browser'][$dn]['open']) {
|
||||||
/* Draw the "create new" link at the top of the tree list if there are more than 10
|
/* Draw the "create new" link at the top of the tree list if there are more than 10
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/template_header.php,v 1.6.4.6 2006/04/29 05:46:34 wurley Exp $
|
// $Header: /cvsroot/phpldapadmin/phpldapadmin/templates/template_header.php,v 1.6.4.7 2007/03/18 03:23:26 wurley Exp $
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Header page for engine.
|
* Header page for engine.
|
||||||
@ -9,13 +9,11 @@
|
|||||||
|
|
||||||
include './header.php';
|
include './header.php';
|
||||||
|
|
||||||
$time = gettimeofday();
|
|
||||||
$random_junk = md5(strtotime('now').$time['usec']);
|
|
||||||
$url_base = sprintf('server_id=%s&dn=%s',$ldapserver->server_id,$encoded_dn);
|
$url_base = sprintf('server_id=%s&dn=%s',$ldapserver->server_id,$encoded_dn);
|
||||||
|
|
||||||
$export_href_base = sprintf('export_form.php?%s&scope=%s',$url_base,'base');
|
$export_href_base = sprintf('export_form.php?%s&scope=%s',$url_base,'base');
|
||||||
$export_href_sub = sprintf('export_form.php?%s&scope=%s',$url_base,'sub');
|
$export_href_sub = sprintf('export_form.php?%s&scope=%s',$url_base,'sub');
|
||||||
$refresh_href = sprintf('template_engine.php?%s&random=%s',$url_base,$random_junk);
|
$refresh_href = sprintf('template_engine.php?%s&random=%s',$url_base,random_junk());
|
||||||
$copy_href = sprintf('copy_form.php?%s',$url_base);
|
$copy_href = sprintf('copy_form.php?%s',$url_base);
|
||||||
$intattr_href = sprintf('template_engine.php?%s&show_internal_attrs=true',$url_base);
|
$intattr_href = sprintf('template_engine.php?%s&show_internal_attrs=true',$url_base);
|
||||||
$delete_href = sprintf('delete_form.php?%s',$url_base);
|
$delete_href = sprintf('delete_form.php?%s',$url_base);
|
||||||
@ -130,7 +128,7 @@ if ($dn) {
|
|||||||
$schema_href = sprintf('schema.php?server_id=%s&view=attributes&viewvalue=%s',
|
$schema_href = sprintf('schema.php?server_id=%s&view=attributes&viewvalue=%s',
|
||||||
$ldapserver->server_id,real_attr_name($attr));
|
$ldapserver->server_id,real_attr_name($attr));
|
||||||
|
|
||||||
printf('<tr><td colspan="2" class="attr"><b><a title="'._('Click to view the schema defintion for attribute type \'%s\'').'" href="%s" />%s</b></td></tr>',
|
printf('<tr><td colspan="2" class="attr"><b><a title="'._('Click to view the schema definition for attribute type \'%s\'').'" href="%s" />%s</b></td></tr>',
|
||||||
$attr,$schema_href,htmlspecialchars($attr));
|
$attr,$schema_href,htmlspecialchars($attr));
|
||||||
|
|
||||||
echo '<tr><td class="val"><small>';
|
echo '<tr><td class="val"><small>';
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
# This script is run after make_po to merge the existing German translations to messages.po
|
# This script is run after make_po to merge the existing German translations to messages.po
|
||||||
|
|
||||||
./make_po
|
./make_po
|
||||||
msgmerge -v ../locale/ca_ES/LC_MESSAGES/messages.po messages.po -o messages.po
|
msgmerge -v ../../locale/ca_ES/LC_MESSAGES/messages.po messages.po -o messages.po
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
# This script is run after make_po to merge the existing German translations to messages.po
|
# This script is run after make_po to merge the existing German translations to messages.po
|
||||||
|
|
||||||
./make_po
|
./make_po
|
||||||
msgmerge -v ../locale/de_DE/LC_MESSAGES/messages.po messages.po -o messages.po
|
msgmerge -v ../../locale/de_DE/LC_MESSAGES/messages.po messages.po -o messages.po
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
# This script is run to update the existing Spanish translations in messages.po
|
# This script is run to update the existing Spanish translations in messages.po
|
||||||
|
|
||||||
./make_po
|
./make_po
|
||||||
msgmerge -v ../locale/es_ES/LC_MESSAGES/messages.po messages.po -o messages.po
|
msgmerge -v ../../locale/es_ES/LC_MESSAGES/messages.po messages.po -o messages.po
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
# This script is run after make_po to merge the existing German translations to messages.po
|
# This script is run after make_po to merge the existing German translations to messages.po
|
||||||
|
|
||||||
./make_po
|
./make_po
|
||||||
msgmerge -v ../locale/fr_FR/LC_MESSAGES/messages.po messages.po -o messages.po
|
msgmerge -v ../../locale/fr_FR/LC_MESSAGES/messages.po messages.po -o messages.po
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
# This script is run after make_po to merge the existing Hungarian translations to messages.po
|
# This script is run after make_po to merge the existing Hungarian translations to messages.po
|
||||||
|
|
||||||
./make_po
|
./make_po
|
||||||
msgmerge -v ../locale/hu_HU/LC_MESSAGES/messages.po messages.po -o messages.po
|
msgmerge -v ../../locale/hu_HU/LC_MESSAGES/messages.po messages.po -o messages.po
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
# This script is run after make_po to merge the existing German translations to messages.po
|
# This script is run after make_po to merge the existing German translations to messages.po
|
||||||
|
|
||||||
./make_po
|
./make_po
|
||||||
msgmerge -v ../locale/it_IT/LC_MESSAGES/messages.po messages.po -o messages.po
|
msgmerge -v ../../locale/it_IT/LC_MESSAGES/messages.po messages.po -o messages.po
|
||||||
|
@ -6,4 +6,4 @@
|
|||||||
# This script is run after make_po to merge the existing Japanese translations to messages.po
|
# This script is run after make_po to merge the existing Japanese translations to messages.po
|
||||||
|
|
||||||
./make_po
|
./make_po
|
||||||
msgmerge -v ../locale/ja_JP/LC_MESSAGES/messages.po messages.po -o messages.po
|
msgmerge -v ../../locale/ja_JP/LC_MESSAGES/messages.po messages.po -o messages.po
|
||||||
|
Loading…
Reference in New Issue
Block a user