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?' )); 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								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 />' ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								?>