148 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php
 | |
| /**
 | |
|  * Displays a last chance confirmation form to delete a DN.
 | |
|  *
 | |
|  * @package phpLDAPadmin
 | |
|  * @subpackage Page
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  */
 | |
| 
 | |
| require './common.php';
 | |
| 
 | |
| # The DN we are working with
 | |
| $request = array();
 | |
| $request['dn'] = get_request('dn','REQUEST');
 | |
| 
 | |
| if (! $request['dn'])
 | |
| 	system_message(array(
 | |
| 		'title'=>_('No entry selected'),
 | |
| 		'body'=>_('No entry was selected to delete'),
 | |
| 		'type'=>'warn'),'index.php');
 | |
| 
 | |
| if (! is_array($request['dn']))
 | |
| 	$request['dn'] = array($request['dn']);
 | |
| 
 | |
| $request['children'] = array();
 | |
| $request['parent'] = 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'));
 | |
| 
 | |
| 	# We search all children, not only the visible children in the tree
 | |
| 	if (! in_array_ignore_case($dn,$request['children'])) {
 | |
| 		$request['children'] = array_merge($request['children'],$app['server']->getContainerContents($dn,null,0,'(objectClass=*)',LDAP_DEREF_NEVER));
 | |
| 		array_push($request['parent'],$dn);
 | |
| 	}
 | |
| }
 | |
| 
 | |
| printf('<h3 class="title">%s</h3>',_('Mass Delete'));
 | |
| printf('<h3 class="subtitle">%s: <b>%s</b></h3>',_('Server'),$app['server']->getName());
 | |
| echo "\n";
 | |
| 
 | |
| echo '<center>';
 | |
| echo '<table class="forminput" border="0">';
 | |
| 
 | |
| if (count($request['parent']) == 1)
 | |
| 	printf('<tr><td colspan="4"><b>%s</b></td></tr>',_('Are you sure you want to permanently delete this object?'));
 | |
| else
 | |
| 	printf('<tr><td colspan="4"><b>%s</b></td></tr>',_('Are you sure you want to permanently delete these objects?'));
 | |
| 
 | |
| echo '<tr><td colspan="4"> </td></tr>';
 | |
| printf('<tr><td style="width: 10%%;">%s:</td><td colspan="3" style="width: 75%%;"><b>%s</b></td></tr>',_('Server'),$app['server']->getName());
 | |
| 
 | |
| foreach ($request['parent'] as $dn)
 | |
| 	printf('<tr><td style="width: 10%%;"><acronym title="%s">%s</acronym></td><td colspan="3" style="width: 75%%;"><b>%s</b></td></tr>',
 | |
| 		_('DN'),_('DN'),$dn);
 | |
| 
 | |
| echo '<tr><td colspan="4"> </td></tr>';
 | |
| 
 | |
| $request['delete'] = $request['parent'];
 | |
| 
 | |
| if (count($request['children'])) {
 | |
| 	printf('<tr><td colspan="4"><b>%s</b></td></tr>',_('Permanently delete all children also?'));
 | |
| 	echo '<tr><td colspan="4"> </td></tr>';
 | |
| 
 | |
| 	# We need to see if the children have children
 | |
| 	$query = array();
 | |
| 	$query['scope'] = 'sub';
 | |
| 	$query['attrs'] = array('dn');
 | |
| 	$query['size_limit'] = 0;
 | |
| 	$query['deref'] = LDAP_DEREF_NEVER;
 | |
| 
 | |
| 	$request['search'] = array();
 | |
| 	foreach ($request['children'] as $dn) {
 | |
| 		$query['base'] = $dn;
 | |
| 		$request['search'] = array_merge($request['search'],$app['server']->query($query,null));
 | |
| 	}
 | |
| 
 | |
| 	foreach ($request['search'] as $value)
 | |
| 		array_push($request['delete'],$value['dn']);
 | |
| 
 | |
| 	echo '<tr>';
 | |
| 	echo '<td colspan="4">';
 | |
| 	printf(_('This request also includes %s children entries.'),count($request['children']));
 | |
| 	echo '</td></tr>';
 | |
| 
 | |
| 	printf('<tr><td colspan="4">%s</td></tr>',
 | |
| 		sprintf(_('phpLDAPadmin can also recursively delete all %s of the child entries. See below for a list of all the entries that this action will delete. Do you want to do this?'),count($request['children'])));
 | |
| 
 | |
| 	echo '<tr><td colspan="4"> </td></tr>';
 | |
| 
 | |
| 	printf('<tr><td colspan="4"><small>%s</small></td></tr>',
 | |
| 		_('Note: this is potentially very dangerous and you do this at your own risk. This operation cannot be undone. Take into consideration aliases, referrals, and other things that may cause problems.'));
 | |
| 	echo "\n";
 | |
| 
 | |
| 	echo '<tr><td colspan="4"> </td></tr>';
 | |
| 
 | |
| 	echo "\n";
 | |
| 
 | |
| 	printf('<tr><td colspan="4"><center><b>%s</b></center></td></tr>',_('List of entries to be deleted:'));
 | |
| 	echo '<tr><td colspan="4"> </td></tr>';
 | |
| 
 | |
| 	$i = 0;
 | |
| 	echo '<tr><td colspan="4"><center>';
 | |
| 	printf('<select size="%s" multiple disabled style="background:white; color:black;width:500px" >',min(10,count($request['delete'])));
 | |
| 	foreach ($request['delete'] as $key => $value)
 | |
| 		printf('<option>%s. %s</option>',++$i,htmlspecialchars(dn_unescape($value)));
 | |
| 	echo '</select>';
 | |
| 	echo '</center></td></tr>';
 | |
| 	echo "\n";
 | |
| 
 | |
| 	echo '<tr><td colspan="4"> </td></tr>';
 | |
| }
 | |
| 
 | |
| echo '<tr>';
 | |
| echo '<td colspan="2" style="width: 50%; text-align: center;">';
 | |
| echo '<form action="cmd.php" method="post">';
 | |
| echo '<input type="hidden" name="cmd" value="rdelete" />';
 | |
| printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
 | |
| foreach ($request['parent'] as $dn)
 | |
| 	printf('<input type="hidden" name="dn[]" value="%s" />',htmlspecialchars($dn));
 | |
| printf('<input type="submit" value="%s" />',sprintf(_('Delete all %s objects'),count($request['delete'])));
 | |
| echo '</form>';
 | |
| echo '</center></td>';
 | |
| 
 | |
| echo '<td colspan="2" style="width: 50%; text-align: center;">';
 | |
| 
 | |
| echo '<form action="cmd.php" method="get">';
 | |
| echo '<input type="hidden" name="cmd" value="template_engine" />';
 | |
| printf('<input type="hidden" name="server_id" value="%s" />',$app['server']->getIndex());
 | |
| printf('<input type="submit" name="submit" value="%s" />',_('Cancel'));
 | |
| echo '</form>';
 | |
| 
 | |
| echo '</center></td>';
 | |
| echo '</tr>';
 | |
| echo "\n";
 | |
| 
 | |
| echo '</table>';
 | |
| echo '</center>';
 | |
| 
 | |
| echo '<br />';
 | |
| ?>
 |