PHP Classes

File: htdocs/mass_update.php

Recommend this page to a friend!
  Classes of ask sa sa   PHP LDAP admin   htdocs/mass_update.php   Download  
File: htdocs/mass_update.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP LDAP admin
Perform operations to administer a LDAP server
Author: By
Last change:
Date: 1 year ago
Size: 5,717 bytes
 

Contents

Class file image Download
<?php
/**
 * Main command page for phpLDAPadmin
 * This script will handle bulk updates.
 *
 * @package phpLDAPadmin
 * @subpackage Page
 */

/**
 */

require_once './common.php';

$request = array();
$request['dn'] = get_request('dn','REQUEST',true);
$request['mass_values'] = get_request('mass_values','REQUEST',true);

# Check if the entries exist.
$request['update'] = array();

foreach (
$request['dn'] as $index => $dn) {
   
# Check if the entry exists.
   
if (! $dn || ! $app['server']->dnExists($dn)) {
       
system_message(array(
           
'title'=>_('Entry does not exist'),
           
'body'=>sprintf('%s (%s/%s)',_('The entry does not exist and will be ignored'),$dn),
           
'type'=>'error'));

        continue;
    }

   
# Simulate the requirements for *Render->accept()
   
if (! isset($request['mass_values'][$index]))
        continue;

   
$_REQUEST['new_values'] = $request['mass_values'][$index];

   
$render = new MassRender($app['server']->getIndex(),'none');
   
$render->setDN($dn);
   
$render->accept(true);

    if (
$render->getTemplate()->getLDAPmodify(false,$index))
       
$request['update'][$index] = $render;
}

# We can use the $render to give us a title
$render->drawTitle(_('Bulk update the following DNs'));
$render->drawSubTitle(sprintf('%s: <b>%s</b>',_('Server'),$app['server']->getName()));

if (
count($request['update'])) {
    if (
get_request('confirm','REQUEST')) {
        foreach (
$request['update'] as $index => $page) {
           
$template = $page->getTemplate();

           
# Perform the modification
           
$result = $app['server']->modify($template->getDN(),$template->getLDAPmodify(false,$index));

            if (
$result)
               
printf('%s: <b>%s</b><br>',$template->getDN(),_('Modification successful!'));
            else
               
printf('%s: <b>%s</b><br>',$template->getDN(),_('Modification NOT successful!'));
        }

    } else {
        echo
'<form action="cmd.php" method="post">';
        echo
'<input type="hidden" name="cmd" value="mass_update" />';
       
printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
        echo
'<input type="hidden" name="confirm" value="1" />';

        foreach (
$request['update'] as $j => $page)
           
printf('<input type="hidden" name="dn[%s]" value="%s" />',$j,$page->getTemplate()->getDN());

        echo
'<table class="result_box" width="100%" border="1">';
        echo
'<tr><td>';

        echo
'<br/>';

        echo
'<table class="result" border="0">';
        echo
'<tr><td>';
       
printf(_('There will be %s updates done with this mass update'),sprintf('<b>%s</b>',count($request['update'])));
        echo
'</td></tr>';
        echo
'</table>';

        echo
'<br/>';

        foreach (
$request['update'] as $index => $page) {
           
$template = $page->getTemplate();

            echo
'<table class="result" border="0">';
            echo
'<tr class="list_title">';
           
printf('<td class="icon"><img src="%s/%s" alt="icon" /></td>',IMGDIR,get_icon($app['server']->getIndex(),$template->getDN()));

           
printf('<td colspan="3"><a href="cmd.php?cmd=template_engine&amp;server_id=%s&amp;dn=%s">%s</a></td>',
               
$app['server']->getIndex(),rawurlencode(dn_unescape($template->getDN())),htmlspecialchars(get_rdn($template->getDN())));
            echo
'</tr>';

           
printf('<tr class="list_item"><td class="blank">&nbsp;</td><td class="heading">dn</td><td class="value" style="width: 45%%;">%s</td><td class="value" style="width: 45%%;"><b>%s</b></td></tr>',
               
htmlspecialchars(dn_unescape($template->getDN())),_('Old Value'));

            foreach (
$template->getLDAPmodify(true,$index) as $attribute) {
                echo
'<tr class="list_item">';
                echo
'<td class="blank">&nbsp;</td>';

                echo
'<td class="heading">';
               
$page->draw('Name',$attribute);
                echo
'</td>';

               
# Show NEW Values
               
echo '<td><span style="white-space: nowrap;">';

                if (!
$attribute->getValueCount() || $attribute->isForceDelete()) {
                   
printf('<span style="color: red">[%s]</span>',_('attribute deleted'));
                   
printf('<input type="hidden" name="mass_values[%s][%s][%s]" value="%s" />',$index,$attribute->getName(),0,'');
                }

                foreach (
$attribute->getValues() as $key => $value) {
                   
# For multiple values, we'll highlight the changed ones
                   
if ((count($attribute->getValues()) > 5) && in_array($value,$attribute->getAddedValues()))
                        echo
'<span style="color:#004400; background:#FFFFA0">';

                   
$page->draw('CurrentValue',$attribute,$key);

                   
# For multiple values, close the highlighting
                   
if ((count($attribute->getValues()) > 5) && in_array($value,$attribute->getAddedValues()))
                        echo
'</span>';

                    echo
'<br />';
                   
printf('<input type="hidden" name="mass_values[%s][%s][%s]" value="%s" />',$index,$attribute->getName(),$key,$value);
                }

                echo
'</span></td>';

               
# Show OLD Values
               
echo '<td><span style="white-space: nowrap;">';

                if (!
$attribute->getOldValues())
                   
printf('<span style="color: green">[%s]</span>',_('attribute doesnt exist'));

                    foreach (
$attribute->getOldValues() as $key => $value) {
                   
# For multiple values, we'll highlight the changed ones
                   
if ((count($attribute->getOldValues()) > 5) && in_array($value,$attribute->getRemovedValues()) && count($attribute->getValues()))
                        echo
'<span style="color:#880000; background:#FFFFA0">';

                   
$page->draw('OldValue',$attribute,$key);

                   
# For multiple values, close the highlighting
                   
if ((count($attribute->getOldValues()) > 5) && in_array($value,$attribute->getRemovedValues()) && count($attribute->getValues()))
                        echo
'</span>';

                    echo
'<br />';
                }

                echo
'</span></td>';

                echo
'</tr>';
            }

            echo
'</table>';

            echo
'<br/>';
        }

        echo
'</td></tr>';
        echo
'</table>';
       
printf('<input type="submit" id="save_button" name="submit" value="%s" />',_('Update Values'));
        echo
'</form>';
    }

} else {
    echo
'<center>';
    echo
_('You made no changes');
    echo
'</center>';
}
?>