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'; } }
$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 {