diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Core/Bootstrap.php b/CoreVersions/0.2.0/Frameworks/Baikal/Core/Bootstrap.php deleted file mode 100644 index 35f071e..0000000 --- a/CoreVersions/0.2.0/Frameworks/Baikal/Core/Bootstrap.php +++ /dev/null @@ -1,155 +0,0 @@ - -* All rights reserved -* -* http://baikal.codr.fr -* -* This script is part of the Baïkal Server project. The Baïkal -* Server project 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. -* -* The GNU General Public License can be found at -* http://www.gnu.org/copyleft/gpl.html. -* -* This script 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. -* -* This copyright notice MUST APPEAR in all copies of the script! -***************************************************************/ - - -function rmBeginSlash($sString) { - if(substr($sString, 0, 1) === "/") { - $sString = substr($sString, 1); - } - - return $sString; -} - -function rmEndSlash($sString) { - if(substr($sString, -1) === "/") { - $sString = substr($sString, 0, -1); - } - - return $sString; -} - -function appendSlash($sString) { - if(substr($sString, -1) !== "/") { - $sString .= "/"; - } - - return $sString; -} - -function prependSlash($sString) { - if(substr($sString, 0, 1) !== "/") { - $sString = "/" . $sString; - } - - return $sString; -} - -function installTool() { - if(defined("BAIKAL_CONTEXT_INSTALL") && BAIKAL_CONTEXT_INSTALL === TRUE) { - return; - } else { - $sInstallToolUrl = BAIKAL_URI . "admin/install/"; - header("Location: " . $sInstallToolUrl); - exit(0); - } -} - -# Asserting PHP 5.3.0+ -if(version_compare(PHP_VERSION, '5.3.0', '<')) { - die('Baikal Fatal Error: Baikal requires PHP 5.3.0+ to run properly. You version is: ' . PHP_VERSION . '.'); -} - -# Registering Baikal classloader -define("BAIKAL_PATH_FRAMEWORKROOT", dirname(dirname(__FILE__)) . "/"); -require_once(BAIKAL_PATH_FRAMEWORKROOT . '/Core/ClassLoader.php'); -\Baikal\Core\ClassLoader::register(); - -\Baikal\Core\Tools::assertEnvironmentIsOk(); - -# determine Baïkal install root path -# not using realpath here to avoid symlinks resolution - -define("BAIKAL_PATH_ROOT", dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))) . "/"); # ../../../../../ -define("BAIKAL_PATH_CORE", BAIKAL_PATH_ROOT . "Core/"); -define("BAIKAL_PATH_SPECIFIC", BAIKAL_PATH_ROOT . "Specific/"); -define("BAIKAL_PATH_FRAMEWORKS", BAIKAL_PATH_CORE . "Frameworks/"); -define("BAIKAL_PATH_WWWROOT", BAIKAL_PATH_CORE . "WWWRoot/"); - -# Define path to Baïkal SQLite file -define("BAIKAL_SQLITE_FILE", BAIKAL_PATH_SPECIFIC . "db/baikal.sqlite"); - -require_once(BAIKAL_PATH_CORE . "Distrib.php"); - -# Determine BAIKAL_URI -$sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen($_SERVER["DOCUMENT_ROOT"])); -$sDirName = appendSlash(dirname($sScript)); -$sBaseUrl = appendSlash(substr($sDirName, 0, -1 * strlen(BAIKAL_CONTEXT_BASEURI))); -$aParts = explode("/", $_SERVER["SERVER_PROTOCOL"]); -$sProtocol = strtolower(array_shift($aParts)); -define("BAIKAL_BASEURI", $sBaseUrl); -define("BAIKAL_URI", $sProtocol . "://" . rmEndSlash($_SERVER["HTTP_HOST"]) . $sBaseUrl); -unset($sScript); unset($sDirName); unset($sBaseUrl); unset($sProtocol); unset($aParts); - -# Bootstrap Flake -require_once(BAIKAL_PATH_FRAMEWORKS . "Flake/Core/Bootstrap.php"); - -# Check that a config file exists -if( - !file_exists(BAIKAL_PATH_SPECIFIC . "config.php") || - !file_exists(BAIKAL_PATH_SPECIFIC . "config.system.php") -) { - installTool(); -} else { - require_once(BAIKAL_PATH_SPECIFIC . "config.php"); - require_once(BAIKAL_PATH_SPECIFIC . "config.system.php"); - date_default_timezone_set(BAIKAL_TIMEZONE); - - # Check that Baïkal is already configured - if(!defined("BAIKAL_CONFIGURED_VERSION")) { - installTool(); - - } else { - - # Check that running version matches configured version - if(version_compare(BAIKAL_VERSION, BAIKAL_CONFIGURED_VERSION) > 0) { - installTool(); - - } else { - - # Check that admin password is set - if(!defined("BAIKAL_ADMIN_PASSWORDHASH")) { - installTool(); - } - - \Baikal\Core\Tools::assertBaikalIsOk(); - - # Establishing connection with database - $GLOBALS["DB"] = new \Flake\Core\Database\Sqlite(BAIKAL_SQLITE_FILE); - - # Mapping PHP errors to exceptions; needed by SabreDAV - function exception_error_handler($errno, $errstr, $errfile, $errline) { - throw new \ErrorException($errstr, 0, $errno, $errfile, $errline); - } - - set_error_handler("exception_error_handler"); - - unset($bShouldCheckEnv); - - # SabreDAV Autoloader - require_once(BAIKAL_PATH_SABREDAV . 'autoload.php'); - } - } -} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Core/ClassLoader.php b/CoreVersions/0.2.0/Frameworks/Baikal/Core/ClassLoader.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Core/Tools.php b/CoreVersions/0.2.0/Frameworks/Baikal/Core/Tools.php old mode 100644 new mode 100755 index a498b43..4a778d6 --- a/CoreVersions/0.2.0/Frameworks/Baikal/Core/Tools.php +++ b/CoreVersions/0.2.0/Frameworks/Baikal/Core/Tools.php @@ -48,50 +48,59 @@ class Tools { } } + public static function configureEnvironment() { + set_exception_handler('\Baikal\Core\Tools::handleException'); + ini_set("error_reporting", E_ALL); + } + + public static function handleException($exception) { + echo "
" . $exception . "
";
+	}
+	
 	public static function assertBaikalIsOk() {
 		
 		# Asserting DB file exists
-		if(!file_exists(BAIKAL_SQLITE_FILE)) {
+		if(!file_exists(PROJECT_SQLITE_FILE)) {
 			throw new \Exception("DB file does not exist. To create it, please copy 'Core/Resources/baikal.empty.sqlite' to 'Specific/db/baikal.sqlite'.");
 		}
 		
 		# Asserting DB file is readable
-		if(!is_readable(BAIKAL_SQLITE_FILE)) {
+		if(!is_readable(PROJECT_SQLITE_FILE)) {
 			throw new \Exception("DB file is not readable. Please give read permissions to httpd user on file 'Specific/db/baikal.sqlite'.");
 		}
 		
 		# Asserting DB file is writable
-		if(!is_writable(BAIKAL_SQLITE_FILE)) {
+		if(!is_writable(PROJECT_SQLITE_FILE)) {
 			throw new \Exception("DB file is not writable. Please give write permissions to httpd user on file 'Specific/db/baikal.sqlite'.");
 		}
 		
 		# Asserting config file exists
-		if(!file_exists(BAIKAL_PATH_SPECIFIC . "config.php")) {
+		if(!file_exists(PROJECT_PATH_SPECIFIC . "config.php")) {
 			throw new \Exception("Specific/config.php does not exist. Please use the Install tool to create it.");
 		}
 		
 		# Asserting config file is readable
-		if(!is_readable(BAIKAL_PATH_SPECIFIC . "config.php")) {
+		if(!is_readable(PROJECT_PATH_SPECIFIC . "config.php")) {
 			throw new \Exception("Specific/config.php is not readable. Please give read permissions to httpd user on file 'Specific/config.php'.");
 		}
 		
 		# Asserting config file is writable
-		if(!is_writable(BAIKAL_PATH_SPECIFIC . "config.php")) {
+		if(!is_writable(PROJECT_PATH_SPECIFIC . "config.php")) {
 			throw new \Exception("Specific/config.php is not writable. Please give write permissions to httpd user on file 'Specific/config.php'.");
 		}
 		
 		# Asserting system config file exists
-		if(!file_exists(BAIKAL_PATH_SPECIFIC . "config.system.php")) {
+		if(!file_exists(PROJECT_PATH_SPECIFIC . "config.system.php")) {
 			throw new \Exception("Specific/config.system.php does not exist. Please use the Install tool to create it.");
 		}
 		
 		# Asserting system config file is readable
-		if(!is_readable(BAIKAL_PATH_SPECIFIC . "config.system.php")) {
+		if(!is_readable(PROJECT_PATH_SPECIFIC . "config.system.php")) {
 			throw new \Exception("Specific/config.system.php is not readable. Please give read permissions to httpd user on file 'Specific/config.system.php'.");
 		}
 		
 		# Asserting system config file is writable
-		if(!is_writable(BAIKAL_PATH_SPECIFIC . "config.system.php")) {
+		if(!is_writable(PROJECT_PATH_SPECIFIC . "config.system.php")) {
 			throw new \Exception("Specific/config.system.php is not writable. Please give write permissions to httpd user on file 'Specific/config.system.php'.");
 		}
 	}
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Framework.php b/CoreVersions/0.2.0/Frameworks/Baikal/Framework.php
new file mode 100755
index 0000000..c4a5fad
--- /dev/null
+++ b/CoreVersions/0.2.0/Frameworks/Baikal/Framework.php
@@ -0,0 +1,97 @@
+
+*  All rights reserved
+*
+*  http://baikal.codr.fr
+*
+*  This script is part of the Baïkal Server project. The Baïkal
+*  Server project 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.
+*
+*  The GNU General Public License can be found at
+*  http://www.gnu.org/copyleft/gpl.html.
+*
+*  This script 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.
+*
+*  This copyright notice MUST APPEAR in all copies of the script!
+***************************************************************/
+
+namespace Baikal;
+
+class Framework extends \Flake\Core\Framework {
+	
+	public static function installTool() {	
+		if(defined("BAIKAL_CONTEXT_INSTALL") && BAIKAL_CONTEXT_INSTALL === TRUE) {
+			# Install tool has been launched and we're already on the install page
+			return;
+		} else {
+			# Install tool has been launched; redirecting user
+			$sInstallToolUrl = PROJECT_URI . "admin/install/";
+			header("Location: " . $sInstallToolUrl);
+			exit(0);
+		}
+	}
+	
+	public static function bootstrap() {
+		
+		# Registering Baikal classloader
+		define("BAIKAL_PATH_FRAMEWORKROOT", dirname(__FILE__) . "/");
+		require_once(BAIKAL_PATH_FRAMEWORKROOT . '/Core/ClassLoader.php');
+		\Baikal\Core\ClassLoader::register();
+
+		\Baikal\Core\Tools::assertEnvironmentIsOk();
+		\Baikal\Core\Tools::configureEnvironment();
+
+		# Check that a config file exists
+		if(
+			!file_exists(PROJECT_PATH_SPECIFIC . "config.php") ||
+			!file_exists(PROJECT_PATH_SPECIFIC . "config.system.php")
+		) {
+			self::installTool();
+		} else {
+			require_once(PROJECT_PATH_SPECIFIC . "config.php");
+			require_once(PROJECT_PATH_SPECIFIC . "config.system.php");
+			date_default_timezone_set(BAIKAL_TIMEZONE);
+
+			# Check that Baïkal is already configured
+			if(!defined("BAIKAL_CONFIGURED_VERSION")) {
+				self::installTool();
+
+			} else {
+
+				# Check that running version matches configured version
+				if(version_compare(BAIKAL_VERSION, BAIKAL_CONFIGURED_VERSION) > 0) {
+					self::installTool();
+
+				} else {
+
+					# Check that admin password is set
+					if(!defined("BAIKAL_ADMIN_PASSWORDHASH")) {
+						self::installTool();
+					}
+
+					\Baikal\Core\Tools::assertBaikalIsOk();
+
+					set_error_handler("\Baikal\Framework::exception_error_handler");
+					
+					# SabreDAV Autoloader 
+					require_once(BAIKAL_PATH_SABREDAV . 'autoload.php');
+				}
+			}
+		}
+		
+	}
+	
+	# Mapping PHP errors to exceptions; needed by SabreDAV
+	public static function exception_error_handler($errno, $errstr, $errfile, $errline) {
+		throw new \ErrorException($errstr, 0, $errno, $errfile, $errline);
+	}
+}
\ No newline at end of file
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/AddressBook.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/AddressBook.php
old mode 100644
new mode 100755
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/AddressBook/Contact.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/AddressBook/Contact.php
old mode 100644
new mode 100755
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Calendar.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Calendar.php
old mode 100644
new mode 100755
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Calendar/Event.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Calendar/Event.php
old mode 100644
new mode 100755
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config.php
old mode 100644
new mode 100755
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/Standard.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/Standard.php
old mode 100644
new mode 100755
index 8b91cf5..d9165ab
--- a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/Standard.php
+++ b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/Standard.php
@@ -32,13 +32,16 @@ class Standard extends \Baikal\Model\Config {
 		"BAIKAL_TIMEZONE" => array(
 			"type" => "string",
 		),
-		"BAIKAL_CARD_ENABLED" => array(
+		"BAIKAL_ADMIN_ENABLED" => array(
+			"type" => "boolean",
+		),
+		"BAIKAL_ADMIN_AUTOLOCKENABLED" => array(
 			"type" => "boolean",
 		),
 		"BAIKAL_CAL_ENABLED" => array(
 			"type" => "boolean",
 		),
-		"BAIKAL_ADMIN_ENABLED" => array(
+		"BAIKAL_CARD_ENABLED" => array(
 			"type" => "boolean",
 		),
 		"BAIKAL_ADMIN_PASSWORDHASH" => array(
@@ -54,6 +57,7 @@ class Standard extends \Baikal\Model\Config {
 		"BAIKAL_CARD_ENABLED" => "",
 		"BAIKAL_CAL_ENABLED" => "",
 		"BAIKAL_ADMIN_ENABLED" => "",
+		"BAIKAL_ADMIN_AUTOLOCKENABLED" => "",
 		"BAIKAL_ADMIN_PASSWORDHASH" => ""
 	);
 	
@@ -69,8 +73,21 @@ class Standard extends \Baikal\Model\Config {
 		)));
 		
 		$oMorpho->add(new \Formal\Element\Checkbox(array(
-			"prop" => "BAIKAL_CARD_ENABLED",
-			"label" => "Enable CardDAV"
+			"prop" => "BAIKAL_ADMIN_ENABLED",
+			"label" => "Enable Web Admin",
+			"popover" => array(
+				"title" => "Warning !",
+				"content" => "If disabled, you'll lose access to this very admin interface !",
+			),
+		)));
+		
+		$oMorpho->add(new \Formal\Element\Checkbox(array(
+			"prop" => "BAIKAL_ADMIN_AUTOLOCKENABLED",
+			"label" => "Enable Web Admin autolock",
+			"popover" => array(
+				"title" => "Web admin autolock",
+				"content" => "If enabled, you'll have to create a file named ENABLE_ADMIN in Specific/ prior to every admin use."
+			)
 		)));
 		
 		$oMorpho->add(new \Formal\Element\Checkbox(array(
@@ -79,12 +96,8 @@ class Standard extends \Baikal\Model\Config {
 		)));
 		
 		$oMorpho->add(new \Formal\Element\Checkbox(array(
-			"prop" => "BAIKAL_ADMIN_ENABLED",
-			"label" => "Enable Web Admin",
-			"popover" => array(
-				"title" => "Warning !",
-				"content" => "If disabled, you'll lose access to this very admin interface !",
-			),
+			"prop" => "BAIKAL_CARD_ENABLED",
+			"label" => "Enable CardDAV"
 		)));
 		
 		$oMorpho->add(new \Formal\Element\Password(array(
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/System.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Config/System.php
old mode 100644
new mode 100755
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/Principal.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/Principal.php
old mode 100644
new mode 100755
diff --git a/CoreVersions/0.2.0/Frameworks/Baikal/Model/User.php b/CoreVersions/0.2.0/Frameworks/Baikal/Model/User.php
old mode 100644
new mode 100755
diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Dashboard.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Dashboard.php
old mode 100644
new mode 100755
index 9a42c37..4758b9a
--- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Dashboard.php
+++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Dashboard.php
@@ -32,17 +32,31 @@ class Dashboard extends \Flake\Core\Controller {
 	}
 	
 	public function render() {
-		$sLinkUsers = \BaikalAdmin\Controller\Users::link();
+		$oView = new \BaikalAdmin\View\Dashboard();
+		$oView->setData("BAIKAL_VERSION", BAIKAL_VERSION);
 		
-		$sMessage =<<
-* Nombre d'utilisateurs
-* Nombre de calendriers
-* Nombre d'évènements
-* Version + Mise à jour de baikal
-* Lien vers liste des utilisateurs
-* Lien vers paramétrage
-MESSAGE; - return $sMessage; + # Services status + $oView->setData("BAIKAL_CAL_ENABLED", BAIKAL_CAL_ENABLED); + $oView->setData("BAIKAL_CARD_ENABLED", BAIKAL_CARD_ENABLED); + + # Statistics: Users + $iNbUsers = \Baikal\Model\User::getBaseRequester()->count(); + $oView->setData("nbusers", $iNbUsers); + + # Statistics: CalDAV + $iNbCalendars = \Baikal\Model\Calendar::getBaseRequester()->count(); + $oView->setData("nbcalendars", $iNbCalendars); + + $iNbEvents = \Baikal\Model\Calendar\Event::getBaseRequester()->count(); + $oView->setData("nbevents", $iNbEvents); + + # Statistics: CardDAV + $iNbBooks = \Baikal\Model\AddressBook::getBaseRequester()->count(); + $oView->setData("nbbooks", $iNbBooks); + + $iNbContacts = \Baikal\Model\AddressBook\Contact::getBaseRequester()->count(); + $oView->setData("nbcontacts", $iNbContacts); + + return $oView->render(); } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/AdminPassword.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/AdminPassword.php deleted file mode 100644 index ef2a39a..0000000 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/AdminPassword.php +++ /dev/null @@ -1,71 +0,0 @@ - -* All rights reserved -* -* http://baikal.codr.fr -* -* This script is part of the Baïkal Server project. The Baïkal -* Server project 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. -* -* The GNU General Public License can be found at -* http://www.gnu.org/copyleft/gpl.html. -* -* This script 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. -* -* This copyright notice MUST APPEAR in all copies of the script! -***************************************************************/ - -namespace BaikalAdmin\Controller\Install; - -class AdminPassword extends \Flake\Core\Controller { - - protected $aMessages = array(); - protected $oModel; # \BaikalAdmin\Model\Install - protected $oForm; # \Formal\Form - -/* public function __construct() { - parent::__construct(); - - $this->oModel = new \BaikalAdmin\Model\Install(); - - $this->oForm = $this->oModel->formForThisModelInstance(array( - "close" => FALSE - )); - } - - public function execute() { - if($this->oForm->submitted()) { - $this->oForm->execute(); - } - }*/ - - public function execute() { - } - - public function render() { - $sBigIcon = \BaikalAdmin\Model\Install::bigicon(); - $sBaikalVersion = BAIKAL_VERSION; - - $sHtml = << -

Baïkal maintainance wizard

-

Maintaining Baïkal {$sBaikalVersion}

- -HTML; - - $sHtml .= <<You have to set a password for the admin user.

-HTML; - - return $sHtml; - } -} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/Initialize.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/Initialize.php old mode 100644 new mode 100755 index 86d5246..3131b4e --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/Initialize.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/Initialize.php @@ -35,8 +35,13 @@ class Initialize extends \Flake\Core\Controller { public function __construct() { parent::__construct(); + # Assert that /Specific is writable + if(!file_exists(PROJECT_PATH_SPECIFIC) || !is_dir(PROJECT_PATH_SPECIFIC) || !is_writable(PROJECT_PATH_SPECIFIC)) { + throw new \Exception("Specific/ dir is readonly. Baïkal Admin requires write permissions on this dir."); + } + $this->createDefaultConfigFilesIfNeeded(); - $this->oModel = new \Baikal\Model\Config\Standard(BAIKAL_PATH_SPECIFIC . "config.php"); + $this->oModel = new \Baikal\Model\Config\Standard(PROJECT_PATH_SPECIFIC . "config.php"); # Assert that config file is writable if(!$this->oModel->writable()) { @@ -53,7 +58,7 @@ class Initialize extends \Flake\Core\Controller { $this->oForm->execute(); if($this->oForm->persisted()) { - $sContent = file_get_contents(BAIKAL_PATH_SPECIFIC . "config.system.php"); + $sContent = file_get_contents(PROJECT_PATH_SPECIFIC . "config.system.php"); $sBaikalVersion = BAIKAL_VERSION; $sEncryptionKey = md5(microtime() . rand()); @@ -68,53 +73,52 @@ define("BAIKAL_CONFIGURED_VERSION", "{$sBaikalVersion}"); PHP; # Writing results to file - file_put_contents(BAIKAL_PATH_SPECIFIC . "config.system.php", $sContent . "\n\n" . $sNewConstants); + file_put_contents(PROJECT_PATH_SPECIFIC . "config.system.php", $sContent . "\n\n" . $sNewConstants); } } } public function render() { - $sBigIcon = \BaikalAdmin\Model\Install::bigicon(); + $sBigIcon = "glyph2x-magic"; $sBaikalVersion = BAIKAL_VERSION; - - $sHtml = << -

Baïkal initialization wizard

-

Configure your new Baïkal {$sBaikalVersion} installation.

- -HTML; + + $oView = new \BaikalAdmin\View\Install\Initialize(); + $oView->setData("baikalversion", BAIKAL_VERSION); if($this->oForm->persisted()) { - $sHtml .= "

Baïkal is now configured. You may now Access the Baïkal admin"; - + $sMessage = "

Baïkal is now configured. You may now Access the Baïkal admin"; + $sForm = ""; } else { - # Display the config form - $sHtml .= $this->oForm->render(); + $sMessage = ""; + $sForm = $this->oForm->render(); } - - return $sHtml; + + $oView->setData("message", $sMessage); + $oView->setData("form", $sForm); + + return $oView->render(); } protected function tagConfiguredVersion() { - file_put_contents(BAIKAL_PATH_SPECIFIC . "config.php", $sContent); + file_put_contents(PROJECT_PATH_SPECIFIC . "config.php", $sContent); } protected function createDefaultConfigFilesIfNeeded() { # Create empty config.php if needed - if(!file_exists(BAIKAL_PATH_SPECIFIC . "config.php")) { - @touch(BAIKAL_PATH_SPECIFIC . "config.php"); + if(!file_exists(PROJECT_PATH_SPECIFIC . "config.php")) { + @touch(PROJECT_PATH_SPECIFIC . "config.php"); $sContent = "getDefaultConfig(); - file_put_contents(BAIKAL_PATH_SPECIFIC . "config.php", $sContent); + file_put_contents(PROJECT_PATH_SPECIFIC . "config.php", $sContent); } # Create empty config.system.php if needed - if(!file_exists(BAIKAL_PATH_SPECIFIC . "config.system.php")) { - @touch(BAIKAL_PATH_SPECIFIC . "config.system.php"); + if(!file_exists(PROJECT_PATH_SPECIFIC . "config.system.php")) { + @touch(PROJECT_PATH_SPECIFIC . "config.system.php"); $sContent = "getDefaultSystemConfig(); - file_put_contents(BAIKAL_PATH_SPECIFIC . "config.system.php", $sContent); + file_put_contents(PROJECT_PATH_SPECIFIC . "config.system.php", $sContent); } } @@ -138,6 +142,9 @@ define("BAIKAL_CAL_ENABLED", TRUE); # Baïkal Web Admin ON/OFF switch; default TRUE define("BAIKAL_ADMIN_ENABLED", TRUE); +# Baïkal Web Admin autolock ON/OFF switch; default TRUE +define("BAIKAL_ADMIN_AUTOLOCKENABLED", TRUE); + # Baïkal Web admin password hash; Set by Core/Scripts/adminpassword.php or via Baïkal Web Admin define("BAIKAL_ADMIN_PASSWORDHASH", ""); CODE; @@ -163,16 +170,16 @@ define("BAIKAL_STANDALONE_ALLOWED", FALSE); define("BAIKAL_STANDALONE_PORT", 8888); # PATH to SabreDAV -define("BAIKAL_PATH_SABREDAV", BAIKAL_PATH_FRAMEWORKS . "SabreDAV/lib/Sabre/"); +define("BAIKAL_PATH_SABREDAV", PROJECT_PATH_FRAMEWORKS . "SabreDAV/lib/Sabre/"); # If you change this value, you'll have to re-generate passwords for all your users define("BAIKAL_AUTH_REALM", "BaikalDAV"); # Should begin and end with a "/" -define("BAIKAL_CARD_BASEURI", BAIKAL_BASEURI . "card.php/"); +define("BAIKAL_CARD_BASEURI", PROJECT_BASEURI . "card.php/"); # Should begin and end with a "/" -define("BAIKAL_CAL_BASEURI", BAIKAL_BASEURI . "cal.php/"); +define("BAIKAL_CAL_BASEURI", PROJECT_BASEURI . "cal.php/"); CODE; $sCode = trim($sCode); return $sCode; diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/VersionUpgrade.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/VersionUpgrade.php old mode 100644 new mode 100755 index 3fe4891..e1ecb37 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/VersionUpgrade.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Install/VersionUpgrade.php @@ -36,7 +36,7 @@ class VersionUpgrade extends \Flake\Core\Controller { } public function render() { - $sBigIcon = \BaikalAdmin\Model\Install::bigicon(); + $sBigIcon = "glyph2x-magic"; $sBaikalVersion = BAIKAL_VERSION; $sBaikalConfiguredVersion = BAIKAL_CONFIGURED_VERSION; @@ -47,15 +47,6 @@ class VersionUpgrade extends \Flake\Core\Controller { HTML; -/* $sHtml .= <<What is this ? -

- This is the Baïkal Install Tool.
- It's displayed because you just installed or upgraded your Baïkal installation.
- Baïkal requires some maintenance in order to ensure everything works as expected. -

-HTML; -*/ return $sHtml; } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Login.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Login.php new file mode 100755 index 0000000..fcae27f --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Login.php @@ -0,0 +1,77 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\Controller; + +class Login extends \Flake\Core\Controller { + + public function execute() { + } + + public function render() { + $sActionUrl = \Flake\Util\Tools::getCurrentUrl(); + $sSubmittedFlagName = "auth"; + $sMessage = ""; + + if(self::isSubmitted() && !\BaikalAdmin\Core\Auth::isAuthenticated()) { + $sMessage = \Formal\Core\Message::error( + "The login/password you provided is invalid. Please retry.", + "Authentication error" + ); + } elseif(self::justLoggedOut()) { + $sMessage = \Formal\Core\Message::notice( + "You have been disconnected from your session.", + "Session ended", + FALSE + ); + } + + $sLogin = htmlspecialchars(\Flake\Util\Tools::POST("login")); + $sPassword = htmlspecialchars(\Flake\Util\Tools::POST("password")); + + if(trim($sLogin) === "") { + $sLogin = "admin"; + } + + $oView = new \BaikalAdmin\View\Login(); + $oView->setData("message", $sMessage); + $oView->setData("actionurl", $sActionUrl); + $oView->setData("submittedflagname", $sSubmittedFlagName); + $oView->setData("login", $sLogin); + $oView->setData("password", $sPassword); + + return $oView->render(); + } + + protected static function isSubmitted() { + return (intval(\Flake\Util\Tools::POST("auth")) === 1); + } + + protected static function justLoggedOut() { + $aParams = $GLOBALS["ROUTER"]::getURLParams(); + return (!empty($aParams) && $aParams[0] === "loggedout"); + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Logout.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Logout.php new file mode 100755 index 0000000..4194db6 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Logout.php @@ -0,0 +1,43 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\Controller; + +class Logout extends \Flake\Core\Controller { + + public function execute() { + \BaikalAdmin\Core\Auth::unAuthenticate(); + + $sControllerForDefaultRoute = $GLOBALS["ROUTER"]::getControllerForRoute("default"); +# debug($sControllerForDefaultRoute); +# die(); + $sLink = $GLOBALS["ROUTER"]::buildRouteForController($sControllerForDefaultRoute, "loggedout"); + \Flake\Util\Tools::redirect($sLink); + } + + public function render() { + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar.php old mode 100644 new mode 100755 index f7e031e..a8b8bd1 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar.php @@ -33,6 +33,8 @@ class Topbar extends \Flake\Core\Controller { public function render() { + $oView = new \BaikalAdmin\View\Navigation\Topbar(); + $sCurrentRoute = $GLOBALS["ROUTER"]::getCurrentRoute(); $sActiveHome = $sActiveUsers = $sActiveSettingsStandard = $sActiveSettingsSystem = ""; @@ -41,6 +43,7 @@ class Topbar extends \Flake\Core\Controller { $sUsersLink = \BaikalAdmin\Controller\Users::link(); $sSettingsStandardLink = \BaikalAdmin\Controller\Settings\Standard::link(); $sSettingsSystemLink = \BaikalAdmin\Controller\Settings\System::link(); + $sLogoutLink = \BaikalAdmin\Controller\Logout::link(); if($sCurrentRoute === "default") { $sActiveHome = "active"; @@ -61,6 +64,7 @@ class Topbar extends \Flake\Core\Controller { $sActiveSettingsSystem = "active"; } +<<<<<<< HEAD $sHtml =<< HTML; return $sHtml; +======= + $oView->setData("activehome", $sActiveHome); + $oView->setData("activeusers", $sActiveUsers); + $oView->setData("activesettingsstandard", $sActiveSettingsStandard); + $oView->setData("activesettingssystem", $sActiveSettingsSystem); + $oView->setData("homelink", $sHomeLink); + $oView->setData("userslink", $sUsersLink); + $oView->setData("settingsstandardlink", $sSettingsStandardLink); + $oView->setData("settingssystemlink", $sSettingsSystemLink); + $oView->setData("logoutlink", $sLogoutLink); + + return $oView->render(); +>>>>>>> 140b415248d6a98d9f3aa37815964b3a4456cfd6 } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar/Anonymous.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar/Anonymous.php new file mode 100755 index 0000000..842efd5 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar/Anonymous.php @@ -0,0 +1,38 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\Controller\Navigation\Topbar; + +class Anonymous extends \Flake\Core\Controller { + + public function execute() { + } + + public function render() { + $oView = new \BaikalAdmin\View\Navigation\Topbar\Anonymous(); + return $oView->render(); + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar/Install.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar/Install.php old mode 100644 new mode 100755 index 0e25499..a1306b1 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar/Install.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Navigation/Topbar/Install.php @@ -32,16 +32,7 @@ class Install extends \Flake\Core\Controller { } public function render() { - - $sHtml =<< - - -HTML; - return $sHtml; + $oView = new \BaikalAdmin\View\Navigation\Topbar\Install(); + return $oView->render(); } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/Standard.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/Standard.php old mode 100644 new mode 100755 index d9c2dbc..91701b9 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/Standard.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/Standard.php @@ -30,7 +30,7 @@ class Standard extends \Flake\Core\Controller { public function __construct() { parent::__construct(); - $this->oModel = new \Baikal\Model\Config\Standard(BAIKAL_PATH_SPECIFIC . "config.php"); + $this->oModel = new \Baikal\Model\Config\Standard(PROJECT_PATH_SPECIFIC . "config.php"); # Assert that config file is writable if(!$this->oModel->writable()) { @@ -49,6 +49,10 @@ class Standard extends \Flake\Core\Controller { } public function render() { - return $this->oForm->render(); + + $oView = new \BaikalAdmin\View\Settings\Standard(); + $oView->setData("form", $this->oForm->render()); + + return $oView->render(); } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/System.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/System.php old mode 100644 new mode 100755 index 8063a90..9841f2a --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/System.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Settings/System.php @@ -30,7 +30,7 @@ class System extends \Flake\Core\Controller { public function __construct() { parent::__construct(); - $this->oModel = new \Baikal\Model\Config\System(BAIKAL_PATH_SPECIFIC . "config.system.php"); + $this->oModel = new \Baikal\Model\Config\System(PROJECT_PATH_SPECIFIC . "config.system.php"); # Assert that config file is writable if(!$this->oModel->writable()) { @@ -49,11 +49,16 @@ class System extends \Flake\Core\Controller { } public function render() { - $sMessage = \Formal\Core\Message::notice( + + $oView = new \BaikalAdmin\View\Settings\System(); + $oView->setData("message", \Formal\Core\Message::notice( "Do not change anything on this page unless you really know what you are doing.
You might break Baïkal if you misconfigure something here.", "Warning !", FALSE - ); - return $sMessage . $this->oForm->render(); + )); + + $oView->setData("form", $this->oForm->render()); + + return $oView->render(); } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/AddressBooks.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/AddressBooks.php old mode 100644 new mode 100755 index f3dc1d0..55fe2c4 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/AddressBooks.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/AddressBooks.php @@ -118,29 +118,28 @@ class AddressBooks extends \Flake\Core\Controller { public function render() { - $sHtml = ""; + $oView = new \BaikalAdmin\View\User\AddressBooks(); - # Render list of users - $oAddressBooks = $this->oUser->getAddressBooksBaseRequester()->execute(); - - $oView = new \BaikalAdmin\View\AddressBooks\Listing(); + # User $oView->setData("user", $this->oUser); - $oView->setData("addressbooks", $oAddressBooks); - $sHtml .= $oView->render(); - # Render form - $sHtml .= ""; + # Render list of address books + $oAddressBooks = $this->oUser->getAddressBooksBaseRequester()->execute(); + $oView->setData("addressbooks", $oAddressBooks); + + # Messages $sMessages = implode("\n", $this->aMessages); + $oView->setData("messages", $sMessages); if(self::newRequested() || self::editRequested()) { - # We have to display the User form - $sHtml .= $this->oForm->render(); + $sForm = $this->oForm->render(); } else { - # No form is displayed; simply display messages, if any - $sHtml .= $sMessages; + $sForm = ""; } + + $oView->setData("form", $sForm); - return $sHtml; + return $oView->render(); } protected function initForm() { diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/Calendars.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/Calendars.php old mode 100644 new mode 100755 index ca06df1..6a9ae52 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/Calendars.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/User/Calendars.php @@ -123,29 +123,28 @@ class Calendars extends \Flake\Core\Controller { public function render() { - $sHtml = ""; + $oView = new \BaikalAdmin\View\User\Calendars(); - # Render list of users - $oCalendars = $this->oUser->getCalendarsBaseRequester()->execute(); - - $oView = new \BaikalAdmin\View\Calendars\Listing(); + # User $oView->setData("user", $this->oUser); - $oView->setData("calendars", $oCalendars); - $sHtml .= $oView->render(); - # Render form - $sHtml .= ""; + # List of calendars + $oCalendars = $this->oUser->getCalendarsBaseRequester()->execute(); + $oView->setData("calendars", $oCalendars); + + # Messages $sMessages = implode("\n", $this->aMessages); + $oView->setData("messages", $sMessages); if(self::newRequested() || self::editRequested()) { - # We have to display the User form - $sHtml .= $this->oForm->render(); + $sForm = $this->oForm->render(); } else { - # No form is displayed; simply display messages, if any - $sHtml .= $sMessages; + $sForm = ""; } + + $oView->setData("form", $sForm); - return $sHtml; + return $oView->render(); } protected function initForm() { diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Users.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Users.php old mode 100644 new mode 100755 index 74e5c5b..68c3dfe --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Users.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Controller/Users.php @@ -98,28 +98,27 @@ class Users extends \Flake\Core\Controller { } public function render() { - $sHtml = ""; - # Render list of users + $oView = new \BaikalAdmin\View\Users(); + + # List of users $oUsers = \Baikal\Model\User::getBaseRequester()->execute(); - $oView = new \BaikalAdmin\View\Users\Listing(); $oView->setData("users", $oUsers); - $sHtml .= $oView->render(); - - # Render form - $sHtml .= ""; + # Messages $sMessages = implode("\n", $this->aMessages); - + $oView->setData("messages", $sMessages); + + # Form if(self::newRequested() || self::editRequested()) { - # We have to display the User form - $sHtml .= $this->oForm->render(); + $sForm = $this->oForm->render(); } else { - # No form is displayed; simply display messages, if any - $sHtml .= $sMessages; + $sForm = ""; } - return $sHtml; + $oView->setData("form", $sForm); + + return $oView->render(); } protected function initForm() { diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Auth.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Auth.php old mode 100644 new mode 100755 index 7f52b15..d7af35b --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Auth.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Auth.php @@ -27,7 +27,7 @@ namespace BaikalAdmin\Core; class Auth { - static function assertEnabled() { + public static function assertEnabled() { if(!defined("BAIKAL_ADMIN_ENABLED") || BAIKAL_ADMIN_ENABLED !== TRUE) { die("

Baïkal Admin is disabled.

To enable it, set BAIKAL_ADMIN_ENABLED to TRUE in Specific/config.php"); } @@ -35,7 +35,11 @@ class Auth { self::assertUnlocked(); } - static function assertUnlocked() { + public static function assertUnlocked() { + + if(defined("BAIKAL_ADMIN_AUTOLOCKENABLED") && BAIKAL_ADMIN_AUTOLOCKENABLED === FALSE) { + return TRUE; + } if(defined("BAIKAL_CONTEXT_INSTALL") && BAIKAL_CONTEXT_INSTALL === TRUE) { $sToolName = "Baïkal Install Tool"; @@ -44,7 +48,7 @@ class Auth { } $bLocked = TRUE; - $sEnableFile = BAIKAL_PATH_SPECIFIC . "ENABLE_ADMIN"; + $sEnableFile = PROJECT_PATH_SPECIFIC . "ENABLE_ADMIN"; if(file_exists($sEnableFile)) { clearstatcache(); @@ -68,41 +72,40 @@ class Auth { die("

" . $sToolName . " is locked.

To unlock it, create an empty file named ENABLE_ADMIN in Specific/"); } } - - static function assertAuthentified() { - if(!self::isAuthentified()) { - header(utf8_decode('WWW-Authenticate: Basic realm="Baïkal admin"')); - header('HTTP/1.0 401 Unauthorized'); - die("Please authenticate."); + + public static function isAuthenticated() { + if(isset($_SESSION["baikaladminauth"]) && $_SESSION["baikaladminauth"] === md5(BAIKAL_ADMIN_PASSWORDHASH)) { + return TRUE; } - - return TRUE; + + return FALSE; } - - static function isAuthentified() { - - if(array_key_exists("PHP_AUTH_USER", $_SERVER)) { - $sUser = $_SERVER["PHP_AUTH_USER"]; - } else { - $sUser = FALSE; + + public static function authenticate() { + + if(intval(\Flake\Util\Tools::POST("auth")) !== 1) { + return FALSE; } - - if(array_key_exists("PHP_AUTH_PW", $_SERVER)) { - $sPass = $_SERVER["PHP_AUTH_PW"]; - } else { - $sPass = FALSE; - } - + + $sUser = \Flake\Util\Tools::POST("login"); + $sPass = \Flake\Util\Tools::POST("password"); + $sPassHash = self::hashAdminPassword($sPass); - + if($sUser === "admin" && $sPassHash === BAIKAL_ADMIN_PASSWORDHASH) { + $_SESSION["baikaladminauth"] = md5(BAIKAL_ADMIN_PASSWORDHASH); return TRUE; } return FALSE; + + } + + public static function unAuthenticate() { + unset($_SESSION["baikaladminauth"]); } - static function hashAdminPassword($sPassword) { + public static function hashAdminPassword($sPassword) { return md5('admin:' . BAIKAL_AUTH_REALM . ':' . $sPassword); } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Bootstrap.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Bootstrap.php deleted file mode 100644 index a544041..0000000 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/Bootstrap.php +++ /dev/null @@ -1,44 +0,0 @@ - -* All rights reserved -* -* http://baikal.codr.fr -* -* This script is part of the Baïkal Server project. The Baïkal -* Server project 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. -* -* The GNU General Public License can be found at -* http://www.gnu.org/copyleft/gpl.html. -* -* This script 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. -* -* This copyright notice MUST APPEAR in all copies of the script! -***************************************************************/ - -define("BAIKALADMIN_PATH_ROOT", dirname(dirname(__FILE__)) . "/"); - -# Bootstrap Baïkal Core -require_once(dirname(dirname(dirname(__FILE__))) . "/Baikal/Core/Bootstrap.php"); # ../../, symlink-safe - -# Bootstrap Formal -require_once(dirname(dirname(dirname(__FILE__))) . "/Formal/Core/Bootstrap.php"); - -# Registering BaikalAdmin classloader -require_once(dirname(__FILE__) . '/ClassLoader.php'); -\BaikalAdmin\Core\ClassLoader::register(); - -# Relative to BAIKAL_URI; so that BAIKAL_URI . BAIKALADMIN_URIPATH corresponds to the full URL to Baïkal admin -define("BAIKALADMIN_URIPATH", "admin/"); -$GLOBALS["ROUTER"]::setURIPath(BAIKALADMIN_URIPATH); - -# Include BaikalAdmin Framework config -require_once(BAIKALADMIN_PATH_ROOT . "config.php"); \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/ClassLoader.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/ClassLoader.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/View.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Core/View.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Framework.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Framework.php new file mode 100755 index 0000000..419ddb5 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Framework.php @@ -0,0 +1,46 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin; + +class Framework extends \Flake\Core\Framework { + + public static function bootstrap() { + define("BAIKALADMIN_PATH_ROOT", PROJECT_PATH_ROOT . "Core/Frameworks/BaikalAdmin/"); # ./ + + \Baikal\Framework::bootstrap(); + \Formal\Framework::bootstrap(); + + # Registering BaikalAdmin classloader + require_once(BAIKALADMIN_PATH_ROOT . '/Core/ClassLoader.php'); + \BaikalAdmin\Core\ClassLoader::register(); + + $GLOBALS["ROUTER"]::setURIPath("admin/"); + + # Include BaikalAdmin Framework config + require_once(BAIKALADMIN_PATH_ROOT . "config.php"); + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Model/Install.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Model/Install.php deleted file mode 100644 index 61429b3..0000000 --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Model/Install.php +++ /dev/null @@ -1,75 +0,0 @@ - -* All rights reserved -* -* http://baikal.codr.fr -* -* This script is part of the Baïkal Server project. The Baïkal -* Server project 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. -* -* The GNU General Public License can be found at -* http://www.gnu.org/copyleft/gpl.html. -* -* This script 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. -* -* This copyright notice MUST APPEAR in all copies of the script! -***************************************************************/ - -namespace BaikalAdmin\Model; - -class Install extends \Flake\Core\Model\NoDb { - - protected $aData = array( - "test" => "", - ); - - public function persist() { - } - - public function destroy() { - } - - public function floating() { - return FALSE; - } - - public function formMorphologyForThisModelInstance() { - $oMorpho = new \Formal\Form\Morphology(); - - $oMorpho->add(new \Formal\Element\Text(array( - "prop" => "test", - "label" => "Test" - ))); - - return $oMorpho; - } - - public static function icon() { - return "icon-cog"; - } - - public static function mediumicon() { - return "glyph-magic"; - } - - public static function bigicon() { - return "glyph2x-magic"; - } - - public function label() { - return "Baïkal"; - } - - public static function humanName() { - return "Parameters"; - } -} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyph-dark.png b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyph-dark.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyph2x-dark.png b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyph2x-dark.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyphpro-2x.css b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyphpro-2x.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyphpro.css b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/glyphpro.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/test-glyphpro2x.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/GlyphiconsPro/test-glyphpro2x.html old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Strings/EN/Exceptions.json b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Strings/EN/Exceptions.json new file mode 100755 index 0000000..4eb7c3f --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Strings/EN/Exceptions.json @@ -0,0 +1,3 @@ +{ + +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Dashboard.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Dashboard.html new file mode 100755 index 0000000..e7f3e1b --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Dashboard.html @@ -0,0 +1,111 @@ +
+

Dashboard

+
+ +
+ +
+
+

Version

+

This systems runs Baïkal

+
+
+

Services

+ + + + + + + + + + + + + + + + +
Web adminOn

CalDAV
CardDAV
+
+
+

License and credits

+ +

Baïkal is open source software, and released under the terms of the GNU GPL v3.

+

Baïkal is developped by Jérôme Schneider. You can contact him at mail@jeromeschneider.fr.

+

Baïkal is based upon other open source projects. Read the README.md file to learn about that.

+

+
+
+
+ +
+ +
+
+

Users

+ + + + + + + +
Registered users
+
+
+

CalDAV

+ + + + + + + + + + + +
Number of calendars
Number of events
+
+
+

CardDAV

+ + + + + + + + + + + +
Number of address books
Number of contacts
+
+
+
\ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Install/Initialize.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Install/Initialize.html new file mode 100755 index 0000000..0ee9cb9 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Install/Initialize.html @@ -0,0 +1,8 @@ +
+

Baïkal initialization wizard

+

Configure your new Baïkal installation.

+
+ + + + \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Login.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Login.html new file mode 100755 index 0000000..f6e4d54 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Login.html @@ -0,0 +1,25 @@ +
+

Authentication

+

Please authenticate to access Baïkal Web Admin.

+
+ + + +
+ +
+

+ + +

+ +

+ + +

+ +
+ +
+
+
\ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Navigation/Topbar.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Navigation/Topbar.html new file mode 100755 index 0000000..7f8173f --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Navigation/Topbar.html @@ -0,0 +1,21 @@ + diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Navigation/Topbar/Anonymous.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Navigation/Topbar/Anonymous.html new file mode 100755 index 0000000..db737e0 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Navigation/Topbar/Anonymous.html @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Navigation/Topbar/Install.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Navigation/Topbar/Install.html new file mode 100755 index 0000000..0b09bdb --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Navigation/Topbar/Install.html @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/index.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/index.html old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/page-bg-light.png b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/page-bg-light.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/page-bg.png b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/page-bg.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/style.css b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Page/style.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Settings/Standard.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Settings/Standard.html new file mode 100755 index 0000000..d2e6b31 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Settings/Standard.html @@ -0,0 +1,5 @@ +
+

Baïkal settings

+
+ + \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Settings/System.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Settings/System.html new file mode 100755 index 0000000..bc3deac --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Settings/System.html @@ -0,0 +1,6 @@ +
+

Baïkal system settings

+
+ + + \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/AddressBooks/Listing.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/User/AddressBooks.html old mode 100644 new mode 100755 similarity index 96% rename from CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/AddressBooks/Listing.html rename to CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/User/AddressBooks.html index d346217..aac3d9b --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/AddressBooks/Listing.html +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/User/AddressBooks.html @@ -33,4 +33,8 @@ - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Calendars/Listing.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/User/Calendars.html old mode 100644 new mode 100755 similarity index 96% rename from CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Calendars/Listing.html rename to CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/User/Calendars.html index a8603bb..b5005de --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Calendars/Listing.html +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/User/Calendars.html @@ -33,4 +33,8 @@ - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Users/Listing.html b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Users.html old mode 100644 new mode 100755 similarity index 96% rename from CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Users/Listing.html rename to CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Users.html index e62e666..e3f339f --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Users/Listing.html +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Resources/Templates/Users.html @@ -31,4 +31,8 @@ - \ No newline at end of file + + + + + \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Dashboard.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Dashboard.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Install.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Install.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Logout.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Logout.php new file mode 100755 index 0000000..1aae473 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Logout.php @@ -0,0 +1,34 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\Route; + +class Logout { + + public static function execute(\Flake\Core\Render\Container &$oRenderContainer) { + $oRenderContainer->zone("Payload")->addBlock(new \BaikalAdmin\Controller\Logout()); + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Settings/Standard.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Settings/Standard.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Settings/System.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Settings/System.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/User/AddressBooks.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/User/AddressBooks.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/User/Calendars.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/User/Calendars.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Users.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/Route/Users.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Users/Listing.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Dashboard.php old mode 100644 new mode 100755 similarity index 92% rename from CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Users/Listing.php rename to CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Dashboard.php index 435ea33..790bbbb --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Users/Listing.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Dashboard.php @@ -24,7 +24,8 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -namespace BaikalAdmin\View\Users; +namespace BaikalAdmin\View; -class Listing extends \BaikalAdmin\Core\View { +class Dashboard extends \BaikalAdmin\Core\View { + } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/AddressBooks/Listing.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Install/Initialize.php old mode 100644 new mode 100755 similarity index 91% rename from CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/AddressBooks/Listing.php rename to CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Install/Initialize.php index efb2f80..9085cdb --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/AddressBooks/Listing.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Install/Initialize.php @@ -24,7 +24,7 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -namespace BaikalAdmin\View\AddressBooks; +namespace BaikalAdmin\View\Install; -class Listing extends \BaikalAdmin\Core\View { +class Initialize extends \BaikalAdmin\Core\View { } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Calendars/Listing.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Login.php old mode 100644 new mode 100755 similarity index 92% rename from CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Calendars/Listing.php rename to CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Login.php index d05064d..9e9b01a --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Calendars/Listing.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Login.php @@ -24,7 +24,8 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -namespace BaikalAdmin\View\Calendars; +namespace BaikalAdmin\View; -class Listing extends \BaikalAdmin\Core\View { +class Login extends \BaikalAdmin\Core\View { + } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Core/Bootstrap.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Navigation/Topbar.php old mode 100644 new mode 100755 similarity index 83% rename from CoreVersions/0.2.0/Frameworks/Formal/Core/Bootstrap.php rename to CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Navigation/Topbar.php index ed02d22..6efbc2d --- a/CoreVersions/0.2.0/Frameworks/Formal/Core/Bootstrap.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Navigation/Topbar.php @@ -24,8 +24,8 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -define("FORMAL_PATH_ROOT", dirname(dirname(__FILE__)) . "/"); +namespace BaikalAdmin\View\Navigation; -# Registering BaikalAdmin classloader -require_once(dirname(__FILE__) . '/ClassLoader.php'); -\Formal\Core\ClassLoader::register(); \ No newline at end of file +class Topbar extends \BaikalAdmin\Core\View { + +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Navigation/Topbar/Anonymous.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Navigation/Topbar/Anonymous.php new file mode 100755 index 0000000..a4c6a6e --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Navigation/Topbar/Anonymous.php @@ -0,0 +1,31 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\View\Navigation\Topbar; + +class Anonymous extends \BaikalAdmin\Core\View { + +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Navigation/Topbar/Install.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Navigation/Topbar/Install.php new file mode 100755 index 0000000..5d6fab0 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Navigation/Topbar/Install.php @@ -0,0 +1,31 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\View\Navigation\Topbar; + +class Install extends \BaikalAdmin\Core\View { + +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Settings/Standard.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Settings/Standard.php new file mode 100755 index 0000000..cdfb506 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Settings/Standard.php @@ -0,0 +1,31 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\View\Settings; + +class Standard extends \BaikalAdmin\Core\View { + +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Settings/System.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Settings/System.php new file mode 100755 index 0000000..118a819 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Settings/System.php @@ -0,0 +1,31 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\View\Settings; + +class System extends \BaikalAdmin\Core\View { + +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/User/AddressBooks.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/User/AddressBooks.php new file mode 100755 index 0000000..2d0e28f --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/User/AddressBooks.php @@ -0,0 +1,30 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\View\User; + +class AddressBooks extends \BaikalAdmin\Core\View { +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/User/Calendars.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/User/Calendars.php new file mode 100755 index 0000000..341739c --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/User/Calendars.php @@ -0,0 +1,30 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\View\User; + +class Calendars extends \BaikalAdmin\Core\View { +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Users.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Users.php new file mode 100755 index 0000000..59ad5f3 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/View/Users.php @@ -0,0 +1,30 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace BaikalAdmin\View; + +class Users extends \BaikalAdmin\Core\View { +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/index.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/index.php old mode 100644 new mode 100755 index 9e2e0e0..82388bb --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/index.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/index.php @@ -26,28 +26,42 @@ ini_set("display_errors", 1); error_reporting(E_ALL); -define("BAIKAL_CONTEXT_BASEURI", "/admin/"); define("BAIKAL_CONTEXT", TRUE); define("BAIKAL_CONTEXT_ADMIN", TRUE); +define("PROJECT_CONTEXT_BASEURI", "/admin/"); +define("PROJECT_PATH_ROOT", dirname(dirname(getcwd())) . "/"); #../../ + +# Bootstraping Flake +require_once(PROJECT_PATH_ROOT . "Core/Frameworks/Flake/Framework.php"); # ../../ +\Flake\Framework::bootstrap(); # Bootstrap BaikalAdmin -require_once(dirname(dirname(__FILE__)) . "/Core/Bootstrap.php"); # ../ +\BaikalAdmin\Framework::bootstrap(); -# Evaluate assertions +# Assert that BaikalAdmin is enabled \BaikalAdmin\Core\Auth::assertEnabled(); -\BaikalAdmin\Core\Auth::assertAuthentified(); # Create and setup a page object $oPage = new \Flake\Controller\Page(BAIKALADMIN_PATH_TEMPLATES . "Page/index.html"); $oPage->injectHTTPHeaders(); + $oPage->setTitle("Baïkal " . BAIKAL_VERSION . " Web Admin"); -$oPage->setBaseUrl(BAIKAL_URI); +$oPage->setBaseUrl(PROJECT_URI); -$oPage->zone("navbar")->addBlock(new \BaikalAdmin\Controller\Navigation\Topbar()); +# Authentication +if( + \BaikalAdmin\Core\Auth::isAuthenticated() === FALSE && + \BaikalAdmin\Core\Auth::authenticate() === FALSE +) { + $oPage->zone("navbar")->addBlock(new \BaikalAdmin\Controller\Navigation\Topbar\Anonymous()); + $oPage->zone("Payload")->addBlock(new \BaikalAdmin\Controller\Login()); +} else { + $oPage->zone("navbar")->addBlock(new \BaikalAdmin\Controller\Navigation\Topbar()); -# Route the request -$GLOBALS["ROUTER"]::route($oPage); + # Route the request + $GLOBALS["ROUTER"]::route($oPage); +} # Render the page -echo $oPage->render(); \ No newline at end of file +echo $oPage->render(); diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/install/index.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/install/index.php old mode 100644 new mode 100755 index 21c5f60..743921d --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/install/index.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/WWWRoot/install/index.php @@ -26,13 +26,19 @@ ini_set("display_errors", 1); error_reporting(E_ALL); -define("BAIKAL_CONTEXT_BASEURI", "/admin/install/"); define("BAIKAL_CONTEXT", TRUE); define("BAIKAL_CONTEXT_INSTALL", TRUE); +define("PROJECT_CONTEXT_BASEURI", "/admin/install/"); +define("PROJECT_PATH_ROOT", dirname(dirname(dirname(getcwd()))) . "/"); # ../../../ + +# Bootstraping Flake +require_once(PROJECT_PATH_ROOT . "Core/Frameworks/Flake/Framework.php"); +\Flake\Framework::bootstrap(); + # Bootstrap BaikalAdmin -require_once(dirname(dirname(dirname(__FILE__))) . "/Core/Bootstrap.php"); # ../../ +\BaikalAdmin\Framework::bootstrap(); # Evaluate assertions \BaikalAdmin\Core\Auth::assertUnlocked(); @@ -41,7 +47,7 @@ require_once(dirname(dirname(dirname(__FILE__))) . "/Core/Bootstrap.php"); # ../ $oPage = new \Flake\Controller\Page(BAIKALADMIN_PATH_TEMPLATES . "Page/index.html"); $oPage->injectHTTPHeaders(); $oPage->setTitle("Baïkal Maintainance"); -$oPage->setBaseUrl(BAIKAL_URI); +$oPage->setBaseUrl(PROJECT_URI); $oPage->zone("navbar")->addBlock(new \BaikalAdmin\Controller\Navigation\Topbar\Install()); @@ -51,15 +57,11 @@ if(!defined("BAIKAL_CONFIGURED_VERSION")) { } elseif(!defined("BAIKAL_ADMIN_PASSWORDHASH")) { # we have to set an admin password - $oPage->zone("Payload")->addBlock(new \BaikalAdmin\Controller\Install\AdminPassword()); - + $oPage->zone("Payload")->addBlock(new \BaikalAdmin\Controller\Install\Initialize()); } else { # we have to initialize Baïkal (new installation) $oPage->zone("Payload")->addBlock(new \BaikalAdmin\Controller\Install\VersionUpgrade()); } -# Route the request -//$GLOBALS["ROUTER"]::route($oPage); - # Render the page echo $oPage->render(); \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/config.php b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/config.php old mode 100644 new mode 100755 index 248ad8a..0e390ce --- a/CoreVersions/0.2.0/Frameworks/BaikalAdmin/config.php +++ b/CoreVersions/0.2.0/Frameworks/BaikalAdmin/config.php @@ -33,5 +33,6 @@ $GLOBALS["ROUTES"] = array( "users/addressbooks" => "\BaikalAdmin\Route\User\AddressBooks", "install" => "\BaikalAdmin\Route\Install", "settings/standard" => "\BaikalAdmin\Route\Settings\Standard", - "settings/system" => "\BaikalAdmin\Route\Settings\System" + "settings/system" => "\BaikalAdmin\Route\Settings\System", + "logout" => "\BaikalAdmin\Route\Logout" ); \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/Bootstrap.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/Bootstrap.php deleted file mode 100755 index 9f12d54..0000000 --- a/CoreVersions/0.2.0/Frameworks/Flake/Core/Bootstrap.php +++ /dev/null @@ -1,89 +0,0 @@ - -* All rights reserved -* -* http://baikal.codr.fr -* -* This script is part of the Baïkal Server project. The Baïkal -* Server project 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. -* -* The GNU General Public License can be found at -* http://www.gnu.org/copyleft/gpl.html. -* -* This script 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. -* -* This copyright notice MUST APPEAR in all copies of the script! -***************************************************************/ - -if(!defined('LF')) { - define('LF', chr(10)); -} - -if(!defined('CR')) { - define('CR', chr(13)); -} - -if(array_key_exists("SERVER_NAME", $_SERVER) && $_SERVER["SERVER_NAME"] === "mongoose") { - define("MONGOOSE_SERVER", TRUE); -} else { - define("MONGOOSE_SERVER", FALSE); -} - -define("FLAKE_PATH_ROOT", dirname(dirname(__FILE__)) . "/"); # ../ - -# Display errors messages, except notices -#ini_set("display_errors", 1); -#ini_set("error_reporting", E_ALL & ~E_NOTICE); - -if(!function_exists("appendSlash")) { - function appendSlash($sPath) { - if($sPath{strlen($sPath) - 1} !== "/") { - $sPath .= "/"; - } - - return $sPath; - } -} - -if(!function_exists("debug")) { - function debug($mVar, $sHeader=0) { - \Flake\Util\Tools::debug($mVar, $sHeader); - } -} - -require_once(FLAKE_PATH_ROOT . 'Core/ClassLoader.php'); -\Flake\Core\ClassLoader::register(); - -# Include Flake Framework config -require_once(FLAKE_PATH_ROOT . "config.php"); - -# Determine Router class -$GLOBALS["ROUTER"] = \Flake\Util\Tools::router(); - -if(!\Flake\Util\Tools::isCliPhp()) { - ini_set("html_errors", TRUE); - session_start(); -} - -setlocale(LC_ALL, FLAKE_LOCALE); -date_default_timezone_set(FLAKE_TIMEZONE); - -if(defined("FLAKE_DB_FILEPATH") && file_exists(FLAKE_DB_FILEPATH) && is_readable(FLAKE_DB_FILEPATH) && !isset($GLOBALS["DB"])) { - $GLOBALS["DB"] = new \Flake\Core\Database\Sqlite(FLAKE_DB_FILEPATH); -} - -$GLOBALS["TEMPLATESTACK"] = array(); - -$aUrlInfo = parse_url(FLAKE_URI); -define("FLAKE_DOMAIN", $_SERVER["HTTP_HOST"]); -define("FLAKE_URIPATH", \Flake\Util\Tools::stripBeginSlash($aUrlInfo["path"])); -unset($aUrlInfo); \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/ClassLoader.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/ClassLoader.php index 12d70b9..55a5b30 100755 --- a/CoreVersions/0.2.0/Frameworks/Flake/Core/ClassLoader.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Core/ClassLoader.php @@ -34,34 +34,50 @@ class ClassLoader { public static function loadClass($sFullClassName) { + $sClassPath = FALSE; + $aParts = explode("\\", $sFullClassName); if(count($aParts) === 1) { return; } - if($aParts[0] !== "Flake" && $aParts[0] !== "Specific" && $aParts[0] !== "Frameworks") { + # Extracting the Radical + $sRadical = $aParts[0]; + + if(in_array($sRadical, array("Flake", "Specific", "Frameworks"))) { + + if($sRadical === "Flake") { + $sRootPath = FLAKE_PATH_ROOT; + } elseif($sRadical === "Specific") { + $sRootPath = FLAKE_PATH_SPECIFIC; + } else { + $sRootPath = PROJECT_PATH_FRAMEWORKS; + } + + # Stripping radical + array_shift($aParts); + + # Classname is the last part + $sClassName = array_pop($aParts); + + # Path to class + $sClassPath = $sRootPath . implode("/", $aParts) . "/" . $sClassName . ".php"; + + } elseif(count($aParts) > 1) { + if($aParts[1] === "Framework") { + # It must be a Flake Framework + $sClassPath = PROJECT_PATH_FRAMEWORKS . $sRadical . "/Framework.php"; + } + } + + if($sClassPath === FALSE) { return; } - - // ejecting the Radical - $sRadical = array_shift($aParts); - - if($sRadical === "Flake") { - $sRootPath = FLAKE_PATH_ROOT; - } elseif($sRadical === "Specific") { - $sRootPath = FLAKE_PATH_SPECIFIC; # When prefix does not point another namespaced framework, we use "Specific" - } elseif($sRadical === "Frameworks") { - $sRootPath = FLAKE_PATH_FRAMEWORKS; - } - - $sClassName = array_pop($aParts); - $sBasePath = $sRootPath . implode("/", $aParts) . "/"; - $sClassPath = $sBasePath . $sClassName . ".php"; if(file_exists($sClassPath) && is_readable($sClassPath)) { require_once($sClassPath); } else { - echo '

PHP Autoload Error. Cannot find ' . $sFullClassName . '

'; + echo '

PHP Autoload Error. Cannot find ' . $sFullClassName . ' in ' . $sClassPath . '

'; echo "
" . print_r(debug_backtrace(), TRUE) . "
"; die(); } diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/DocumentedException.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/DocumentedException.php new file mode 100755 index 0000000..ff86525 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/Flake/Core/DocumentedException.php @@ -0,0 +1,83 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace Flake\Core; + +class DocumentedException extends \Exception { + + protected $aMarkers = array(); + + # Redefine the exception signature + public function __construct($message, $aMarkers = array()) { + $this->aMarkers = $aMarkers; + parent::__construct($message, 0, null); + } + + # custom string representation of object + public function __toString() { + $aDoc = $this->getDocumentation(); + \Flake\Util\Tools::debug($aDoc); + return "" . htmlspecialchars($this->message) . ""; + } + + protected function getSoftrefPath() { + $sSoftRef = $this->getMessage(); + $aTrace = $this->getTrace(); + + if($sSoftRef{0} === "\\") { + # An absolute softref has been given + return $sSoftRef; + } + + if(isset($aTrace[0]["class"])) { + return "\\" . $aTrace[0]["class"] . "#" . $sSoftRef; + } + + return $sSoftRef; + } + + protected function getDocumentation() { + # Determine the documentation softref + $sSoftRefPath = $this->getSoftrefPath(); + return $sSoftRefPath; + + /* + $aParts = explode("#", \Flake\Util\Tools::trimStrings($sSoftRefPath, "\\")); + + $aSegments = explode("\\", $aParts[0]); + $sKey = $aParts[1]; + + # Is it a Framework ? + if(\Flake\Util\Frameworks::isAFramework($aSegments[0])) { + $sPath = \Flake\Util\Frameworks::getPath($aSegments[0]); + die($sPath); + } + + debug($aParts); + return $sSoftRefPath; + */ + } +} diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/Framework.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/Framework.php new file mode 100755 index 0000000..c14b0af --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/Flake/Core/Framework.php @@ -0,0 +1,31 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace Flake\Core; + +class Framework { + +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester.php old mode 100644 new mode 100755 index a4416cb..7cdeb5c --- a/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester.php @@ -45,4 +45,5 @@ abstract class Requester extends \Flake\Core\FLObject { } public abstract function execute(); + public abstract function count(); } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester/Sql.php b/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester/Sql.php index 769f95c..e332547 100755 --- a/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester/Sql.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Core/Requester/Sql.php @@ -170,7 +170,7 @@ class Sql extends \Flake\Core\FLObject { return $this->bHasBeenExecuted; } - public function getQuery() { + public function getQuery($sFields = "*") { $sWhere = "1=1"; $sOrderBy = ""; $sLimit = ""; @@ -194,7 +194,7 @@ class Sql extends \Flake\Core\FLObject { } return $GLOBALS["DB"]->SELECTquery( - "*", + $sFields, $this->sDataTable, $sWhere, "", @@ -202,6 +202,10 @@ class Sql extends \Flake\Core\FLObject { $sLimit ); } + + public function getCountQuery() { + return $this->getQuery("count(*) as nbitems"); + } public function execute() { $oCollection = new \Flake\Core\CollectionTyped($this->sModelClass); @@ -218,4 +222,15 @@ class Sql extends \Flake\Core\FLObject { return $oCollection; } + + public function count() { + $sSql = $this->getCountQuery(); + + $rSql = $GLOBALS["DB"]->query($sSql); + if(($aRs = $rSql->fetch()) !== FALSE) { + return intval($aRs["nbitems"]); + } + + return 0; + } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Framework.php b/CoreVersions/0.2.0/Frameworks/Flake/Framework.php new file mode 100755 index 0000000..87a2d34 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/Flake/Framework.php @@ -0,0 +1,155 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace Flake; +require_once(PROJECT_PATH_ROOT . "Core/Frameworks/Flake/Core/Framework.php"); # Manual require as Classloader not included yet + + +if(!function_exists("debug")) { + function debug($mVar, $sHeader=0) { + \Flake\Util\Tools::debug($mVar, $sHeader); + } +} + +class Framework extends \Flake\Core\Framework { + + function rmBeginSlash($sString) { + if(substr($sString, 0, 1) === "/") { + $sString = substr($sString, 1); + } + + return $sString; + } + + function rmEndSlash($sString) { + if(substr($sString, -1) === "/") { + $sString = substr($sString, 0, -1); + } + + return $sString; + } + + function appendSlash($sString) { + if(substr($sString, -1) !== "/") { + $sString .= "/"; + } + + return $sString; + } + + function prependSlash($sString) { + if(substr($sString, 0, 1) !== "/") { + $sString = "/" . $sString; + } + + return $sString; + } + + public static function bootstrap() { + # Asserting PHP 5.3.0+ + if(version_compare(PHP_VERSION, '5.3.0', '<')) { + die('Flake Fatal Error: Flake requires PHP 5.3.0+ to run properly. Your version is: ' . PHP_VERSION . '.'); + } + + # Define absolute server path to Flake Framework + define("FLAKE_PATH_ROOT", PROJECT_PATH_ROOT . "Core/Frameworks/Flake/"); # ./ + + if(!defined('LF')) { + define('LF', chr(10)); + } + + if(!defined('CR')) { + define('CR', chr(13)); + } + + if(array_key_exists("SERVER_NAME", $_SERVER) && $_SERVER["SERVER_NAME"] === "mongoose") { + define("MONGOOSE_SERVER", TRUE); + } else { + define("MONGOOSE_SERVER", FALSE); + } + + # Display errors messages, except notices + #ini_set("display_errors", 1); + #ini_set("error_reporting", E_ALL & ~E_NOTICE); + + ################################################################################################# + + # determine Flake install root path + # not using realpath here to avoid symlinks resolution + + define("PROJECT_PATH_CORE", PROJECT_PATH_ROOT . "Core/"); + define("PROJECT_PATH_SPECIFIC", PROJECT_PATH_ROOT . "Specific/"); + define("PROJECT_PATH_FRAMEWORKS", PROJECT_PATH_CORE . "Frameworks/"); + define("PROJECT_PATH_WWWROOT", PROJECT_PATH_CORE . "WWWRoot/"); + + # Define path to Baïkal SQLite file + define("PROJECT_SQLITE_FILE", PROJECT_PATH_SPECIFIC . "db/baikal.sqlite"); + + define("PROJECT_SAFEHASH_SALT", "une-clef-super-secrete"); + + require_once(PROJECT_PATH_CORE . "Distrib.php"); + + # Determine PROJECT_URI + $sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen($_SERVER["DOCUMENT_ROOT"])); + $sDirName = self::appendSlash(dirname($sScript)); + $sBaseUrl = self::appendSlash(substr($sDirName, 0, -1 * strlen(PROJECT_CONTEXT_BASEURI))); + $aParts = explode("/", $_SERVER["SERVER_PROTOCOL"]); + $sProtocol = strtolower(array_shift($aParts)); + define("PROJECT_BASEURI", $sBaseUrl); + define("PROJECT_URI", $sProtocol . "://" . self::rmEndSlash($_SERVER["HTTP_HOST"]) . $sBaseUrl); + unset($sScript); unset($sDirName); unset($sBaseUrl); unset($sProtocol); unset($aParts); + + ################################################################################################# + + require_once(FLAKE_PATH_ROOT . 'Core/ClassLoader.php'); + \Flake\Core\ClassLoader::register(); + + # Include Flake Framework config + require_once(FLAKE_PATH_ROOT . "config.php"); + + # Determine Router class + $GLOBALS["ROUTER"] = \Flake\Util\Tools::router(); + + if(!\Flake\Util\Tools::isCliPhp()) { + ini_set("html_errors", TRUE); + session_start(); + } + + setlocale(LC_ALL, FLAKE_LOCALE); + date_default_timezone_set(FLAKE_TIMEZONE); + + if(defined("PROJECT_SQLITE_FILE") && file_exists(PROJECT_SQLITE_FILE) && is_readable(PROJECT_SQLITE_FILE) && !isset($GLOBALS["DB"])) { + $GLOBALS["DB"] = new \Flake\Core\Database\Sqlite(PROJECT_SQLITE_FILE); + } + + $GLOBALS["TEMPLATESTACK"] = array(); + + $aUrlInfo = parse_url(PROJECT_URI); + define("FLAKE_DOMAIN", $_SERVER["HTTP_HOST"]); + define("FLAKE_URIPATH", \Flake\Util\Tools::stripBeginSlash($aUrlInfo["path"])); + unset($aUrlInfo); + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Util/Frameworks.php b/CoreVersions/0.2.0/Frameworks/Flake/Util/Frameworks.php old mode 100644 new mode 100755 index e6d2e30..73c8b9e --- a/CoreVersions/0.2.0/Frameworks/Flake/Util/Frameworks.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Util/Frameworks.php @@ -30,7 +30,26 @@ class Frameworks extends \Flake\Core\FLObject { private function __construct() { # private constructor to force static class } + public function isAFramework($sName) { + $sName = trim(\Flake\Util\Tools::trimSlashes($sName)); + if($sName === "" || $sName === "." || $sName === "..") { + return FALSE; + } + + $sFrameworkPath = PROJECT_PATH_FRAMEWORKS . $sName; + return file_exists($sFrameworkPath) && is_dir($sFrameworkPath); + } + public static function enabled($sFramework) { return FALSE; } + + # TODO: Create a 'Framework' Model + public function getPath($sName) { + if(self::isAFramework($sName)) { + throw new \Flake\Core\Exception(htmlspecialchars($$sName) . " is not a framework.", $sName); + } + + return \Flake\Util\Tools::appendSlash(PROJECT_PATH_FRAMEWORKS . $sName); + } } \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Util/Router/QuestionMarkRewrite.php b/CoreVersions/0.2.0/Frameworks/Flake/Util/Router/QuestionMarkRewrite.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Flake/Util/Tools.php b/CoreVersions/0.2.0/Frameworks/Flake/Util/Tools.php index 0a0e0e9..0620df4 100755 --- a/CoreVersions/0.2.0/Frameworks/Flake/Util/Tools.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/Util/Tools.php @@ -65,7 +65,7 @@ class Tools extends \Flake\Core\FLObject { } public static function serverToRelativeWebPath($sAbsPath) { - return "/" . str_replace(FLAKE_PATH_WWWROOT, "", $sAbsPath); + return "/" . str_replace(PROJECT_PATH_WWWROOT, "", $sAbsPath); } public static function view_array($array_in) { @@ -192,7 +192,7 @@ class Tools extends \Flake\Core\FLObject { } public static function safelock($sString) { - return substr(md5(FLAKE_SAFEHASH_SALT . ":" . $sString), 0, 5); + return substr(md5(PROJECT_SAFEHASH_SALT . ":" . $sString), 0, 5); } public static function redirect($sUrl) { @@ -568,42 +568,65 @@ TEST; return $_SERVER['HTTP_USER_AGENT']; } + ########### public static function appendSlash($sString) { - if(substr($sString, -1) !== "/") { - $sString .= "/"; - } - - return $sString; + return self::appendString($sString, "/"); } public static function prependSlash($sString) { - if(substr($sString, 0, 1) !== "/") { - $sString = "/" . $sString; - } - - return $sString; + return self::prependString($sString, "/"); } public static function stripBeginSlash($sString) { - if(substr($sString, 0, 1) === "/") { - $sString = substr($sString, 1); - } - - return $sString; + return self::stripBeginString($sString, "/"); } public static function stripEndSlash($sString) { - if(substr($sString, -1) === "/") { - $sString = substr($sString, 0, -1); - } - - return $sString; + return self::stripEndString($sString, "/"); } public static function trimSlashes($sString) { return self::stripBeginSlash(self::stripEndSlash($sString)); } + ########### + public static function appendString($sString, $sAppend) { + if(substr($sString, -1 * strlen($sAppend)) !== $sAppend) { + $sString .= $sAppend; + } + + return $sString; + } + + public static function prependString($sString, $sAppend) { + if(substr($sString, 0, 1 * strlen($sAppend)) !== $sAppend) { + $sString = $sAppend . $sString; + } + + return $sString; + } + + public static function stripBeginString($sString, $sAppend) { + if(substr($sString, 0, 1 * strlen($sAppend)) === $sAppend) { + $sString = substr($sString, strlen($sAppend)); + } + + return $sString; + } + + public static function stripEndString($sString, $sAppend) { + if(substr($sString, -1 * strlen($sAppend)) === $sAppend) { + $sString = substr($sString, 0, -1 * strlen($sAppend)); + } + + return $sString; + } + + public static function trimStrings($sString, $sAppend) { + return self::stripBeginString(self::stripEndString($sString, $sAppend), $sAppend); + } + ########### + public static function router() { return "\Flake\Util\Router\QuestionMarkRewrite"; } diff --git a/CoreVersions/0.2.0/Frameworks/Flake/config.php b/CoreVersions/0.2.0/Frameworks/Flake/config.php old mode 100644 new mode 100755 index 0e23890..67ab3ca --- a/CoreVersions/0.2.0/Frameworks/Flake/config.php +++ b/CoreVersions/0.2.0/Frameworks/Flake/config.php @@ -24,12 +24,6 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -define("FLAKE_URI", BAIKAL_URI); -define("FLAKE_DB_FILEPATH", BAIKAL_SQLITE_FILE); -define("FLAKE_PATH_FRAMEWORKS", BAIKAL_PATH_FRAMEWORKS); -define("FLAKE_PATH_WWWROOT", BAIKAL_PATH_WWWROOT); - -define("FLAKE_SAFEHASH_SALT", "une-clef-super-secrete"); define("FLAKE_LOCALE", "fr_FR.UTF-8"); if(defined("BAIKAL_TIMEZONE")) { diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Core/ClassLoader.php b/CoreVersions/0.2.0/Frameworks/Formal/Core/ClassLoader.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Core/Message.php b/CoreVersions/0.2.0/Frameworks/Formal/Core/Message.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element.php b/CoreVersions/0.2.0/Frameworks/Formal/Element.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element/Checkbox.php b/CoreVersions/0.2.0/Frameworks/Formal/Element/Checkbox.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element/Listbox.php b/CoreVersions/0.2.0/Frameworks/Formal/Element/Listbox.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element/Password.php b/CoreVersions/0.2.0/Frameworks/Formal/Element/Password.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Element/Text.php b/CoreVersions/0.2.0/Frameworks/Formal/Element/Text.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Form.php b/CoreVersions/0.2.0/Frameworks/Formal/Form.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Form/Morphology.php b/CoreVersions/0.2.0/Frameworks/Formal/Form/Morphology.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Formal/Framework.php b/CoreVersions/0.2.0/Frameworks/Formal/Framework.php new file mode 100755 index 0000000..ad62d44 --- /dev/null +++ b/CoreVersions/0.2.0/Frameworks/Formal/Framework.php @@ -0,0 +1,37 @@ + +* All rights reserved +* +* http://baikal.codr.fr +* +* This script is part of the Baïkal Server project. The Baïkal +* Server project 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. +* +* The GNU General Public License can be found at +* http://www.gnu.org/copyleft/gpl.html. +* +* This script 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. +* +* This copyright notice MUST APPEAR in all copies of the script! +***************************************************************/ + +namespace Formal; + +class Framework extends \Flake\Core\Framework { + + public static function bootstrap() { + define("FORMAL_PATH_ROOT", PROJECT_PATH_ROOT . "Core/Frameworks/Formal/"); + + require_once(FORMAL_PATH_ROOT . 'Core/ClassLoader.php'); + \Formal\Core\ClassLoader::register(); + } +} \ No newline at end of file diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Colorize.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Colorize.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.cli.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.cli.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.html.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.html.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/Tabulator.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/TabulatorColumn.php b/CoreVersions/0.2.0/Frameworks/Versions/Tabulator.0.0.1/TabulatorColumn.php old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap-responsive.css b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap-responsive.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap-responsive.min.css b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap-responsive.min.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap.css b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap.min.css b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/css/bootstrap.min.css old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings-orig.png b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings-orig.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings-white.png b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings-white.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings.png b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/img/glyphicons-halflings.png old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap-popover.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap-popover.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap-tooltip.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap-tooltip.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap.min.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/bootstrap.min.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/jquery-1.7.1.min.js b/CoreVersions/0.2.0/Frameworks/Versions/TwitterBootstrap.2.0.2/js/jquery-1.7.1.min.js old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Resources/Web/README.md b/CoreVersions/0.2.0/Resources/Web/README.md old mode 100644 new mode 100755 diff --git a/CoreVersions/0.2.0/Scripts/adminpassword.php b/CoreVersions/0.2.0/Scripts/adminpassword.php index dab0494..961ddb1 100755 --- a/CoreVersions/0.2.0/Scripts/adminpassword.php +++ b/CoreVersions/0.2.0/Scripts/adminpassword.php @@ -34,7 +34,7 @@ require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/Core/Frameworks/Ba # Bootstraping BaikalAdmin require_once(dirname(dirname(dirname(dirname(__FILE__)))) . "/Core/Frameworks/BaikalAdmin/Core/Bootstrap.php"); # ../../../ -$sConfigFile = BAIKAL_PATH_SPECIFIC . "config.php"; +$sConfigFile = PROJECT_PATH_SPECIFIC . "config.php"; if(!file_exists($sConfigFile)) { die("Specific/config.php is does not exist. Aborting, cannot modify admin password."); diff --git a/CoreVersions/0.2.0/WWWRoot/cal.php b/CoreVersions/0.2.0/WWWRoot/cal.php index 4b03ef0..ccc7018 100755 --- a/CoreVersions/0.2.0/WWWRoot/cal.php +++ b/CoreVersions/0.2.0/WWWRoot/cal.php @@ -25,10 +25,15 @@ ***************************************************************/ define("BAIKAL_CONTEXT", TRUE); -define("BAIKAL_CONTEXT_BASEURI", "/"); +define("PROJECT_CONTEXT_BASEURI", "/"); +define("PROJECT_PATH_ROOT", dirname(getcwd()) . "/"); #../ -# Bootstraping Baikal -require_once(dirname(dirname(__FILE__)) . "/Frameworks/Baikal/Core/Bootstrap.php"); +# Bootstraping Flake +require_once(PROJECT_PATH_ROOT . "Core/Frameworks/Flake/Framework.php"); +\Flake\Framework::bootstrap(); + +# Bootstrapping Baïkal +\Baikal\Framework::bootstrap(); if(!defined("BAIKAL_CAL_ENABLED") || BAIKAL_CAL_ENABLED !== TRUE) { throw new ErrorException("Baikal CalDAV is disabled.", 0, 255, __FILE__, __LINE__); diff --git a/CoreVersions/0.2.0/WWWRoot/card.php b/CoreVersions/0.2.0/WWWRoot/card.php index 701cbe7..9865ee7 100755 --- a/CoreVersions/0.2.0/WWWRoot/card.php +++ b/CoreVersions/0.2.0/WWWRoot/card.php @@ -25,10 +25,15 @@ ***************************************************************/ define("BAIKAL_CONTEXT", TRUE); -define("BAIKAL_CONTEXT_BASEURI", "/"); +define("PROJECT_CONTEXT_BASEURI", "/"); +define("PROJECT_PATH_ROOT", dirname(getcwd()) . "/"); #../ -# Bootstraping Baikal -require_once(dirname(dirname(__FILE__)) . "/Frameworks/Baikal/Core/Bootstrap.php"); +# Bootstraping Flake +require_once(PROJECT_PATH_ROOT . "Core/Frameworks/Flake/Framework.php"); +\Flake\Framework::bootstrap(); + +# Bootstrapping Baïkal +\Baikal\Framework::bootstrap(); if(!defined("BAIKAL_CARD_ENABLED") || BAIKAL_CARD_ENABLED !== TRUE) { throw new ErrorException("Baikal CardDAV is disabled.", 0, 255, __FILE__, __LINE__); diff --git a/CoreVersions/0.2.0/WWWRoot/index.php b/CoreVersions/0.2.0/WWWRoot/index.php index a7a64fc..607fb2a 100755 --- a/CoreVersions/0.2.0/WWWRoot/index.php +++ b/CoreVersions/0.2.0/WWWRoot/index.php @@ -24,10 +24,15 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ define("BAIKAL_CONTEXT", TRUE); -define("BAIKAL_CONTEXT_BASEURI", "/"); +define("PROJECT_CONTEXT_BASEURI", "/"); +define("PROJECT_PATH_ROOT", dirname(getcwd()) . "/"); #../ -# Bootstraping Baikal -require_once(dirname(dirname(__FILE__)) . "/Frameworks/Baikal/Core/Bootstrap.php"); +# Bootstraping Flake +require_once(PROJECT_PATH_ROOT . "Core/Frameworks/Flake/Framework.php"); +\Flake\Framework::bootstrap(); + +# Bootstrapping Baïkal +\Baikal\Framework::bootstrap(); ?> diff --git a/Specific/db/baikal.sqlite b/Specific/db/baikal.sqlite index 32253c2..db968ca 100755 Binary files a/Specific/db/baikal.sqlite and b/Specific/db/baikal.sqlite differ diff --git a/html/.htaccess b/html/.htaccess old mode 100644 new mode 100755