You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							788 lines
						
					
					
						
							18 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							788 lines
						
					
					
						
							18 KiB
						
					
					
				
								<?php
							 | 
						|
								/**
							 | 
						|
								 * @copyright Intermesh 2004
							 | 
						|
								 * @author Merijn Schering <mschering@intermesh.nl>
							 | 
						|
								 * @version 2.13 Release date: 1 March 2005
							 | 
						|
								 * @version $Revision: 1.20 $ $Date: 2005/04/28 09:25:24 $
							 | 
						|
								 *
							 | 
						|
								 * 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.
							 | 
						|
								 
							 | 
						|
								 * @package Framework
							 | 
						|
								 */
							 | 
						|
								
							 | 
						|
								include_once("avw_session.php");
							 | 
						|
								include_once("config.php");
							 | 
						|
								/**
							 | 
						|
								 * This class holds the main configuration options of Group-Office
							 | 
						|
								 * Don't modify this file. The values defined here are just default values.
							 | 
						|
								 * They are overwritten by the configuration options in local/config.php. 
							 | 
						|
								 * To edit these options use install.php.
							 | 
						|
								 *
							 | 
						|
								 * @author   Merijn Schering <mschering@intermesh.nl>
							 | 
						|
								 * @since    Group-Office 1.0
							 | 
						|
								 * 
							 | 
						|
								 * @package Framework
							 | 
						|
								 * @subpackage Configuration
							 | 
						|
								 * 
							 | 
						|
								 * @access public
							 | 
						|
								 */
							 | 
						|
								class GO_CONFIG
							 | 
						|
								{
							 | 
						|
									#FRAMEWORK VARIABLES
							 | 
						|
								
							 | 
						|
									/**
							 | 
						|
								   * The Group-Office version number
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $version = '2.13';
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Enable debugging mode
							 | 
						|
								   *
							 | 
						|
								   * @var     bool
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $debug = false;
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Enable syslog
							 | 
						|
								   *
							 | 
						|
								   * @var     bool
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								   
							 | 
						|
								  var $log = false;
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Slash to use '/' for linux and '\\' for windows
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $slash = '/';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Default language
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $language = 'en';
							 | 
						|
								  
							 | 
						|
								  /**
							 | 
						|
								   * Default theme
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $theme = 'Default';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Enable theme switching by users
							 | 
						|
								   *
							 | 
						|
								   * @var     bool
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $allow_themes = true;
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Enable password changing by users
							 | 
						|
								   *
							 | 
						|
								   * @var     bool
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $allow_password_change = true;
							 | 
						|
								  
							 | 
						|
								  /**
							 | 
						|
								   * Enable user registration by everyone
							 | 
						|
								   *
							 | 
						|
								   * @var     bool
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $allow_registration = false;
							 | 
						|
								  
							 | 
						|
								  /**
							 | 
						|
								   * Grant read permissions for these modules to new self-registered users.
							 | 
						|
								   * Module names are seperated by a comma.
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $register_modules_read = "calendar,addressbook,email,todos,summary,filesystem";
							 | 
						|
								  
							 | 
						|
								  /**
							 | 
						|
								   * Grant write permissions for these modules to new self-registered users.
							 | 
						|
								   * Module names are seperated by a comma.
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $register_modules_write = "";
							 | 
						|
								  
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Add self-registered users to these user groups
							 | 
						|
								   * Group names are seperated by a comma.
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $register_user_groups = "";
							 | 
						|
								  
							 | 
						|
								  
							 | 
						|
								  /**
							 | 
						|
								   * Relative hostname with slash on both start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $host = '/avw/navy/go/';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Full URL to reach Group-Office with slash on end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $full_url = '';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Title of Group-Office
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $title = 'AVW';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * The e-mail of the webmaster
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $webmaster_email = 'webmaster@example.com';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * The path to the root of Group-Office with slash on end
							 | 
						|
								   * 
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $root_path = '';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * The path to store temporary files with a slash on end
							 | 
						|
								   * Leave to ../ for installation
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $tmpdir = '';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * The maximum number of users
							 | 
						|
								   *
							 | 
						|
								   * @var     int
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $max_users = 0;
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Refresh interval in seconds for the mail & event checker
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $refresh_rate = '60';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * The login screen to display
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $login_screen = 'Default';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * zed
							 | 
						|
								   */
							 | 
						|
								  var $login_page = 'http://www.orkut.com';
							 | 
						|
								
							 | 
						|
									#database configuration
							 | 
						|
								  /**
							 | 
						|
								   * The database type to use. Currently only MySQL is supported
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $db_type = 'mysql';
							 | 
						|
								  /**
							 | 
						|
								   * The host of the database
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $db_host = 'localhost';
							 | 
						|
								  /**
							 | 
						|
								   * The name of the database
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $db_name = 'groupoffice';
							 | 
						|
								  /**
							 | 
						|
								   * The username to connect to the database
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $db_user = 'groupoffice';
							 | 
						|
								  /**
							 | 
						|
								   * The password to connect to the database
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $db_pass = '';
							 | 
						|
								
							 | 
						|
								 	/** Path to local installation specific files
							 | 
						|
								   * 
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $local_path = '';
							 | 
						|
								  
							 | 
						|
								  /** URL to local installation specific files
							 | 
						|
								   * 
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $local_url = '';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * The path to external authentication sources file
							 | 
						|
								   * 
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $auth_sources = '';
							 | 
						|
								
							 | 
						|
								#FILE BROWSER VARIABLES
							 | 
						|
								  /**
							 | 
						|
								   * The path to the mime.types file in Linux
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $mime_types_file = '/etc/mime.types';
							 | 
						|
								  /**
							 | 
						|
								   * The path to the location where the files of the file browser module are stored
							 | 
						|
								   *
							 | 
						|
								   * This path should NEVER be inside the document root of the webserver
							 | 
						|
								   * this directory should be writable by apache. Also choose a partition that
							 | 
						|
								   * has enough diskspace.
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $file_storage_path = '/home/groupoffice/';
							 | 
						|
								  /**
							 | 
						|
								   * The permissions mode to use when creating files and folders
							 | 
						|
								   *
							 | 
						|
								   * @var     hexadecimal
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $create_mode = '0755';
							 | 
						|
								  /**
							 | 
						|
								   * The maximum file size the filebrowser attempts to upload. Be aware that 
							 | 
						|
								   * the php.ini file must be set accordingly (http://www.php.net).
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $max_file_size = '100000000';
							 | 
						|
								  /**
							 | 
						|
								   * The maximum amount of diskspace that a user may use in Kb 
							 | 
						|
								   *
							 | 
						|
								   * @var     int
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $user_quota = 0;	# kb
							 | 
						|
								
							 | 
						|
								#WebDAV VARIABLES
							 | 
						|
								  /**
							 | 
						|
								   * Enable WebDAV?
							 | 
						|
								   *
							 | 
						|
								   * @var     bool
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $dav_switch = false;
							 | 
						|
								  /**
							 | 
						|
								   * Path to Apache DAV library with slash on end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $dav_apachedir = '';
							 | 
						|
								  /**
							 | 
						|
								   * Path to Apache drafts with slash on end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $dav_drafts = '';
							 | 
						|
								  /**
							 | 
						|
								   * DAV authentication source
							 | 
						|
								   *
							 | 
						|
								   * When it is empty, use the MySQL-Authentication
							 | 
						|
								   * For the test: ldap://localhost/dc=tgm,dc=ac,dc=at?uid
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $dav_auth = '%ldap_dav_auth%';
							 | 
						|
								  /**
							 | 
						|
								   * The alias as defined in Apache configuration to access the DAV files
							 | 
						|
								   * with slash at start and end.
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $dav_alias = '/dav/';
							 | 
						|
								  /**
							 | 
						|
								   * The name of the access file (usually .htaccess)
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $dav_accessfilename = '.htaccess';
							 | 
						|
								  /**
							 | 
						|
								   * The name of the folder to put the symblic links to the Group-Office shares
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $name_of_sharedir = 'Shares';
							 | 
						|
								  
							 | 
						|
								#email variables
							 | 
						|
								  /**
							 | 
						|
								   * The E-mail mailer type to use. Valid options are: smtp, qmail, sendmail, mail 
							 | 
						|
								   *
							 | 
						|
								   * @var     int
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $mailer = 'smtp';
							 | 
						|
								  /**
							 | 
						|
								   * The SMTP host to use when using the SMTP mailer 
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $smtp_server = 'localhost';
							 | 
						|
								  /**
							 | 
						|
								   * The SMTP port to use when using the SMTP mailer 
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $smtp_port = '25';
							 | 
						|
								  /**
							 | 
						|
								   * Connection string options to append to the hostname when connecting to IMAP
							 | 
						|
								   * servers using the PHP imap extension. Some distributions require /notls here.
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $email_connectstring_options = '';
							 | 
						|
								  /**
							 | 
						|
								   * The maximum size of e-mail attachments the browser attempts to upload.
							 | 
						|
								   * Be aware that the php.ini file must be set accordingly (http://www.php.net).
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $max_attachment_size = '10000000';
							 | 
						|
								  /**
							 | 
						|
								   * The width of the E-mail composer's popup window
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $composer_width = '750';
							 | 
						|
								  /**
							 | 
						|
								   * The height of the E-mail composer's popup window
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $composer_height = '550';
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								  ////////////////////////////////////////////////////////////////////////////////
							 | 
						|
								  ////////////////////      Do not change underneath this      ///////////////////
							 | 
						|
								  ////////////////////////////////////////////////////////////////////////////////
							 | 
						|
									#group configuration
							 | 
						|
								  /**
							 | 
						|
								   * The administrator user group ID
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $group_root = '1';
							 | 
						|
								  /**
							 | 
						|
								   * The everyone user group ID
							 | 
						|
								   *  
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $group_everyone = '2';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Date formats to be used. Changing these will probably break things!
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $date_formats = array(
							 | 
						|
								      'd-m-Y',
							 | 
						|
								      'm-d-Y'
							 | 
						|
								      );
							 | 
						|
								  /**
							 | 
						|
								   * Time formats to be used.
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $time_formats = array(
							 | 
						|
								      'G:i',
							 | 
						|
								      'g:i a'
							 | 
						|
								      );
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Relative path to the modules directory with no slash at start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $module_path = 'modules';
							 | 
						|
								  /**
							 | 
						|
								   * Relative URL to the administrator directory with no slash at start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $administrator_url = 'administrator';
							 | 
						|
								  /**
							 | 
						|
								   * Relative URL to the configuration directory with no slash at start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $configuration_url = 'configuration';
							 | 
						|
								  /**
							 | 
						|
								   * Relative path to the classes directory with no slash at start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $class_path = 'classes';
							 | 
						|
								  /**
							 | 
						|
								   * Relative path to the controls directory with no slash at start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $control_path = 'controls';
							 | 
						|
								  /**
							 | 
						|
								   * Relative URL to the controls directory with no slash at start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $control_url = 'controls';
							 | 
						|
								  /**
							 | 
						|
								   * Relative path to the themes directory with no slash at start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $theme_path = 'themes';
							 | 
						|
								  
							 | 
						|
								  /**
							 | 
						|
								   * Relative URL to the themes directory with no slash at start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $theme_url = 'themes';
							 | 
						|
								  
							 | 
						|
								  /**
							 | 
						|
								   * Relative path to the language directory with no slash at start and end
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $language_path = 'language';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Database object
							 | 
						|
								   *
							 | 
						|
								   * @var     object
							 | 
						|
								   * @access  private
							 | 
						|
								   */
							 | 
						|
								  var $db;
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * The window mode of Group-Office
							 | 
						|
								   *
							 | 
						|
								   * @var     string
							 | 
						|
								   * @access  public
							 | 
						|
								   */
							 | 
						|
								  var $window_mode = 'normal';
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Constructor. Initialises all public variables.
							 | 
						|
								   *
							 | 
						|
								   * @access public
							 | 
						|
								   * @return void
							 | 
						|
								   */
							 | 
						|
								  function GO_CONFIG()
							 | 
						|
								  {  	
							 | 
						|
								  	if($this->root_path == '')
							 | 
						|
								  	{
							 | 
						|
								  		//Detect some default values for installation if root_path is not set yet
							 | 
						|
								  		$this->root_path = str_replace('Group-Office.php','',__FILE__);
							 | 
						|
								  		$this->host = str_replace('install/install.php', '', $_SERVER['PHP_SELF']);  		
							 | 
						|
								  		$this->full_url = 'http://'.$_SERVER['SERVER_NAME'].$this->host;
							 | 
						|
								  		
							 | 
						|
								  		$this->local_path = $this->root_path.'local/';
							 | 
						|
								  		$this->local_url = $this->host.'local/';
							 | 
						|
								  		
							 | 
						|
								  		if(ini_get('safe_mode') == '0' && file_exists('/etc/mime.types'))
							 | 
						|
								  		{
							 | 
						|
								  			$this->mime_types_file = '/etc/mime.types';
							 | 
						|
								  		}else
							 | 
						|
								  		{
							 | 
						|
								  			$this->mime_types_file = $this->root_path.'/lib/mime.types';
							 | 
						|
								  		}
							 | 
						|
								  	}
							 | 
						|
								  	
							 | 
						|
								  	$config = array();
							 | 
						|
								  	
							 | 
						|
								 		@include($this->get_config_file());
							 | 
						|
								  	
							 | 
						|
								  	foreach($config as $key=>$value)
							 | 
						|
								  	{
							 | 
						|
								  		$this->$key=$value;
							 | 
						|
								  	} 	
							 | 
						|
								  	  	
							 | 
						|
								    // path to classes
							 | 
						|
								    $this->class_path = $this->root_path.$this->class_path.$this->slash;
							 | 
						|
								    
							 | 
						|
								    // path to themes
							 | 
						|
								    $this->theme_path = $this->root_path.$this->theme_path.$this->slash;
							 | 
						|
								    
							 | 
						|
								    // URL to themes
							 | 
						|
								    $this->theme_url = $this->host.$this->theme_url.'/';
							 | 
						|
								
							 | 
						|
								    // path to controls
							 | 
						|
								    $this->control_path = $this->host.$this->control_path.'/';
							 | 
						|
								
							 | 
						|
								    // url to controls
							 | 
						|
								    $this->control_url = $this->host.$this->control_url.'/';
							 | 
						|
								
							 | 
						|
								    // path to modules
							 | 
						|
								    $this->module_path = $this->root_path.$this->module_path.$this->slash;
							 | 
						|
								
							 | 
						|
								    // url to administrator apps
							 | 
						|
								    $this->administrator_url = $this->host.$this->administrator_url.'/';
							 | 
						|
								
							 | 
						|
								    // url to user configuration apps
							 | 
						|
								    $this->configuration_url = $this->host.$this->configuration_url.'/';
							 | 
						|
								
							 | 
						|
								    // database class library
							 | 
						|
								    require_once($this->root_path.'database/'.$this->db_type.".class.inc");
							 | 
						|
								    $this->db = new db();
							 | 
						|
								    $this->db->Host = $this->db_host;
							 | 
						|
								    $this->db->Database = $this->db_name;
							 | 
						|
								    $this->db->User = $this->db_user;
							 | 
						|
								    $this->db->Password = $this->db_pass;   
							 | 
						|
								  }
							 | 
						|
								  
							 | 
						|
								  /**
							 | 
						|
								   * Get's the location of a configuration file.
							 | 
						|
								   * Group-Office searches two locations:
							 | 
						|
								   *  1. /etc/Group-Office/APACHE SERVER NAME/subdir/to/groupoffice/config.php
							 | 
						|
								   *	2. /path/to/groupoffice/config.php
							 | 
						|
								   *
							 | 
						|
								   * The first location is more secure because the sensitive information is kept
							 | 
						|
								   * outside the document root.
							 | 
						|
								   *
							 | 
						|
								   * @access public
							 | 
						|
								   * @return string Path to configuration file
							 | 
						|
								   */
							 | 
						|
								  
							 | 
						|
								  function get_config_file()
							 | 
						|
								  {
							 | 
						|
								  	$subdir = str_replace($_SERVER['DOCUMENT_ROOT'],$_SERVER['SERVER_NAME'],__FILE__);
							 | 
						|
								  	$config_file = '/etc/Group-Office/'.str_replace('Group-Office.php', 'config.php',$subdir);
							 | 
						|
								
							 | 
						|
								 	if(@file_exists($config_file))
							 | 
						|
								  	{
							 | 
						|
								  		return $config_file;
							 | 
						|
								  	}else
							 | 
						|
								  	{
							 | 
						|
								  		return $this->root_path.'config.php';
							 | 
						|
								  	}
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  
							 | 
						|
								  /**
							 | 
						|
								   * Gets a custom saved setting from the database
							 | 
						|
								   *
							 | 
						|
								   * @param 	string $name Configuration key name
							 | 
						|
								   * @access public
							 | 
						|
								   * @return string Configuration key value
							 | 
						|
								   */
							 | 
						|
								  function get_setting( $name )
							 | 
						|
								  {
							 | 
						|
								    $this->db->query("SELECT * FROM settings WHERE name='$name'");
							 | 
						|
								    if ( $this->db->next_record() ) {
							 | 
						|
								      return $this->db->f('value');
							 | 
						|
								    }
							 | 
						|
								    return false;
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Saves a custom setting to the database
							 | 
						|
								   *
							 | 
						|
								   * @param 	string $name Configuration key name
							 | 
						|
								   * @param 	string $value Configuration key value
							 | 
						|
								   * @access public
							 | 
						|
								   * @return bool Returns true on succes
							 | 
						|
								   */
							 | 
						|
								  function save_setting( $name, $value )
							 | 
						|
								  {
							 | 
						|
								    if ( $this->get_setting($name) === false ) {
							 | 
						|
								      return $this->db->query("INSERT INTO settings (name, value) VALUES ('$name', '$value')");
							 | 
						|
								    } else {
							 | 
						|
								      return $this->db->query("UPDATE settings SET value='$value' WHERE name='$name'");
							 | 
						|
								    }
							 | 
						|
								  }
							 | 
						|
								
							 | 
						|
								  /**
							 | 
						|
								   * Deletes a custom setting from the database
							 | 
						|
								   *
							 | 
						|
								   * @param 	string $name Configuration key name
							 | 
						|
								   * @access public
							 | 
						|
								   * @return bool Returns true on succes
							 | 
						|
								   */
							 | 
						|
								  function delete_setting( $name )
							 | 
						|
								  {
							 | 
						|
								    return $this->db->query("DELETE FROM settings WHERE name='$name'");
							 | 
						|
								  }
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								////////////////////////////////////////////////////////////////////////////////
							 | 
						|
								////////////////////       Group-Office initialisation        //////////////////
							 | 
						|
								////////////////////////////////////////////////////////////////////////////////
							 | 
						|
								
							 | 
						|
								//load configuration
							 | 
						|
								$GO_CONFIG = new GO_CONFIG();
							 | 
						|
								
							 | 
						|
								//preload classes before session so they can be stored in the session
							 | 
						|
								if ( isset( $GO_INCLUDES ) ) {
							 | 
						|
								  while ( $include = array_shift( $GO_INCLUDES ) ) {
							 | 
						|
								    require_once( $include );
							 | 
						|
								  }
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								require_once($GO_CONFIG->class_path.'base/controls.class.inc');
							 | 
						|
								
							 | 
						|
								//setting session save path is required for some server configuration
							 | 
						|
								session_save_path($config['tmpdir']);
							 | 
						|
								
							 | 
						|
								//start session
							 | 
						|
								safe_session_start(0);
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								//require external auth_sources file
							 | 
						|
								if ( $GO_CONFIG->auth_sources != '' ) {
							 | 
						|
								  require_once($GO_CONFIG->auth_sources);
							 | 
						|
								} else {
							 | 
						|
								  $auth_sources = array();
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								if(isset($_REQUEST['auth_source_key']) && isset( $auth_sources[$_REQUEST['auth_source_key']]))
							 | 
						|
								{
							 | 
						|
									$_SESSION['auth_source'] = $auth_sources[$_REQUEST['auth_source_key']];	
							 | 
						|
								}elseif(!isset($_SESSION['auth_source']))
							 | 
						|
								{
							 | 
						|
									$_SESSION['auth_source'] = (isset($_COOKIE['GO_AUTH_SOURCE_KEY']) && isset( $auth_sources[$_COOKIE['GO_AUTH_SOURCE_KEY']]  )) ? $auth_sources[$_COOKIE['GO_AUTH_SOURCE_KEY']]  : null;
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								$user_manager = $type = 'sql';
							 | 
						|
								 
							 | 
						|
								if (isset($_SESSION['auth_source'])) {
							 | 
						|
								  if ( ( $_SESSION['auth_source']['type'] == "ldap" ) |
							 | 
						|
								       ( $_SESSION['auth_source']['user_manager'] == "ldap" ) )
							 | 
						|
								  {
							 | 
						|
								    require_once($GO_CONFIG->root_path.'database/ldap.class.inc');
							 | 
						|
								    $GO_LDAP = new ldap();
							 | 
						|
								  }
							 | 
						|
								  
							 | 
						|
								  $user_manager = $_SESSION['auth_source']['user_manager'];
							 | 
						|
								  $type = $_SESSION['auth_source']['type'];
							 | 
						|
								} 
							 | 
						|
								
							 | 
						|
								require_once($GO_CONFIG->class_path.'base/'.$type.'.auth.class.inc');
							 | 
						|
								require_once($GO_CONFIG->class_path.'base/'.$user_manager.'.security.class.inc');
							 | 
						|
								require_once($GO_CONFIG->class_path.'base/'.$user_manager.'.groups.class.inc');
							 | 
						|
								require_once($GO_CONFIG->class_path.'base/'.$user_manager.'.users.class.inc');	
							 | 
						|
								
							 | 
						|
								require_once($GO_CONFIG->class_path.'base/modules.class.inc');
							 | 
						|
								
							 | 
						|
								require_once($GO_CONFIG->root_path.'functions.inc');
							 | 
						|
								require_once($GO_CONFIG->class_path."base/language.class.inc");
							 | 
						|
								require_once($GO_CONFIG->class_path.'base/theme.class.inc');
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								 * Maybe these should be defined in the files where the class is?
							 | 
						|
								 */
							 | 
						|
								$go_users_class = $user_manager.'_users';
							 | 
						|
								$go_groups_class = $user_manager.'_groups';
							 | 
						|
								$go_security_class = $user_manager.'_security';
							 | 
						|
								$go_auth_class = $type.'_auth';
							 | 
						|
								
							 | 
						|
								$GO_LANGUAGE = new GO_LANGUAGE();
							 | 
						|
								$GO_THEME = new GO_THEME();
							 | 
						|
								$GO_AUTH = new $go_auth_class();
							 | 
						|
								$GO_SECURITY = new $go_security_class();
							 | 
						|
								$GO_USERS = new $go_users_class();
							 | 
						|
								$GO_GROUPS = new $go_groups_class();
							 | 
						|
								//Important that GO_SECURITY is loaded before GO_MODULES
							 | 
						|
								$GO_MODULES = new GO_MODULES();
							 | 
						|
								
							 | 
						|
								if ( $GO_CONFIG->dav_switch ) {
							 | 
						|
								  require_once($GO_CONFIG->class_path.'dav.class.inc');
							 | 
						|
								  $GO_DAV = new dav();
							 | 
						|
								}
							 | 
						|
								if ( isset( $_REQUEST['SET_LANGUAGE'] ) ) {
							 | 
						|
								  $GO_LANGUAGE->set_language( $_REQUEST['SET_LANGUAGE'] );
							 | 
						|
								}
							 | 
						|
								require_once($GO_LANGUAGE->get_base_language_file('common'));
							 | 
						|
								require_once($GO_LANGUAGE->get_base_language_file('filetypes'));
							 | 
						|
								
							 | 
						|
								if ( $GO_CONFIG->log ) {
							 | 
						|
								  define_syslog_variables();
							 | 
						|
								  openlog("groupoffice", LOG_PID | LOG_PERROR, LOG_LOCAL0);
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								define('GO_LOADED', true);
							 | 
						|
								?>
							 | 
						|
								
							 |