<?php
// Connect to SIMS LDAP server and modify values

$need_horde_db = 1;
$db_lib_loaded = 1;
if (!defined("HORDE_LIB")) include ('../lib/horde.lib');

require( './lib/imp.lib' );    

$language = select_lang();
require ("./locale/$language/prefs.lang");
require ("./locale/$language/sims.lang");
require ('./locale/local/prefs.lang');

/* retrieve authentication information from session */
$session = create_session_object();
$user    = $session->get_user();
$pass    = $session->get_password();

require( './sims.search.php3');
require( './config/defaults.php3' );     /* Defaults configuration file */

$language = select_lang();
require ("./locale/$language/prefs.lang");
require ('./locale/local/prefs.lang');

/* Html styles configuration */
require('./config/html.php3');

  if ($action == 'forward'){
    $sidebar = false;

	require( "$default->include_dir/doctype.inc" );
	require( "$default->include_dir/generic-header.inc" );
	require( "$default->include_dir/prefs/change_forward.inc" );
        require( "$default->include_dir/generic-footer.inc" );
}	

if ($action == 'delete'){

	/* LDAP modification starts here */

	$ds=ldap_connect("$default->sims_server");  /* must be a valid LDAP server! */

	if ($ds) {
		$r=ldap_bind($ds, $default->sims_admin, $default->sims_admin_pwd);     

		/*Search for the values we need.*/

		$newinfo[mailforwardingaddress][0]=$delete_address ;

		ldap_mod_del($ds, $user_dn , $newinfo);

		ldap_close($ds);

        require( './sims.search.php3');
   	require( "$default->include_dir/doctype.inc" );
    	require( "$default->include_dir/generic-header.inc" );
    	require( "$default->include_dir/prefs/updated.inc" );
    	require( "$default->include_dir/generic-footer.inc" );


	} else {
		echo "<h4>Unable to connect to LDAP server</h4>";
	}

}

if ($action == 'add'){

    /* LDAP modification starts here */

    $ds=ldap_connect("$default->sims_server");  /* must be a valid LDAP server! */

    if ($ds) {
        $r=ldap_bind($ds, $default->sims_admin, $default->sims_admin_pwd);

        /*Search for the values we need.*/

        $newinfo[mailforwardingaddress][0]=$add_address ;

        ldap_mod_add($ds, $user_dn , $newinfo);

	ldap_close($ds);

        require( './sims.search.php3');
        require( "$default->include_dir/doctype.inc" );
        require( "$default->include_dir/generic-header.inc" );
        require( "$default->include_dir/prefs/updated.inc" );
        require( "$default->include_dir/generic-footer.inc" );

    } else {
        echo "<h4>Unable to connect to LDAP server</h4>";
    }

}


if ($action == 'apply'){

    /* LDAP modification starts here */

    $ds=ldap_connect("$default->sims_server");  /* must be a valid LDAP server! */

    if ($ds) {
        $r=ldap_bind($ds, $default->sims_admin, $default->sims_admin_pwd);


	if ($forwardtype == 'forward_local'){
	
        $newinfo[maildeliveryoption][0]='mailbox' ;
        $newinfo[maildeliveryoption][1]='forward' ;

        ldap_mod_replace($ds, $user_dn , $newinfo);
	}

    if ($forwardtype == 'forward'){
    
        $newinfo[maildeliveryoption][0]='forward' ;

        ldap_mod_replace($ds, $user_dn , $newinfo);
    }

    if ($forwardtype == 'local'){
    
        $newinfo[maildeliveryoption][0]='mailbox' ;

        ldap_mod_replace($ds, $user_dn , $newinfo);
    }

        ldap_close($ds);

        require( './sims.search.php3');
        require( "$default->include_dir/doctype.inc" );
        require( "$default->include_dir/generic-header.inc" );
        require( "$default->include_dir/prefs/updated.inc" );
        require( "$default->include_dir/generic-footer.inc" );



    } else {
        echo "<h4>Unable to connect to LDAP server</h4>";
    }

}

if ($action == 'vacation'){
    $sidebar = false;

    require( "$default->include_dir/doctype.inc" );
    require( "$default->include_dir/generic-header.inc" );
    require( "$default->include_dir/prefs/change_vacation.inc" );
    require( "$default->include_dir/generic-footer.inc" );
}

if ($action == 'update'){

	$new_exp_date = $expdateyy ;
	$new_exp_date .= $expdatemm ;
	$new_exp_date .= $expdatedd ;
	$new_exp_date .= '050000Z';

    /* LDAP modification starts here */

    $ds=ldap_connect("$default->sims_server");  /* must be a valid LDAP server! */

    if ($ds) {
        $r=ldap_bind($ds, $default->sims_admin, $default->sims_admin_pwd);

        /*Search for the values we need.*/

		if ($vacation_onoff == 'autoreply'){ 

			if ($delivery_list[$num] != 'autoreply') {
				$newmail[maildeliveryoption][0]=$vacation_onoff ;
            			$newmail[mailautoreplymode][0]='vacation';
            			ldap_mod_add($ds, $user_dn , $newmail);
			}	

			} else {

        	$oldmail[maildeliveryoption][0]='autoreply';
			$oldmail[mailautoreplymode][0]='vacation';

        	ldap_mod_del($ds, $user_dn , $oldmail);

    		}
			
        
	$newdate[mailautoreplyexpirationdate][0]=$new_exp_date ; 
	$newsubject[mailautoreplysubject][0]=$new_subject ;
	$newtext[mailautoreplytext][0]=$new_text ;
	$newtext[mailautoreplytextinternal][0]=$new_text;

      	if(!isset($exp_date[0])) {
			ldap_mod_add($ds, $user_dn , $newdate);
		} else {
			ldap_mod_replace($ds, $user_dn , $newdate);
		}

		if(!isset($vac_subject[0])) {
       			ldap_mod_add($ds, $user_dn , $newsubject);
        	} else {
            		ldap_mod_replace($ds, $user_dn , $newsubject);
        	}
		
		if(!isset($ext_text[0])) {
            		ldap_mod_add($ds, $user_dn , $newtext);
        	} else {
            		ldap_mod_replace($ds, $user_dn , $newtext);
        	}
 
        ldap_close($ds);

        require( './sims.search.php3');
        require( "$default->include_dir/doctype.inc" );
        require( "$default->include_dir/generic-header.inc" );
        require( "$default->include_dir/prefs/updated.inc" );
        require( "$default->include_dir/generic-footer.inc" );


    } else {
        echo "<h4>Unable to connect to LDAP server</h4>";
    }

}

?>

