| 
									
										
										
										
											2011-06-26 10:44:28 +00:00
										 |  |  | <?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( | 
					
						
							| 
									
										
										
										
											2011-07-13 18:30:14 +00:00
										 |  |  | 		'title'=>_('No entry was selected to delete'), | 
					
						
							| 
									
										
										
										
											2011-06-26 10:44:28 +00:00
										 |  |  | 		'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); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-07-13 18:30:14 +00:00
										 |  |  | printf('<h3 class="title">%s</h3>',_('Mass delete')); | 
					
						
							| 
									
										
										
										
											2011-06-26 10:44:28 +00:00
										 |  |  | 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?')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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">'; | 
					
						
							| 
									
										
										
										
											2011-07-15 18:10:43 +00:00
										 |  |  | 	printf(_('This deletion request also includes %s child entries.'),count($request['children'])); | 
					
						
							| 
									
										
										
										
											2011-06-26 10:44:28 +00:00
										 |  |  | 	echo '</td></tr>'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	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 />'; | 
					
						
							|  |  |  | ?>
 |