diff --git a/composer.json b/composer.json index 680b15a..b05c4f6 100644 --- a/composer.json +++ b/composer.json @@ -54,7 +54,8 @@ "zendframework/zend-mail": "^2.10.0", "zendframework/zend-permissions-rbac": "^3.0.0", "zendframework/zend-servicemanager": "^3.3", - "zendframework/zend-stdlib": "^3.1" + "zendframework/zend-stdlib": "^3.1", + "ext-json": "*" }, "require-dev": { "phpunit/phpunit": "^7.0.1", diff --git a/composer.lock b/composer.lock index f281ead..913bd3e 100644 --- a/composer.lock +++ b/composer.lock @@ -4946,16 +4946,16 @@ }, { "name": "phpunit/phpunit", - "version": "7.4.3", + "version": "7.4.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "c151651fb6ed264038d486ea262e243af72e5e64" + "reference": "b1be2c8530c4c29c3519a052c9fb6cee55053bbd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c151651fb6ed264038d486ea262e243af72e5e64", - "reference": "c151651fb6ed264038d486ea262e243af72e5e64", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b1be2c8530c4c29c3519a052c9fb6cee55053bbd", + "reference": "b1be2c8530c4c29c3519a052c9fb6cee55053bbd", "shasum": "" }, "require": { @@ -5026,7 +5026,7 @@ "testing", "xunit" ], - "time": "2018-10-23T05:57:41+00:00" + "time": "2018-11-14T16:52:02+00:00" }, { "name": "roave/security-advisories", @@ -5102,7 +5102,7 @@ "pagarme/pagarme-php": ">=0,<3", "paragonie/random_compat": "<2", "paypal/merchant-sdk-php": "<3.12", - "phpmailer/phpmailer": ">=5,<5.2.24", + "phpmailer/phpmailer": ">=5,<5.2.27|>=6,<6.0.6", "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", "phpwhois/phpwhois": "<=4.2.5", "phpxmlrpc/extras": "<0.6.1", @@ -5154,7 +5154,7 @@ "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7", "tecnickcom/tcpdf": "<6.2.22", "thelia/backoffice-default-template": ">=2.1,<2.1.2", - "thelia/thelia": ">=2.1.0-beta1,<2.1.3|>=2.1,<2.1.2", + "thelia/thelia": ">=2.1,<2.1.2|>=2.1.0-beta1,<2.1.3", "theonedemon/phpwhois": "<=4.2.5", "titon/framework": ">=0,<9.9.99", "truckersmp/phpwhois": "<=4.3.1", @@ -5211,7 +5211,7 @@ } ], "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", - "time": "2018-11-01T18:39:28+00:00" + "time": "2018-11-16T03:31:38+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", diff --git a/config/autoload/authx2.global.php b/config/autoload/authx2.global.php index 53fbda1..20f7863 100644 --- a/config/autoload/authx2.global.php +++ b/config/autoload/authx2.global.php @@ -7,7 +7,6 @@ return [ 'acl_config' => [ 'unguarded_routes' => [ - 'home', 'api.auth.login', 'api.ping', 'api.xlsx', diff --git a/data/fixture/facility-location.yml b/data/fixture/facility-location.yml index ea3807c..f48e422 100644 --- a/data/fixture/facility-location.yml +++ b/data/fixture/facility-location.yml @@ -5,2551 +5,494 @@ FacilityLocations: name: "root" size: 0 parent: false - FacilityLocation_P: - roomNumber: "P" - name: "Pince" - size: 970.88 + FacilityLocation_KSZ: + roomNumber: "KSZ" + name: "Kerti szerszám tároló szint" + size: 28.03 parent: FacilityLocation_ROOT - FacilityLocation_F: - roomNumber: "F" - name: "Földszint" - size: 1064.86 + FacilityLocation_PCS: + roomNumber: "Pcs" + name: "Padlócsatorna szint" + size: 188.16 parent: FacilityLocation_ROOT - FacilityLocation_1: - roomNumber: "1" - name: "1. emelet" - size: 970.47 + FacilityLocation_K: + roomNumber: "K" + name: "Közönségforgalmi szint" + size: 604.66 parent: FacilityLocation_ROOT - FacilityLocation_2: - roomNumber: "2" - name: "2. emelet" + FacilityLocation_T: + roomNumber: "T" + name: "Türbeszint" size: 1009.21 parent: FacilityLocation_ROOT - FacilityLocation_3: - roomNumber: "3" - name: "3. emelet" - size: 1158.62 - parent: FacilityLocation_ROOT - FacilityLocation_4: - roomNumber: "4" - name: "4. emelet" - size: 1190.81 + FacilityLocation_KT: + roomNumber: "KT" + name: "Kilátóterasz szint" + size: 12.20 parent: FacilityLocation_ROOT -# __P__ pince helyiségek - FacilityLocation_P01: - roomNumber: "P01" - name: "trafó" - size: 20.09 - parent: FacilityLocation_P - FacilityLocation_P02: - roomNumber: "P02" - name: "büfé" - size: 11.84 - parent: FacilityLocation_P - FacilityLocation_P03: - roomNumber: "P03" - name: "elektromos kapcsló" - size: 9.63 - parent: FacilityLocation_P - FacilityLocation_P04: - roomNumber: "P04" - name: "raktár" - size: 13.97 - parent: FacilityLocation_P - FacilityLocation_P05: - roomNumber: "P05" - name: "raktár" - size: 9.63 - parent: FacilityLocation_P - FacilityLocation_P06: - roomNumber: "P06" - name: "telefonközpont" - size: 22.36 - parent: FacilityLocation_P - FacilityLocation_P07: - roomNumber: "P07" - name: "raktár" - size: 22.36 - parent: FacilityLocation_P - FacilityLocation_P08: - roomNumber: "P08" - name: "öltörző" - size: 12.76 - parent: FacilityLocation_P - FacilityLocation_P08e: - roomNumber: "P08e" - name: "előtér" - size: 1.76 - parent: FacilityLocation_P08 - FacilityLocation_P08g: - roomNumber: "P08g" - name: "WC" - size: 1.68 - parent: FacilityLocation_P08 - FacilityLocation_P08f: - roomNumber: "P08f" - name: "zuhanyozó" - size: 1.98 - parent: FacilityLocation_P08 - FacilityLocation_P09: - roomNumber: "P09" - name: "bútorraktár" - size: 52.69 - parent: FacilityLocation_P - FacilityLocation_P10: - roomNumber: "P10" - name: "öltörző" - size: 12.08 - parent: FacilityLocation_P - FacilityLocation_P10e: - roomNumber: "P10e" - name: "előtér" - size: 1.76 - parent: FacilityLocation_P10 - FacilityLocation_P10g: - roomNumber: "P10g" - name: "WC" - size: 1.68 - parent: FacilityLocation_P10 - FacilityLocation_P10f: - roomNumber: "P10f" - name: "zuhanyozó" - size: 1.98 - parent: FacilityLocation_P10 - FacilityLocation_P11: - roomNumber: "P11" - name: "szárazáru raktár" - size: 24.74 - parent: FacilityLocation_P - FacilityLocation_P12: - roomNumber: "P12" - name: "öltöző" - size: 22.88 - parent: FacilityLocation_P - FacilityLocation_P12e: - roomNumber: "P12e" - name: "előtér" - size: 3.20 - parent: FacilityLocation_P12 - FacilityLocation_P12g: - roomNumber: "P12g" - name: "WC" - size: 5.03 - parent: FacilityLocation_P12 - FacilityLocation_P12f: - roomNumber: "P12f" - name: "zuhanyozó" - size: 5.51 - parent: FacilityLocation_P12 - FacilityLocation_P13: - roomNumber: "P13" - name: "szárazáru raktár" - size: 24.74 - parent: FacilityLocation_P - FacilityLocation_P14: - roomNumber: "P14" - name: "raktár" - size: 27.65 - parent: FacilityLocation_P - FacilityLocation_P15: - roomNumber: "P15" - name: "földesáru raktár" - size: 10.49 - parent: FacilityLocation_P - FacilityLocation_P16: - roomNumber: "P16" - name: "raktár" - size: 25.54 - parent: FacilityLocation_P - FacilityLocation_P17: - roomNumber: "P17" - name: "közlekedő" - size: 21.60 - parent: FacilityLocation_P - FacilityLocation_P18: - roomNumber: "P18" - name: "raktár" - size: 25.46 - parent: FacilityLocation_P - FacilityLocation_P19: - roomNumber: "P19" - name: "ital, göngyöleg raktár" - size: 8.08 - parent: FacilityLocation_P - FacilityLocation_P20: - roomNumber: "P20" - name: "hulladéktároló" - size: 8.19 - parent: FacilityLocation_P - FacilityLocation_P21: - roomNumber: "P21" - name: "hűtőkamra" - size: 3.36 - parent: FacilityLocation_P - FacilityLocation_P22: - roomNumber: "P22" - name: "mosléktároló" - size: 8.51 - parent: FacilityLocation_P - FacilityLocation_P23: - roomNumber: "P23" - name: "hűtőkamra" - size: 3.36 - parent: FacilityLocation_P - FacilityLocation_P24: - roomNumber: "P24" - name: "tároló" - size: 4.20 - parent: FacilityLocation_P - FacilityLocation_P25: - roomNumber: "P25" - name: "iroda" - size: 6.78 - parent: FacilityLocation_P - FacilityLocation_P26: - roomNumber: "P26" - name: "klub" - size: 93.58 - parent: FacilityLocation_P - FacilityLocation_P27: - roomNumber: "P27" - name: "közlekedő" - size: 47.29 - parent: FacilityLocation_P - FacilityLocation_P28: - roomNumber: "P28" - name: "tároló" - size: 8.56 - parent: FacilityLocation_P - FacilityLocation_P29: - roomNumber: "P29" - name: "közlekedő" - size: 59.36 - parent: FacilityLocation_P - FacilityLocation_P30: - roomNumber: "P30" - name: "raktár" - size: 5.12 - parent: FacilityLocation_P - FacilityLocation_P31: - roomNumber: "P31" - name: "előtér" - size: 11.62 - parent: FacilityLocation_P - FacilityLocation_P32: - roomNumber: "P32" - name: "WC előtér" - size: 4.37 - parent: FacilityLocation_P - FacilityLocation_P33: - roomNumber: "P33" - name: "közlekedő" - size: 33.12 - parent: FacilityLocation_P - FacilityLocation_P34: - roomNumber: "P34" - name: "mozgássérült WC" - size: 3.24 - parent: FacilityLocation_P - FacilityLocation_P35: - roomNumber: "P35" - name: "kazánház" - size: 57.78 - parent: FacilityLocation_P - FacilityLocation_P36: - roomNumber: "P36" - name: "ffi. WC mosdóval" - size: 4.77 - parent: FacilityLocation_P - FacilityLocation_P37: - roomNumber: "P37" - name: "tároló" - size: 3.91 - parent: FacilityLocation_P - FacilityLocation_P38: - roomNumber: "P38" - name: "női WC mosdóval" - size: 2.94 - parent: FacilityLocation_P - FacilityLocation_P39: - roomNumber: "P39" - name: "boiler tér" - size: 7.81 - parent: FacilityLocation_P - FacilityLocation_P40: - roomNumber: "P40" - name: "öltöző" - size: 12.88 - parent: FacilityLocation_P - FacilityLocation_P40e: - roomNumber: "P40e" - name: "előtér" - size: 1.76 - parent: FacilityLocation_P40 - FacilityLocation_P40g: - roomNumber: "P40g" - name: "WC" - size: 1.68 - parent: FacilityLocation_P40 - FacilityLocation_P40f: - roomNumber: "P40f" - name: "zuhanyozó" - size: 1.98 - parent: FacilityLocation_P40 - FacilityLocation_P41: - roomNumber: "P41" - name: "mosószoba" - size: 12.99 - parent: FacilityLocation_P - FacilityLocation_P42: - roomNumber: "P42" - name: "öltöző" - size: 12.88 - parent: FacilityLocation_P - FacilityLocation_P42e: - roomNumber: "P42e" - name: "előtér" - size: 1.76 - parent: FacilityLocation_P42 - FacilityLocation_P42g: - roomNumber: "P42g" - name: "WC" - size: 1.68 - parent: FacilityLocation_P42 - FacilityLocation_P42f: - roomNumber: "P42f" - name: "zuhanyozó" - size: 1.98 - parent: FacilityLocation_P42 - FacilityLocation_P43: - roomNumber: "P43" - name: "szauna" - size: 24.81 - parent: FacilityLocation_P - FacilityLocation_P44: - roomNumber: "P44" - name: "kondicionáló terem" - size: 115.43 - parent: FacilityLocation_P +# __KSZ__ pince helyiségek + FacilityLocation_001: + roomNumber: "001" + name: "Kertész tartózkodó" + size: 10.70 + pavement: 'ceramic' + parent: FacilityLocation_KSZ + FacilityLocation_002_1: + roomNumber: "002.1" + name: "Kertész öltöző" + size: 5.63 + pavement: 'ceramic' + parent: FacilityLocation_KSZ + FacilityLocation_002_2: + roomNumber: "002.2" + name: "Kertész WC" + size: 2.14 + pavement: 'ceramic' + parent: FacilityLocation_KSZ + FacilityLocation_003: + roomNumber: "003" + name: "Kerti szerszám tároló" + size: 9.56 + pavement: 'ceramic' + parent: FacilityLocation_KSZ -# __F__ földszinti helyiségek - FacilityLocation_F01: - roomNumber: "F01" - name: "előlépcső (nyugati)" - size: 17.87 - parent: FacilityLocation_F - FacilityLocation_F02: - roomNumber: "F02" - name: "előcsarnok" - size: 59.72 - parent: FacilityLocation_F - FacilityLocation_F03: - roomNumber: "F03" - name: "előlépcső (keleti)" - size: 17.87 - parent: FacilityLocation_F - FacilityLocation_F04: - roomNumber: "F04" - name: "étterem" - size: 150.85 - parent: FacilityLocation_F - FacilityLocation_F05: - roomNumber: "F05" - name: "különterem" - size: 54.86 - parent: FacilityLocation_F - FacilityLocation_F06: - roomNumber: "F06" - name: "tálaló" - size: 9.31 - parent: FacilityLocation_F - FacilityLocation_F07: - roomNumber: "F07" - name: "feketemosogató" - size: 8.85 - parent: FacilityLocation_F - FacilityLocation_F08: - roomNumber: "F08" - name: "húselőkészítő" - size: 8.46 - parent: FacilityLocation_F - FacilityLocation_F09: - roomNumber: "F09" - name: "főzőkonyha" - size: 23.25 - parent: FacilityLocation_F - FacilityLocation_F10: - roomNumber: "F10" - name: "közlekedő" - size: 15.00 - parent: FacilityLocation_F - FacilityLocation_F11: - roomNumber: "F11" - name: "szennyesbeadó" - size: 7.90 - parent: FacilityLocation_F - FacilityLocation_F12: - roomNumber: "F12" - name: "fehérmosogató" - size: 11.70 - parent: FacilityLocation_F - FacilityLocation_F13: - roomNumber: "F13" - name: "zölség utánmosó" - size: 8.30 - parent: FacilityLocation_F - FacilityLocation_F14: - roomNumber: "F14" - name: "hidegkonyha" - size: 14.40 - parent: FacilityLocation_F - FacilityLocation_F15: - roomNumber: "F15" - name: "hűtőkamra" - size: 5.08 - parent: FacilityLocation_F - FacilityLocation_F16: - roomNumber: "F16" - name: "teherlift előtér" - size: 5.25 - parent: FacilityLocation_F - FacilityLocation_F17: - roomNumber: "F17" - name: "kocsimosó" - size: 3.20 - parent: FacilityLocation_F - FacilityLocation_F18: - roomNumber: "F18" - name: "takarítószer tároló" - size: 8.51 - parent: FacilityLocation_F - FacilityLocation_F10lk: - roomNumber: "F10lk" - name: "lépcsőkarok pihenővel" - size: 15.12 - parent: FacilityLocation_F - FacilityLocation_F19: - roomNumber: "F19" - name: "tároló" - size: 0.98 - parent: FacilityLocation_F - FacilityLocation_F20: - roomNumber: "F20" - name: "üzlet" - size: 13.27 - parent: FacilityLocation_F - FacilityLocation_F21: - roomNumber: "F21" - name: "pénzváltó" - size: 12.49 - parent: FacilityLocation_F - FacilityLocation_F22: - roomNumber: "F22" - name: "előcsarnok" - size: 53.41 - parent: FacilityLocation_F - FacilityLocation_F23: - roomNumber: "F23" - name: "recepció/porta" - size: 15.07 - parent: FacilityLocation_F - FacilityLocation_F24: - roomNumber: "F24" - name: "iroda" - size: 11.38 - parent: FacilityLocation_F - FacilityLocation_F25: - roomNumber: "F25" - name: "iroda" - size: 12.29 - parent: FacilityLocation_F - FacilityLocation_F26: - roomNumber: "F26" - name: "lépcső beléptetővel" - size: 3.70 - parent: FacilityLocation_F - FacilityLocation_F27: - roomNumber: "F27" - name: "hall" - size: 102.51 - parent: FacilityLocation_F - FacilityLocation_F27lk: - roomNumber: "F27lk" - name: "lépcsőkarok pihenővel" - size: 17.82 - parent: FacilityLocation_F - FacilityLocation_F28: - roomNumber: "F28" - name: "ffi. WC" - size: 7.71 - parent: FacilityLocation_F - FacilityLocation_F29: - roomNumber: "F29" - name: "ak.mentes WC" - size: 2.99 - parent: FacilityLocation_F - FacilityLocation_F30: - roomNumber: "F30" - name: "női WC" - size: 9.93 - parent: FacilityLocation_F - FacilityLocation_F31: - roomNumber: "F31" - name: "raktár" - size: 8.30 - parent: FacilityLocation_F - FacilityLocation_F32: - roomNumber: "F32" - name: "raktár" - size: 8.70 - parent: FacilityLocation_F - FacilityLocation_F33: - roomNumber: "F33" - name: "könyvtár" - size: 231.84 - parent: FacilityLocation_F - FacilityLocation_F34: - roomNumber: "F34" - name: "iroda" - size: 19.65 - parent: FacilityLocation_F - FacilityLocation_F35: - roomNumber: "F35" - name: "számítógép terem" - size: 40.38 - parent: FacilityLocation_F - FacilityLocation_F36: - roomNumber: "F36" - name: "előlépcső rámpával (keleti)" - size: 31.85 - parent: FacilityLocation_F - FacilityLocation_L1: - roomNumber: "L1" - name: "lift 8 fő - 630 kg" - size: 1.50 - parent: FacilityLocation_F - FacilityLocation_L2: - roomNumber: "L2" - name: "lift - 6 fő 500 kg" - size: 1.50 - parent: FacilityLocation_F - FacilityLocation_L3: - roomNumber: "L3" - name: "teherlift 250 kg" - size: 1.20 - parent: FacilityLocation_F - FacilityLocation_L4: - roomNumber: "L4" - name: "teherlift 250 kg" - size: 1.20 - parent: FacilityLocation_F - FacilityLocation_L5: - roomNumber: "L5" - name: "teherlift 200 kg" - size: 1.20 - parent: FacilityLocation_F - FacilityLocation_Klk: - roomNumber: "Klk" - name: "külső lépcső (pincébe)" - size: 8.50 - parent: FacilityLocation_F +# __PCS__ pince helyiségek + FacilityLocation_004: + roomNumber: "004" + name: "Átjáró" + size: 11.87 + pavement: 'stone' + parent: FacilityLocation_PCS + FacilityLocation_005: + roomNumber: "005" + name: "Lépcsőház" + size: 12.26 + pavement: 'stone' + parent: FacilityLocation_PCS + FacilityLocation_006: + roomNumber: "006" + name: "Gépészeti helység" + size: 10.29 + pavement: 'ceramic' + parent: FacilityLocation_PCS + FacilityLocation_A01: + roomNumber: "A01" + name: "Gépészeti szerelőakna" + size: 2.04 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_A02: + roomNumber: "A02" + name: "Gépészeti szerelőakna" + size: 0.68 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_A03: + roomNumber: "A03" + name: "Gépészeti szerelőakna" + size: 2.39 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS001: + roomNumber: "Pcs001" + name: "Padlócsatorna" + size: 3.19 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS002: + roomNumber: "Pcs002" + name: "Padlócsatorna" + size: 16.40 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS003: + roomNumber: "Pcs003" + name: "Padlócsatorna" + size: 2.90 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS004: + roomNumber: "Pcs004" + name: "Padlócsatorna" + size: 14.99 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS005: + roomNumber: "Pcs005" + name: "Padlócsatorna" + size: 16.25 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS006: + roomNumber: "Pcs006" + name: "Padlócsatorna" + size: 14.22 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS007: + roomNumber: "Pcs007" + name: "Padlócsatorna" + size: 31.22 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS008: + roomNumber: "Pcs008" + name: "Padlócsatorna" + size: 8.04 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS009: + roomNumber: "Pcs009" + name: "Padlócsatorna" + size: 13.56 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS010: + roomNumber: "Pcs010" + name: "Padlócsatorna" + size: 7.15 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_PCS011: + roomNumber: "Pcs011" + name: "Padlócsatorna" + size: 17.6 + pavement: 'concrete' + parent: FacilityLocation_PCS + FacilityLocation_F1: + roomNumber: "F1" + name: "Lift" + size: 3.11 + pavement: 'concrete' + parent: FacilityLocation_PCS -# __1__ első emeleti helyiségek +# __K__ pince helyiségek FacilityLocation_101: roomNumber: "101" - name: "mozgássérült szoba" - size: 22.44 - parent: FacilityLocation_1 - FacilityLocation_101e: - roomNumber: "101e" - name: "előtér" - size: 3.26 - parent: FacilityLocation_101 - FacilityLocation_101f: - roomNumber: "101f" - name: "fürdő" - size: 5.27 - parent: FacilityLocation_101 - FacilityLocation_101t: - roomNumber: "101t" - name: "erkély" - size: 7.43 - parent: FacilityLocation_101 + name: "Előtér" + size: 14.16 + pavement: 'stone' + parent: FacilityLocation_K + FacilityLocation_101_1: + roomNumber: "101.1" + name: "Közlekedő" + size: 14.16 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_102: roomNumber: "102" - name: "raktár" - size: 3.85 - parent: FacilityLocation_1 + name: "A.M. WC" + size: 4.51 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_103: roomNumber: "103" - name: "szobasszony" - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_103e: - roomNumber: "103e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_103 - FacilityLocation_103f: - roomNumber: "103f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_103 - FacilityLocation_103t: - roomNumber: "103t" - name: "erkély" - size: 6.16 - parent: FacilityLocation_103 + name: "Férfi WC" + size: 6.18 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_104: roomNumber: "104" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_104e: - roomNumber: "104e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_104 - FacilityLocation_104f: - roomNumber: "104f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_104 - FacilityLocation_104t: - roomNumber: "104t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_104 + name: "Női WC" + size: 7.13 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_105: roomNumber: "105" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_105e: - roomNumber: "105e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_105 - FacilityLocation_105f: - roomNumber: "105f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_105 - FacilityLocation_105t: - roomNumber: "105t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_105 + name: "Takarítószerek" + size: 2.06 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_106: roomNumber: "106" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_106e: - roomNumber: "106e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_106 - FacilityLocation_106f: - roomNumber: "106f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_106 - FacilityLocation_106t: - roomNumber: "106t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_106 - FacilityLocation_107: - roomNumber: "107" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_107e: - roomNumber: "107e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_107 - FacilityLocation_107f: - roomNumber: "107f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_107 - FacilityLocation_107t: - roomNumber: "107t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_107 + name: "Raktár" + size: 4.11 + pavement: 'ceramic' + parent: FacilityLocation_K + FacilityLocation_107_1: + roomNumber: "107.1" + name: "Öltöző" + size: 2.03 + pavement: 'ceramic' + parent: FacilityLocation_K + FacilityLocation_107_2: + roomNumber: "107.2" + name: "WC" + size: 1.25 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_108: roomNumber: "108" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_108e: - roomNumber: "108e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_108 - FacilityLocation_108f: - roomNumber: "108f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_108 - FacilityLocation_108t: - roomNumber: "108t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_108 + name: "Kiszolgálópult" + size: 31.32 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_109: roomNumber: "109" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_109e: - roomNumber: "109e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_109 - FacilityLocation_109f: - roomNumber: "109f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_109 - FacilityLocation_109t: - roomNumber: "109t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_109 + name: "Előtér" + size: 11.92 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_110: roomNumber: "110" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_110e: - roomNumber: "110e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_110 - FacilityLocation_110f: - roomNumber: "110f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_110 - FacilityLocation_110t: - roomNumber: "110t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_110 + name: "Közösségi terem" + size: 37.68 + pavement: 'stone' + parent: FacilityLocation_K + FacilityLocation_110_1: + roomNumber: "110.1" + name: "Technikai helység" + size: 2.98 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_111: roomNumber: "111" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_111e: - roomNumber: "111e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_111 - FacilityLocation_111f: - roomNumber: "111f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_111 - FacilityLocation_111t: - roomNumber: "111t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_111 + name: "Teázó" + size: 47.84 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_112: roomNumber: "112" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_112e: - roomNumber: "112e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_112 - FacilityLocation_112f: - roomNumber: "112f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_112 - FacilityLocation_112t: - roomNumber: "112t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_112 + name: "Múzeumpedagógia" + size: 37.73 + pavement: 'stone' + parent: FacilityLocation_K + FacilityLocation_112_2: + roomNumber: "112.2" + name: "Közlekedő" + size: 2.56 + pavement: 'ceramic' + parent: FacilityLocation_K + FacilityLocation_112_3: + roomNumber: "112.3" + name: "Technikai helység" + size: 1.75 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_113: roomNumber: "113" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_113e: - roomNumber: "113e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_113 - FacilityLocation_113f: - roomNumber: "113f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_113 - FacilityLocation_113t: - roomNumber: "113t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_113 + name: "Előtér" + size: 13.05 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_114: roomNumber: "114" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_114e: - roomNumber: "114e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_114 - FacilityLocation_114f: - roomNumber: "114f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_114 - FacilityLocation_114t: - roomNumber: "114t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_114 + name: "Üzlet" + size: 13.61 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_115: roomNumber: "115" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_115e: - roomNumber: "115e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_115 - FacilityLocation_115f: - roomNumber: "115f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_115 - FacilityLocation_115t: - roomNumber: "115t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_115 + name: "Kiállítótér" + size: 23.45 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_116: roomNumber: "116" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_116e: - roomNumber: "116e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_116 - FacilityLocation_116f: - roomNumber: "116f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_116 - FacilityLocation_116t: - roomNumber: "116t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_116 + name: "Kiállítótér" + size: 23.71 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_117: roomNumber: "117" - name: "szoba IV." - size: 16.48 - parent: FacilityLocation_1 - FacilityLocation_117e: - roomNumber: "117e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_117 - FacilityLocation_117f: - roomNumber: "117f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_117 - FacilityLocation_117t: - roomNumber: "117t" - name: "terasz" - size: 5.33 - parent: FacilityLocation_117 + name: "Kiállítótér" + size: 68.34 + pavement: 'stone' + parent: FacilityLocation_K + FacilityLocation_118: + roomNumber: "118" + name: "Előtér" + size: 14.31 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_119: roomNumber: "119" - name: "gépészeti terúlet" - size: 28.07 - parent: FacilityLocation_1 + name: "Lépcsőház" + size: 11.05 + pavement: 'metal_plate' + parent: FacilityLocation_K FacilityLocation_120: roomNumber: "120" - name: "elektromos kapcsolótér" - size: 1.87 - parent: FacilityLocation_1 + name: "Előadás kiállítótér" + size: 63.59 + pavement: 'stone' + parent: FacilityLocation_K FacilityLocation_121: roomNumber: "121" - name: "szoba III." - size: 18.42 - parent: FacilityLocation_1 - FacilityLocation_121e: - roomNumber: "121e" - name: "előtér" - size: 2.66 - parent: FacilityLocation_121 - FacilityLocation_121f: - roomNumber: "121f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_121 - FacilityLocation_121t: - roomNumber: "121t" - name: "erkély" - size: 7.13 - parent: FacilityLocation_121 + name: "WC" + size: 5.82 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_122: roomNumber: "122" - name: "szoba VI." - size: 21.70 - parent: FacilityLocation_1 - FacilityLocation_122e: - roomNumber: "122e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_122 - FacilityLocation_122f: - roomNumber: "122f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_122 - FacilityLocation_122t: - roomNumber: "122t" - name: "terasz" - size: 7.13 - parent: FacilityLocation_122 + name: "Előtér" + size: 4.82 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_123: roomNumber: "123" - name: "szoba I." - size: 16.85 - parent: FacilityLocation_1 - FacilityLocation_123e: - roomNumber: "123e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_123 - FacilityLocation_123f: - roomNumber: "123f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_123 - FacilityLocation_123t: - roomNumber: "123t" - name: "terasz" - size: 5.54 - parent: FacilityLocation_123 + name: "Raktár" + size: 15.98 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_124: roomNumber: "124" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_1 - FacilityLocation_124e: - roomNumber: "124e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_124 - FacilityLocation_124f: - roomNumber: "124f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_124 - FacilityLocation_124t: - roomNumber: "124t" - name: "terasz" - size: 5.38 - parent: FacilityLocation_124 + name: "Gépészet" + size: 53.66 + pavement: 'ceramic' + parent: FacilityLocation_K FacilityLocation_125: roomNumber: "125" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_125e: - roomNumber: "125e" - name: "előtér" + name: "Üzemi lépcső" + size: 20.39 + pavement: 'ceramic' + parent: FacilityLocation_K + FacilityLocation_A11: + roomNumber: "A11" + name: "Gépészeti szerelőakna" size: 2.04 - parent: FacilityLocation_125 - FacilityLocation_125f: - roomNumber: "125f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_125 - FacilityLocation_125t: - roomNumber: "125t" - name: "terasz" - size: 5.54 - parent: FacilityLocation_125 - FacilityLocation_126: - roomNumber: "126" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_126e: - roomNumber: "126e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_126 - FacilityLocation_126f: - roomNumber: "126f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_126 - FacilityLocation_126t: - roomNumber: "126t" - name: "terasz" - size: 5.54 - parent: FacilityLocation_126 - FacilityLocation_127: - roomNumber: "127" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_127e: - roomNumber: "127e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_127 - FacilityLocation_127f: - roomNumber: "127f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_127 - FacilityLocation_127t: - roomNumber: "127t" - name: "terasz" - size: 5.54 - parent: FacilityLocation_127 - FacilityLocation_128: - roomNumber: "128" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_128e: - roomNumber: "128e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_128 - FacilityLocation_128f: - roomNumber: "128f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_128 - FacilityLocation_128at: - roomNumber: "128at" - name: "terasz" - size: 5.54 - parent: FacilityLocation_128 - FacilityLocation_129: - roomNumber: "129" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_129e: - roomNumber: "129e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_129 - FacilityLocation_129f: - roomNumber: "129f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_129 - FacilityLocation_129t: - roomNumber: "129t" - name: "terasz" - size: 5.54 - parent: FacilityLocation_129 - FacilityLocation_130: - roomNumber: "130" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_1 - FacilityLocation_130e: - roomNumber: "130e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_130 - FacilityLocation_130f: - roomNumber: "130f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_130 - FacilityLocation_130t: - roomNumber: "130t" - name: "terasz" - size: 5.54 - parent: FacilityLocation_130 - FacilityLocation_131: - roomNumber: "131" - name: "szoba II." - size: 17.22 - parent: FacilityLocation_1 - FacilityLocation_131e: - roomNumber: "131e" - name: "előtér" - size: 2.66 - parent: FacilityLocation_131 - FacilityLocation_131f: - roomNumber: "131f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_131 - FacilityLocation_132: - roomNumber: "132" - name: "szoba II." - size: 17.22 - parent: FacilityLocation_1 - FacilityLocation_132e: - roomNumber: "132e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_132 - FacilityLocation_132f: - roomNumber: "132f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_132 - FacilityLocation_132t: - roomNumber: "132t" - name: "terasz" - size: 5.60 - parent: FacilityLocation_132 - FacilityLocation_133: - roomNumber: "133" - name: "menekülési ajtó külső lépcsővel" - size: 0 - parent: FacilityLocation_1 - FacilityLocation_134: - roomNumber: "134" - name: "közlekedő" - size: 46.03 - parent: FacilityLocation_1 - FacilityLocation_135: - roomNumber: "135" - name: "lift előtér telefonos sarokkal" - size: 18.00 - parent: FacilityLocation_1 - FacilityLocation_135lk: - roomNumber: "135lk" - name: "lépcsőkarok pihenővel" - size: 17.82 - parent: FacilityLocation_135 - FacilityLocation_137: - roomNumber: "137" - name: "lépcsőház" - size: 25.86 - parent: FacilityLocation_1 - FacilityLocation_137lk: - roomNumber: "137lk" - name: "lépcsőkarok pihenővel" - size: 15.12 - parent: FacilityLocation_1 - FacilityLocation_138: - roomNumber: "138" - name: "tároló" - size: 0.98 - parent: FacilityLocation_1 + pavement: 'stone' + parent: FacilityLocation_K + FacilityLocation_A12: + roomNumber: "A12" + name: "Gépészeti szerelőakna" + size: 0.68 + pavement: 'stone' + parent: FacilityLocation_K + FacilityLocation_A13: + roomNumber: "A13" + name: "Gépészeti szerelőakna" + size: 1.98 + pavement: 'stone' + parent: FacilityLocation_K + FacilityLocation_PCS101: + roomNumber: "Pcs101" + name: "Gépészeti szerelőtér" + size: 39.45 + pavement: 'stone' + parent: FacilityLocation_K + FacilityLocation_PCS102: + roomNumber: "Pcs102" + name: "Gépészeti szerelőtér" + size: 4.8 + pavement: 'stone' + parent: FacilityLocation_K -# __2__ első emeleti helyiségek +# __T__ pince helyiségek + FacilityLocation_200: + roomNumber: "200" + name: "Gül Baba Türbéje" + size: 31.38 + pavement: 'hex_brick' + parent: FacilityLocation_T FacilityLocation_201: roomNumber: "201" - name: "mozgássérült szoba" - size: 22.44 - parent: FacilityLocation_2 - FacilityLocation_201e: - roomNumber: "201e" - name: "előtér" - size: 3.26 - parent: FacilityLocation_201 - FacilityLocation_201f: - roomNumber: "201f" - name: "fürdő" - size: 5.27 - parent: FacilityLocation_201 - FacilityLocation_201t: - roomNumber: "201t" - name: "erkély" - size: 7.43 - parent: FacilityLocation_201 + name: "Bejárati előtér" + size: 14.11 + pavement: 'stone' + parent: FacilityLocation_T + FacilityLocation_201_1: + roomNumber: "201.1" + name: "Közlekedő" + size: 9.59 + pavement: 'stone' + parent: FacilityLocation_T FacilityLocation_202: roomNumber: "202" - name: "raktár" - size: 3.85 - parent: FacilityLocation_2 + name: "Üzemeltetési adminisztráció" + size: 6.16 + pavement: 'ceramic' + parent: FacilityLocation_T FacilityLocation_203: roomNumber: "203" - name: "szobasszony" - size: 17.47 - parent: FacilityLocation_2 - FacilityLocation_203e: - roomNumber: "203e" - name: "előtér" - size: 4.34 - parent: FacilityLocation_203 - FacilityLocation_203t: - roomNumber: "203t" - name: "erkély" - size: 6.16 - parent: FacilityLocation_203 + name: "Üzemeltetési raktár" + size: 6.12 + pavement: 'ceramic' + parent: FacilityLocation_T FacilityLocation_204: roomNumber: "204" - name: "szoba V." - size: 17.47 - parent: FacilityLocation_2 - FacilityLocation_204e: - roomNumber: "204e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_204 - FacilityLocation_204f: - roomNumber: "204f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_204 - FacilityLocation_204t: - roomNumber: "204t" - name: "erkély" - size: 5.84 - parent: FacilityLocation_204 - FacilityLocation_205: - roomNumber: "205" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_205e: - roomNumber: "205e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_205 - FacilityLocation_205f: - roomNumber: "205f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_205 - FacilityLocation_205t: - roomNumber: "205t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_205 + name: "Elektromos kapcsoló helység" + size: 7.31 + pavement: 'ceramic' + parent: FacilityLocation_T + FacilityLocation_205_1: + roomNumber: "205.1" + name: "Teakonyha" + size: 8.04 + pavement: 'ceramic' + parent: FacilityLocation_T + FacilityLocation_205_2: + roomNumber: "205.2" + name: "Öltöző" + size: 3.55 + pavement: 'ceramic' + parent: FacilityLocation_T + FacilityLocation_205_3: + roomNumber: "205.3" + name: "WC" + size: 3.00 + pavement: 'ceramic' + parent: FacilityLocation_T + FacilityLocation_205_4: + roomNumber: "205.4" + name: "Szerver" + size: 6.22 + pavement: 'ceramic' + parent: FacilityLocation_T FacilityLocation_206: roomNumber: "206" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_206e: - roomNumber: "206e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_206 - FacilityLocation_206f: - roomNumber: "206f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_206 - FacilityLocation_206t: - roomNumber: "206t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_206 - FacilityLocation_207: - roomNumber: "207" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_207e: - roomNumber: "207e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_207 - FacilityLocation_207f: - roomNumber: "207f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_207 - FacilityLocation_207t: - roomNumber: "207t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_207 + name: "Lépcső" + size: 10.33 + pavement: 'stone' + parent: FacilityLocation_T + FacilityLocation_207_1: + roomNumber: "207.1" + name: "Lépcsőházgépészet" + size: 8.28 + pavement: 'ceramic' + parent: FacilityLocation_T + FacilityLocation_207_2: + roomNumber: "207.2" + name: "Hőszivattyú kültéri egységek" + size: 4.76 + pavement: 'grating' + parent: FacilityLocation_T FacilityLocation_208: roomNumber: "208" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_208e: - roomNumber: "208e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_208 - FacilityLocation_208f: - roomNumber: "208f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_208 - FacilityLocation_208t: - roomNumber: "208t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_208 - FacilityLocation_209: - roomNumber: "209" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_209e: - roomNumber: "209e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_209 - FacilityLocation_209f: - roomNumber: "209f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_209 - FacilityLocation_209t: - roomNumber: "209t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_209 - FacilityLocation_210: - roomNumber: "210" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_210e: - roomNumber: "210e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_210 - FacilityLocation_210f: - roomNumber: "210f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_210 - FacilityLocation_210t: - roomNumber: "210t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_210 - FacilityLocation_211: - roomNumber: "211" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_211e: - roomNumber: "211e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_211 - FacilityLocation_211f: - roomNumber: "211f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_211 - FacilityLocation_211t: - roomNumber: "211t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_211 - FacilityLocation_212: - roomNumber: "212" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_212e: - roomNumber: "212e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_212 - FacilityLocation_212f: - roomNumber: "212f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_212 - FacilityLocation_212t: - roomNumber: "212t" - name: erkély - size: 5.54 - parent: FacilityLocation_212 - FacilityLocation_213: - roomNumber: "213" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_213e: - roomNumber: "213e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_213 - FacilityLocation_213f: - roomNumber: "213f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_213 - FacilityLocation_213t: - roomNumber: "213t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_213 - FacilityLocation_214: - roomNumber: "214" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_214e: - roomNumber: "214e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_214 - FacilityLocation_214f: - roomNumber: "214f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_214 - FacilityLocation_214t: - roomNumber: "214t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_214 - FacilityLocation_215: - roomNumber: "215" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_215e: - roomNumber: "215e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_215 - FacilityLocation_215f: - roomNumber: "215f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_215 - FacilityLocation_215t: - roomNumber: "215t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_215 - FacilityLocation_216: - roomNumber: "216" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_216e: - roomNumber: "216e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_216 - FacilityLocation_216f: - roomNumber: "216f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_216 - FacilityLocation_216t: - roomNumber: "216t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_216 - FacilityLocation_217: - roomNumber: "217" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_217e: - roomNumber: "217e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_217 - FacilityLocation_217f: - roomNumber: "217f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_217 - FacilityLocation_217t: - roomNumber: "217t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_217 - FacilityLocation_218: - roomNumber: "218" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_218e: - roomNumber: "218e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_218 - FacilityLocation_218f: - roomNumber: "218f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_218 - FacilityLocation_218t: - roomNumber: "218t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_218 - FacilityLocation_219: - roomNumber: "219" - name: "szoba V." - size: 19.70 - parent: FacilityLocation_2 - FacilityLocation_219e: - roomNumber: "219e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_219 - FacilityLocation_219f: - roomNumber: "219f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_219 - FacilityLocation_219t: - roomNumber: "219t" - name: "erkély" - size: 6.39 - parent: FacilityLocation_219 - FacilityLocation_220: - roomNumber: "220" - name: "elektromos kapcsolótér" - size: 1.87 - parent: FacilityLocation_2 - FacilityLocation_221: - roomNumber: "221" - name: "szoba III." - size: 18.68 - parent: FacilityLocation_2 - FacilityLocation_221e: - roomNumber: "221e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_221 - FacilityLocation_221f: - roomNumber: "221f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_221 - FacilityLocation_221t: - roomNumber: "221t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_221 - FacilityLocation_222: - roomNumber: "222" - name: "szoba VI." - size: 21.70 - parent: FacilityLocation_2 - FacilityLocation_222e: - roomNumber: "222e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_222 - FacilityLocation_222f: - roomNumber: "222f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_222 - FacilityLocation_222t: - roomNumber: "222t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_222 - FacilityLocation_223: - roomNumber: "223" - name: "szoba I." - size: 16.85 - parent: FacilityLocation_2 - FacilityLocation_223e: - roomNumber: "223e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_223 - FacilityLocation_223f: - roomNumber: "223f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_223 - FacilityLocation_223t: - roomNumber: "223t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_223 - FacilityLocation_224: - roomNumber: "224" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_224e: - roomNumber: "224e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_224 - FacilityLocation_224f: - roomNumber: "224f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_224 - FacilityLocation_224t: - roomNumber: "224t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_224 - FacilityLocation_225: - roomNumber: "225" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_225e: - roomNumber: "225e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_225 - FacilityLocation_225f: - roomNumber: "225f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_225 - FacilityLocation_225t: - roomNumber: "225t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_225 - FacilityLocation_226: - roomNumber: "226" - name: "szoba I." - size: 16.73 - parent: FacilityLocation_2 - FacilityLocation_226e: - roomNumber: "226e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_226 - FacilityLocation_226f: - roomNumber: "226f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_226 - FacilityLocation_226t: - roomNumber: "226t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_226 - FacilityLocation_227: - roomNumber: "227" - name: "szoba I." - size: 13.17 - parent: FacilityLocation_2 - FacilityLocation_227n: - roomNumber: "227n" - name: "nappali" - size: 20.70 - parent: FacilityLocation_227 - FacilityLocation_227e: - roomNumber: "227e" - name: "előtér" - size: 6.27 - parent: FacilityLocation_227 - FacilityLocation_227f: - roomNumber: "227f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_227 - FacilityLocation_227k: - roomNumber: "227k" - name: "konyha" - size: 5.26 - parent: FacilityLocation_227 - FacilityLocation_227t: - roomNumber: "227t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_227 - FacilityLocation_227tn: - roomNumber: "227tn" - name: "erkély" - size: 5.54 - parent: FacilityLocation_227 - FacilityLocation_228: - roomNumber: "228" - name: "szoba" - size: 20.70 - parent: FacilityLocation_2 - FacilityLocation_228e: - roomNumber: "228e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_228 - FacilityLocation_228f: - roomNumber: "228f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_228 - FacilityLocation_228t: - roomNumber: "228t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_228 - FacilityLocation_229: - roomNumber: "229" - name: "szoba II." - size: 17.22 - parent: FacilityLocation_2 - FacilityLocation_229e: - roomNumber: "229e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_229 - FacilityLocation_229f: - roomNumber: "229f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_229 - FacilityLocation_229t: - roomNumber: "229t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_229 - FacilityLocation_230: - roomNumber: "230" - name: "szoba" - size: 20.70 - parent: FacilityLocation_2 - FacilityLocation_230e: - roomNumber: "230e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_230 - FacilityLocation_230f: - roomNumber: "230f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_230 - FacilityLocation_230t: - roomNumber: "230t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_230 - FacilityLocation_231: - roomNumber: "231" - name: "menekülési ajtó külső lépcsővel" - size: 0 - parent: FacilityLocation_2 - FacilityLocation_232: - roomNumber: "232" - name: "szoba II." - size: 17.22 - parent: FacilityLocation_2 - FacilityLocation_232e: - roomNumber: "232e" - name: "előtér" - size: 2.04 - parent: FacilityLocation_232 - FacilityLocation_232f: - roomNumber: "232f" - name: "fürdő" - size: 3.85 - parent: FacilityLocation_232 - FacilityLocation_232t: - roomNumber: "232t" - name: "erkély" - size: 5.54 - parent: FacilityLocation_232 - FacilityLocation_233: - roomNumber: "233" - name: "lépcsőház - lift eleőtér" - size: 25.86 - parent: FacilityLocation_2 - FacilityLocation_233lk: - roomNumber: "233lk" - name: "lépcsőkarok pihenővel" - size: 15.12 - parent: FacilityLocation_2 - FacilityLocation_234: - roomNumber: "234" - name: "tároló" - size: 0.98 - parent: FacilityLocation_2 - FacilityLocation_235: - roomNumber: "235" - name: "közlekedő" - size: 46.03 - parent: FacilityLocation_2 - FacilityLocation_236: - roomNumber: "236" - name: "lift előtér telefonos sarokkal" - size: 18.00 - parent: FacilityLocation_2 - FacilityLocation_236lk: - roomNumber: "236lk" - name: "lépcsőkarok pihenővel" - size: 17.82 - parent: FacilityLocation_2 + name: "Lépcsőház" + size: 5.41 + pavement: 'metal_plate' + parent: FacilityLocation_T + FacilityLocation_A21: + roomNumber: "A21" + name: "Gépészeti szerelőakna" + size: 2.05 + pavement: 'stone' + parent: FacilityLocation_T + FacilityLocation_A22: + roomNumber: "A22" + name: "Angolakna" + size: 3.11 + pavement: 'stone' + parent: FacilityLocation_T + FacilityLocation_A23: + roomNumber: "A23" + name: "Angolakna" + size: 5.14 + pavement: 'stone' + parent: FacilityLocation_KT -# __3__ első emeleti helyiségek +# __KT__ pince helyiségek FacilityLocation_301: roomNumber: "301" - name: "mozgássérült szoba" - size: 22.44 - parent: FacilityLocation_3 - FacilityLocation_301e: - roomNumber: "301e" - name: "előtér" - size: 4.88 - parent: FacilityLocation_301 - FacilityLocation_301f: - roomNumber: "301f" - name: "fürdő" - size: 5.08 - parent: FacilityLocation_301 - FacilityLocation_301t: - roomNumber: "301t" - name: "erkély" - size: 6.35 - parent: FacilityLocation_301 - FacilityLocation_302: - roomNumber: "302" - name: "elektromos kapcsolótér" - size: 1.87 - parent: FacilityLocation_3 - FacilityLocation_303: - roomNumber: "303" - name: "iroda" - size: 27.47 - parent: FacilityLocation_3 - FacilityLocation_303e: - roomNumber: "303e" - name: "előtér" - size: 4.32 - parent: FacilityLocation_303 - FacilityLocation_303_1: - roomNumber: "303/1" - name: "számtech. elosztó" - size: 3.66 - parent: FacilityLocation_303 - FacilityLocation_303t: - roomNumber: "303t" - name: "erkély" - size: 5.13 - parent: FacilityLocation_303 - FacilityLocation_304: - roomNumber: "304" - name: "szoba V." - size: 17.72 - parent: FacilityLocation_3 - FacilityLocation_304e: - roomNumber: "304e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_304 - FacilityLocation_304f: - roomNumber: "304f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_304 - FacilityLocation_304t: - roomNumber: "304t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_304 - FacilityLocation_305: - roomNumber: "305" - name: "iroda" - size: 25.09 - parent: FacilityLocation_3 - FacilityLocation_305t: - roomNumber: "305t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_305 - FacilityLocation_306: - roomNumber: "306" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_306e: - roomNumber: "306e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_306 - FacilityLocation_306f: - roomNumber: "306f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_306 - FacilityLocation_306t: - roomNumber: "306t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_306 - FacilityLocation_307: - roomNumber: "307" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_307e: - roomNumber: "307e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_307 - FacilityLocation_307f: - roomNumber: "307f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_307 - FacilityLocation_307t: - roomNumber: "307t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_307 - FacilityLocation_308: - roomNumber: "308" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_308e: - roomNumber: "308e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_308 - FacilityLocation_308f: - roomNumber: "308f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_308 - FacilityLocation_308t: - roomNumber: "308t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_308 - FacilityLocation_309: - roomNumber: "309" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_309e: - roomNumber: "309e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_309 - FacilityLocation_309f: - roomNumber: "309f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_309 - FacilityLocation_309t: - roomNumber: "309t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_309 - FacilityLocation_310: - roomNumber: "310" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_310e: - roomNumber: "310e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_310 - FacilityLocation_310f: - roomNumber: "310f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_310 - FacilityLocation_310t: - roomNumber: "310t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_310 - FacilityLocation_311: - roomNumber: "311" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_311e: - roomNumber: "311e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_311 - FacilityLocation_311f: - roomNumber: "311f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_311 - FacilityLocation_311t: - roomNumber: "311t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_311 - FacilityLocation_312: - roomNumber: "312" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_312e: - roomNumber: "312e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_312 - FacilityLocation_312f: - roomNumber: "312f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_312 - FacilityLocation_312t: - roomNumber: "312t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_312 - FacilityLocation_313: - roomNumber: "313" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_313e: - roomNumber: "313e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_313 - FacilityLocation_313f: - roomNumber: "313f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_313 - FacilityLocation_313t: - roomNumber: "313t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_313 - FacilityLocation_314: - roomNumber: "314" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_314e: - roomNumber: "314e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_314 - FacilityLocation_314f: - roomNumber: "314f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_314 - FacilityLocation_314t: - roomNumber: "314t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_314 - FacilityLocation_315: - roomNumber: "315" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_315e: - roomNumber: "315e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_315 - FacilityLocation_315f: - roomNumber: "315f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_315 - FacilityLocation_315t: - roomNumber: "315t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_315 - FacilityLocation_316: - roomNumber: "316" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_316e: - roomNumber: "316e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_316 - FacilityLocation_316f: - roomNumber: "316f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_316 - FacilityLocation_316t: - roomNumber: "316t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_316 - FacilityLocation_317: - roomNumber: "317" - name: "szoba I." - size: 16.98 - parent: FacilityLocation_3 - FacilityLocation_317e: - roomNumber: "317e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_317 - FacilityLocation_317f: - roomNumber: "317f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_317 - FacilityLocation_317t: - roomNumber: "317t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_317 - FacilityLocation_318: - roomNumber: "318" - name: "szoba IV." - size: 16.48 - parent: FacilityLocation_3 - FacilityLocation_318e: - roomNumber: "318e" - name: "előtér" - size: 3.89 - parent: FacilityLocation_318 - FacilityLocation_318f: - roomNumber: "318f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_318 - FacilityLocation_318t: - roomNumber: "318t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_318 - FacilityLocation_319: - roomNumber: "319" - name: "szoba V." - size: 20.07 - parent: FacilityLocation_3 - FacilityLocation_319e: - roomNumber: "319e" - name: "előtér" - size: 3.66 - parent: FacilityLocation_319 - FacilityLocation_319f: - roomNumber: "319f" - name: "fürdő" - size: 3.65 - parent: FacilityLocation_319 - FacilityLocation_319t: - roomNumber: "319t" - name: "erkély" - size: 6.10 - parent: FacilityLocation_319 - FacilityLocation_320: - roomNumber: "320" - name: "iroda" - size: 21.69 - parent: FacilityLocation_3 - FacilityLocation_320t: - roomNumber: "320t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_320 - FacilityLocation_321: - roomNumber: "321" - name: "iroda" - size: 18.42 - parent: FacilityLocation_3 - FacilityLocation_321t: - roomNumber: "321t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_321 - FacilityLocation_322: - roomNumber: "322" - name: "iroda" - size: 25.17 - parent: FacilityLocation_3 - FacilityLocation_322t: - roomNumber: "322t" - name: "erkély" - size: 5.376 - parent: FacilityLocation_322 - FacilityLocation_323: - roomNumber: "323" - name: "iroda" - size: 16.85 - parent: FacilityLocation_3 - FacilityLocation_323t: - roomNumber: "323t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_323 - FacilityLocation_324: - roomNumber: "324" - name: "iroda" - size: 25.17 - parent: FacilityLocation_3 - FacilityLocation_324t: - roomNumber: "324t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_324 - FacilityLocation_325: - roomNumber: "325" - name: "iroda" - size: 16.73 - parent: FacilityLocation_3 - FacilityLocation_325t: - roomNumber: "325t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_325 - FacilityLocation_326: - roomNumber: "326" - name: "iroda" - size: 25.17 - parent: FacilityLocation_3 - FacilityLocation_326t: - roomNumber: "326t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_326 - FacilityLocation_327: - roomNumber: "327" - name: "iroda" - size: 16.75 - parent: FacilityLocation_3 - FacilityLocation_327t: - roomNumber: "327t" - name: "erkély" - size: 5.33 - parent: FacilityLocation_327 - FacilityLocation_328a: - roomNumber: "328a" - name: "tárgyaló" - size: 37.31 - parent: FacilityLocation_3 - FacilityLocation_328at: - roomNumber: "328at" - name: "erkély" - size: 5.38 - parent: FacilityLocation_328a - FacilityLocation_328b: - roomNumber: "328b" - name: "konyha-étkező" - size: 24.02 - parent: FacilityLocation_3 - FacilityLocation_328bt: - roomNumber: "328bt" - name: "konyha-étkező" - size: 24.02 - parent: FacilityLocation_328b - FacilityLocation_329: - roomNumber: "329" - name: "iroda" - size: 012.12 - parent: FacilityLocation_3 - FacilityLocation_329t: - roomNumber: "329t" - name: "erkély" - size: 6.02 - parent: FacilityLocation_329 - FacilityLocation_330: - roomNumber: "330" - name: "közlekedő" - size: 12.20 - parent: FacilityLocation_3 - FacilityLocation_330t: - roomNumber: "330t" - name: "erkély" - size: 5.38 - parent: FacilityLocation_330 - FacilityLocation_331: - roomNumber: "331" - name: "iroda" - size: 12.48 - parent: FacilityLocation_3 - FacilityLocation_332: - roomNumber: "332" - name: "ffi. WC mosdóval" - size: 2.76 - parent: FacilityLocation_3 - FacilityLocation_333: - roomNumber: "333" - name: "raktár" - size: 4.65 - parent: FacilityLocation_3 - FacilityLocation_334: - roomNumber: "334" - name: "közlekedő" - size: 27.76 - parent: FacilityLocation_3 - FacilityLocation_335: - roomNumber: "335" - name: "fénymásoló" - size: 8.86 - parent: FacilityLocation_3 - FacilityLocation_336: - roomNumber: "336" - name: "menekülési ajtó külső lépcsővel" - size: 0 - parent: FacilityLocation_3 - FacilityLocation_337: - roomNumber: "337" - name: "társalgó" - size: 31.04 - parent: FacilityLocation_3 - FacilityLocation_338: - roomNumber: "338" - name: "női WC mosdóval" - size: 3.79 - parent: FacilityLocation_3 - FacilityLocation_339: - roomNumber: "339" - name: "közlekedő" - size: 19.33 - parent: FacilityLocation_3 - FacilityLocation_340: - roomNumber: "340" - name: "akadálymentes WC" - size: 3.81 - parent: FacilityLocation_3 - FacilityLocation_341: - roomNumber: "341" - name: "lift előtér telefonos sarokkal" - size: 10.00 - parent: FacilityLocation_3 - FacilityLocation_341lk: - roomNumber: "341lk" - name: "lépcsőkarok pihenővel" - size: 17.82 - parent: FacilityLocation_3 - FacilityLocation_342: - roomNumber: "342" - name: "közlekedő" - size: 8.64 - parent: FacilityLocation_3 - FacilityLocation_343: - roomNumber: "343" - name: "közlekedő" - size: 67.84 - parent: FacilityLocation_3 - FacilityLocation_344: - roomNumber: "344" - name: "lépcsőház" - size: 25.86 - parent: FacilityLocation_3 - FacilityLocation_344lk: - roomNumber: "344lk" - name: "lépcsőkarok pihenővel" - size: 15.12 - parent: FacilityLocation_3 - - -# __4__ első emeleti helyiségek - FacilityLocation_401: - roomNumber: "401" - name: "ruhatár" - size: 11.23 - parent: FacilityLocation_4 - FacilityLocation_402: - roomNumber: "402" - name: "előtér" - size: 7.75 - parent: FacilityLocation_4 - FacilityLocation_403: - roomNumber: "403" - name: "székraktár" - size: 27.59 - parent: FacilityLocation_4 - FacilityLocation_404: - roomNumber: "404" - name: "női WC mosdóval" - size: 9.22 - parent: FacilityLocation_4 - FacilityLocation_405: - roomNumber: "405" - name: "mosdó" - size: 1.98 - parent: FacilityLocation_4 - FacilityLocation_406: - roomNumber: "406" - name: "ffi. WC" - size: 7.50 - parent: FacilityLocation_4 - FacilityLocation_407: - roomNumber: "407" - name: "mozgássérült WC" - size: 3.24 - parent: FacilityLocation_4 - FacilityLocation_408: - roomNumber: "408" - name: "kistanácsterem" - size: 82.26 - parent: FacilityLocation_4 - FacilityLocation_409: - roomNumber: "409" - name: "kistanácsterem" - size: 81.11 - parent: FacilityLocation_4 - FacilityLocation_409tK: - roomNumber: "409tK" - name: "erkély keleti oldal" - size: 93.36 - parent: FacilityLocation_4 - FacilityLocation_410: - roomNumber: "410" - name: "belépő" - size: 2.05 - parent: FacilityLocation_4 - FacilityLocation_411: - roomNumber: "411" - name: "tolmácsfülke" - size: 6.25 - parent: FacilityLocation_4 - FacilityLocation_412: - roomNumber: "412" - name: "tolmácsfülke" - size: 6.25 - parent: FacilityLocation_4 - FacilityLocation_413: - roomNumber: "413" - name: "női WC mosdóval" - size: 4.31 - parent: FacilityLocation_4 - FacilityLocation_414: - roomNumber: "414" - name: "ffi. WC mosdóval" - size: 10.92 - parent: FacilityLocation_4 - FacilityLocation_415: - roomNumber: "415" - name: "közlekedő" - size: 36.19 - parent: FacilityLocation_4 - FacilityLocation_416: - roomNumber: "416" - name: "computer szoba" - size: 26.64 - parent: FacilityLocation_4 - FacilityLocation_417: - roomNumber: "417" - name: "csoportvezetői szoba" - size: 27.81 - parent: FacilityLocation_4 - FacilityLocation_418: - roomNumber: "418" - name: "takrítószer tároló" - size: 3.31 - parent: FacilityLocation_4 - FacilityLocation_419: - roomNumber: "419" - name: "hidraulika" - size: 5.46 - parent: FacilityLocation_4 - FacilityLocation_420: - roomNumber: "420" - name: "lift előtér - lépcsőház" - size: 7.92 - parent: FacilityLocation_4 - FacilityLocation_421lk: - roomNumber: "421lk" - name: "lépcsőkarok pihenővel" - size: 14.55 - parent: FacilityLocation_4 - FacilityLocation_421: - roomNumber: "421" - name: "tároló" - size: 0.98 - parent: FacilityLocation_4 - FacilityLocation_422: - roomNumber: "422" - name: "előcsarnok" - size: 229.81 - parent: FacilityLocation_4 - FacilityLocation_422tNY: - roomNumber: "422tNY" - name: "erkély nyugati oldal" - size: 93.36 - parent: FacilityLocation_4 - FacilityLocation_422lk: - roomNumber: "422lk" - name: "lépcsőkarok pihenővel" - size: 17.82 - parent: FacilityLocation_4 - FacilityLocation_423: - roomNumber: "423" - name: "elektromos kapcsolótér" - size: 2.94 - parent: FacilityLocation_4 - FacilityLocation_424: - roomNumber: "424" - name: "teakonyha" - size: 7.41 - parent: FacilityLocation_4 - FacilityLocation_425: - roomNumber: "425" - name: "tolmácsfülke" - size: 9.69 - parent: FacilityLocation_4 - FacilityLocation_426: - roomNumber: "426" - name: "tolmácsfülke" - size: 6.00 - parent: FacilityLocation_4 - FacilityLocation_427: - roomNumber: "427" - name: "közlekedő" - size: 2.59 - parent: FacilityLocation_4 - FacilityLocation_428: - roomNumber: "428" - name: "osztható tanácsterem" - size: 283.49 - parent: FacilityLocation_4 - FacilityLocation_429: - roomNumber: "429" - name: "közlekedő" - size: 31.26 - parent: FacilityLocation_4 - FacilityLocation_430: - roomNumber: "430" - name: "menekülési ajtó külső lépcsővel" - size: 0 - parent: FacilityLocation_4 - FacilityLocation_431: - roomNumber: "431" - name: "tolmácsfülke" - size: 6.00 - parent: FacilityLocation_4 - FacilityLocation_432: - roomNumber: "432" - name: "tolmácsfülke" - size: 6.00 - parent: FacilityLocation_4 - FacilityLocation_433: - roomNumber: "433" - name: "stúdió" - size: 4.56 - parent: FacilityLocation_4 - FacilityLocation_434: - roomNumber: "434" - name: "tolmácsfülke" - size: 6.00 - parent: FacilityLocation_4 - FacilityLocation_435: - roomNumber: "435" - name: "tolmácsfülke" - size: 6.00 - parent: FacilityLocation_4 + name: "Előtér" + size: 10.79 + pavement: 'stone' + parent: FacilityLocation_KT + FacilityLocation_A31: + roomNumber: "A31" + name: "Gépészeti szerelőakna" + size: 1.41 + pavement: 'stone' + parent: FacilityLocation_KT diff --git a/data/fixture/user.yml b/data/fixture/user.yml index 7d8aaa5..39366c1 100644 --- a/data/fixture/user.yml +++ b/data/fixture/user.yml @@ -1,253 +1,68 @@ Users: - User_1: + User_Zero: id: 1 name: Dávid email: yvan@yvan.hu - wantsEmail: true + wantsEmail: false job: tesztelő - phone: "+36 1 123 4567" + phone: "+36 70 450 5006" roles: admin active: true -# uzemeltetesi_vezeto - User_MajorosZoltan: +# uzemeltetesi_vezeto - gül baba side + User_UZVEZ: id: 10 - name: Majoros Zoltán - email: techsupport.eycb@coe.int + name: UZVEZ + email: uzvez@bggeneral.hu wantsEmail: false - job: technical support - phone: "+36-1-438-0174" + job: uzvez + phone: "+36-1-123-1234" roles: uzemeltetesi_vezeto active: true canChangePassword: false - User_RozsaSandor: - id: 11 - name: Rózsa Sándor - email: techsupport.eycb@coe.int - wantsEmail: false - job: technical support - phone: "+36-1-438-0174" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_HorvathCsaba: - id: 12 - name: Horváth Csaba - email: techsupport.eycb@coe.int - wantsEmail: false - job: technical support - phone: "+36-1-438-0174" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_PohlottLaszlo: - id: 13 - name: Pohlott László - email: techsupport.eycb@coe.int - wantsEmail: false - job: technical support - phone: "+36-1-438-0174" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_BalogKaroly: - id: 14 - name: Balog Károly - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_SzenteRoland: - id: 15 - name: Szente Roland - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_NekamIstvan: - id: 16 - name: Nékám István - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_KotroczoIstvan: - id: 17 - name: Kotroczó István - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_LandszmannZsolt: - id: 18 - name: LandszmannZsolt - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_GoliczaZoltan: - id: 19 - name: Golicza Zoltán - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_EckermannTibor: - id: 20 - name: Eckermann Tibor - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_FarkasAndras: - id: 21 - name: Farkas András - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_SimonZoltan: - id: 22 - name: Simon Zoltán - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_ZsoldosGeza: - id: 23 - name: Zsoldos Géza - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_MareschDavid: - id: 24 - name: Maresch Dávid - email: keyrm.beik@gmail.com - wantsEmail: false - job: biztonsági szolgálat - phone: "+36-1-438-1041" - roles: uzemeltetesi_vezeto - active: true - canChangePassword: false - User_BuczkoAttila: - id: 25 - name: Buczkó Attila - email: attila.buczko@coe.int - wantsEmail: true - job: technikus - phone: "+36-1-438-1078" - roles: uzemeltetesi_vezeto - active: true - User_KedveCsaba: - id: 26 - name: Kedve Csaba - email: csaba.kedves@coe.int - wantsEmail: true - job: üzemeltetési vezető - phone: "+36-1-438-1079" - roles: uzemeltetesi_vezeto - active: true -# ufo - User_DrHeimPeter: +# ufo - minisztérium + User_UFO: id: 40 - name: Dr. Heim Péter - email: peter.heim@mfa.gov.hu - wantsEmail: true - job: főosztályvezető h. - phone: "" + name: UFO + email: ufo@bggeneral.hu + wantsEmail: false + job: ufo + phone: "+36-1-123-1234" roles: ufo active: true - User_KrivdaLaszlo: - id: 41 - name: Krivda László - email: krivda@t-online.hu - wantsEmail: true - job: műszaki ellenőr - phone: "+36 30 942 9072" - roles: ufo - active: true -# betekinto - User_BaloghGabor: +# betekinto - bggeneral + User_BenkeGabor: id: 60 - name: Balogh Gábor - email: gabor.balogh@mfa.gov.hu - wantsEmail: true - job: főosztályvezető + name: Benke Gábor + email: benkeg@bggeneral.hu + wantsEmail: false + job: ügyvezető phone: "" roles: betekinto active: true - User_CsicselyTibor: - id: 61 - name: Csicsely Tibor - email: csicselyt@laterex.hu - wantsEmail: true - job: ügyvezető - phone: "+36 30 555 3634" - roles: betekinto - active: true -# projektvezeto - User_HantzmannGergely: - id: 82 - name: Hantzmann Gergely - email: hantzmanng@laterex.hu - wantsEmail: true - job: karbantartási csv. - phone: "+36 30 181 3591" - roles: projektvezeto,karbantarto - active: true +# projektvezeto - bggeneral User_KovacsLudovit: id: 83 name: Kovác Ludovit - email: kovacl@laterex.hu - wantsEmail: true + email: kovacl@bggeneral.hu + wantsEmail: false job: projektvezető phone: "+36 30 257 4183" roles: projektvezeto active: true -# karbantarto - User_MeszarosBela: +# karbantarto - bggeneral + User_OlahSandor: id: 90 name: Mészáros Béla - email: karbantarto1@laterex.hu + email: karbantarto1@bggeneral.hu wantsEmail: false job: karbantartó phone: "" roles: karbantarto active: true - User_SzathmaryZsoltMiklos: + User_FulopZoltan: id: 91 - name: Szathmáry Zsolt Miklos - email: karbantarto2@laterex.hu + name: Fülöp Zoltán + email: karbantarto2@bggeneral.hu wantsEmail: false job: karbantartó phone: "" diff --git a/src/App/Command/InitializeFixtureCommand.php b/src/App/Command/InitializeFixtureCommand.php index 9316088..19f5063 100644 --- a/src/App/Command/InitializeFixtureCommand.php +++ b/src/App/Command/InitializeFixtureCommand.php @@ -2,17 +2,17 @@ namespace App\Command; -use App\Service\FixtureLoaderService; +use App\Service\FixtureManager; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; class InitializeFixtureCommand extends Command { - /** @var FixtureLoaderService */ + /** @var FixtureManager */ private $fixtureLoaderService; - public function __construct(FixtureLoaderService $fixtureLoaderService) + public function __construct(FixtureManager $fixtureLoaderService) { $this->fixtureLoaderService = $fixtureLoaderService; parent::__construct(); @@ -26,6 +26,6 @@ class InitializeFixtureCommand extends Command protected function execute(InputInterface $input, OutputInterface $output) { - $this->fixtureLoaderService->load($output); + $this->fixtureLoaderService->initialize($output); } } diff --git a/src/App/Command/InitializeFixtureCommandFactory.php b/src/App/Command/InitializeFixtureCommandFactory.php index 5385e81..3e9d956 100644 --- a/src/App/Command/InitializeFixtureCommandFactory.php +++ b/src/App/Command/InitializeFixtureCommandFactory.php @@ -2,15 +2,15 @@ namespace App\Command; -use App\Service\FixtureLoaderService; +use App\Service\FixtureManager; use Interop\Container\ContainerInterface; class InitializeFixtureCommandFactory { public function __invoke(ContainerInterface $container) { - /** @var FixtureLoaderService $fixtureLoaderService */ - $fixtureLoaderService = $container->get(FixtureLoaderService::class); + /** @var FixtureManager $fixtureLoaderService */ + $fixtureLoaderService = $container->get(FixtureManager::class); return new InitializeFixtureCommand($fixtureLoaderService); } } diff --git a/src/App/ConfigProvider.php b/src/App/ConfigProvider.php index 0f6e835..6babe39 100644 --- a/src/App/ConfigProvider.php +++ b/src/App/ConfigProvider.php @@ -61,7 +61,7 @@ class ConfigProvider Service\UserService::class => Service\UserServiceFactory::class, Service\FaultManagerService::class => Service\FaultManagerServiceFactory::class, Service\FaultAttachmentService::class => Service\FaultAttachmentServiceFactory::class, - Service\FixtureLoaderService::class => Service\FixtureLoaderServiceFactory::class, + Service\FixtureManager::class => Service\FixtureManagerFactory::class, Service\ErrorCategoryService::class => Service\ErrorCategoryServiceFactory::class, Service\ErrorOriginService::class => Service\ErrorOriginServiceFactory::class, Service\FacilityLocationService::class => Service\FacilityLocationServiceFactory::class, diff --git a/src/App/Fixture/ErrorCategoryLoader.php b/src/App/Fixture/ErrorCategoryFixture.php similarity index 54% rename from src/App/Fixture/ErrorCategoryLoader.php rename to src/App/Fixture/ErrorCategoryFixture.php index c56da2d..8961cb4 100644 --- a/src/App/Fixture/ErrorCategoryLoader.php +++ b/src/App/Fixture/ErrorCategoryFixture.php @@ -3,33 +3,38 @@ namespace App\Fixture; use App\Entity\ErrorCategory; -use Doctrine\Common\DataFixtures\AbstractFixture; -use Doctrine\Common\DataFixtures\OrderedFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Fixture\Fixture; +use Doctrine\ORM\EntityManager; use Doctrine\ORM\Id\AssignedGenerator; use Doctrine\ORM\Mapping\ClassMetadata; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Yaml\Yaml; -class ErrorCategoryLoader extends AbstractFixture implements OrderedFixtureInterface +class ErrorCategoryFixture implements Fixture { - /** - * @var OutputInterface - */ + /** @var OutputInterface */ private $output; - public function __construct(OutputInterface $output) + /** @var EntityManager */ + private $manager; + + public function __construct(OutputInterface $output, EntityManager $em) { $this->output = $output; + $this->manager = $em; } - public function load(ObjectManager $manager) + /** + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + */ + public function import() { $inputFileContents = file_get_contents("data/fixture/error-category.yml"); $yamlData = Yaml::parse($inputFileContents); /** @var \Doctrine\ORM\Mapping\ClassMetadata $metadata */ - $metadata = $manager->getClassMetadata(ErrorCategory::class); + $metadata = $this->manager->getClassMetadata(ErrorCategory::class); $metadata->setIdGenerator(new AssignedGenerator()); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); @@ -41,17 +46,26 @@ class ErrorCategoryLoader extends AbstractFixture implements OrderedFixtureInter ->setType($entityData['type']) ->setActive($entityData['active']); - $this->addReference($entityId, $entity); - - $manager->persist($entity); + $this->manager->persist($entity); $this->output->writeln(" * " . $entityId); } - $manager->flush(); + $this->manager->flush(); $this->output->writeln(sprintf(" > %s END", __CLASS__)); } - public function getOrder() + /** + * Purges the fixture from persistence storage. + * + * @return void + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + */ + public function purge() { - return 10; + $entities = $this->manager->getRepository(ErrorCategory::class)->findAll(); + foreach ($entities as $entity) { + $this->manager->remove($entity); + } + $this->manager->flush(); } } diff --git a/src/App/Fixture/ErrorOriginLoader.php b/src/App/Fixture/ErrorOriginFixture.php similarity index 54% rename from src/App/Fixture/ErrorOriginLoader.php rename to src/App/Fixture/ErrorOriginFixture.php index 51113fc..d8f9e7d 100644 --- a/src/App/Fixture/ErrorOriginLoader.php +++ b/src/App/Fixture/ErrorOriginFixture.php @@ -3,33 +3,38 @@ namespace App\Fixture; use App\Entity\ErrorOrigin; -use Doctrine\Common\DataFixtures\AbstractFixture; -use Doctrine\Common\DataFixtures\OrderedFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Fixture\Fixture; +use Doctrine\ORM\EntityManager; use Doctrine\ORM\Id\AssignedGenerator; use Doctrine\ORM\Mapping\ClassMetadata; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Yaml\Yaml; -class ErrorOriginLoader extends AbstractFixture implements OrderedFixtureInterface +class ErrorOriginFixture implements Fixture { - /** - * @var OutputInterface - */ + /** @var OutputInterface */ private $output; - public function __construct(OutputInterface $output) + /** @var EntityManager */ + private $manager; + + public function __construct(OutputInterface $output, EntityManager $em) { $this->output = $output; + $this->manager = $em; } - public function load(ObjectManager $manager) + /** + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + */ + public function import() { $inputFileContents = file_get_contents("data/fixture/error-origin.yml"); $yamlData = Yaml::parse($inputFileContents); /** @var \Doctrine\ORM\Mapping\ClassMetadata $metadata */ - $metadata = $manager->getClassMetadata(ErrorOrigin::class); + $metadata = $this->manager->getClassMetadata(ErrorOrigin::class); $metadata->setIdGenerator(new AssignedGenerator()); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); @@ -41,17 +46,26 @@ class ErrorOriginLoader extends AbstractFixture implements OrderedFixtureInterfa ->setCode($entityData['code']) ->setActive($entityData['active']); - $this->addReference($entityId, $entity); - - $manager->persist($entity); + $this->manager->persist($entity); $this->output->writeln(" * " . $entityId); } - $manager->flush(); + $this->manager->flush(); $this->output->writeln(sprintf(" > %s END", __CLASS__)); } - public function getOrder() + /** + * Purges the fixture from persistence storage. + * + * @return void + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + */ + public function purge() { - return 10; + $entities = $this->manager->getRepository(ErrorOrigin::class)->findAll(); + foreach ($entities as $entity) { + $this->manager->remove($entity); + } + $this->manager->flush(); } } diff --git a/src/App/Fixture/FacilityLocationFixture.php b/src/App/Fixture/FacilityLocationFixture.php new file mode 100644 index 0000000..ece1cf2 --- /dev/null +++ b/src/App/Fixture/FacilityLocationFixture.php @@ -0,0 +1,87 @@ +output = $output; + $this->manager = $em; + } + + /** + * Imports the fixture into persistence storage. + * + * @return void + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + */ + public function import() + { + $inputFileContents = file_get_contents("data/fixture/facility-location.yml"); + $yamlData = Yaml::parse($inputFileContents); + + $this->output->writeln(sprintf(" > %s BEGIN", __CLASS__)); + foreach ($yamlData['FacilityLocations'] as $entityId => $entityData) { + $entity = new FacilityLocation(); + $entity + ->setRoomNumber($entityData['roomNumber']) + ->setName($entityData['name']) + ->setSize($entityData['size']); + + if ($entityData['parent']) { + $entity->setParent($this->referenceRepo->get($entityData['parent'])); + } + + $this->referenceRepo->add($entityId, $entity); + + $this->manager->persist($entity); + $this->output->writeln(" * " . $entityId); + } + $this->manager->flush(); + $this->output->writeln(sprintf(" > %s END", __CLASS__)); + } + + /** + * Purges the fixture from persistence storage. + * + * @return void + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + */ + public function purge() + { + $entities = $this->manager->getRepository(FacilityLocation::class)->findAll(); + foreach ($entities as $entity) { + $this->manager->remove($entity); + } + $this->manager->flush(); + } + + /** + * Defines the Reference Repository. + * + * @param \Doctrine\Fixture\Reference\ReferenceRepository $referenceRepository + */ + function setReferenceRepository(ReferenceRepository $referenceRepository) + { + $this->referenceRepo = $referenceRepository; + } +} diff --git a/src/App/Fixture/FacilityLocationLoader.php b/src/App/Fixture/FacilityLocationLoader.php deleted file mode 100644 index 37f2f4e..0000000 --- a/src/App/Fixture/FacilityLocationLoader.php +++ /dev/null @@ -1,55 +0,0 @@ -output = $output; - } - - public function load(ObjectManager $manager) - { - $inputFileContents = file_get_contents("data/fixture/facility-location.yml"); - $yamlData = Yaml::parse($inputFileContents); - - $this->output->writeln(sprintf(" > %s BEGIN", __CLASS__)); - foreach ($yamlData['FacilityLocations'] as $entityId => $entityData) { - $entity = new FacilityLocation(); - $entity - ->setRoomNumber($entityData['roomNumber']) - ->setName($entityData['name']) - ->setSize($entityData['size']); - - if ($entityData['parent']) { - $entity->setParent($this->getReference($entityData['parent'])); - } - - $this->addReference($entityId, $entity); - - $manager->persist($entity); - $this->output->writeln(" * " . $entityId); - } - $manager->flush(); - $this->output->writeln(sprintf(" > %s END", __CLASS__)); - } - - public function getOrder() - { - return 10; - } -} diff --git a/src/App/Fixture/SolutionTimeIntervalLoader.php b/src/App/Fixture/SolutionTimeIntervalFixture.php similarity index 54% rename from src/App/Fixture/SolutionTimeIntervalLoader.php rename to src/App/Fixture/SolutionTimeIntervalFixture.php index 8284d3e..2cd8245 100644 --- a/src/App/Fixture/SolutionTimeIntervalLoader.php +++ b/src/App/Fixture/SolutionTimeIntervalFixture.php @@ -3,33 +3,38 @@ namespace App\Fixture; use App\Entity\SolutionTimeInterval; -use Doctrine\Common\DataFixtures\AbstractFixture; -use Doctrine\Common\DataFixtures\OrderedFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Fixture\Fixture; +use Doctrine\ORM\EntityManager; use Doctrine\ORM\Id\AssignedGenerator; use Doctrine\ORM\Mapping\ClassMetadata; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Yaml\Yaml; -class SolutionTimeIntervalLoader extends AbstractFixture implements OrderedFixtureInterface +class SolutionTimeIntervalFixture implements Fixture { - /** - * @var OutputInterface - */ + /** @var OutputInterface */ private $output; - public function __construct(OutputInterface $output) + /** @var EntityManager */ + private $manager; + + public function __construct(OutputInterface $output, EntityManager $em) { $this->output = $output; + $this->manager = $em; } - public function load(ObjectManager $manager) + /** + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + */ + public function import() { $inputFileContents = file_get_contents("data/fixture/solution-time-interval.yml"); $yamlData = Yaml::parse($inputFileContents); /** @var \Doctrine\ORM\Mapping\ClassMetadata $metadata */ - $metadata = $manager->getClassMetadata(SolutionTimeInterval::class); + $metadata = $this->manager->getClassMetadata(SolutionTimeInterval::class); $metadata->setIdGenerator(new AssignedGenerator()); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); @@ -41,17 +46,27 @@ class SolutionTimeIntervalLoader extends AbstractFixture implements OrderedFixtu ->setCode($entityData['code']) ->setActive($entityData['active']); - $this->addReference($entityId, $entity); - $manager->persist($entity); + $this->manager->persist($entity); $this->output->writeln(" * " . $entityId); } - $manager->flush(); + $this->manager->flush(); $this->output->writeln(sprintf(" > %s END", __CLASS__)); } - public function getOrder() + /** + * Purges the fixture from persistence storage. + * + * @return void + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + */ + public function purge() { - return 10; + $entities = $this->manager->getRepository(SolutionTimeInterval::class)->findAll(); + foreach ($entities as $entity) { + $this->manager->remove($entity); + } + $this->manager->flush(); } } diff --git a/src/App/Fixture/UserLoader.php b/src/App/Fixture/UserFixture.php similarity index 70% rename from src/App/Fixture/UserLoader.php rename to src/App/Fixture/UserFixture.php index e81f66a..a947359 100644 --- a/src/App/Fixture/UserLoader.php +++ b/src/App/Fixture/UserFixture.php @@ -3,38 +3,42 @@ namespace App\Fixture; use App\Entity\User; -use Doctrine\Common\DataFixtures\AbstractFixture; -use Doctrine\Common\DataFixtures\OrderedFixtureInterface; -use Doctrine\Common\Persistence\ObjectManager; +use Doctrine\Fixture\Fixture; +use Doctrine\ORM\EntityManager; use Doctrine\ORM\Id\AssignedGenerator; use Doctrine\ORM\Mapping\ClassMetadata; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Yaml\Yaml; use Zend\Crypt\Password\Bcrypt; -class UserLoader extends AbstractFixture implements OrderedFixtureInterface +class UserFixture implements Fixture { const GEN_PW_FILE = 'data/passwords-generated.txt'; const PASSWORD_COST = 14; - /** - * @var OutputInterface - */ + /** @var OutputInterface */ private $output; + /** @var EntityManager */ + private $manager; - public function __construct(OutputInterface $output) + public function __construct(OutputInterface $output, EntityManager $em) { $this->output = $output; + $this->manager = $em; } - public function load(ObjectManager $manager) + /** + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + */ + public function import() { $inputFileContents = file_get_contents("data/fixture/user.yml"); $yamlData = Yaml::parse($inputFileContents); /** @var \Doctrine\ORM\Mapping\ClassMetadata $metadata */ - $metadata = $manager->getClassMetadata(User::class); + $metadata = $this->manager->getClassMetadata(User::class); $metadata->setIdGenerator(new AssignedGenerator()); $metadata->setIdGeneratorType(ClassMetadata::GENERATOR_TYPE_NONE); @@ -70,22 +74,26 @@ class UserLoader extends AbstractFixture implements OrderedFixtureInterface ->setCanChangePassword($canChangePassword) ->setActive($entityData['active']); - $this->addReference($entityId, $entity); - - $manager->persist($entity); + $this->manager->persist($entity); $this->output->writeln(" * " . $entityId); } - $manager->flush(); + $this->manager->flush(); $this->output->writeln(sprintf(" > %s END", __CLASS__)); } /** - * Used as fixture load order + * Purges the fixture from persistence storage. * - * @return int + * @return void + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException */ - public function getOrder() + public function purge() { - return 9; + $entities = $this->manager->getRepository(User::class)->findAll(); + foreach ($entities as $entity) { + $this->manager->remove($entity); + } + $this->manager->flush(); } } diff --git a/src/App/Handler/Fault/FaultAttachmentHandler.php b/src/App/Handler/Fault/FaultAttachmentHandler.php index 823b0a4..81da360 100644 --- a/src/App/Handler/Fault/FaultAttachmentHandler.php +++ b/src/App/Handler/Fault/FaultAttachmentHandler.php @@ -42,7 +42,7 @@ class FaultAttachmentHandler extends CrudHandler /** @var UploadedFileInterface[] $files */ $files = $request->getUploadedFiles()['file']; return new JsonResponse( - $this->attachmentService->createAttachments($faultId, $files, $token->uid, $type), + $this->attachmentService->createAttachments($faultId, $files, $token['uid'], $type), 201 ); } catch (\Exception $e) { diff --git a/src/App/Handler/Fault/FaultCommentHandler.php b/src/App/Handler/Fault/FaultCommentHandler.php index 6eafde3..5b7205a 100644 --- a/src/App/Handler/Fault/FaultCommentHandler.php +++ b/src/App/Handler/Fault/FaultCommentHandler.php @@ -30,7 +30,7 @@ class FaultCommentHandler extends CrudHandler $jwt = $request->getAttribute('token'); try { $data = $this->getRequestData($request); - return new JsonResponse($this->faultManagerService->addFaultComment($faultId, $data, $jwt->uid), 201); + return new JsonResponse($this->faultManagerService->addFaultComment($faultId, $data, $jwt['uid']), 201); } catch (\Exception $e) { return new JsonResponse($e->getMessage(), $e->getCode()); } diff --git a/src/App/Handler/Fault/FaultHandler.php b/src/App/Handler/Fault/FaultHandler.php index c60b291..539cf24 100644 --- a/src/App/Handler/Fault/FaultHandler.php +++ b/src/App/Handler/Fault/FaultHandler.php @@ -55,7 +55,7 @@ class FaultHandler extends CrudHandler try { $data = $this->getRequestData($request); $token = $request->getAttribute('token'); - return new JsonResponse($this->faultManagerService->createFault($data, $token->uid), 201); + return new JsonResponse($this->faultManagerService->createFault($data, $token['uid']), 201); } catch (\Exception $e) { return new JsonResponse($e->getMessage(), 500); } @@ -73,7 +73,7 @@ class FaultHandler extends CrudHandler $id = $request->getAttribute('id'); $token = $request->getAttribute('token'); $data = $this->getRequestData($request); - return new JsonResponse($this->faultManagerService->updateFault($id, $data, $token->uid)); + return new JsonResponse($this->faultManagerService->updateFault($id, $data, $token['uid'])); } catch (\Exception $e) { return new JsonResponse($e->getMessage(), 500); } diff --git a/src/App/Handler/Fault/FaultRejectHandler.php b/src/App/Handler/Fault/FaultRejectHandler.php index 3e6ed63..133cb5d 100644 --- a/src/App/Handler/Fault/FaultRejectHandler.php +++ b/src/App/Handler/Fault/FaultRejectHandler.php @@ -30,7 +30,7 @@ class FaultRejectHandler extends CrudHandler $jwt = $request->getAttribute('token'); try { $data = $this->getRequestData($request); - return new JsonResponse($this->faultManagerService->rejectFault($faultId, $data, $jwt->uid), 201); + return new JsonResponse($this->faultManagerService->rejectFault($faultId, $data, $jwt['uid']), 201); } catch (\Exception $e) { return new JsonResponse($e->getMessage(), 500); } diff --git a/src/App/Handler/User/PasswordHandler.php b/src/App/Handler/User/PasswordHandler.php index 827415a..cde3373 100644 --- a/src/App/Handler/User/PasswordHandler.php +++ b/src/App/Handler/User/PasswordHandler.php @@ -27,7 +27,7 @@ class PasswordHandler extends CrudHandler $token = $request->getAttribute('token'); try { $data = $this->getRequestData($request); - return new JsonResponse($this->userService->changePassword($token->uid, $data['old'], $data['new'])); + return new JsonResponse($this->userService->changePassword($token['uid'], $data['old'], $data['new'])); } catch (\Exception $e) { return new JsonResponse([ 'message' => $e->getMessage() diff --git a/src/App/Hydrator/DoctrineObject.php b/src/App/Hydrator/DoctrineObject.php deleted file mode 100644 index 912e5c2..0000000 --- a/src/App/Hydrator/DoctrineObject.php +++ /dev/null @@ -1,594 +0,0 @@ -. - */ - -namespace App\Hydrator; - -use DateTime; -use Doctrine\Common\Persistence\Mapping\ClassMetadata; -use Doctrine\Common\Persistence\ObjectManager; -use Doctrine\Common\Util\Inflector; -use InvalidArgumentException; -use RuntimeException; -use Traversable; -use Zend\Stdlib\ArrayUtils; -use Zend\Hydrator\AbstractHydrator; -use Zend\Hydrator\Filter\FilterProviderInterface; - -/** - * This hydrator has been completely refactored for DoctrineModule 0.7.0. It provides an easy and powerful way - * of extracting/hydrator objects in Doctrine, by handling most associations types. - * - * Starting from DoctrineModule 0.8.0, the hydrator can be used multiple times with different objects - * - * @license MIT - * @link http://www.doctrine-project.org/ - * @since 0.7.0 - * @author Michael Gallego - */ -class DoctrineObject extends AbstractHydrator -{ - /** - * @var ObjectManager - */ - protected $objectManager; - - /** - * @var ClassMetadata - */ - protected $metadata; - - /** - * @var bool - */ - protected $byValue = true; - - - /** - * Constructor - * - * @param ObjectManager $objectManager The ObjectManager to use - * @param bool $byValue If set to true, hydrator will always use entity's public API - */ - public function __construct(ObjectManager $objectManager, $byValue = true) - { - parent::__construct(); - - $this->objectManager = $objectManager; - $this->byValue = (bool) $byValue; - } - - /** - * Extract values from an object - * - * @param object $object - * @return array - */ - public function extract($object) - { - $this->prepare($object); - - if ($this->byValue) { - return $this->extractByValue($object); - } - - return $this->extractByReference($object); - } - - /** - * Hydrate $object with the provided $data. - * - * @param array $data - * @param object $object - * @return object - */ - public function hydrate(array $data, $object) - { - $this->prepare($object); - - if ($this->byValue) { - return $this->hydrateByValue($data, $object); - } - - return $this->hydrateByReference($data, $object); - } - - /** - * Prepare the hydrator by adding strategies to every collection valued associations - * - * @param object $object - * @return void - */ - protected function prepare($object) - { - $this->metadata = $this->objectManager->getClassMetadata(get_class($object)); - $this->prepareStrategies(); - } - - /** - * Prepare strategies before the hydrator is used - * - * @throws \InvalidArgumentException - * @return void - */ - protected function prepareStrategies() - { - $associations = $this->metadata->getAssociationNames(); - - foreach ($associations as $association) { - if ($this->metadata->isCollectionValuedAssociation($association)) { - // Add a strategy if the association has none set by user - if (!$this->hasStrategy($association)) { - if ($this->byValue) { - $this->addStrategy($association, new Strategy\AllowRemoveByValue()); - } else { - $this->addStrategy($association, new Strategy\AllowRemoveByReference()); - } - } - - $strategy = $this->getStrategy($association); - - if (!$strategy instanceof Strategy\AbstractCollectionStrategy) { - throw new InvalidArgumentException( - sprintf( - 'Strategies used for collections valued associations must inherit from ' - . 'Strategy\AbstractCollectionStrategy, %s given', - get_class($strategy) - ) - ); - } - - $strategy->setCollectionName($association) - ->setClassMetadata($this->metadata); - } - } - } - - /** - * Extract values from an object using a by-value logic (this means that it uses the entity - * API, in this case, getters) - * - * @param object $object - * @throws RuntimeException - * @return array - */ - protected function extractByValue($object) - { - $fieldNames = array_merge($this->metadata->getFieldNames(), $this->metadata->getAssociationNames()); - $methods = get_class_methods($object); - $filter = $object instanceof FilterProviderInterface - ? $object->getFilter() - : $this->filterComposite; - - $data = []; - foreach ($fieldNames as $fieldName) { - if ($filter && !$filter->filter($fieldName)) { - continue; - } - - $getter = 'get' . Inflector::classify($fieldName); - $isser = 'is' . Inflector::classify($fieldName); - - $dataFieldName = $this->computeExtractFieldName($fieldName); - if (in_array($getter, $methods)) { - $data[$dataFieldName] = $this->extractValue($fieldName, $object->$getter(), $object); - } elseif (in_array($isser, $methods)) { - $data[$dataFieldName] = $this->extractValue($fieldName, $object->$isser(), $object); - } elseif (substr($fieldName, 0, 2) === 'is' - && ctype_upper(substr($fieldName, 2, 1)) - && in_array($fieldName, $methods)) { - $data[$dataFieldName] = $this->extractValue($fieldName, $object->$fieldName(), $object); - } - - // Unknown fields are ignored - } - - return $data; - } - - /** - * Extract values from an object using a by-reference logic (this means that values are - * directly fetched without using the public API of the entity, in this case, getters) - * - * @param object $object - * @return array - */ - protected function extractByReference($object) - { - $fieldNames = array_merge($this->metadata->getFieldNames(), $this->metadata->getAssociationNames()); - $refl = $this->metadata->getReflectionClass(); - $filter = $object instanceof FilterProviderInterface - ? $object->getFilter() - : $this->filterComposite; - - $data = []; - foreach ($fieldNames as $fieldName) { - if ($filter && !$filter->filter($fieldName)) { - continue; - } - $reflProperty = $refl->getProperty($fieldName); - $reflProperty->setAccessible(true); - - $dataFieldName = $this->computeExtractFieldName($fieldName); - $data[$dataFieldName] = $this->extractValue($fieldName, $reflProperty->getValue($object), $object); - } - - return $data; - } - - /** - * Hydrate the object using a by-value logic (this means that it uses the entity API, in this - * case, setters) - * - * @param array $data - * @param object $object - * @throws RuntimeException - * @return object - */ - protected function hydrateByValue(array $data, $object) - { - $tryObject = $this->tryConvertArrayToObject($data, $object); - $metadata = $this->metadata; - - if (is_object($tryObject)) { - $object = $tryObject; - } - - foreach ($data as $field => $value) { - $field = $this->computeHydrateFieldName($field); - $value = $this->handleTypeConversions($value, $metadata->getTypeOfField($field)); - $setter = 'set' . Inflector::classify($field); - - if ($metadata->hasAssociation($field)) { - $target = $metadata->getAssociationTargetClass($field); - - if ($metadata->isSingleValuedAssociation($field)) { - if (! method_exists($object, $setter)) { - continue; - } - - $value = $this->toOne($target, $this->hydrateValue($field, $value, $data)); - - if (null === $value - && !current($metadata->getReflectionClass()->getMethod($setter)->getParameters())->allowsNull() - ) { - continue; - } - - $object->$setter($value); - } elseif ($metadata->isCollectionValuedAssociation($field)) { - $this->toMany($object, $field, $target, $value); - } - } else { - if (! method_exists($object, $setter)) { - continue; - } - - $object->$setter($this->hydrateValue($field, $value, $data)); - } - } - - return $object; - } - - /** - * Hydrate the object using a by-reference logic (this means that values are modified directly without - * using the public API, in this case setters, and hence override any logic that could be done in those - * setters) - * - * @param array $data - * @param object $object - * @return object - */ - protected function hydrateByReference(array $data, $object) - { - $tryObject = $this->tryConvertArrayToObject($data, $object); - $metadata = $this->metadata; - $refl = $metadata->getReflectionClass(); - - if (is_object($tryObject)) { - $object = $tryObject; - } - - foreach ($data as $field => $value) { - $field = $this->computeHydrateFieldName($field); - - // Ignore unknown fields - if (!$refl->hasProperty($field)) { - continue; - } - - $value = $this->handleTypeConversions($value, $metadata->getTypeOfField($field)); - $reflProperty = $refl->getProperty($field); - $reflProperty->setAccessible(true); - - if ($metadata->hasAssociation($field)) { - $target = $metadata->getAssociationTargetClass($field); - - if ($metadata->isSingleValuedAssociation($field)) { - $value = $this->toOne($target, $this->hydrateValue($field, $value, $data)); - $reflProperty->setValue($object, $value); - } elseif ($metadata->isCollectionValuedAssociation($field)) { - $this->toMany($object, $field, $target, $value); - } - } else { - $reflProperty->setValue($object, $this->hydrateValue($field, $value, $data)); - } - } - - return $object; - } - - /** - * This function tries, given an array of data, to convert it to an object if the given array contains - * an identifier for the object. This is useful in a context of updating existing entities, without ugly - * tricks like setting manually the existing id directly into the entity - * - * @param array $data The data that may contain identifiers keys - * @param object $object - * @return object - */ - protected function tryConvertArrayToObject($data, $object) - { - $metadata = $this->metadata; - $identifierNames = $metadata->getIdentifierFieldNames($object); - $identifierValues = []; - - if (empty($identifierNames)) { - return $object; - } - - foreach ($identifierNames as $identifierName) { - if (!isset($data[$identifierName])) { - return $object; - } - - $identifierValues[$identifierName] = $data[$identifierName]; - } - - return $this->find($identifierValues, $metadata->getName()); - } - - /** - * Handle ToOne associations - * - * When $value is an array but is not the $target's identifiers, $value is - * most likely an array of fieldset data. The identifiers will be determined - * and a target instance will be initialized and then hydrated. The hydrated - * target will be returned. - * - * @param string $target - * @param mixed $value - * @return object - */ - protected function toOne($target, $value) - { - $metadata = $this->objectManager->getClassMetadata($target); - - if (is_array($value) && array_keys($value) != $metadata->getIdentifier()) { - // $value is most likely an array of fieldset data - $identifiers = array_intersect_key( - $value, - array_flip($metadata->getIdentifier()) - ); - $object = $this->find($identifiers, $target) ?: new $target; - return $this->hydrate($value, $object); - } - - return $this->find($value, $target); - } - - /** - * Handle ToMany associations. In proper Doctrine design, Collections should not be swapped, so - * collections are always handled by reference. Internally, every collection is handled using specials - * strategies that inherit from AbstractCollectionStrategy class, and that add or remove elements but without - * changing the collection of the object - * - * @param object $object - * @param mixed $collectionName - * @param string $target - * @param mixed $values - * - * @throws \InvalidArgumentException - * - * @return void - */ - protected function toMany($object, $collectionName, $target, $values) - { - $metadata = $this->objectManager->getClassMetadata(ltrim($target, '\\')); - $identifier = $metadata->getIdentifier(); - - if (!is_array($values) && !$values instanceof Traversable) { - $values = (array)$values; - } - - $collection = []; - - // If the collection contains identifiers, fetch the objects from database - foreach ($values as $value) { - if ($value instanceof $target) { - // assumes modifications have already taken place in object - $collection[] = $value; - continue; - } elseif (empty($value)) { - // assumes no id and retrieves new $target - $collection[] = $this->find($value, $target); - continue; - } - - $find = []; - if (is_array($identifier)) { - foreach ($identifier as $field) { - switch (gettype($value)) { - case 'object': - $getter = 'get' . ucfirst($field); - if (method_exists($value, $getter)) { - $find[$field] = $value->$getter(); - } elseif (property_exists($value, $field)) { - $find[$field] = $value->$field; - } - break; - case 'array': - if (array_key_exists($field, $value) && $value[$field] != null) { - $find[$field] = $value[$field]; - unset($value[$field]); // removed identifier from persistable data - } - break; - default: - $find[$field] = $value; - break; - } - } - } - - if (!empty($find) && $found = $this->find($find, $target)) { - $collection[] = (is_array($value)) ? $this->hydrate($value, $found) : $found; - } else { - $collection[] = (is_array($value)) ? $this->hydrate($value, new $target) : new $target; - } - } - - $collection = array_filter( - $collection, - function ($item) { - return null !== $item; - } - ); - - // Set the object so that the strategy can extract the Collection from it - - /** @var \DoctrineModule\Stdlib\Hydrator\Strategy\AbstractCollectionStrategy $collectionStrategy */ - $collectionStrategy = $this->getStrategy($collectionName); - $collectionStrategy->setObject($object); - - // We could directly call hydrate method from the strategy, but if people want to override - // hydrateValue function, they can do it and do their own stuff - $this->hydrateValue($collectionName, $collection, $values); - } - - /** - * Handle various type conversions that should be supported natively by Doctrine (like DateTime) - * - * @param mixed $value - * @param string $typeOfField - * @return DateTime - */ - protected function handleTypeConversions($value, $typeOfField) - { - switch ($typeOfField) { - case 'datetimetz': - case 'datetime': - case 'time': - case 'date': - if ('' === $value) { - return null; - } - - if (is_int($value)) { - $dateTime = new DateTime(); - $dateTime->setTimestamp($value); - $value = $dateTime; - } elseif (is_string($value)) { - $value = new DateTime($value); - } - - break; - default: - } - - return $value; - } - - /** - * Find an object by a given target class and identifier - * - * @param mixed $identifiers - * @param string $targetClass - * - * @return object|null - */ - protected function find($identifiers, $targetClass) - { - if ($identifiers instanceof $targetClass) { - return $identifiers; - } - - if ($this->isNullIdentifier($identifiers)) { - return null; - } - - return $this->objectManager->find($targetClass, $identifiers); - } - - /** - * Verifies if a provided identifier is to be considered null - * - * @param mixed $identifier - * - * @return bool - */ - private function isNullIdentifier($identifier) - { - if (null === $identifier) { - return true; - } - - if ($identifier instanceof Traversable || is_array($identifier)) { - $nonNullIdentifiers = array_filter( - ArrayUtils::iteratorToArray($identifier), - function ($value) { - return null !== $value; - } - ); - - return empty($nonNullIdentifiers); - } - - return false; - } - - /** - * Applies the naming strategy if there is one set - * - * @param string $field - * - * @return string - */ - protected function computeHydrateFieldName($field) - { - if ($this->hasNamingStrategy()) { - $field = $this->getNamingStrategy()->hydrate($field); - } - return $field; - } - - /** - * Applies the naming strategy if there is one set - * - * @param string $field - * - * @return string - */ - protected function computeExtractFieldName($field) - { - if ($this->hasNamingStrategy()) { - $field = $this->getNamingStrategy()->extract($field); - } - return $field; - } -} diff --git a/src/App/Hydrator/DoctrineObjectFactory.php b/src/App/Hydrator/DoctrineObjectFactory.php deleted file mode 100644 index d7d10ea..0000000 --- a/src/App/Hydrator/DoctrineObjectFactory.php +++ /dev/null @@ -1,15 +0,0 @@ -get('doctrine.entity_manager.orm_default'); - return new DoctrineObject($em); - } -} diff --git a/src/App/Hydrator/Filter/PropertyName.php b/src/App/Hydrator/Filter/PropertyName.php deleted file mode 100644 index daafc86..0000000 --- a/src/App/Hydrator/Filter/PropertyName.php +++ /dev/null @@ -1,66 +0,0 @@ -. - */ - -namespace App\Hydrator\Filter; - -use Zend\Hydrator\Filter\FilterInterface; - -/** - * Provides a filter to restrict returned fields by whitelisting or - * blacklisting property names. - * - * @license MIT - * @link http://www.doctrine-project.org/ - * @author Liam O'Boyle - */ -class PropertyName implements FilterInterface -{ - /** - * The propteries to exclude. - * - * @var array - */ - protected $properties = []; - - /** - * Either an exclude or an include. - * - * @var bool - */ - protected $exclude = null; - - /** - * @param [ string | array ] $properties The properties to exclude or include. - * @param bool $exclude If the method should be excluded - */ - public function __construct($properties, $exclude = true) - { - $this->exclude = $exclude; - $this->properties = is_array($properties) - ? $properties - : [$properties]; - } - - public function filter($property) - { - return in_array($property, $this->properties) - ? !$this->exclude - : $this->exclude; - } -} diff --git a/src/App/Hydrator/Strategy/AbstractCollectionStrategy.php b/src/App/Hydrator/Strategy/AbstractCollectionStrategy.php deleted file mode 100644 index 37e6738..0000000 --- a/src/App/Hydrator/Strategy/AbstractCollectionStrategy.php +++ /dev/null @@ -1,190 +0,0 @@ -. - */ - -namespace App\Hydrator\Strategy; - -use InvalidArgumentException; -use Doctrine\Common\Collections\Collection; -use Doctrine\Common\Persistence\Mapping\ClassMetadata; -use Zend\Hydrator\Strategy\StrategyInterface; - -/** - * @license MIT - * @link http://www.doctrine-project.org/ - * @since 0.7.0 - * @author Michael Gallego - */ -abstract class AbstractCollectionStrategy implements StrategyInterface -{ - /** - * @var string - */ - protected $collectionName; - - /** - * @var ClassMetadata - */ - protected $metadata; - - /** - * @var object - */ - protected $object; - - - /** - * Set the name of the collection - * - * @param string $collectionName - * @return AbstractCollectionStrategy - */ - public function setCollectionName($collectionName) - { - $this->collectionName = (string) $collectionName; - return $this; - } - - /** - * Get the name of the collection - * - * @return string - */ - public function getCollectionName() - { - return $this->collectionName; - } - - /** - * Set the class metadata - * - * @param ClassMetadata $classMetadata - * @return AbstractCollectionStrategy - */ - public function setClassMetadata(ClassMetadata $classMetadata) - { - $this->metadata = $classMetadata; - return $this; - } - - /** - * Get the class metadata - * - * @return ClassMetadata - */ - public function getClassMetadata() - { - return $this->metadata; - } - - /** - * Set the object - * - * @param object $object - * - * @throws \InvalidArgumentException - * - * @return AbstractCollectionStrategy - */ - public function setObject($object) - { - if (!is_object($object)) { - throw new InvalidArgumentException( - sprintf('The parameter given to setObject method of %s class is not an object', get_called_class()) - ); - } - - $this->object = $object; - return $this; - } - - /** - * Get the object - * - * @return object - */ - public function getObject() - { - return $this->object; - } - - /** - * {@inheritDoc} - */ - public function extract($value) - { - return $value; - } - - /** - * Return the collection by value (using the public API) - * - * @throws \InvalidArgumentException - * - * @return Collection - */ - protected function getCollectionFromObjectByValue() - { - $object = $this->getObject(); - $getter = 'get' . ucfirst($this->getCollectionName()); - - if (!method_exists($object, $getter)) { - throw new InvalidArgumentException( - sprintf( - 'The getter %s to access collection %s in object %s does not exist', - $getter, - $this->getCollectionName(), - get_class($object) - ) - ); - } - - return $object->$getter(); - } - - /** - * Return the collection by reference (not using the public API) - * - * @return Collection - */ - protected function getCollectionFromObjectByReference() - { - $object = $this->getObject(); - $refl = $this->getClassMetadata()->getReflectionClass(); - $reflProperty = $refl->getProperty($this->getCollectionName()); - - $reflProperty->setAccessible(true); - - return $reflProperty->getValue($object); - } - - - /** - * This method is used internally by array_udiff to check if two objects are equal, according to their - * SPL hash. This is needed because the native array_diff only compare strings - * - * @param object $a - * @param object $b - * - * @return int - */ - protected function compareObjects($a, $b) - { - return strcmp(spl_object_hash($a), spl_object_hash($b)); - } -} diff --git a/src/App/Hydrator/Strategy/AllowRemoveByReference.php b/src/App/Hydrator/Strategy/AllowRemoveByReference.php deleted file mode 100644 index 57e4222..0000000 --- a/src/App/Hydrator/Strategy/AllowRemoveByReference.php +++ /dev/null @@ -1,58 +0,0 @@ -. - */ - -namespace App\Hydrator\Strategy; - -/** - * When this strategy is used for Collections, if the new collection does not contain elements that are present in - * the original collection, then this strategy remove elements from the original collection. For instance, if the - * collection initially contains elements A and B, and that the new collection contains elements B and C, then the - * final collection will contain elements B and C (while element A will be asked to be removed). - * - * This strategy is by reference, this means it won't use public API to add/remove elements to the collection - * - * @license MIT - * @link http://www.doctrine-project.org/ - * @since 0.7.0 - * @author Michael Gallego - */ -class AllowRemoveByReference extends AbstractCollectionStrategy -{ - /** - * {@inheritDoc} - */ - public function hydrate($value) - { - $collection = $this->getCollectionFromObjectByReference(); - $collectionArray = $collection->toArray(); - - $toAdd = array_udiff($value, $collectionArray, [$this, 'compareObjects']); - $toRemove = array_udiff($collectionArray, $value, [$this, 'compareObjects']); - - foreach ($toAdd as $element) { - $collection->add($element); - } - - foreach ($toRemove as $element) { - $collection->removeElement($element); - } - - return $collection; - } -} diff --git a/src/App/Hydrator/Strategy/AllowRemoveByValue.php b/src/App/Hydrator/Strategy/AllowRemoveByValue.php deleted file mode 100644 index 2ac85ae..0000000 --- a/src/App/Hydrator/Strategy/AllowRemoveByValue.php +++ /dev/null @@ -1,76 +0,0 @@ -. - */ - -namespace App\Hydrator\Strategy; - -use Doctrine\Common\Collections\Collection; -use LogicException; -use Doctrine\Common\Collections\ArrayCollection; - -/** - * When this strategy is used for Collections, if the new collection does not contain elements that are present in - * the original collection, then this strategy remove elements from the original collection. For instance, if the - * collection initially contains elements A and B, and that the new collection contains elements B and C, then the - * final collection will contain elements B and C (while element A will be asked to be removed). - * - * This strategy is by value, this means it will use the public API (in this case, adder and remover) - * - * @license MIT - * @link http://www.doctrine-project.org/ - * @since 0.7.0 - * @author Michael Gallego - */ -class AllowRemoveByValue extends AbstractCollectionStrategy -{ - /** - * {@inheritDoc} - */ - public function hydrate($value) - { - // AllowRemove strategy need "adder" and "remover" - $adder = 'add' . ucfirst($this->collectionName); - $remover = 'remove' . ucfirst($this->collectionName); - - if (!method_exists($this->object, $adder) || !method_exists($this->object, $remover)) { - throw new LogicException( - sprintf( - 'AllowRemove strategy for DoctrineModule hydrator requires both %s and %s to be defined in %s - entity domain code, but one or both seem to be missing', - $adder, - $remover, - get_class($this->object) - ) - ); - } - - $collection = $this->getCollectionFromObjectByValue(); - - if ($collection instanceof Collection) { - $collection = $collection->toArray(); - } - - $toAdd = new ArrayCollection(array_udiff($value, $collection, [$this, 'compareObjects'])); - $toRemove = new ArrayCollection(array_udiff($collection, $value, [$this, 'compareObjects'])); - - $this->object->$adder($toAdd); - $this->object->$remover($toRemove); - - return $collection; - } -} diff --git a/src/App/Hydrator/Strategy/DisallowRemoveByReference.php b/src/App/Hydrator/Strategy/DisallowRemoveByReference.php deleted file mode 100644 index e1cbb41..0000000 --- a/src/App/Hydrator/Strategy/DisallowRemoveByReference.php +++ /dev/null @@ -1,53 +0,0 @@ -. - */ - -namespace App\Hydrator\Strategy; - -/** - * When this strategy is used for Collections, if the new collection does not contain elements that are present in - * the original collection, then this strategy will not remove those elements. At most, it will add new elements. For - * instance, if the collection initially contains elements A and B, and that the new collection contains elements B - * and C, then the final collection will contain elements A, B and C. - * - * This strategy is by reference, this means it won't use the public API to remove elements - * - * @license MIT - * @link http://www.doctrine-project.org/ - * @since 0.7.0 - * @author Michael Gallego - */ -class DisallowRemoveByReference extends AbstractCollectionStrategy -{ - /** - * {@inheritDoc} - */ - public function hydrate($value) - { - $collection = $this->getCollectionFromObjectByReference(); - $collectionArray = $collection->toArray(); - - $toAdd = array_udiff($value, $collectionArray, [$this, 'compareObjects']); - - foreach ($toAdd as $element) { - $collection->add($element); - } - - return $collection; - } -} diff --git a/src/App/Hydrator/Strategy/DisallowRemoveByValue.php b/src/App/Hydrator/Strategy/DisallowRemoveByValue.php deleted file mode 100644 index 6f2bbcc..0000000 --- a/src/App/Hydrator/Strategy/DisallowRemoveByValue.php +++ /dev/null @@ -1,72 +0,0 @@ -. - */ - -namespace App\Hydrator\Strategy; - -use Doctrine\Common\Collections\Collection; -use LogicException; -use Doctrine\Common\Collections\ArrayCollection; - -/** - * When this strategy is used for Collections, if the new collection does not contain elements that are present in - * the original collection, then this strategy will not remove those elements. At most, it will add new elements. For - * instance, if the collection initially contains elements A and B, and that the new collection contains elements B - * and C, then the final collection will contain elements A, B and C. - * - * This strategy is by value, this means it will use the public API (in this case, remover) - * - * @license MIT - * @link http://www.doctrine-project.org/ - * @since 0.7.0 - * @author Michael Gallego - */ -class DisallowRemoveByValue extends AbstractCollectionStrategy -{ - /** - * {@inheritDoc} - */ - public function hydrate($value) - { - // AllowRemove strategy need "adder" - $adder = 'add' . ucfirst($this->collectionName); - - if (!method_exists($this->object, $adder)) { - throw new LogicException( - sprintf( - 'DisallowRemove strategy for DoctrineModule hydrator requires %s to - be defined in %s entity domain code, but it seems to be missing', - $adder, - get_class($this->object) - ) - ); - } - - $collection = $this->getCollectionFromObjectByValue(); - - if ($collection instanceof Collection) { - $collection = $collection->toArray(); - } - - $toAdd = new ArrayCollection(array_udiff($value, $collection, [$this, 'compareObjects'])); - - $this->object->$adder($toAdd); - - return $collection; - } -} diff --git a/src/App/Middleware/JwtAuthenticationFactory.php b/src/App/Middleware/JwtAuthenticationFactory.php index cce7a47..a521e96 100644 --- a/src/App/Middleware/JwtAuthenticationFactory.php +++ b/src/App/Middleware/JwtAuthenticationFactory.php @@ -12,8 +12,6 @@ use Zend\Expressive\Router\Route; class JwtAuthenticationFactory { - const DEFAULT_HMAC = 'thisShouldBeChangedForReal'; - /** @var Config */ private $config; @@ -22,13 +20,12 @@ class JwtAuthenticationFactory $config = $container->get('config'); $this->config = (new Config($config))->get('acl_config'); return new JwtAuthentication([ - "secret" => $this->config->get('hmac_key', self::DEFAULT_HMAC), + "secret" => $this->config->get('hmac_key'), "path" => "/api", "ignore" => $this->getPassThroughRoutes($container), "secure" => true, "relaxed" => [ "localhost", - "wnapi.yvan.hu", ], "error" => function (ResponseInterface $response, $arguments) { $data["status"] = "error"; diff --git a/src/App/Middleware/RouteAuthorization.php b/src/App/Middleware/RouteAuthorization.php index a0c0699..f836f7b 100644 --- a/src/App/Middleware/RouteAuthorization.php +++ b/src/App/Middleware/RouteAuthorization.php @@ -44,12 +44,12 @@ class RouteAuthorization implements MiddlewareInterface $routeResult = $request->getAttribute(RouteResult::class, false); $token = $request->getAttribute('token'); - if ($this->hasRouteAccess($routeResult->getMatchedRouteName(), $token->roles ?? [])) { + if ($this->hasRouteAccess($routeResult->getMatchedRouteName(), $token['roles'] ?? [])) { return $handler->handle($request); } return new JsonResponse([ - 'status' => 'err', + 'status' => $token['roles'], 'message' => "Access denied to " . $routeResult->getMatchedRouteName(), ], 401); } diff --git a/src/App/Service/AuthService.php b/src/App/Service/AuthService.php index 5a1012e..9467b64 100644 --- a/src/App/Service/AuthService.php +++ b/src/App/Service/AuthService.php @@ -126,14 +126,14 @@ class AuthService $builder = new Builder(); return $builder - ->setId($token->jti, true) + ->setId($token['jti'], true) ->setIssuedAt(time()) ->setNotBefore(time()) ->setExpiration(time() + 3600) - ->set('uid', $token->uid) - ->set('name', $token->name) - ->set('email', $token->email) - ->set('roles', $token->roles) + ->set('uid', $token['uid']) + ->set('name', $token['name']) + ->set('email', $token['email']) + ->set('roles', $token['roles']) ->sign($signer, $hmacKey) ->getToken(); } diff --git a/src/App/Service/FaultAttachmentService.php b/src/App/Service/FaultAttachmentService.php index ceb5e00..259b197 100644 --- a/src/App/Service/FaultAttachmentService.php +++ b/src/App/Service/FaultAttachmentService.php @@ -6,11 +6,11 @@ use App\ApiResponse; use App\Entity\Attachment; use App\Entity\Fault; use App\Entity\User; -use App\Hydrator\DoctrineObject; use Doctrine\ORM\EntityManager; use Doctrine\ORM\NonUniqueResultException; use Doctrine\ORM\NoResultException; use Doctrine\ORM\Query; +use DoctrineExpressiveModule\Hydrator\DoctrineObject; use Psr\Http\Message\UploadedFileInterface; class FaultAttachmentService diff --git a/src/App/Service/FaultAttachmentServiceFactory.php b/src/App/Service/FaultAttachmentServiceFactory.php index 35a2692..81723a6 100644 --- a/src/App/Service/FaultAttachmentServiceFactory.php +++ b/src/App/Service/FaultAttachmentServiceFactory.php @@ -2,8 +2,8 @@ namespace App\Service; -use App\Hydrator\DoctrineObject; use Doctrine\ORM\EntityManager; +use DoctrineExpressiveModule\Hydrator\DoctrineObject; use Interop\Container\ContainerInterface; class FaultAttachmentServiceFactory diff --git a/src/App/Service/FaultManagerService.php b/src/App/Service/FaultManagerService.php index 76b2eaf..4e7846c 100644 --- a/src/App/Service/FaultManagerService.php +++ b/src/App/Service/FaultManagerService.php @@ -6,9 +6,9 @@ use App\Entity\Fault; use App\Entity\FaultComment; use App\Entity\FaultSnapshot; use App\Entity\User; -use App\Hydrator\DoctrineObject; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Query; +use DoctrineExpressiveModule\Hydrator\DoctrineObject; class FaultManagerService { diff --git a/src/App/Service/FaultManagerServiceFactory.php b/src/App/Service/FaultManagerServiceFactory.php index 98fa02b..2af0c23 100644 --- a/src/App/Service/FaultManagerServiceFactory.php +++ b/src/App/Service/FaultManagerServiceFactory.php @@ -2,8 +2,8 @@ namespace App\Service; -use App\Hydrator\DoctrineObject; use Doctrine\ORM\EntityManager; +use DoctrineExpressiveModule\Hydrator\DoctrineObject; use Interop\Container\ContainerInterface; class FaultManagerServiceFactory diff --git a/src/App/Service/FixtureLoaderService.php b/src/App/Service/FixtureLoaderService.php deleted file mode 100644 index 75f361d..0000000 --- a/src/App/Service/FixtureLoaderService.php +++ /dev/null @@ -1,44 +0,0 @@ -em = $em; - } - - public function load(OutputInterface $output) - { - $loader = new Loader(); - $loader->addFixture(new ErrorCategoryLoader($output)); - $loader->addFixture(new ErrorOriginLoader($output)); - $loader->addFixture(new FacilityLocationLoader($output)); - $loader->addFixture(new SolutionTimeIntervalLoader($output)); - $loader->addFixture(new UserLoader($output)); - - $purger = new ORMPurger(); - $executor = new ORMExecutor($this->em, $purger); - $executor->execute($loader->getFixtures()); - - return 0; - } -} diff --git a/src/App/Service/FixtureManager.php b/src/App/Service/FixtureManager.php new file mode 100644 index 0000000..4287523 --- /dev/null +++ b/src/App/Service/FixtureManager.php @@ -0,0 +1,56 @@ +em = $em; + } + + public function initialize(OutputInterface $output) + { + $configuration = new Configuration(); + $executor = new Executor($configuration); + $classLoader = new ClassLoader([ + new ErrorCategoryFixture($output, $this->em), + new ErrorOriginFixture($output, $this->em), + new FacilityLocationFixture($output, $this->em), + new SolutionTimeIntervalFixture($output, $this->em), + new UserFixture($output, $this->em), + ]); + $filter = new ChainFilter(); + + $eventManager = $configuration->getEventManager(); + $eventManager->addEventSubscriber( + new ReferenceRepositoryEventSubscriber( + new DoctrineCacheReferenceRepository( + new ArrayCache() + ) + ) + ); + + $executor->execute($classLoader, $filter, Executor::IMPORT | Executor::PURGE); + return 0; + } +} diff --git a/src/App/Service/FixtureLoaderServiceFactory.php b/src/App/Service/FixtureManagerFactory.php similarity index 75% rename from src/App/Service/FixtureLoaderServiceFactory.php rename to src/App/Service/FixtureManagerFactory.php index f2858e8..c587459 100644 --- a/src/App/Service/FixtureLoaderServiceFactory.php +++ b/src/App/Service/FixtureManagerFactory.php @@ -5,13 +5,13 @@ namespace App\Service; use Doctrine\ORM\EntityManager; use Interop\Container\ContainerInterface; -class FixtureLoaderServiceFactory +class FixtureManagerFactory { - public function __invoke(ContainerInterface $container): FixtureLoaderService + public function __invoke(ContainerInterface $container): FixtureManager { /** @var EntityManager $em */ $em = $container->get('doctrine.entity_manager.orm_default'); - return new FixtureLoaderService($em); + return new FixtureManager($em); } } diff --git a/src/App/Service/LoggerFactory.php b/src/App/Service/LoggerFactory.php index cdc6ff4..ca39c8f 100644 --- a/src/App/Service/LoggerFactory.php +++ b/src/App/Service/LoggerFactory.php @@ -10,6 +10,11 @@ use Monolog\Logger; class LoggerFactory { + /** + * @param ContainerInterface $container + * @return Logger + * @throws \Exception + */ public function __invoke(ContainerInterface $container): Logger { $config = $container->get('config'); diff --git a/src/App/Service/MaintenanceManagerService.php b/src/App/Service/MaintenanceManagerService.php index 5a7da33..8fb54dc 100644 --- a/src/App/Service/MaintenanceManagerService.php +++ b/src/App/Service/MaintenanceManagerService.php @@ -6,10 +6,10 @@ use App\Entity\Device; use App\Entity\DeviceGroup; use App\Entity\DeviceMaintenanceTask; use App\Entity\Maintenance; -use App\Hydrator\DoctrineObject; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\EntityManager; use Doctrine\ORM\Query; +use DoctrineExpressiveModule\Hydrator\DoctrineObject; class MaintenanceManagerService { diff --git a/src/App/Service/MaintenanceManagerServiceFactory.php b/src/App/Service/MaintenanceManagerServiceFactory.php index 1d72066..7825aff 100644 --- a/src/App/Service/MaintenanceManagerServiceFactory.php +++ b/src/App/Service/MaintenanceManagerServiceFactory.php @@ -2,8 +2,8 @@ namespace App\Service; -use App\Hydrator\DoctrineObject; use Doctrine\ORM\EntityManager; +use DoctrineExpressiveModule\Hydrator\DoctrineObject; use Interop\Container\ContainerInterface; class MaintenanceManagerServiceFactory diff --git a/src/App/Service/UserService.php b/src/App/Service/UserService.php index 14a59c0..32b3370 100644 --- a/src/App/Service/UserService.php +++ b/src/App/Service/UserService.php @@ -3,9 +3,9 @@ namespace App\Service; use App\Entity\User; -use App\Hydrator\DoctrineObject; use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityRepository; +use DoctrineExpressiveModule\Hydrator\DoctrineObject; use Zend\Crypt\Password\Bcrypt; class UserService @@ -41,6 +41,9 @@ class UserService /** * @param int $id * @return User + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + * @throws \Doctrine\ORM\TransactionRequiredException */ public function get(int $id): User { @@ -53,6 +56,9 @@ class UserService * @param int $id * @param $data * @return User + * @throws \Doctrine\ORM\ORMException + * @throws \Doctrine\ORM\OptimisticLockException + * @throws \Doctrine\ORM\TransactionRequiredException */ public function update(int $id, $data): User { diff --git a/src/App/Service/UserServiceFactory.php b/src/App/Service/UserServiceFactory.php index 80e0f81..e808055 100644 --- a/src/App/Service/UserServiceFactory.php +++ b/src/App/Service/UserServiceFactory.php @@ -2,8 +2,8 @@ namespace App\Service; -use App\Hydrator\DoctrineObject; use Doctrine\ORM\EntityManager; +use DoctrineExpressiveModule\Hydrator\DoctrineObject; use Interop\Container\ContainerInterface; class UserServiceFactory