Browse Source

added ACL::getInstanceNamespaceById

Piotr Labudda 7 years ago
parent
commit
c8431d92b7
2 changed files with 17 additions and 2 deletions
  1. 4 1
      SE/se-lib/ACL.php
  2. 13 1
      SE/se-lib/InstanceConfig.php

+ 4 - 1
SE/se-lib/ACL.php

@@ -509,7 +509,7 @@ class ACL {
 		return InstanceConfig::generateSqlWhereFromFieldRestrictions($fields, $sqlTablePrefix);
 	}
 
-	static function getInstanceId($namespace) {
+	static function getInstanceId($namespace) { // @return int
 		return InstanceConfig::getInstanceId($namespace);
 	}
 	static function getInstanceConfig($namespace) { // @return Type_InstanceConfig
@@ -518,6 +518,9 @@ class ACL {
 	static function getInstanceTable($namespace) { // @return tableName with struct { pk, idInstance, _createdAt }
 		return InstanceConfig::getInstanceTable($namespace);
 	}
+	static function getInstanceNamespaceById($idInstance) {
+		return InstanceConfig::getInstanceNamespaceById($idInstance);
+	}
 
 	static function getRootNamespace($namespace) { // TODO: works only for relative urls! - mv to Acl->getRootNamespace
 		return InstanceConfig::getRootNamespace($namespace);

+ 13 - 1
SE/se-lib/InstanceConfig.php

@@ -10,10 +10,22 @@ class InstanceConfig {
 		return self::getInstanceConfig($namespace)->tableName;
 	}
 
-	static function getInstanceId($namespace) { // @return int
+	static function getInstanceId($namespace) { // @return int - idInstance
 		return self::getInstanceConfig($namespace)->id;
 	}
 
+	static function getInstanceNamespaceById($idInstance) { // @return string - namespace
+		$instanceRow = DB::getPDO()->fetchFirst("
+			select c.*
+			from `CRM_INSTANCE_CONFIG` c
+			where c.id = :id
+		", [
+			':id' => $idInstance
+		]);
+		if (!$instanceRow) throw new HttpException("Not found instance {$idInstance}", 404);
+		return Type_InstanceConfig::build($instanceRow)->namespace;
+	}
+
 	static function getInstanceConfig($namespace) { // @return Type_InstanceConfig or throw Exception
 		SchemaVersionUpgrade::upgradeSchema();
 		$conf = self::fetchInstanceConfig($namespace);