| 
									
										
										
										
											2011-06-26 10:44:28 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Display a selection (popup window) to pick a DN. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @package phpLDAPadmin | 
					
						
							|  |  |  |  * @subpackage Page | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | include './common.php'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $www['page'] = new page(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $request = array(); | 
					
						
							|  |  |  | $request['container'] = get_request('container','GET'); | 
					
						
							|  |  |  | $request['form'] = get_request('form','GET'); | 
					
						
							|  |  |  | $request['element'] = get_request('element','GET'); | 
					
						
							|  |  |  | $request['rdn'] = get_request('rdn','GET'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo '<div class="popup">'; | 
					
						
							| 
									
										
										
										
											2011-07-13 18:30:14 +00:00
										 |  |  | printf('<h3 class="subtitle">%s</h3>',_('Choose entry')); | 
					
						
							| 
									
										
										
										
											2011-06-26 10:44:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | echo '<script type="text/javascript">'; | 
					
						
							|  |  |  | echo '	function returnDN(dn) {'; | 
					
						
							|  |  |  | printf("	eval ('o = opener.document.getElementById(\"%s\").%s;');",$request['form'],$request['element']); | 
					
						
							|  |  |  | echo '		o.value = dn;'; | 
					
						
							|  |  |  | echo '		close();'; | 
					
						
							|  |  |  | echo '	}'; | 
					
						
							|  |  |  | echo '</script>'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo '<table class="forminput" width="100%" border="0">'; | 
					
						
							|  |  |  | if ($request['container']) { | 
					
						
							| 
									
										
										
										
											2011-07-13 18:30:14 +00:00
										 |  |  | 	printf('<tr><td class="heading" colspan="3">%s:</td><td>%s</td></tr>',_('Parent DN'),$request['container']); | 
					
						
							| 
									
										
										
										
											2011-06-26 10:44:28 +00:00
										 |  |  | 	echo '<tr><td class="blank" colspan="4"> </td></tr>'; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Has the user already begun to descend into a specific server tree?
 | 
					
						
							|  |  |  | if (isset($app['server']) && ! is_null($request['container'])) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	$request['children'] = $app['server']->getContainerContents($request['container'],null,0,'(objectClass=*)',$_SESSION[APPCONFIG]->getValue('deref','tree')); | 
					
						
							|  |  |  | 	sort($request['children']); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	foreach ($app['server']->getBaseDN() as $base) { | 
					
						
							|  |  |  | 		if (! pla_compare_dns($request['container'],$base)) { | 
					
						
							|  |  |  | 			$parent_container = false; | 
					
						
							|  |  |  | 			$href['up'] = sprintf('entry_chooser.php?form=%s&element=%s&rdn=%s',$request['form'],$request['element'],rawurlencode($request['rdn'])); | 
					
						
							|  |  |  | 			break; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		} else { | 
					
						
							|  |  |  | 			$parent_container = $app['server']->getContainer($request['container']); | 
					
						
							|  |  |  | 			$href['up'] = sprintf('entry_chooser.php?form=%s&element=%s&rdn=%s&server_id=%s&container=%s', | 
					
						
							|  |  |  | 				$request['form'],$request['element'],$request['rdn'],$app['server']->getIndex(),rawurlencode($parent_container)); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	echo '<tr>'; | 
					
						
							|  |  |  | 	echo '<td class="blank"> </td>'; | 
					
						
							|  |  |  | 	printf('<td class="icon"><a href="%s"><img src="%s/up.png" alt="Up" /></a></td>',$href['up'],IMGDIR); | 
					
						
							| 
									
										
										
										
											2011-07-12 19:23:27 +00:00
										 |  |  | 	printf('<td colspan="2"><a href="%s">%s...</a></td>',$href['up'],_('Back up')); | 
					
						
							| 
									
										
										
										
											2011-06-26 10:44:28 +00:00
										 |  |  | 	echo '</tr>'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	if (! count($request['children'])) | 
					
						
							|  |  |  | 		printf('<td class="blank" colspan="2"> </td><td colspan="2">(%s)</td>',_('no entries')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	else | 
					
						
							|  |  |  | 		foreach ($request['children'] as $dn) { | 
					
						
							|  |  |  | 			$href['return'] = sprintf("javascript:returnDN('%s%s')",($request['rdn'] ? sprintf('%s,',$request['rdn']) : ''),str_replace('\\','\\\\',$dn)); | 
					
						
							|  |  |  | 			$href['expand'] = sprintf('entry_chooser.php?server_id=%s&form=%s&element=%s&rdn=%s&container=%s', | 
					
						
							|  |  |  | 				$app['server']->getIndex(),$request['form'],$request['element'],$request['rdn'],rawurlencode($dn)); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			echo '<tr>'; | 
					
						
							|  |  |  | 			echo '<td class="blank"> </td>'; | 
					
						
							|  |  |  | 			printf('<td class="icon"><a href="%s"><img src="%s/plus.png" alt="Plus" /></a></td>',$href['expand'],IMGDIR); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			printf('<td colspan="2"><a href="%s">%s</a></td>',$href['return'],$dn); | 
					
						
							|  |  |  | 			echo '</tr>'; | 
					
						
							|  |  |  | 			echo "\n\n"; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Draw the root of the selection tree (ie, list all the servers)
 | 
					
						
							|  |  |  | } else { | 
					
						
							|  |  |  | 	foreach ($_SESSION[APPCONFIG]->getServerList() as $index => $server) { | 
					
						
							|  |  |  | 		if ($server->isLoggedIn(null)) { | 
					
						
							|  |  |  | 			foreach ($server->getBaseDN() as $dn) { | 
					
						
							|  |  |  | 				if (! $dn) { | 
					
						
							| 
									
										
										
										
											2011-07-12 19:23:27 +00:00
										 |  |  | 					printf('<tr><td class="blank"> </td><td colspan="3">(%s)</td></tr>',('Could not determine base DN')); | 
					
						
							| 
									
										
										
										
											2011-06-26 10:44:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 				} else { | 
					
						
							|  |  |  | 					$href['return'] = sprintf("javascript:returnDN('%s%s')",($request['rdn'] ? sprintf('%s,',$request['rdn']) : ''),rawurlencode($dn)); | 
					
						
							|  |  |  | 					$href['expand'] = htmlspecialchars(sprintf('entry_chooser.php?server_id=%s&form=%s&element=%s&rdn=%s&container=%s', | 
					
						
							|  |  |  | 							$server->getIndex(),$request['form'],$request['element'],$request['rdn'],rawurlencode($dn))); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 					echo '<tr>'; | 
					
						
							|  |  |  | 					echo '<td class="blank"> </td>'; | 
					
						
							|  |  |  | 					printf('<td colspan="2" class="icon"><a href="%s"><img src="%s/plus.png" alt="Plus" /></a></td>',$href['expand'],IMGDIR); | 
					
						
							|  |  |  | 					printf('<td colspan="2"><a href="%s">%s</a></td>',$href['return'],$dn); | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			echo '<tr><td class="blank" colspan="4"> </td></tr>'; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo '</table>'; | 
					
						
							|  |  |  | echo '</div>'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Capture the output and put into the body of the page.
 | 
					
						
							|  |  |  | $www['body'] = new block(); | 
					
						
							|  |  |  | $www['body']->SetBody(ob_get_contents()); | 
					
						
							|  |  |  | $www['page']->block_add('body',$www['body']); | 
					
						
							|  |  |  | ob_end_clean(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Render the popup.
 | 
					
						
							|  |  |  | $www['page']->display(array('CONTROL'=>false,'FOOT'=>false,'HEAD'=>false,'TREE'=>false)); | 
					
						
							|  |  |  | ?>
 |