[xoops-cvslog 5120] CVS update: xoops2jp/html/modules/legacy/preload/Primary

Back to archive index

Minahito minah****@users*****
2006年 10月 14日 (土) 23:55:29 JST


Index: xoops2jp/html/modules/legacy/preload/Primary/NuSoapLoader.class.php
diff -u /dev/null xoops2jp/html/modules/legacy/preload/Primary/NuSoapLoader.class.php:1.1.2.1
--- /dev/null	Sat Oct 14 23:55:29 2006
+++ xoops2jp/html/modules/legacy/preload/Primary/NuSoapLoader.class.php	Sat Oct 14 23:55:29 2006
@@ -0,0 +1,53 @@
+<?php
+
+if (!defined("XOOPS_ROOT_PATH")) exit();
+
+class Legacy_NuSoapLoader extends XCube_ActionFilter
+{
+	function preFilter()
+	{
+		$this->mRoot->mDelegateManager->add('XCube_ServiceManager.CreateClient', 'Legacy_NuSoapLoader::createClient');
+		$this->mRoot->mDelegateManager->add('XCube_ServiceManager.CreateServer', 'Legacy_NuSoapLoader::createServer');
+	}
+	
+	/**
+	 * @static
+	 */
+	function createClient(&$client, $service)
+	{
+		if (is_object($client)) {
+			return;
+		}
+
+		$root =& XCube_Root::getSingleton();
+		
+		if (is_object($service) && is_a($service, 'XCube_Service')) {
+			$client = new XCube_ServiceClient($service);
+		}
+		else {
+			require_once XOOPS_ROOT_PATH . "/modules/base/lib/nusoap/nusoap.php";
+			require_once XOOPS_ROOT_PATH . "/modules/base/lib/ShadePlus/SoapClient.class.php";
+			
+			$client = new Shade_SoapClient($service);
+		}
+	}
+
+	/**
+	 * @static
+	 */
+	function createServer(&$server, $service)
+	{
+		if (is_object($server) || !is_object($service)) {
+			return;
+		}
+		
+		require_once XOOPS_ROOT_PATH . "/modules/base/lib/nusoap/nusoap.php";
+		require_once XOOPS_ROOT_PATH . "/modules/base/lib/ShadePlus/ServiceServer.class.php";
+		require_once XOOPS_ROOT_PATH . "/modules/base/lib/ShadeSoap/NusoapServer.class.php";
+		
+		$server = new ShadePlus_ServiceServer($service);
+		$server->prepare();
+	}
+}
+
+?>
\ No newline at end of file
Index: xoops2jp/html/modules/legacy/preload/Primary/SiteClose.class.php
diff -u /dev/null xoops2jp/html/modules/legacy/preload/Primary/SiteClose.class.php:1.1.2.1
--- /dev/null	Sat Oct 14 23:55:29 2006
+++ xoops2jp/html/modules/legacy/preload/Primary/SiteClose.class.php	Sat Oct 14 23:55:29 2006
@@ -0,0 +1,211 @@
+<?php
+/**
+ * @package Legacy
+ * @version $Id$
+ */
+
+if (!defined('XOOPS_ROOT_PATH')) exit();
+
+/**
+ * The action filter for the site close procedure.
+ */
+class Legacy_SiteClose extends XCube_ActionFilter
+{
+	function preBlockFilter()
+	{
+		if (($this->mRoot->mContext->getXoopsConfig('closesite') == 1) || is_array(Legacy_Utils::checkSystemModules())) {
+			$this->mController->mSetupUser->add("Legacy_SiteClose::callbackSetupUser", XCUBE_DELEGATE_PRIORITY_FINAL);
+			$this->mRoot->mDelegateManager->add("Site.CheckLogin.Success", array(&$this, "callbackCheckLoginSuccess"));
+		}
+	}
+
+	/**
+	 * Checks whether the site is closed now, and whether all of must modules
+	 * have been installed. This function is called through delegates.
+	 * @var XoopsUser &$xoopsUser
+	 * @see preBlockFilter()
+	 */
+	function callbackSetupUser(&$principal, &$controller, &$context)
+	{
+		$retArray = Legacy_Utils::checkSystemModules();
+		$accessAllowFlag = false;
+		$xoopsConfig = $controller->mRoot->mContext->getXoopsConfig();
+		
+		if (!empty($_POST['xoops_login'])) {
+			if (is_array($retArray)) {
+				define('XOOPS_CPFUNC_LOADED', 1);
+			}
+
+			$controller->checkLogin();
+			return;
+		} elseif (is_object($context->mXoopsUser)) {
+			foreach ($context->mXoopsUser->getGroups() as $group) {
+				if (in_array($group, $xoopsConfig['closesite_okgrp']) || XOOPS_GROUP_ADMIN == $group) {
+					$accessAllowFlag = true;
+					break;
+				}
+			}
+		}
+		
+		// @todo Devide following lines to another preload file
+		if ($accessAllowFlag && is_array($retArray)) {
+			if (in_array(XOOPS_GROUP_ADMIN, $context->mXoopsUser->getGroups())) {
+				$GLOBALS['xoopsUser'] = $context->mXoopsUser;
+				if (!empty($_POST['cube_module_install'])) { //@todo use Ticket
+					require_once XOOPS_BASE_PATH . "/admin/class/ModuleInstaller.class.php";
+					if (isset($_POST['uninstalled_modules']) && is_array($_POST['uninstalled_modules'])){
+						foreach ($_POST['uninstalled_modules'] as $module) {
+							$module = basename($module);
+							if (in_array($module, $retArray['uninstalled'])) {
+								$installer =& new Legacy_ModuleInstaller($module);
+								$installer->execute();
+							}
+						}
+					}
+					if (isset($_POST['disabled_modules']) && is_array($_POST['disabled_modules'])){
+						$moduleHandler =& xoops_gethandler('module');
+						foreach ($_POST['disabled_modules'] as $module) {
+							$module = basename($module);
+							if (in_array($module, $retArray['disabled'])) {
+								if ($moduleObject =& $moduleHandler->getByDirname($module)) {
+									$moduleObject->setVar('isactive', 1);
+									$moduleHandler->insert($moduleObject);
+								}
+							}
+						}
+					}
+					if (isset($_POST['option_modules']) && is_array($_POST['option_modules']) ){
+						$handler =& xoops_getmodulehandler('non_installation_module', 'base');
+						$objects = $handler->getObjects();
+						$optionModules = array();
+						foreach ($objects as $module) {
+							if (!in_array($module->get('dirname'), $retArray['uninstalled'])) {
+								$optionModules[] = $module->get('dirname');
+							}
+						}
+						foreach ($_POST['option_modules'] as $module) {
+							$module = basename($module);
+							if (in_array($module, $optionModules)) {
+								$installer =& new Legacy_ModuleInstaller($module);
+								$installer->execute();
+							}
+						}
+					}
+					$controller->executeRedirect(XOOPS_URL . '/', 1);
+				}
+				elseif (!empty($_GET['cube_module_uninstall'])) {
+					require_once XOOPS_ROOT_PATH . '/class/template.php';
+					$xoopsTpl =& new XoopsTpl();
+					$xoopsTpl->assign('cube_module_uninstall', htmlspecialchars($_GET['cube_module_uninstall'],ENT_QUOTES));
+					$xoopsTpl->assign( array(
+								   'xoops_sitename' => htmlspecialchars($xoopsConfig['sitename']),
+								   'xoops_themecss' => xoops_getcss(),
+								   'xoops_imageurl' => XOOPS_THEME_URL . '/' . $xoopsConfig['theme_set'] . '/',
+								   ));
+					///< @todo filebase template with absolute file path
+					$xoopsTpl->compile_check = true;
+					$xoopsTpl->display(XOOPS_ROOT_PATH . '/modules/base/templates/legacy_uninstall_modules.html');
+					exit();
+				}
+				elseif (!empty($_POST['cube_module_uninstallok'])) { //@todo use Ticket
+					require_once XOOPS_BASE_PATH . "/admin/class/ModuleUninstaller.class.php";
+					$module = basename($_POST['cube_module_uninstallok']);
+					if (in_array($module, $retArray['disabled'])) {
+						$uninstaller =& new Legacy_ModuleUninstaller($module);
+						$uninstaller->execute();
+					}
+					$controller->executeRedirect(XOOPS_URL . '/',1);
+				}
+				else {
+					$handler =& xoops_getmodulehandler('non_installation_module','base');
+					$objects = $handler->getObjects();
+					$optionModules = array();
+					foreach ($objects as $module) {
+						$dirname = $module->getVar('dirname');
+						if (!in_array($dirname, $retArray['uninstalled'])) {
+							$optionModule['dirname']  = $dirname;
+							if (in_array($dirname, $retArray['recommended'])) {
+								$optionModule['checked']  = 'checked="checked"';
+								$optionModule['desc']  = _SYS_RECOMMENDED_MODULES;
+							} else {
+								$optionModule['checked']  = '';
+								$optionModule['desc']  = _SYS_OPTION_MODULES;
+							}
+							$optionModules[] = $optionModule;
+						}
+					}
+					require_once XOOPS_ROOT_PATH . '/class/template.php';
+					$xoopsTpl =& new XoopsTpl();
+					$xoopsTpl->assign('uninstalled',$retArray['uninstalled']);
+					$xoopsTpl->assign('disabled',$retArray['disabled']);
+					$xoopsTpl->assign('option',$optionModules);
+					$xoopsTpl->assign(array(
+								   'xoops_sitename' => htmlspecialchars($xoopsConfig['sitename']),
+								   'xoops_themecss' => xoops_getcss(),
+								   'xoops_imageurl' => XOOPS_THEME_URL . '/' . $xoopsConfig['theme_set'] . '/'
+								   ));
+					///< @todo filebase template with absolute file path
+					$xoopsTpl->compile_check = true;
+					$xoopsTpl->display(XOOPS_ROOT_PATH . '/modules/base/templates/legacy_install_modules.html');
+					exit();
+				}
+		   } else {
+				$accessAllowFlag = false;
+		   }
+		}
+
+		if (!$accessAllowFlag) {
+			require_once XOOPS_ROOT_PATH . '/class/template.php';
+			$xoopsTpl =& new XoopsTpl();
+			$xoopsTpl->assign(array('xoops_sitename' => htmlspecialchars($xoopsConfig['sitename']),
+									   'xoops_themecss' => xoops_getcss(),
+									   'xoops_imageurl' => XOOPS_THEME_URL . '/' . $xoopsConfig['theme_set'] . '/',
+									   'lang_login' => _LOGIN,
+									   'lang_username' => _USERNAME,
+									   'lang_password' => _PASSWORD,
+									   'lang_siteclosemsg' => $xoopsConfig['closesite_text']
+									   ));
+									   
+			$xoopsTpl->compile_check = true;
+			
+			// @todo filebase template with absolute file path
+			$xoopsTpl->display(XOOPS_ROOT_PATH . '/modules/base/templates/legacy_site_closed.html');
+			exit();
+		}
+	}
+	
+	/**
+	 * When the user logs in successfully, checks whether the user belongs to
+	 * the special group which is allowed to login. This function is called
+	 * through delegates.
+	 * @var XoopsUser &$xoopsUser
+	 * @see preBlockFilter
+	 */
+	function callbackCheckLoginSuccess(&$xoopsUser)
+	{
+		//
+		// This check is not needed. :)
+		//
+		if (!is_object($xoopsUser)) {
+			return;
+		}
+
+		// Site close
+		if ($this->mRoot->mContext->getXoopsConfig('closesite')) {
+			$accessAllowed = false;
+
+			foreach ($xoopsUser->getGroups() as $group) {
+				if (in_array($group, $this->mRoot->mContext->getXoopsConfig('closesite_okgrp')) || ($group == XOOPS_GROUP_ADMIN)) {
+					$accessAllowed = true;
+					break;
+				}
+			}
+
+			if (!$accessAllowed) {
+				$this->mController->redirectHeader(XOOPS_URL . '/', 1, _NOPERM);
+			}
+		}
+	}
+}
+
+?>
\ No newline at end of file


xoops-cvslog メーリングリストの案内
Back to archive index