コード例 #1
0
ファイル: HTMLTree.php プロジェクト: kangaroot/phpldapadmin
 /**
  * Draw login link
  */
 protected function draw_login_link()
 {
     if (DEBUG_ENABLED && (($fargs = func_get_args()) || ($fargs = 'NOARGS'))) {
         debug_log('Entered (%%)', 33, 0, __FILE__, __LINE__, __METHOD__, $fargs);
     }
     $server = $this->getServer();
     $href_parm = htmlspecialchars(sprintf('cmd=%s&server_id=%s', get_custom_file($server->getIndex(), 'login_form', ''), $server->getIndex()));
     echo '<tr class="option"><td class="spacer"></td>';
     if (isAjaxEnabled()) {
         printf('<td class="icon"><a href="cmd.php?%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');" title="%s %s"><img src="%s/%s" alt="%s" /></a></td>', $href_parm, $href_parm, _('Loading Login'), _('Login to'), $server->getName(), IMGDIR, 'login.png', _('login'));
         printf('<td class="logged_in" colspan="%s"><a href="cmd.php?%s" onclick="return ajDISPLAY(\'BODY\',\'%s\',\'%s\');" title="%s %s">%s</a></td>', $this->getDepth() + 3 - 2, $href_parm, $href_parm, _('Loading Login'), _('Login to'), $server->getName(), _('login'));
     } else {
         printf('<td class="icon"><a href="cmd.php?%s"><img src="%s/%s" alt="%s" /></a></td>', $href_parm, IMGDIR, 'login.png', _('login'));
         printf('<td class="logged_in" colspan="%s"><a href="cmd.php?%s">%s...</a></td>', $this->getDepth() + 3 - 2, $href_parm, _('Login'));
     }
     echo '</tr>';
     printf('<tr><td class="blank" colspan="%s">&nbsp;</td>', $this->getDepth() + 3);
     printf('<tr><td class="blank" colspan="%s">&nbsp;</td>', $this->getDepth() + 3);
 }
コード例 #2
0
ファイル: header.php プロジェクト: azeckoski/az-php-sandbox
@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";
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"';
echo '  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">' . "\n";
printf('<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="%s" lang="%s" dir="ltr">', $language, $language);
echo "\n\n";
echo '<head>';
if (isset($config) && ($pagetitle = $config->GetValue('appearance', 'page_title'))) {
    printf('<title>phpLDAPadmin - %s</title>', $pagetitle);
} else {
    echo '<title>phpLDAPadmin</title>';
}
printf('<link type="text/css" rel="stylesheet" href="%sstyle.css" media="screen" />', CSSDIR);
if (isset($server_id)) {
    $custom_file = get_custom_file($server_id, 'style.css', CSSDIR);
    if (strcmp($custom_file, 'style.css') != 0) {
        printf('<link type="text/css" rel="stylesheet" href="%s" media="screen" />', $custom_file);
    }
}
printf('<script type="text/javascript" src="%sentry_chooser.js"></script>', JSDIR);
printf('<script type="text/javascript" src="%sie_png_work_around.js"></script>', JSDIR);
printf('<script type="text/javascript" src="%ssearch_util.js"></script>', JSDIR);
printf('<script type="text/javascript" src="%sgeneric_utils.js"></script>', JSDIR);
printf('<link type="text/css" rel="stylesheet" media="all" href="%s/jscalendar/calendar-blue.css" title="blue" />', JSDIR);
printf('<script type="text/javascript" src="%sjscalendar/calendar.js"></script>', JSDIR);
printf('<script type="text/javascript" src="%sjscalendar/lang/calendar-en.js"></script>', JSDIR);
printf('<script type="text/javascript" src="%sjscalendar/calendar-setup.js"></script>', JSDIR);
printf('<script type="text/javascript" src="%sdate_selector.js"></script>', JSDIR);
printf('<link type="text/css" rel="stylesheet" href="%s/phplayersmenu/layerstreemenu.css"></link>', JSDIR);
if (isset($meta_refresh_variable)) {
コード例 #3
0
/**
 * This function displays the LDAP tree for all the servers that you have
 * in config.php. We read the session variable 'tree' to know which
 * dns are expanded or collapsed. No query string parameters are expected,
 * however, you can use a '#' offset to scroll to a given dn. The syntax is
 * tree.php#<server_id>_<rawurlencoded dn>, so if I wanted to scroll to
 * dc=example,dc=com for server 3, the URL would be:
 *	tree.php#3_dc%3Dexample%2Cdc%3Dcom
 */
function draw_server_tree()
{
    if (DEBUG_ENABLED) {
        debug_log('draw_server_tree(): Entered with ()', 33);
    }
    global $ldapserver;
    global $recently_timed_out_servers;
    global $config;
    static $tm = null;
    $server_id = $ldapserver->server_id;
    $tree = get_cached_item($ldapserver->server_id, 'tree');
    # Does this server want mass deletion available?
    if ($ldapserver->isMassDeleteEnabled()) {
        echo '<form name="mass_delete" action="mass_delete.php" method="post" target="right_frame">';
        printf('<input type="hidden" name="server_id" value="%s" />', $ldapserver->server_id);
        echo "\n\n";
    }
    echo '<table class="tree" cellspacing="0">';
    echo '<tr class="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('<nobr>%s ', htmlspecialchars($ldapserver->name));
    if ($ldapserver->haveAuthInfo() && $ldapserver->auth_type != 'config') {
        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)));
    }
    echo '</nobr></td></tr>';
    /* 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)? */
    if ($ldapserver->haveAuthInfo()) {
        if ($ldapserver->connect(false)) {
            $schema_href = sprintf('schema.php?server_id=%s" target="right_frame', $ldapserver->server_id);
            $search_href = sprintf('search.php?server_id=%s" target="right_frame', $ldapserver->server_id);
            $refresh_href = sprintf('refresh.php?server_id=%s', $ldapserver->server_id);
            $logout_href = get_custom_file($ldapserver->server_id, 'logout.php', '') . '?server_id=' . $ldapserver->server_id;
            $info_href = sprintf('server_info.php?server_id=%s', $ldapserver->server_id);
            $import_href = sprintf('ldif_import_form.php?server_id=%s', $ldapserver->server_id);
            $export_href = sprintf('export_form.php?server_id=%s', $ldapserver->server_id);
            # Draw the quick-links below the server name:
            echo '<tr><td colspan="100" class="links">';
            echo '<nobr>';
            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> | ', _('search'), $ldapserver->name, $search_href, _('search'));
            printf('<a title="%s %s" href="%s">%s</a> | ', _('Refresh all expanded containers for'), $ldapserver->name, $refresh_href, _('refresh'));
            printf('<a title="%s" target="right_frame" href="%s">%s</a> | ', _('View server-supplied information'), $info_href, _('info'));
            printf('<a title="%s" target="right_frame" href="%s">%s</a> | ', _('Import entries from an LDIF file'), $import_href, _('import'));
            printf('<a href="%s" target="right_frame">%s</a>', $export_href, _('export'));
            if ($ldapserver->auth_type != 'config') {
                printf(' | <a title="%s" href="%s" target="right_frame">%s</a>', _('Logout of this server'), $logout_href, _('logout'));
            }
            echo ' )</nobr></td></tr>';
            if ($ldapserver->auth_type != 'config') {
                $logged_in_dn = $ldapserver->getLoggedInDN();
                echo '<tr><td class="links" colspan="100"><nobr>' . _('Logged in as: ');
                if ($ldapserver->getDNBase($logged_in_dn) == $logged_in_dn) {
                    $logged_in_branch = '';
                    $logged_in_dn_array = array();
                } else {
                    $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[] = $ldapserver->getDNBase($logged_in_dn);
                $rdn = $logged_in_dn;
                if (strcasecmp('anonymous', $logged_in_dn)) {
                    foreach ($logged_in_dn_array as $rdn_piece) {
                        printf('<a class="logged_in_dn" href="template_engine.php?server_id=%s&amp;dn=%s" target="right_frame">%s</a>', $server_id, rawurlencode($rdn), pretty_print_dn($rdn_piece));
                        if ($rdn_piece != end($logged_in_dn_array)) {
                            echo ',';
                        }
                        $rdn = substr($rdn, 1 + strpos($rdn, ','));
                    }
                } else {
                    echo 'Anonymous';
                }
                echo '</nobr></td></tr>';
            }
            if ($ldapserver->isReadOnly()) {
                printf('<tr><td class="links" colspan="100"><nobr>(%s)</nobr></td></tr>', _('read only'));
            }
            $javascript_forms = '';
            $javascript_id = 0;
            $tree_plm = '';
            if ($config->GetValue('appearance', 'tree_plm') && !isset($tm)) {
                $tm = new TreeMenu();
                $tm->setDirroot(JSDIR . 'phplayersmenu/');
                $tm->setIcondir(HTDOCDIR . '/images/');
                $tm->setIconwww('images/');
                $tm->setImgwww(JSDIR . 'phplayersmenu/menuimages/');
            }
            foreach ($ldapserver->getBaseDN() as $base_dn) {
                # Did we get a base_dn for this server somehow?
                if ($base_dn) {
                    # is the root of the tree expanded already?
                    if (isset($tree['browser'][$base_dn]['open']) && $tree['browser'][$base_dn]['open']) {
                        $expand_href = sprintf('collapse.php?server_id=%s&amp;dn=%s', $ldapserver->server_id, rawurlencode($base_dn));
                        $expand_img = 'images/minus.png';
                        $expand_alt = '-';
                        $child_count = number_format(count($tree['browser'][$base_dn]['children']));
                    } else {
                        /* Check if the LDAP server is not yet initialized
                           (ie, the base DN configured in config.php does not exist) */
                        if (!$ldapserver->dnExists($base_dn)) {
                            $javascript_id++;
                            printf('<tr><td class="spacer"></td><td><img src="images/unknown.png" /></td><td colspan="98">%s</td></tr>', pretty_print_dn($base_dn));
                            /* Move this form and add it to the end of the html - otherwise the javascript
                               doesnt work when isMassDeleteEnabled returning true. */
                            $javascript_forms .= sprintf('<form name="create_base_form_%s" method="post" action="template_engine.php" target="right_frame">', $javascript_id);
                            $javascript_forms .= sprintf('<input type="hidden" name="template" value="custom" />');
                            $javascript_forms .= sprintf('<input type="hidden" name="server_id" value="%s" />', $ldapserver->server_id);
                            $javascript_forms .= sprintf('<input type="hidden" name="container" value="%s" />', htmlspecialchars($rdn));
                            $javascript_forms .= sprintf('<input type="hidden" name="rdn" value="%s" />', get_rdn($base_dn));
                            $javascript_forms .= sprintf('</form>');
                            printf('<tr><td class="spacer"></td><td colspan="98"><small>%s<a href="javascript:document.create_base_form_%s.submit()">%s</a></small></td></tr>', _('This base entry does not exist.'), $javascript_id, _('Create it?'));
                            continue;
                        } else {
                            $expand_href = sprintf('expand.php?server_id=%s&amp;dn=%s', $ldapserver->server_id, rawurlencode($base_dn));
                            $expand_img = 'images/plus.png';
                            $expand_alt = '+';
                            # $size_limit = $config->GetValue('search','size_limit');
                            $size_limit = -1;
                            if ($ldapserver->isLowBandwidth()) {
                                $child_count = null;
                            } else {
                                $children = $ldapserver->getContainerContents($base_dn, $size_limit + 1, '(objectClass=*)', $config->GetValue('deref', 'tree'));
                                $child_count = count($children);
                                #								if ($child_count > $size_limit)
                                #									$child_count = $size_limit.'+';
                            }
                        }
                    }
                    $create_href = sprintf('create_form.php?server_id=%s&amp;container=%s', $ldapserver->server_id, rawurlencode($base_dn));
                    $edit_href = sprintf('template_engine.php?server_id=%s&amp;dn=%s', $ldapserver->server_id, rawurlencode($base_dn));
                    $icon = isset($tree['browser'][$base_dn]['icon']) ? $tree['browser'][$base_dn]['icon'] : get_icon($ldapserver, $base_dn);
                    # Shall we draw the "mass-delete" checkbox?
                    if ($ldapserver->isMassDeleteEnabled()) {
                        printf('<td><input type="checkbox" name="mass_delete[%s]" /></td>', htmlspecialchars($base_dn));
                    }
                    if ($config->GetValue('appearance', 'tree_plm')) {
                        $tree_plm .= sprintf(".|%s|%s|%s|%s|%s|%s\n", pretty_print_dn($base_dn) . ($child_count ? ' (' . $child_count . ')' : ''), $edit_href, $base_dn, $icon, 'right_frame', 0);
                    } else {
                        echo '<tr>';
                        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="rdn" colspan="98"><nobr><a href="%s" target="right_frame">%s</a>', $edit_href, pretty_print_dn($base_dn));
                        if ($child_count) {
                            printf(' <span class="count">(%s)</span>', $child_count);
                        }
                        echo '</nobr></td>';
                        echo '</tr>';
                    }
                } else {
                    // end if( $base_dn )
                    # The server refuses to give out the base dn
                    printf('<tr><td class="spacer"></td><td colspan="98"><small>%s<br />%s<br /><b>%s</b></small></td></tr>', _('Could not determine the root of your LDAP tree.'), _('It appears that the LDAP server has been configured to not reveal its root.'), _('Please specify it in config.php'));
                    # Proceed to the next server. We cannot draw anything else for this server.
                    continue;
                }
                flush();
                if ($config->GetValue('appearance', 'tree_plm')) {
                    foreach ($children as $child_dn) {
                        $tree_plm .= draw_tree_plm($child_dn, $ldapserver);
                    }
                } else {
                    # Is the root of the tree expanded already?
                    if (isset($tree['browser'][$base_dn]['open']) && $tree['browser'][$base_dn]['open']) {
                        if ($ldapserver->isShowCreateEnabled() && count($tree['browser'][$base_dn]['children']) > 10) {
                            draw_create_link($ldapserver->server_id, $base_dn, -1, urlencode($base_dn));
                        }
                        foreach ($tree['browser'][$base_dn]['children'] as $child_dn) {
                            draw_tree_html($child_dn, $ldapserver, 0);
                        }
                        if (!$ldapserver->isReadOnly()) {
                            echo '<tr><td class="spacer"></td></tr>';
                            if ($ldapserver->isShowCreateEnabled()) {
                                draw_create_link($ldapserver->server_id, $base_dn, -1, urlencode($base_dn));
                            }
                        }
                    }
                }
            }
            // foreeach
            if ($config->GetValue('appearance', 'tree_plm')) {
                $tm->setMenuStructureString($tree_plm);
                $tm->parseStructureForMenu('pla_tree_' . $ldapserver->server_id);
                $tm->setTreeMenuTheme('');
                $tm->newTreeMenu('pla_tree_' . $ldapserver->server_id);
                echo '<tr><td colspan=99>' . $tm->getTreeMenu('pla_tree_' . $ldapserver->server_id) . '</td></tr>';
            }
        } else {
            // end if( $ldapserver->connect(false) )
            # could not connect to LDAP server
            printf('<tr><td class="spacer"></td><td><img src="images/warning_small.png" alt="%s" /></td><td colspan="99"><small><span style="color:red">%s</span></small></td></tr>', _('warning'), _('Could not connect to LDAP server.'));
            if ($ldapserver->auth_type != 'config') {
                $logout_href = sprintf('%s?server_id=%s', get_custom_file($ldapserver->server_id, 'logout.php', ''), $ldapserver->server_id);
                printf('<tr><td class="spacer"></td><td class="spacer"></td><td colspan="99"><small><a target="right_frame" href="%s">%s</a></small></td></tr>', $logout_href, _('logout'));
            }
            # Proceed to the next server in the list. We cannot do anything mroe here.
            return;
        }
    } else {
        // end if $ldapserver->haveAuthInfo()
        /* We don't have enough information to login to this server
           Draw the "login..." link */
        $login_href = sprintf('%s?server_id=%s', get_custom_file($ldapserver->server_id, 'login_form.php', ''), $ldapserver->server_id);
        printf('<tr class="login"><td class="spacer"></td><td><a href="%s" target="right_frame"><img src="images/uid.png" align="top" alt="%s" /></a></td><td colspan="99"><a href="%s" target="right_frame">%s</a></td></tr>', $login_href, _('login'), $login_href, _('Login...'));
        # If the server recently timed out display the message
        if (in_array($ldapserver->server_id, $recently_timed_out_servers)) {
            printf('<tr><td class="spacer"></td><td colspan="100" class="links">%s</td></tr>', _('(Session timed out. Automatically logged out.)'));
        }
    }
    if ($ldapserver->isMassDeleteEnabled() && !$config->GetValue('appearance', 'tree_plm')) {
        printf('<tr><td colspan="99"><input type="submit" value="%s" /></td></tr>', _('Delete Checked Entries'));
        echo '<!-- The end of the mass deletion form -->';
        echo '</table>';
        echo '</form>';
    } else {
        echo '</table>';
    }
    echo "\n\n";
    if (isset($javascript_forms) && $javascript_forms) {
        echo "<!-- Forms for javascript submit to call to create base_dns -->\n";
        echo $javascript_forms;
        echo "<!-- The end of the forms for javascript submit to call to create base_dns -->\n";
    }
}
コード例 #4
0
ファイル: tree.php プロジェクト: azeckoski/az-php-sandbox
if (!$config->GetValue('appearance', 'hide_configuration_management')) {
    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><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'));
    echo '</tr><tr>';
    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><img src="images/help.png" alt="%s" /></td>', _('Help'));
printf('<td><nobr><a href="help.php" target="right_frame">%s</a></nobr></td>', _('Help'));
echo '</tr></table>';
echo "\n\n";
# We want the std tree function as a fallback
require LIBDIR . 'tree_functions.php';
# Are we going to use the PLM tree?
if ($config->GetValue('appearance', 'tree_plm')) {
    require JSDIR . 'phplayersmenu/lib/PHPLIB.php';
    require JSDIR . 'phplayersmenu/lib/layersmenu-common.inc.php';
    require JSDIR . 'phplayersmenu/lib/treemenu.inc.php';
}
# For each of the configured servers
foreach ($ldapservers->GetServerList() as $server_id) {
    $ldapserver = $ldapservers->Instance($server_id);
    if ($ldapserver->isVisible()) {
        $filename = get_custom_file($server_id, 'tree_functions.php', LIBDIR);
        require_once $filename;
        call_custom_function($server_id, 'draw_server_tree');
    }
}
echo '</body></html>';