PHP Classes

File: htdocs/mass_edit.php

Recommend this page to a friend!
  Classes of ask sa sa   PHP LDAP admin   htdocs/mass_edit.php   Download  
File: htdocs/mass_edit.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: 3,555 bytes
 

Contents

Class file image Download
<?php
/**
 * Main command page for phpLDAPadmin
 * Enable mass editing of Attribute values from a list of DNs.
 *
 * @package phpLDAPadmin
 * @subpackage Page
 */

/**
 */

require_once './common.php';

# The DN we are working with
$request = array();
$request['dn'] = get_request('dn','REQUEST');
$request['attrs'] = get_request('attrs','REQUEST');

# Check if the entries exist.
$counter = 0;
$attrcols = array();
foreach (
$request['dn'] as $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;
    }

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

   
$template = $request['page'][$counter]->getTemplate();

   
# Mark our attributes to edit as shown.
   
foreach ($template->getAttributes(true) as $attribute) {
        if (
$attribute->isInternal())
            continue;

        if (
in_array_ignore_case($attribute->getName(),$request['attrs']) || in_array('*',$request['attrs'])) {
           
$attribute->show();

           
# Get a list of our columns (we are not interested in these attribute values)
           
if (! isset($attrcols[$attribute->getName()]))
               
$attrcols[$attribute->getName()] = $attribute;
        }
    }

   
$counter++;
}

usort($attrcols,'sortAttrs');

if (!
count($request['page']))
   
header('Location: index.php');

# We'll render this forms Title with the first DN's object.
$request['page'][0]->drawTitle(_('Bulk edit the following DNs'));
$request['page'][0]->drawSubTitle(sprintf('%s: <b>%s</b>',_('Server'),$app['server']->getName()));

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

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

echo
'</div>';

echo
'<table class="result_table" border="0">';
echo
'<tr class="heading">';
echo
'<td>DN</td>';

foreach (
$attrcols as $attribute) {
    echo
'<td>';
   
$request['page'][0]->draw('Name',$attribute);
    echo
'</td>';
}

echo
'</tr>';

$counter = 0;
foreach (
$request['page'] as $j => $page) {
   
$template = $page->getTemplate();

   
printf('<tr class="%s">',$counter++%2==0?'even':'odd');
   
printf('<td><span style="white-space: nowrap;"><acronym title="%s"><b>%s</b>...</acronym></span></td>',
       
$template->getDN(),substr($template->getDN(),0,20));

    foreach (
$attrcols as $attrcol) {
       
$attribute = $template->getAttribute($attrcol->getName());

        echo
'<td>';
        if (
$attribute) {
            foreach (
$attribute->getValues() as $i => $val)
               
$page->draw('MassFormReadWriteValue',$attribute,$i,$j);

       
# The attribute doesnt exist. If it is available by the shema, we can draw an empty input box.
       
} else {
           
$match = false;

            foreach (
$template->getAvailAttrs() as $attribute) {
                if (
$attrcol->getName() == $attribute->getName()) {
                   
$page->draw('MassFormReadWriteValue',$attribute,0,$j);
                   
$match = true;

                    break;
                }
            }

            if (!
$match)
               
printf('<center><small>%s</small></center>', _('Attribute not available'));
        }

        echo
'</td>';
    }

    echo
'</tr>';
}

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