Ejemplo n.º 1
0
function get_icon($server_id, $dn)
{
    // fetch and lowercase all the objectClasses in an array
    $object_classes = get_object_attr($server_id, $dn, 'objectClass', true);
    if ($object_classes === null || $object_classes === false) {
        return 'object.png';
    }
    foreach ($object_classes as $i => $class) {
        $object_classes[$i] = strtolower($class);
    }
    $rdn = get_rdn($dn);
    // Is it a samba NT machine (is sambaAccount and ends with '$')
    if (in_array('sambaaccount', $object_classes) && '$' == $rdn[strlen($rdn) - 1]) {
        return 'nt.png';
    } elseif (in_array('person', $object_classes) || in_array('organizationalperson', $object_classes) || in_array('inetorgperson', $object_classes) || in_array('account', $object_classes) || in_array('posixaccount', $object_classes)) {
        return 'user.png';
    } elseif (in_array('organization', $object_classes)) {
        return 'o.png';
    } elseif (in_array('organizationalunit', $object_classes)) {
        return 'ou.png';
    } elseif (in_array('dcobject', $object_classes) || in_array('domainrelatedobject', $object_classes)) {
        return 'dc.png';
    } elseif (in_array('country', $object_classes)) {
        return 'country.png';
    } elseif (in_array('jammvirtualdomain', $object_classes)) {
        return 'mail.png';
    } elseif (in_array('locality', $object_classes)) {
        return 'locality.png';
    } elseif (in_array('posixgroup', $object_classes)) {
        return 'ou.png';
    } else {
        return 'object.png';
    }
}
Ejemplo n.º 2
0
$show_internal_attrs = isset($_GET['show_internal_attrs']) ? true : false;
$rdn = pla_explode_dn($dn);
$rdn = $rdn[0];
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.");
pla_ldap_connect($server_id) or pla_error("Coult not connect to LDAP server.");
$friendly_attrs = process_friendly_attr_table();
$attrs = get_object_attrs($server_id, $dn);
pla_ldap_connect($server_id) or pla_error("Could not connect to LDAP server");
$system_attrs = get_entry_system_attrs($server_id, $dn);
if (!$attrs) {
    pla_error("No such dn, " . htmlspecialchars(utf8_decode($dn)));
}
$server_name = $servers[$server_id]['name'];
// build a list of attributes available for this object based on its objectClasses
$oclasses = get_object_attr($server_id, $dn, 'objectClass');
if (!is_array($oclasses)) {
    $oclasses = array($oclasses);
}
$avail_attrs = array();
$schema_oclasses = get_schema_objectclasses($server_id, true);
$schema_attrs = get_schema_attributes($server_id);
foreach ($oclasses as $oclass) {
    $avail_attrs = array_merge($schema_oclasses[strtolower($oclass)]['must_attrs'], $schema_oclasses[strtolower($oclass)]['may_attrs'], $avail_attrs);
}
$avail_attrs = array_unique($avail_attrs);
$avail_attrs = array_filter($avail_attrs, "not_an_attr");
sort($avail_attrs);
$avail_binary_attrs = array();
foreach ($avail_attrs as $i => $attr) {
    if (is_attr_binary($server_id, $attr)) {
 *  - attr (rawurlencoded) the attribute to which we are adding a value 
 *  - server_id
 *
 */
require 'common.php';
require 'config.php';
require_once 'functions.php';
$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'];
$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;
$is_object_class = 0 == strcasecmp($attr, 'objectClass') ? true : false;
$is_jpeg_photo = 0 == strcasecmp($attr, 'jpegPhoto') ? true : false;
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']);
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);
    foreach ($current_values as $oclass) {
        unset($schema_oclasses[strtolower($oclass)]);
    }
} else {