133 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
		
		
			
		
	
	
			133 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
|  | <?php | ||
|  | /* | ||
|  | $Id$ | ||
|  | 
 | ||
|  |   This code is part of LDAP Account Manager (http://www.sourceforge.net/projects/lam) | ||
|  |    | ||
|  |   This code is based on phpLDAPadmin. | ||
|  |   Copyright (C) 2004  David Smith and phpLDAPadmin developers | ||
|  |    | ||
|  |   The original code was modified to fit for LDAP Account Manager by Roland Gruber. | ||
|  |   Copyright (C) 2005  Roland Gruber | ||
|  | 
 | ||
|  |   This program is free software; you can redistribute it and/or modify | ||
|  |   it under the terms of the GNU General Public License as published by | ||
|  |   the Free Software Foundation; either version 2 of the License, or | ||
|  |   (at your option) any later version. | ||
|  | 
 | ||
|  |   This program is distributed in the hope that it will be useful, | ||
|  |   but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
|  |   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||
|  |   GNU General Public License for more details. | ||
|  | 
 | ||
|  |   You should have received a copy of the GNU General Public License | ||
|  |   along with this program; if not, write to the Free Software | ||
|  |   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||
|  | 
 | ||
|  | 
 | ||
|  | */ | ||
|  | 
 | ||
|  | 
 | ||
|  | /** | ||
|  |  * @package lists | ||
|  |  * @subpackage tree | ||
|  |  * @author The phpLDAPadmin development team | ||
|  |  * @author Roland Gruber | ||
|  |  */ | ||
|  | 
 | ||
|  | /** export functions */ | ||
|  | require '../../lib/export.inc'; | ||
|  | /** common functions */ | ||
|  | require '../../lib/tree.inc'; | ||
|  | /** access to configuration */ | ||
|  | include_once('../../lib/config.inc'); | ||
|  | /** LDAP functions */ | ||
|  | include_once('../../lib/ldap.inc'); | ||
|  | /** status messages */ | ||
|  | include_once('../../lib/status.inc'); | ||
|  | 
 | ||
|  | // start session
 | ||
|  | session_save_path("../../sess"); | ||
|  | @session_start(); | ||
|  | 
 | ||
|  | setlanguage(); | ||
|  | 
 | ||
|  | $base_dn = isset($_POST['dn']) ? $_POST['dn']:NULL; | ||
|  | $format = isset( $_POST['format'] ) ? $_POST['format'] : "unix"; | ||
|  | $scope = isset($_POST['scope']) ? $_POST['scope'] : 'base'; | ||
|  | $filter = isset($_POST['filter']) ? $_POST['filter'] : 'objectclass=*'; | ||
|  | $target = isset($_POST['target']) ? $_POST['target'] : 'display'; | ||
|  | $save_as_file = isset( $_POST['save_as_file'] ) &&  $_POST['save_as_file'] == 'on'; | ||
|  | 
 | ||
|  | // add system attributes if needed
 | ||
|  | $attributes = array(); | ||
|  | if( isset( $_POST['sys_attr'] ) ){ | ||
|  |   array_push($attributes,'*'); | ||
|  |   array_push($attributes,'+'); | ||
|  | } | ||
|  | 
 | ||
|  | $exporter_id = $_POST['exporter_id']; | ||
|  | 
 | ||
|  | // Initialisation of other variables
 | ||
|  | $rdn = get_rdn( $base_dn ); | ||
|  | $friendly_rdn = get_rdn( $base_dn, 1 ); | ||
|  | $extension = $exporters[$exporter_id]['extension']; | ||
|  | 
 | ||
|  | //set the default CRLN to Unix format
 | ||
|  | $br = "\n"; | ||
|  | 
 | ||
|  | // default case not really needed
 | ||
|  | switch( $format ) { | ||
|  |  case 'win':  | ||
|  |    $br = "\r\n";  | ||
|  |    break; | ||
|  |  case 'mac': | ||
|  |    $br = "\r"; | ||
|  |    break; | ||
|  |  case 'unix': | ||
|  |  default:	 | ||
|  |    $br = "\n"; | ||
|  | } | ||
|  | 
 | ||
|  | // get the decoree,ie the source
 | ||
|  | $plaLdapExporter = new PlaLdapExporter($filter,$base_dn,$scope,$attributes); | ||
|  | 
 | ||
|  | // the decorator 
 | ||
|  | // do it that way for the moment
 | ||
|  | $exporter = NULL; | ||
|  | 
 | ||
|  | switch($exporter_id){ | ||
|  |  case 0: | ||
|  |    $exporter = new PlaLdifExporter($plaLdapExporter); | ||
|  |    break; | ||
|  |  case 1: | ||
|  |    $exporter = new PlaDsmlExporter($plaLdapExporter); | ||
|  |    break; | ||
|  |  case 2: | ||
|  |    $exporter = new PlaVcardExporter($plaLdapExporter); | ||
|  |    break; | ||
|  |  case 3: | ||
|  |    $exporter = new PlaCSVExporter($plaLdapExporter); | ||
|  |    break; | ||
|  | } | ||
|  | 
 | ||
|  | // set the CLRN
 | ||
|  | $exporter->setOutputFormat($br); | ||
|  | 
 | ||
|  | // prevent script from bailing early for long search
 | ||
|  | @set_time_limit( 0 ); | ||
|  | 
 | ||
|  | // send the header
 | ||
|  | if( $save_as_file )  | ||
|  |   header( "Content-type: application/download" ); | ||
|  | else | ||
|  |   header( "Content-type: text/plain" ); | ||
|  | header( "Content-Disposition: filename=$friendly_rdn.".$exporters[$exporter_id]['extension'] );  | ||
|  | header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );  | ||
|  | header( "Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT" );  | ||
|  | header( "Cache-Control: post-check=0, pre-check=0", false ); | ||
|  | 
 | ||
|  | // and export
 | ||
|  | $exporter->export(); | ||
|  | ?>
 |