Ver código fonte

added Storage AclReinstall exported from Storage

Piotr Labudda 8 anos atrás
pai
commit
094943c304

+ 0 - 47
SE/se-lib/Route/Storage.php

@@ -1584,53 +1584,6 @@ jQuery(document).on('p5UIBtnAjax:Storage:checkObjectInstallAjax:ajaxLoaded', fun
 		UI::dol();
 		UI::dol();
 	}
 	}
 
 
-	public function objectReinstallAction() {
-		UI::gora();
-		UI::startContainer();
-		try {
-			$namespace = V::get('namespace', '', $_GET);
-			if (empty($namespace)) throw new Exception("Missing param namespace");
-			echo UI::h('h3', [], $namespace);
-
-			Lib::loadClass('Schema_SystemObjectFieldStorageAcl');
-			$objFieldAcl = new Schema_SystemObjectFieldStorageAcl();
-			$objFieldAcl->updateCache($namespace);
-
-			DBG::nicePrint([
-				'idInstance' => ACL::getInstanceId($namespace),
-				'rootInstance' => ACL::getRootNamespace($namespace),
-				'conf' => ACL::fetchInstanceConfig($namespace),
-				'table' => ACL::getInstanceTable($namespace),
-			], "dbg");
-
-			{
-				$item = SchemaFactory::loadDefaultObject('SystemObject')->getItem($namespace, [ 'propertyName' => '*,field' ]);
-				if ('AntAcl' === $item['_type']) {
-					$dbName = DB::getPDO()->getDatabaseName();
-					$sqlFunBody = ACL::generateIsInstanceFunctionBody($namespace, $item);
-					DBG::nicePrint($sqlFunBody, "\$sqlFunBody");
-					DB::getPDO()->execSql(" DROP FUNCTION IF EXISTS `{$dbName}`.`isInstance_{$namespace}` ");
-					// CREATE
-					//     [DEFINER = { user | CURRENT_USER }]
-					//     FUNCTION sp_name ([func_parameter[,...]])
-					//     RETURNS type
-					//     [characteristic ...] routine_body
-					DB::getPDO()->execSql("
-						CREATE DEFINER=`root`@`localhost`
-						FUNCTION `{$dbName}`.`isInstance_{$namespace}` ( pk INT(11) )
-						RETURNS TINYINT(1)
-						{$sqlFunBody}
-					");
-				}
-			}
-		} catch (Exception $e) {
-			UI::alert('danger', "Error #" . $e->getCode() .  "|" . $e->getLine() .  ": " . $e->getMessage());
-			DBG::log($e);
-		}
-		UI::endContainer();
-		UI::dol();
-	}
-
 	public function activateObjectAjaxAction() {
 	public function activateObjectAjaxAction() {
 		DBG::log($_REQUEST, 'array', '$_REQUEST');
 		DBG::log($_REQUEST, 'array', '$_REQUEST');
 		Response::sendTryCatchJson(array($this, 'activateObjectAjax'), $_REQUEST);
 		Response::sendTryCatchJson(array($this, 'activateObjectAjax'), $_REQUEST);

+ 64 - 0
SE/se-lib/Route/Storage/AclReinstall.php

@@ -0,0 +1,64 @@
+<?php
+
+Lib::loadClass('RouteBase');
+Lib::loadClass('Router');
+Lib::loadClass('Response');
+Lib::loadClass('UI');
+Lib::loadClass('SchemaFactory');
+
+class Route_Storage_AclReinstall extends RouteBase {
+
+	public function handleAuth() {
+		if (!User::logged()) {
+			User::authByRequest();
+		}
+	}
+
+	public function defaultAction() {
+		UI::gora();
+		UI::startContainer();
+		try {
+			$namespace = V::get('namespace', '', $_GET);
+			if (empty($namespace)) throw new Exception("Missing param namespace");
+			echo UI::h('h3', [], $namespace);
+
+			Lib::loadClass('Schema_SystemObjectFieldStorageAcl');
+			$objFieldAcl = new Schema_SystemObjectFieldStorageAcl();
+			$objFieldAcl->updateCache($namespace);
+
+			DBG::nicePrint([
+				'idInstance' => ACL::getInstanceId($namespace),
+				'rootInstance' => ACL::getRootNamespace($namespace),
+				'conf' => ACL::fetchInstanceConfig($namespace),
+				'table' => ACL::getInstanceTable($namespace),
+			], "dbg");
+
+			{
+				$item = SchemaFactory::loadDefaultObject('SystemObject')->getItem($namespace, [ 'propertyName' => '*,field' ]);
+				if ('AntAcl' === $item['_type']) {
+					$dbName = DB::getPDO()->getDatabaseName();
+					$sqlFunBody = ACL::generateIsInstanceFunctionBody($namespace, $item);
+					DBG::nicePrint($sqlFunBody, "\$sqlFunBody");
+					DB::getPDO()->execSql(" DROP FUNCTION IF EXISTS `{$dbName}`.`isInstance_{$namespace}` ");
+					// CREATE
+					//     [DEFINER = { user | CURRENT_USER }]
+					//     FUNCTION sp_name ([func_parameter[,...]])
+					//     RETURNS type
+					//     [characteristic ...] routine_body
+					DB::getPDO()->execSql("
+						CREATE DEFINER=`root`@`localhost`
+						FUNCTION `{$dbName}`.`isInstance_{$namespace}` ( pk INT(11) )
+						RETURNS TINYINT(1)
+						{$sqlFunBody}
+					");
+				}
+			}
+		} catch (Exception $e) {
+			UI::alert('danger', "Error #" . $e->getCode() .  "|" . $e->getLine() .  ": " . $e->getMessage());
+			DBG::log($e);
+		}
+		UI::endContainer();
+		UI::dol();
+	}
+
+}

+ 2 - 2
SE/se-lib/Route/Storage/AclStruct.php

@@ -34,7 +34,7 @@ class Route_Storage_AclStruct extends RouteBase {
 			// [name] => CRM_PROCES
 			// [name] => CRM_PROCES
 			// [nsPrefix] => default_db__x3A__CRM_PROCES
 			// [nsPrefix] => default_db__x3A__CRM_PROCES
 			// [typeName] => default_db__x3A__CRM_PROCES:CRM_PROCES
 			// [typeName] => default_db__x3A__CRM_PROCES:CRM_PROCES
-			// [reinstallLink] => https://biuro.biall-net.pl/dev-pl/se-master/index.php?_route=Storage&_task=objectReinstall&namespace=default_db/CRM_PROCES/CRM_PROCES
+			// [reinstallLink] => https://biuro.biall-net.pl/dev-pl/se-master/index.php?_route=Storage_AclReinstall&namespace=default_db/CRM_PROCES/CRM_PROCES
 			$item = SchemaFactory::loadDefaultObject('SystemObject')->getItem($namespace, [ 'propertyName' => '*,field' ]);
 			$item = SchemaFactory::loadDefaultObject('SystemObject')->getItem($namespace, [ 'propertyName' => '*,field' ]);
 			switch ($item['_type']) {
 			switch ($item['_type']) {
 				case 'TableAcl': $this->tableStructView($item, $item['name'], $item['idDatabase']); break;
 				case 'TableAcl': $this->tableStructView($item, $item['name'], $item['idDatabase']); break;
@@ -636,7 +636,7 @@ class Route_Storage_AclStruct extends RouteBase {
 					: ''
 					: ''
 				),
 				),
 				UI::h('a', [
 				UI::h('a', [
-					'href' => Router::getRoute('Storage')->getLink('objectReinstall', ['namespace' => $item['namespace']]),
+					'href' => Router::getRoute('Storage_AclReinstall')->getLink('', ['namespace' => $item['namespace']]),
 					'class' => 'btn btn-sm btn-link', 'style' => "color:#f00",
 					'class' => 'btn btn-sm btn-link', 'style' => "color:#f00",
 					'title' => "Zainstaluje ponownie obiekt"
 					'title' => "Zainstaluje ponownie obiekt"
 				], "reinstall object"),
 				], "reinstall object"),

+ 1 - 2
SE/se-lib/Schema/SystemObjectFieldStorageAcl.php

@@ -87,9 +87,8 @@ class Schema_SystemObjectFieldStorageAcl extends Core_AclSimpleSchemaBase {
 
 
 		DB::getPDO()->update($this->_rootTableName, 'objectNamespace', $namespace, ['isActive' => 0]);
 		DB::getPDO()->update($this->_rootTableName, 'objectNamespace', $namespace, ['isActive' => 0]);
 		DB::getPDO()->update("{$this->_rootTableName}_enum", 'objectNamespace', $namespace, ['isActive' => 0]);
 		DB::getPDO()->update("{$this->_rootTableName}_enum", 'objectNamespace', $namespace, ['isActive' => 0]);
-		$sysObjectStorage = SchemaFactory::loadDefaultObject('SystemObject');
 		if (!$namespace) throw new Exception("Missing namespace '{$namespace}'");
 		if (!$namespace) throw new Exception("Missing namespace '{$namespace}'");
-		$objectItem = $sysObjectStorage->getItem($namespace);
+		$objectItem = SchemaFactory::loadDefaultObject('SystemObject')->getItem($namespace);
 		DBG::nicePrint($objectItem, '$objectItem');
 		DBG::nicePrint($objectItem, '$objectItem');
 		DBG::log($objectItem, 'array', '$objectItem');
 		DBG::log($objectItem, 'array', '$objectItem');
 
 

+ 1 - 1
SE/se-lib/Schema/SystemObjectStorageAcl.php

@@ -363,7 +363,7 @@ class Schema_SystemObjectStorageAcl extends Core_AclSimpleSchemaBase {
 		$item['name'] = array_pop($exNs);
 		$item['name'] = array_pop($exNs);
 		$item['nsPrefix'] = implode('__x3A__', $exNs);
 		$item['nsPrefix'] = implode('__x3A__', $exNs);
 		$item['typeName'] = implode('__x3A__', $exNs) . ':' . $item['name'];
 		$item['typeName'] = implode('__x3A__', $exNs) . ':' . $item['name'];
-		$item['reinstallLink'] = Router::getRoute('Storage')->getLink('objectReinstall', [ 'namespace' => $item['namespace'] ]);
+		$item['reinstallLink'] = Router::getRoute('Storage_AclReinstall')->getLink('', [ 'namespace' => $item['namespace'] ]);
 		if (!empty($params['propertyName'])) {
 		if (!empty($params['propertyName'])) {
 			if (is_string($params['propertyName'])) $params['propertyName'] = explode(',', $params['propertyName']);
 			if (is_string($params['propertyName'])) $params['propertyName'] = explode(',', $params['propertyName']);
 			if (!is_array($params['propertyName'])) throw new Exception("Wrong param propertyName - expected array or string");
 			if (!is_array($params['propertyName'])) throw new Exception("Wrong param propertyName - expected array or string");