Commit b422017f by Wittaya-PIM

Merge branch 'integration' of…

Merge branch 'integration' of http://gitlab.pakgon.com/Smart_Core_connect/core-connect into integration

# Conflicts:
#	www/src/Controller/UserCardsController.php
parents 658fa6f9 b1632bdb
...@@ -11,8 +11,10 @@ ...@@ -11,8 +11,10 @@
"cakephp/migrations": "^1.0", "cakephp/migrations": "^1.0",
"cakephp/plugin-installer": "^1.0", "cakephp/plugin-installer": "^1.0",
"josegonzalez/dotenv": "2.*", "josegonzalez/dotenv": "2.*",
"league/oauth2-github": "^2.0",
"maiconpinto/cakephp-adminlte-theme": "^1.0", "maiconpinto/cakephp-adminlte-theme": "^1.0",
"mobiledetect/mobiledetectlib": "2.*" "mobiledetect/mobiledetectlib": "2.*",
"muffin/oauth2": "dev-master"
}, },
"require-dev": { "require-dev": {
"cakephp/bake": "^1.1", "cakephp/bake": "^1.1",
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "5d2403e6025a6e93d48090b20bac64fa", "content-hash": "ebc259e4faf59f493adbde15e8aa5e34",
"packages": [ "packages": [
{ {
"name": "aura/intl", "name": "aura/intl",
...@@ -103,21 +103,21 @@ ...@@ -103,21 +103,21 @@
}, },
{ {
"name": "cakephp/cakephp", "name": "cakephp/cakephp",
"version": "3.5.4", "version": "3.5.17",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/cakephp/cakephp.git", "url": "https://github.com/cakephp/cakephp.git",
"reference": "eb609aff20945f8bc86cfb1fd3c50e6c62a502b0" "reference": "7727f122bac708a6b5883472bb3b22aad1e68e3b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/cakephp/cakephp/zipball/eb609aff20945f8bc86cfb1fd3c50e6c62a502b0", "url": "https://api.github.com/repos/cakephp/cakephp/zipball/7727f122bac708a6b5883472bb3b22aad1e68e3b",
"reference": "eb609aff20945f8bc86cfb1fd3c50e6c62a502b0", "reference": "7727f122bac708a6b5883472bb3b22aad1e68e3b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"aura/intl": "^3.0.0", "aura/intl": "^3.0.0",
"cakephp/chronos": "^1.0.0", "cakephp/chronos": "^1.0.1",
"ext-intl": "*", "ext-intl": "*",
"ext-mbstring": "*", "ext-mbstring": "*",
"php": ">=5.6.0", "php": ">=5.6.0",
...@@ -144,7 +144,7 @@ ...@@ -144,7 +144,7 @@
}, },
"require-dev": { "require-dev": {
"cakephp/cakephp-codesniffer": "^3.0", "cakephp/cakephp-codesniffer": "^3.0",
"phpunit/phpunit": "^5.7|^6.0" "phpunit/phpunit": "^5.7.14|^6.0"
}, },
"suggest": { "suggest": {
"ext-openssl": "To use Security::encrypt() or have secure CSRF token generation.", "ext-openssl": "To use Security::encrypt() or have secure CSRF token generation.",
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
"type": "library", "type": "library",
"autoload": { "autoload": {
"psr-4": { "psr-4": {
"Cake\\": "src" "Cake\\": "src/"
}, },
"files": [ "files": [
"src/Core/functions.php", "src/Core/functions.php",
...@@ -185,24 +185,24 @@ ...@@ -185,24 +185,24 @@
"rapid-development", "rapid-development",
"validation" "validation"
], ],
"time": "2017-10-16T02:25:27+00:00" "time": "2018-05-21T01:31:33+00:00"
}, },
{ {
"name": "cakephp/chronos", "name": "cakephp/chronos",
"version": "1.1.2", "version": "1.1.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/cakephp/chronos.git", "url": "https://github.com/cakephp/chronos.git",
"reference": "0621b191334d8dcb56907688986dd24eb8c38234" "reference": "85bcaea6a832684b32ef54b2487b0c14a172e9e6"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/cakephp/chronos/zipball/0621b191334d8dcb56907688986dd24eb8c38234", "url": "https://api.github.com/repos/cakephp/chronos/zipball/85bcaea6a832684b32ef54b2487b0c14a172e9e6",
"reference": "0621b191334d8dcb56907688986dd24eb8c38234", "reference": "85bcaea6a832684b32ef54b2487b0c14a172e9e6",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.5.9" "php": "^5.5.9|^7"
}, },
"require-dev": { "require-dev": {
"athletic/athletic": "~0.1", "athletic/athletic": "~0.1",
...@@ -242,20 +242,20 @@ ...@@ -242,20 +242,20 @@
"datetime", "datetime",
"time" "time"
], ],
"time": "2017-04-27T01:27:49+00:00" "time": "2018-01-13T12:19:50+00:00"
}, },
{ {
"name": "cakephp/migrations", "name": "cakephp/migrations",
"version": "1.7.1", "version": "1.7.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/cakephp/migrations.git", "url": "https://github.com/cakephp/migrations.git",
"reference": "90d427d0a1ae974e4d6795cf8310724d0a5c07db" "reference": "a5612adfd2efa8c90d29cb3b0c969de872a99eda"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/cakephp/migrations/zipball/90d427d0a1ae974e4d6795cf8310724d0a5c07db", "url": "https://api.github.com/repos/cakephp/migrations/zipball/a5612adfd2efa8c90d29cb3b0c969de872a99eda",
"reference": "90d427d0a1ae974e4d6795cf8310724d0a5c07db", "reference": "a5612adfd2efa8c90d29cb3b0c969de872a99eda",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -267,6 +267,7 @@ ...@@ -267,6 +267,7 @@
"require-dev": { "require-dev": {
"cakephp/bake": "@stable", "cakephp/bake": "@stable",
"cakephp/cakephp": "~3.2", "cakephp/cakephp": "~3.2",
"cakephp/cakephp-codesniffer": "^3.0",
"phpunit/phpunit": "~4.1" "phpunit/phpunit": "~4.1"
}, },
"suggest": { "suggest": {
...@@ -294,20 +295,20 @@ ...@@ -294,20 +295,20 @@
"cakephp", "cakephp",
"migrations" "migrations"
], ],
"time": "2017-08-05T13:16:31+00:00" "time": "2017-12-12T21:01:38+00:00"
}, },
{ {
"name": "cakephp/plugin-installer", "name": "cakephp/plugin-installer",
"version": "1.0.0", "version": "1.1.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/cakephp/plugin-installer.git", "url": "https://github.com/cakephp/plugin-installer.git",
"reference": "3449cb3251e3e741b123237765e278005565d8de" "reference": "41373d0678490502f45adc7be88aa22d24ac1843"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/cakephp/plugin-installer/zipball/3449cb3251e3e741b123237765e278005565d8de", "url": "https://api.github.com/repos/cakephp/plugin-installer/zipball/41373d0678490502f45adc7be88aa22d24ac1843",
"reference": "3449cb3251e3e741b123237765e278005565d8de", "reference": "41373d0678490502f45adc7be88aa22d24ac1843",
"shasum": "" "shasum": ""
}, },
"require-dev": { "require-dev": {
...@@ -335,27 +336,28 @@ ...@@ -335,27 +336,28 @@
} }
], ],
"description": "A composer installer for CakePHP 3.0+ plugins.", "description": "A composer installer for CakePHP 3.0+ plugins.",
"time": "2017-03-21T13:48:47+00:00" "time": "2017-12-24T21:09:29+00:00"
}, },
{ {
"name": "friendsofcake/bootstrap-ui", "name": "friendsofcake/bootstrap-ui",
"version": "1.2.1", "version": "1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/FriendsOfCake/bootstrap-ui.git", "url": "https://github.com/FriendsOfCake/bootstrap-ui.git",
"reference": "fd02bdcd2bb3f58fa7e68c4d770836e0ac9ac988" "reference": "373184478a1d3cd8b272cad60a3db55479dd3dc5"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/FriendsOfCake/bootstrap-ui/zipball/fd02bdcd2bb3f58fa7e68c4d770836e0ac9ac988", "url": "https://api.github.com/repos/FriendsOfCake/bootstrap-ui/zipball/373184478a1d3cd8b272cad60a3db55479dd3dc5",
"reference": "fd02bdcd2bb3f58fa7e68c4d770836e0ac9ac988", "reference": "373184478a1d3cd8b272cad60a3db55479dd3dc5",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"cakephp/cakephp": "~3.0" "cakephp/cakephp": "^3.5"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "<6.0" "cakephp/chronos": "^1.1",
"phpunit/phpunit": "^5.7.14|^6.0"
}, },
"type": "cakephp-plugin", "type": "cakephp-plugin",
"autoload": { "autoload": {
...@@ -385,7 +387,188 @@ ...@@ -385,7 +387,188 @@
"cakephp", "cakephp",
"twitter" "twitter"
], ],
"time": "2017-08-04T00:58:47+00:00" "time": "2018-04-16T21:52:50+00:00"
},
{
"name": "guzzlehttp/guzzle",
"version": "6.3.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"reference": "407b0cb880ace85c9b63c5f9551db498cb2d50ba",
"shasum": ""
},
"require": {
"guzzlehttp/promises": "^1.0",
"guzzlehttp/psr7": "^1.4",
"php": ">=5.5"
},
"require-dev": {
"ext-curl": "*",
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0",
"psr/log": "^1.0"
},
"suggest": {
"psr/log": "Required for using the Log middleware"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "6.3-dev"
}
},
"autoload": {
"files": [
"src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Guzzle is a PHP HTTP client library",
"homepage": "http://guzzlephp.org/",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"rest",
"web service"
],
"time": "2018-04-22T15:46:56+00:00"
},
{
"name": "guzzlehttp/promises",
"version": "v1.3.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
"shasum": ""
},
"require": {
"php": ">=5.5.0"
},
"require-dev": {
"phpunit/phpunit": "^4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
}
],
"description": "Guzzle promises library",
"keywords": [
"promise"
],
"time": "2016-12-20T10:07:11+00:00"
},
{
"name": "guzzlehttp/psr7",
"version": "1.4.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
"reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
"shasum": ""
},
"require": {
"php": ">=5.4.0",
"psr/http-message": "~1.0"
},
"provide": {
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"phpunit/phpunit": "~4.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.4-dev"
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
},
"files": [
"src/functions_include.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Schultze",
"homepage": "https://github.com/Tobion"
}
],
"description": "PSR-7 message implementation that also provides common utility methods",
"keywords": [
"http",
"message",
"request",
"response",
"stream",
"uri",
"url"
],
"time": "2017-03-20T17:10:46+00:00"
}, },
{ {
"name": "josegonzalez/dotenv", "name": "josegonzalez/dotenv",
...@@ -440,17 +623,139 @@ ...@@ -440,17 +623,139 @@
"time": "2017-01-03T01:04:05+00:00" "time": "2017-01-03T01:04:05+00:00"
}, },
{ {
"name": "league/oauth2-client",
"version": "2.3.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/oauth2-client.git",
"reference": "aa2e3df188f0bfd87f7880cc880e906e99923580"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/aa2e3df188f0bfd87f7880cc880e906e99923580",
"reference": "aa2e3df188f0bfd87f7880cc880e906e99923580",
"shasum": ""
},
"require": {
"guzzlehttp/guzzle": "^6.0",
"paragonie/random_compat": "^1|^2",
"php": "^5.6|^7.0"
},
"require-dev": {
"eloquent/liberator": "^2.0",
"eloquent/phony-phpunit": "^1.0|^3.0",
"jakub-onderka/php-parallel-lint": "^0.9.2",
"phpunit/phpunit": "^5.7|^6.0",
"squizlabs/php_codesniffer": "^2.3|^3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-2.x": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"League\\OAuth2\\Client\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Alex Bilbie",
"email": "hello@alexbilbie.com",
"homepage": "http://www.alexbilbie.com",
"role": "Developer"
},
{
"name": "Woody Gilk",
"homepage": "https://github.com/shadowhand",
"role": "Contributor"
}
],
"description": "OAuth 2.0 Client Library",
"keywords": [
"Authentication",
"SSO",
"authorization",
"identity",
"idp",
"oauth",
"oauth2",
"single sign on"
],
"time": "2018-01-13T05:27:58+00:00"
},
{
"name": "league/oauth2-github",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/oauth2-github.git",
"reference": "e63d64f3ec167c09232d189c6b0c397458a99357"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/thephpleague/oauth2-github/zipball/e63d64f3ec167c09232d189c6b0c397458a99357",
"reference": "e63d64f3ec167c09232d189c6b0c397458a99357",
"shasum": ""
},
"require": {
"league/oauth2-client": "^2.0"
},
"require-dev": {
"mockery/mockery": "~0.9",
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "~2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"League\\OAuth2\\Client\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Steven Maguire",
"email": "stevenmaguire@gmail.com",
"homepage": "https://github.com/stevenmaguire"
}
],
"description": "Github OAuth 2.0 Client Provider for The PHP League OAuth2-Client",
"keywords": [
"authorisation",
"authorization",
"client",
"github",
"oauth",
"oauth2"
],
"time": "2017-01-26T01:14:51+00:00"
},
{
"name": "m1/env", "name": "m1/env",
"version": "2.1.0", "version": "2.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/m1/Env.git", "url": "https://github.com/m1/Env.git",
"reference": "d87eddd031f2aa5450fa04bb1325de8a489b3cd0" "reference": "3589eae8e40d40be96de39222a6ca19c3af8eae4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/m1/Env/zipball/d87eddd031f2aa5450fa04bb1325de8a489b3cd0", "url": "https://api.github.com/repos/m1/Env/zipball/3589eae8e40d40be96de39222a6ca19c3af8eae4",
"reference": "d87eddd031f2aa5450fa04bb1325de8a489b3cd0", "reference": "3589eae8e40d40be96de39222a6ca19c3af8eae4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -495,20 +800,20 @@ ...@@ -495,20 +800,20 @@
"parser", "parser",
"support" "support"
], ],
"time": "2016-10-06T19:31:28+00:00" "time": "2018-05-16T22:40:58+00:00"
}, },
{ {
"name": "maiconpinto/cakephp-adminlte-theme", "name": "maiconpinto/cakephp-adminlte-theme",
"version": "1.0.7", "version": "1.0.8",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/maiconpinto/cakephp-adminlte-theme.git", "url": "https://github.com/maiconpinto/cakephp-adminlte-theme.git",
"reference": "2f41a2db457680fd16019c0593ba65c6691fa738" "reference": "34f1d9def3f9d7d99833840cff10dba6f828b033"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/maiconpinto/cakephp-adminlte-theme/zipball/2f41a2db457680fd16019c0593ba65c6691fa738", "url": "https://api.github.com/repos/maiconpinto/cakephp-adminlte-theme/zipball/34f1d9def3f9d7d99833840cff10dba6f828b033",
"reference": "2f41a2db457680fd16019c0593ba65c6691fa738", "reference": "34f1d9def3f9d7d99833840cff10dba6f828b033",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -543,27 +848,27 @@ ...@@ -543,27 +848,27 @@
"plugin", "plugin",
"templates" "templates"
], ],
"time": "2017-08-25T02:11:19+00:00" "time": "2018-03-31T00:50:13+00:00"
}, },
{ {
"name": "mobiledetect/mobiledetectlib", "name": "mobiledetect/mobiledetectlib",
"version": "2.8.26", "version": "2.8.31",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/serbanghita/Mobile-Detect.git", "url": "https://github.com/serbanghita/Mobile-Detect.git",
"reference": "a0ed86c9d7c04ae27fa6418b55e3beb04dfe3297" "reference": "adb882ea3b9d154f087ecb2c333180dad6f4dd37"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/a0ed86c9d7c04ae27fa6418b55e3beb04dfe3297", "url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/adb882ea3b9d154f087ecb2c333180dad6f4dd37",
"reference": "a0ed86c9d7c04ae27fa6418b55e3beb04dfe3297", "reference": "adb882ea3b9d154f087ecb2c333180dad6f4dd37",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=5.0.0" "php": ">=5.0.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "*" "phpunit/phpunit": "~4.8.35||~5.7"
}, },
"type": "library", "type": "library",
"autoload": { "autoload": {
...@@ -595,7 +900,118 @@ ...@@ -595,7 +900,118 @@
"mobile detector", "mobile detector",
"php mobile detect" "php mobile detect"
], ],
"time": "2017-08-29T18:23:54+00:00" "time": "2018-02-26T19:39:55+00:00"
},
{
"name": "muffin/oauth2",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/UseMuffin/OAuth2.git",
"reference": "45f508b3cb72906b093a4a20668fde6e305c839f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/UseMuffin/OAuth2/zipball/45f508b3cb72906b093a4a20668fde6e305c839f",
"reference": "45f508b3cb72906b093a4a20668fde6e305c839f",
"shasum": ""
},
"require-dev": {
"cakephp/cakephp": "^3.0",
"cakephp/cakephp-codesniffer": "^2.0",
"league/oauth2-github": "^0.2",
"phpunit/phpunit": "*"
},
"type": "cakephp-plugin",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Muffin\\OAuth2\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jad Bitar",
"homepage": "http://jadb.io",
"role": "Author"
},
{
"name": "ADmad",
"homepage": "https://github.com/ADmad",
"role": "Author"
},
{
"name": "Others",
"homepage": "https://github.com/usemuffin/oauth2/graphs/contributors"
}
],
"description": "CakePHP 3 authentication using the league/oauth2-client family",
"homepage": "https://github.com/usemuffin/oauth2",
"keywords": [
"Authentication",
"auth",
"cakephp",
"league",
"muffin",
"oauth2"
],
"time": "2016-08-30T17:55:56+00:00"
},
{
"name": "paragonie/random_compat",
"version": "v2.0.12",
"source": {
"type": "git",
"url": "https://github.com/paragonie/random_compat.git",
"reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/random_compat/zipball/258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
"reference": "258c89a6b97de7dfaf5b8c7607d0478e236b04fb",
"shasum": ""
},
"require": {
"php": ">=5.2.0"
},
"require-dev": {
"phpunit/phpunit": "4.*|5.*"
},
"suggest": {
"ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
},
"type": "library",
"autoload": {
"files": [
"lib/random.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Paragon Initiative Enterprises",
"email": "security@paragonie.com",
"homepage": "https://paragonie.com"
}
],
"description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
"keywords": [
"csprng",
"pseudorandom",
"random"
],
"time": "2018-04-04T21:24:14+00:00"
}, },
{ {
"name": "psr/http-message", "name": "psr/http-message",
...@@ -762,30 +1178,31 @@ ...@@ -762,30 +1178,31 @@
}, },
{ {
"name": "symfony/config", "name": "symfony/config",
"version": "v3.3.10", "version": "v3.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/config.git", "url": "https://github.com/symfony/config.git",
"reference": "4ab62407bff9cd97c410a7feaef04c375aaa5cfd" "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/config/zipball/4ab62407bff9cd97c410a7feaef04c375aaa5cfd", "url": "https://api.github.com/repos/symfony/config/zipball/7c2a9d44f4433863e9bca682e7f03609234657f9",
"reference": "4ab62407bff9cd97c410a7feaef04c375aaa5cfd", "reference": "7c2a9d44f4433863e9bca682e7f03609234657f9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.5.9|>=7.0.8", "php": "^5.5.9|>=7.0.8",
"symfony/filesystem": "~2.8|~3.0" "symfony/filesystem": "~2.8|~3.0|~4.0"
}, },
"conflict": { "conflict": {
"symfony/dependency-injection": "<3.3", "symfony/dependency-injection": "<3.3",
"symfony/finder": "<3.3" "symfony/finder": "<3.3"
}, },
"require-dev": { "require-dev": {
"symfony/dependency-injection": "~3.3", "symfony/dependency-injection": "~3.3|~4.0",
"symfony/finder": "~3.3", "symfony/event-dispatcher": "~3.3|~4.0",
"symfony/yaml": "~3.0" "symfony/finder": "~3.3|~4.0",
"symfony/yaml": "~3.0|~4.0"
}, },
"suggest": { "suggest": {
"symfony/yaml": "To use the yaml reference dumper" "symfony/yaml": "To use the yaml reference dumper"
...@@ -793,7 +1210,7 @@ ...@@ -793,7 +1210,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.3-dev" "dev-master": "3.4-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -820,48 +1237,49 @@ ...@@ -820,48 +1237,49 @@
], ],
"description": "Symfony Config Component", "description": "Symfony Config Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-10-04T18:56:58+00:00" "time": "2018-03-19T22:32:39+00:00"
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v3.3.10", "version": "v3.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "116bc56e45a8e5572e51eb43ab58c769a352366c" "reference": "5b1fdfa8eb93464bcc36c34da39cedffef822cdf"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/116bc56e45a8e5572e51eb43ab58c769a352366c", "url": "https://api.github.com/repos/symfony/console/zipball/5b1fdfa8eb93464bcc36c34da39cedffef822cdf",
"reference": "116bc56e45a8e5572e51eb43ab58c769a352366c", "reference": "5b1fdfa8eb93464bcc36c34da39cedffef822cdf",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.5.9|>=7.0.8", "php": "^5.5.9|>=7.0.8",
"symfony/debug": "~2.8|~3.0", "symfony/debug": "~2.8|~3.0|~4.0",
"symfony/polyfill-mbstring": "~1.0" "symfony/polyfill-mbstring": "~1.0"
}, },
"conflict": { "conflict": {
"symfony/dependency-injection": "<3.3" "symfony/dependency-injection": "<3.4",
"symfony/process": "<3.3"
}, },
"require-dev": { "require-dev": {
"psr/log": "~1.0", "psr/log": "~1.0",
"symfony/config": "~3.3", "symfony/config": "~3.3|~4.0",
"symfony/dependency-injection": "~3.3", "symfony/dependency-injection": "~3.4|~4.0",
"symfony/event-dispatcher": "~2.8|~3.0", "symfony/event-dispatcher": "~2.8|~3.0|~4.0",
"symfony/filesystem": "~2.8|~3.0", "symfony/lock": "~3.4|~4.0",
"symfony/process": "~2.8|~3.0" "symfony/process": "~3.3|~4.0"
}, },
"suggest": { "suggest": {
"psr/log": "For using the console logger", "psr/log-implementation": "For using the console logger",
"symfony/event-dispatcher": "", "symfony/event-dispatcher": "",
"symfony/filesystem": "", "symfony/lock": "",
"symfony/process": "" "symfony/process": ""
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.3-dev" "dev-master": "3.4-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -888,20 +1306,20 @@ ...@@ -888,20 +1306,20 @@
], ],
"description": "Symfony Console Component", "description": "Symfony Console Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00" "time": "2018-04-30T01:22:56+00:00"
}, },
{ {
"name": "symfony/debug", "name": "symfony/debug",
"version": "v3.3.10", "version": "v3.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/debug.git", "url": "https://github.com/symfony/debug.git",
"reference": "eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd" "reference": "1b95888cfd996484527cb41e8952d9a5eaf7454f"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/debug/zipball/eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd", "url": "https://api.github.com/repos/symfony/debug/zipball/1b95888cfd996484527cb41e8952d9a5eaf7454f",
"reference": "eb95d9ce8f18dcc1b3dfff00cb624c402be78ffd", "reference": "1b95888cfd996484527cb41e8952d9a5eaf7454f",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -912,12 +1330,12 @@ ...@@ -912,12 +1330,12 @@
"symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2" "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
}, },
"require-dev": { "require-dev": {
"symfony/http-kernel": "~2.8|~3.0" "symfony/http-kernel": "~2.8|~3.0|~4.0"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.3-dev" "dev-master": "3.4-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -944,20 +1362,20 @@ ...@@ -944,20 +1362,20 @@
], ],
"description": "Symfony Debug Component", "description": "Symfony Debug Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00" "time": "2018-04-30T16:53:52+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v3.3.10", "version": "v3.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
"reference": "90bc45abf02ae6b7deb43895c1052cb0038506f1" "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/filesystem/zipball/90bc45abf02ae6b7deb43895c1052cb0038506f1", "url": "https://api.github.com/repos/symfony/filesystem/zipball/253a4490b528597aa14d2bf5aeded6f5e5e4a541",
"reference": "90bc45abf02ae6b7deb43895c1052cb0038506f1", "reference": "253a4490b528597aa14d2bf5aeded6f5e5e4a541",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -966,7 +1384,7 @@ ...@@ -966,7 +1384,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.3-dev" "dev-master": "3.4-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -993,20 +1411,20 @@ ...@@ -993,20 +1411,20 @@
], ],
"description": "Symfony Filesystem Component", "description": "Symfony Filesystem Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-10-03T13:33:10+00:00" "time": "2018-02-22T10:48:49+00:00"
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.5.0", "version": "v1.8.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803" "reference": "3296adf6a6454a050679cde90f95350ad604b171"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7c8fae0ac1d216eb54349e6a8baa57d515fe8803", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/3296adf6a6454a050679cde90f95350ad604b171",
"reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803", "reference": "3296adf6a6454a050679cde90f95350ad604b171",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1018,7 +1436,7 @@ ...@@ -1018,7 +1436,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.5-dev" "dev-master": "1.8-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1052,27 +1470,30 @@ ...@@ -1052,27 +1470,30 @@
"portable", "portable",
"shim" "shim"
], ],
"time": "2017-06-14T15:44:48+00:00" "time": "2018-04-26T10:06:28+00:00"
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
"version": "v3.3.10", "version": "v3.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/yaml.git", "url": "https://github.com/symfony/yaml.git",
"reference": "8c7bf1e7d5d6b05a690b715729cb4cd0c0a99c46" "reference": "033cfa61ef06ee0847e056e530201842b6e926c3"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/8c7bf1e7d5d6b05a690b715729cb4cd0c0a99c46", "url": "https://api.github.com/repos/symfony/yaml/zipball/033cfa61ef06ee0847e056e530201842b6e926c3",
"reference": "8c7bf1e7d5d6b05a690b715729cb4cd0c0a99c46", "reference": "033cfa61ef06ee0847e056e530201842b6e926c3",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.5.9|>=7.0.8" "php": "^5.5.9|>=7.0.8"
}, },
"conflict": {
"symfony/console": "<3.4"
},
"require-dev": { "require-dev": {
"symfony/console": "~2.8|~3.0" "symfony/console": "~3.4|~4.0"
}, },
"suggest": { "suggest": {
"symfony/console": "For validating YAML files using the lint command" "symfony/console": "For validating YAML files using the lint command"
...@@ -1080,7 +1501,7 @@ ...@@ -1080,7 +1501,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.3-dev" "dev-master": "3.4-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1107,20 +1528,20 @@ ...@@ -1107,20 +1528,20 @@
], ],
"description": "Symfony Yaml Component", "description": "Symfony Yaml Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-10-05T14:43:42+00:00" "time": "2018-04-08T08:21:29+00:00"
}, },
{ {
"name": "zendframework/zend-diactoros", "name": "zendframework/zend-diactoros",
"version": "1.6.1", "version": "1.7.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/zendframework/zend-diactoros.git", "url": "https://github.com/zendframework/zend-diactoros.git",
"reference": "c8664b92a6d5bc229e48b0923486c097e45a7877" "reference": "bf26aff803a11c5cc8eb7c4878a702c403ec67f1"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/c8664b92a6d5bc229e48b0923486c097e45a7877", "url": "https://api.github.com/repos/zendframework/zend-diactoros/zipball/bf26aff803a11c5cc8eb7c4878a702c403ec67f1",
"reference": "c8664b92a6d5bc229e48b0923486c097e45a7877", "reference": "bf26aff803a11c5cc8eb7c4878a702c403ec67f1",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1139,8 +1560,8 @@ ...@@ -1139,8 +1560,8 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.6-dev", "dev-master": "1.7.x-dev",
"dev-develop": "1.7-dev" "dev-develop": "1.8.x-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1159,32 +1580,204 @@ ...@@ -1159,32 +1580,204 @@
"psr", "psr",
"psr-7" "psr-7"
], ],
"time": "2017-10-12T15:24:51+00:00" "time": "2018-02-26T15:44:50+00:00"
} }
], ],
"packages-dev": [ "packages-dev": [
{ {
"name": "ajgl/breakpoint-twig-extension",
"version": "0.3.1",
"source": {
"type": "git",
"url": "https://github.com/ajgarlag/AjglBreakpointTwigExtension.git",
"reference": "360ec6351ad7e1968ee78abb31430046c2e04fc5"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ajgarlag/AjglBreakpointTwigExtension/zipball/360ec6351ad7e1968ee78abb31430046c2e04fc5",
"reference": "360ec6351ad7e1968ee78abb31430046c2e04fc5",
"shasum": ""
},
"require": {
"php": ">=5.6",
"twig/twig": "^1.14|^2.0"
},
"require-dev": {
"phpunit/phpunit": "^5",
"symfony/framework-bundle": "^2.7|^3.2",
"symfony/twig-bundle": "^2.7|^3.2"
},
"suggest": {
"ext-xdebug": "The Xdebug extension is required for the breakpoint to work",
"symfony/framework-bundle": "The framework bundle to integrate the extension into Symfony",
"symfony/twig-bundle": "The twig bundle to integrate the extension into Symfony"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "0.3.x-dev"
}
},
"autoload": {
"psr-4": {
"Ajgl\\Twig\\Extension\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Antonio J. García Lagar",
"email": "aj@garcialagar.es",
"homepage": "http://aj.garcialagar.es",
"role": "developer"
}
],
"description": "Twig extension to set breakpoints",
"homepage": "https://github.com/ajgarlag/AjglBreakpointTwigExtension",
"keywords": [
"Xdebug",
"breakpoint",
"twig"
],
"time": "2017-11-20T13:04:11+00:00"
},
{
"name": "aptoma/twig-markdown",
"version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/aptoma/twig-markdown.git",
"reference": "64a9c5c7418c08faf91c4410b34bdb65fb25c23d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/aptoma/twig-markdown/zipball/64a9c5c7418c08faf91c4410b34bdb65fb25c23d",
"reference": "64a9c5c7418c08faf91c4410b34bdb65fb25c23d",
"shasum": ""
},
"require": {
"twig/twig": "~1.12"
},
"require-dev": {
"codeclimate/php-test-reporter": "dev-master",
"erusev/parsedown": "^1.6",
"knplabs/github-api": "~1.2",
"league/commonmark": "~0.5",
"michelf/php-markdown": "~1",
"phpunit/phpunit": "~4.0",
"satooshi/php-coveralls": "~0.6"
},
"suggest": {
"knplabs/github-api": "Needed for using GitHub's Markdown engine provided through their API.",
"michelf/php-markdown": "Original Markdown engine with MarkdownExtra."
},
"type": "library",
"autoload": {
"psr-0": {
"Aptoma": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Joris Berthelot",
"email": "joris@berthelot.tel"
},
{
"name": "Gunnar Lium",
"email": "gunnar@aptoma.com"
}
],
"description": "Twig extension to work with Markdown content",
"keywords": [
"markdown",
"twig"
],
"time": "2015-10-23T20:27:08+00:00"
},
{
"name": "asm89/twig-cache-extension",
"version": "1.3.2",
"source": {
"type": "git",
"url": "https://github.com/asm89/twig-cache-extension.git",
"reference": "630ea7abdc3fc62ba6786c02590a1560e449cf55"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/asm89/twig-cache-extension/zipball/630ea7abdc3fc62ba6786c02590a1560e449cf55",
"reference": "630ea7abdc3fc62ba6786c02590a1560e449cf55",
"shasum": ""
},
"require": {
"php": ">=5.3.2",
"twig/twig": "^1.0|^2.0"
},
"require-dev": {
"doctrine/cache": "~1.0"
},
"suggest": {
"psr/cache-implementation": "To make use of PSR-6 cache implementation via PsrCacheAdapter."
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3-dev"
}
},
"autoload": {
"psr-4": {
"": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Alexander",
"email": "iam.asm89@gmail.com"
}
],
"description": "Cache fragments of templates directly within Twig.",
"homepage": "https://github.com/asm89/twig-cache-extension",
"keywords": [
"cache",
"extension",
"twig"
],
"time": "2017-01-10T22:04:15+00:00"
},
{
"name": "cakephp/bake", "name": "cakephp/bake",
"version": "1.4.4", "version": "1.6.4",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/cakephp/bake.git", "url": "https://github.com/cakephp/bake.git",
"reference": "1457d59df095db2d5aee2f280eb576970f932194" "reference": "0ca2165ac770f8e3c7b278f3f022df14d7b0913a"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/cakephp/bake/zipball/1457d59df095db2d5aee2f280eb576970f932194", "url": "https://api.github.com/repos/cakephp/bake/zipball/0ca2165ac770f8e3c7b278f3f022df14d7b0913a",
"reference": "1457d59df095db2d5aee2f280eb576970f932194", "reference": "0ca2165ac770f8e3c7b278f3f022df14d7b0913a",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"cakephp/cakephp": ">=3.5.0,<4.0.0", "cakephp/cakephp": "^3.5.10",
"cakephp/plugin-installer": "~1.0", "cakephp/plugin-installer": "^1.0",
"php": ">=5.6.0" "php": ">=5.6.0",
"wyrihaximus/twig-view": "^4.2.1"
}, },
"require-dev": { "require-dev": {
"cakephp/cakephp-codesniffer": "^3.0", "cakephp/cakephp-codesniffer": "^3.0",
"phpunit/phpunit": "~5.7 | ~6.0" "phpunit/phpunit": "^5.7 | ^6.0"
}, },
"type": "cakephp-plugin", "type": "cakephp-plugin",
"autoload": { "autoload": {
...@@ -1208,20 +1801,20 @@ ...@@ -1208,20 +1801,20 @@
"bake", "bake",
"cakephp" "cakephp"
], ],
"time": "2017-10-14T20:01:15+00:00" "time": "2018-03-10T01:47:21+00:00"
}, },
{ {
"name": "cakephp/cakephp-codesniffer", "name": "cakephp/cakephp-codesniffer",
"version": "3.0.1", "version": "3.0.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/cakephp/cakephp-codesniffer.git", "url": "https://github.com/cakephp/cakephp-codesniffer.git",
"reference": "2c7b5724d2221d509e4cb060952838d0612d0063" "reference": "d77ac81199f2f1e5a8d8ebf96a5d6d7cd4e0542b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/2c7b5724d2221d509e4cb060952838d0612d0063", "url": "https://api.github.com/repos/cakephp/cakephp-codesniffer/zipball/d77ac81199f2f1e5a8d8ebf96a5d6d7cd4e0542b",
"reference": "2c7b5724d2221d509e4cb060952838d0612d0063", "reference": "d77ac81199f2f1e5a8d8ebf96a5d6d7cd4e0542b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1253,20 +1846,20 @@ ...@@ -1253,20 +1846,20 @@
"codesniffer", "codesniffer",
"framework" "framework"
], ],
"time": "2017-07-28T01:42:31+00:00" "time": "2017-12-21T20:01:35+00:00"
}, },
{ {
"name": "cakephp/debug_kit", "name": "cakephp/debug_kit",
"version": "3.11.1", "version": "3.14.2",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/cakephp/debug_kit.git", "url": "https://github.com/cakephp/debug_kit.git",
"reference": "c36fdac8c5fd427b06dd7d8b2d01cb90a92dfd4c" "reference": "b5e11f386b9ff28694950f68ef3e0456c242051b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/cakephp/debug_kit/zipball/c36fdac8c5fd427b06dd7d8b2d01cb90a92dfd4c", "url": "https://api.github.com/repos/cakephp/debug_kit/zipball/b5e11f386b9ff28694950f68ef3e0456c242051b",
"reference": "c36fdac8c5fd427b06dd7d8b2d01cb90a92dfd4c", "reference": "b5e11f386b9ff28694950f68ef3e0456c242051b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1313,20 +1906,20 @@ ...@@ -1313,20 +1906,20 @@
"debug", "debug",
"kit" "kit"
], ],
"time": "2017-08-29T07:49:35+00:00" "time": "2018-03-08T18:21:10+00:00"
}, },
{ {
"name": "composer/ca-bundle", "name": "composer/ca-bundle",
"version": "1.0.8", "version": "1.1.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/ca-bundle.git", "url": "https://github.com/composer/ca-bundle.git",
"reference": "9dd73a03951357922d8aee6cc084500de93e2343" "reference": "d2c0a83b7533d6912e8d516756ebd34f893e9169"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/9dd73a03951357922d8aee6cc084500de93e2343", "url": "https://api.github.com/repos/composer/ca-bundle/zipball/d2c0a83b7533d6912e8d516756ebd34f893e9169",
"reference": "9dd73a03951357922d8aee6cc084500de93e2343", "reference": "d2c0a83b7533d6912e8d516756ebd34f893e9169",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1335,12 +1928,9 @@ ...@@ -1335,12 +1928,9 @@
"php": "^5.3.2 || ^7.0" "php": "^5.3.2 || ^7.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.5", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5",
"psr/log": "^1.0", "psr/log": "^1.0",
"symfony/process": "^2.5 || ^3.0" "symfony/process": "^2.5 || ^3.0 || ^4.0"
},
"suggest": {
"symfony/process": "This is necessary to reliably check whether openssl_x509_parse is vulnerable on older php versions, but can be ignored on PHP 5.5.6+"
}, },
"type": "library", "type": "library",
"extra": { "extra": {
...@@ -1372,39 +1962,42 @@ ...@@ -1372,39 +1962,42 @@
"ssl", "ssl",
"tls" "tls"
], ],
"time": "2017-09-11T07:24:36+00:00" "time": "2018-03-29T19:57:20+00:00"
}, },
{ {
"name": "composer/composer", "name": "composer/composer",
"version": "1.5.2", "version": "1.6.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/composer.git", "url": "https://github.com/composer/composer.git",
"reference": "c639623fa2178b404ed4bab80f0d1263853fa4ae" "reference": "b184a92419cc9a9c4c6a09db555a94d441cb11c9"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/composer/zipball/c639623fa2178b404ed4bab80f0d1263853fa4ae", "url": "https://api.github.com/repos/composer/composer/zipball/b184a92419cc9a9c4c6a09db555a94d441cb11c9",
"reference": "c639623fa2178b404ed4bab80f0d1263853fa4ae", "reference": "b184a92419cc9a9c4c6a09db555a94d441cb11c9",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"composer/ca-bundle": "^1.0", "composer/ca-bundle": "^1.0",
"composer/semver": "^1.0", "composer/semver": "^1.0",
"composer/spdx-licenses": "^1.0", "composer/spdx-licenses": "^1.2",
"justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0", "justinrainbow/json-schema": "^3.0 || ^4.0 || ^5.0",
"php": "^5.3.2 || ^7.0", "php": "^5.3.2 || ^7.0",
"psr/log": "^1.0", "psr/log": "^1.0",
"seld/cli-prompt": "^1.0", "seld/cli-prompt": "^1.0",
"seld/jsonlint": "^1.4", "seld/jsonlint": "^1.4",
"seld/phar-utils": "^1.0", "seld/phar-utils": "^1.0",
"symfony/console": "^2.7 || ^3.0", "symfony/console": "^2.7 || ^3.0 || ^4.0",
"symfony/filesystem": "^2.7 || ^3.0", "symfony/filesystem": "^2.7 || ^3.0 || ^4.0",
"symfony/finder": "^2.7 || ^3.0", "symfony/finder": "^2.7 || ^3.0 || ^4.0",
"symfony/process": "^2.7 || ^3.0" "symfony/process": "^2.7 || ^3.0 || ^4.0"
},
"conflict": {
"symfony/console": "2.8.38"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.5 || ^5.0.5", "phpunit/phpunit": "^4.8.35 || ^5.7",
"phpunit/phpunit-mock-objects": "^2.3 || ^3.0" "phpunit/phpunit-mock-objects": "^2.3 || ^3.0"
}, },
"suggest": { "suggest": {
...@@ -1418,7 +2011,7 @@ ...@@ -1418,7 +2011,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "1.5-dev" "dev-master": "1.6-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -1449,7 +2042,7 @@ ...@@ -1449,7 +2042,7 @@
"dependency", "dependency",
"package" "package"
], ],
"time": "2017-09-11T14:59:26+00:00" "time": "2018-05-04T09:44:59+00:00"
}, },
{ {
"name": "composer/semver", "name": "composer/semver",
...@@ -1515,23 +2108,23 @@ ...@@ -1515,23 +2108,23 @@
}, },
{ {
"name": "composer/spdx-licenses", "name": "composer/spdx-licenses",
"version": "1.1.6", "version": "1.4.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/composer/spdx-licenses.git", "url": "https://github.com/composer/spdx-licenses.git",
"reference": "2603a0d7ddc00a015deb576fa5297ca43dee6b1c" "reference": "cb17687e9f936acd7e7245ad3890f953770dec1b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/composer/spdx-licenses/zipball/2603a0d7ddc00a015deb576fa5297ca43dee6b1c", "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/cb17687e9f936acd7e7245ad3890f953770dec1b",
"reference": "2603a0d7ddc00a015deb576fa5297ca43dee6b1c", "reference": "cb17687e9f936acd7e7245ad3890f953770dec1b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.3.2 || ^7.0" "php": "^5.3.2 || ^7.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.5 || ^5.0.5", "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5",
"phpunit/phpunit-mock-objects": "2.3.0 || ^3.0" "phpunit/phpunit-mock-objects": "2.3.0 || ^3.0"
}, },
"type": "library", "type": "library",
...@@ -1572,7 +2165,7 @@ ...@@ -1572,7 +2165,7 @@
"spdx", "spdx",
"validator" "validator"
], ],
"time": "2017-04-03T19:08:52+00:00" "time": "2018-04-30T10:33:04+00:00"
}, },
{ {
"name": "dnoegel/php-xdg-base-dir", "name": "dnoegel/php-xdg-base-dir",
...@@ -1695,6 +2288,66 @@ ...@@ -1695,6 +2288,66 @@
"time": "2015-04-20T18:58:01+00:00" "time": "2015-04-20T18:58:01+00:00"
}, },
{ {
"name": "jasny/twig-extensions",
"version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/jasny/twig-extensions.git",
"reference": "30bdf3a3903c021544f36332c9d5d4d563527da4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jasny/twig-extensions/zipball/30bdf3a3903c021544f36332c9d5d4d563527da4",
"reference": "30bdf3a3903c021544f36332c9d5d4d563527da4",
"shasum": ""
},
"require": {
"php": ">=7.0.0 | >=5.6.0",
"twig/twig": "^2.0 | ^1.12"
},
"require-dev": {
"ext-intl": "*",
"ext-pcre": "*",
"jasny/php-code-quality": "^2.1",
"phpunit/phpunit": "^5.0"
},
"suggest": {
"ext-intl": "Required for the use of the LocalDate Twig extension",
"ext-pcre": "Required for the use of the PCRE Twig extension"
},
"type": "library",
"autoload": {
"psr-4": {
"Jasny\\Twig\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Arnold Daniels",
"email": "arnold@jasny.net",
"homepage": "http://www.jasny.net"
}
],
"description": "A set of useful Twig filters",
"homepage": "http://github.com/jasny/twig-extensions#README",
"keywords": [
"PCRE",
"array",
"date",
"datetime",
"preg",
"regex",
"templating",
"text",
"time"
],
"time": "2017-09-13T07:38:01+00:00"
},
{
"name": "jdorn/sql-formatter", "name": "jdorn/sql-formatter",
"version": "v1.2.17", "version": "v1.2.17",
"source": { "source": {
...@@ -1746,16 +2399,16 @@ ...@@ -1746,16 +2399,16 @@
}, },
{ {
"name": "justinrainbow/json-schema", "name": "justinrainbow/json-schema",
"version": "5.2.5", "version": "5.2.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/justinrainbow/json-schema.git", "url": "https://github.com/justinrainbow/json-schema.git",
"reference": "0d4fda8efdf216ade084a7f0aad5637572ce9835" "reference": "8560d4314577199ba51bf2032f02cd1315587c23"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/0d4fda8efdf216ade084a7f0aad5637572ce9835", "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/8560d4314577199ba51bf2032f02cd1315587c23",
"reference": "0d4fda8efdf216ade084a7f0aad5637572ce9835", "reference": "8560d4314577199ba51bf2032f02cd1315587c23",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1764,7 +2417,7 @@ ...@@ -1764,7 +2417,7 @@
"require-dev": { "require-dev": {
"friendsofphp/php-cs-fixer": "^2.1", "friendsofphp/php-cs-fixer": "^2.1",
"json-schema/json-schema-test-suite": "1.2.0", "json-schema/json-schema-test-suite": "1.2.0",
"phpunit/phpunit": "^4.8.22" "phpunit/phpunit": "^4.8.35"
}, },
"bin": [ "bin": [
"bin/validate-json" "bin/validate-json"
...@@ -1808,20 +2461,20 @@ ...@@ -1808,20 +2461,20 @@
"json", "json",
"schema" "schema"
], ],
"time": "2017-10-10T13:22:37+00:00" "time": "2018-02-14T22:26:30+00:00"
}, },
{ {
"name": "nikic/php-parser", "name": "nikic/php-parser",
"version": "v3.1.1", "version": "v3.1.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/nikic/PHP-Parser.git", "url": "https://github.com/nikic/PHP-Parser.git",
"reference": "a1e8e1a30e1352f118feff1a8481066ddc2f234a" "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a1e8e1a30e1352f118feff1a8481066ddc2f234a", "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/bb87e28e7d7b8d9a7fda231d37457c9210faf6ce",
"reference": "a1e8e1a30e1352f118feff1a8481066ddc2f234a", "reference": "bb87e28e7d7b8d9a7fda231d37457c9210faf6ce",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -1859,35 +2512,34 @@ ...@@ -1859,35 +2512,34 @@
"parser", "parser",
"php" "php"
], ],
"time": "2017-09-02T17:10:46+00:00" "time": "2018-02-28T20:30:58+00:00"
}, },
{ {
"name": "psy/psysh", "name": "psy/psysh",
"version": "v0.8.12", "version": "v0.9.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/bobthecow/psysh.git", "url": "https://github.com/bobthecow/psysh.git",
"reference": "1502354ebc70d59d8e3a87c325b0eb78a79da25b" "reference": "79c280013cf0b30fa23f3ba8bd3649218075adf4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/bobthecow/psysh/zipball/1502354ebc70d59d8e3a87c325b0eb78a79da25b", "url": "https://api.github.com/repos/bobthecow/psysh/zipball/79c280013cf0b30fa23f3ba8bd3649218075adf4",
"reference": "1502354ebc70d59d8e3a87c325b0eb78a79da25b", "reference": "79c280013cf0b30fa23f3ba8bd3649218075adf4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"dnoegel/php-xdg-base-dir": "0.1", "dnoegel/php-xdg-base-dir": "0.1",
"jakub-onderka/php-console-highlighter": "0.3.*", "jakub-onderka/php-console-highlighter": "0.3.*",
"nikic/php-parser": "~1.3|~2.0|~3.0", "nikic/php-parser": "~1.3|~2.0|~3.0|~4.0",
"php": ">=5.3.9", "php": ">=5.4.0",
"symfony/console": "~2.3.10|^2.4.2|~3.0", "symfony/console": "~2.3.10|^2.4.2|~3.0|~4.0",
"symfony/var-dumper": "~2.7|~3.0" "symfony/var-dumper": "~2.7|~3.0|~4.0"
}, },
"require-dev": { "require-dev": {
"friendsofphp/php-cs-fixer": "~1.11", "hoa/console": "~2.15|~3.16",
"hoa/console": "~3.16|~1.14", "phpunit/phpunit": "~4.8.35|~5.0|~6.0|~7.0",
"phpunit/phpunit": "~4.4|~5.0", "symfony/finder": "~2.1|~3.0|~4.0"
"symfony/finder": "~2.1|~3.0"
}, },
"suggest": { "suggest": {
"ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)", "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
...@@ -1902,15 +2554,15 @@ ...@@ -1902,15 +2554,15 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-develop": "0.8.x-dev" "dev-develop": "0.9.x-dev"
} }
}, },
"autoload": { "autoload": {
"files": [ "files": [
"src/Psy/functions.php" "src/functions.php"
], ],
"psr-4": { "psr-4": {
"Psy\\": "src/Psy/" "Psy\\": "src/"
} }
}, },
"notification-url": "https://packagist.org/downloads/", "notification-url": "https://packagist.org/downloads/",
...@@ -1932,7 +2584,7 @@ ...@@ -1932,7 +2584,7 @@
"interactive", "interactive",
"shell" "shell"
], ],
"time": "2017-10-14T17:14:13+00:00" "time": "2018-04-18T12:32:50+00:00"
}, },
{ {
"name": "seld/cli-prompt", "name": "seld/cli-prompt",
...@@ -1984,23 +2636,23 @@ ...@@ -1984,23 +2636,23 @@
}, },
{ {
"name": "seld/jsonlint", "name": "seld/jsonlint",
"version": "1.6.1", "version": "1.7.1",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/Seldaek/jsonlint.git", "url": "https://github.com/Seldaek/jsonlint.git",
"reference": "50d63f2858d87c4738d5b76a7dcbb99fa8cf7c77" "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/50d63f2858d87c4738d5b76a7dcbb99fa8cf7c77", "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/d15f59a67ff805a44c50ea0516d2341740f81a38",
"reference": "50d63f2858d87c4738d5b76a7dcbb99fa8cf7c77", "reference": "d15f59a67ff805a44c50ea0516d2341740f81a38",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^5.3 || ^7.0" "php": "^5.3 || ^7.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.5" "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
}, },
"bin": [ "bin": [
"bin/jsonlint" "bin/jsonlint"
...@@ -2029,7 +2681,7 @@ ...@@ -2029,7 +2681,7 @@
"parser", "parser",
"validator" "validator"
], ],
"time": "2017-06-18T15:11:04+00:00" "time": "2018-01-24T12:46:19+00:00"
}, },
{ {
"name": "seld/phar-utils", "name": "seld/phar-utils",
...@@ -2077,16 +2729,16 @@ ...@@ -2077,16 +2729,16 @@
}, },
{ {
"name": "squizlabs/php_codesniffer", "name": "squizlabs/php_codesniffer",
"version": "3.1.0", "version": "3.2.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
"reference": "3c2d0a0fe39684ba0c1eb842a6a775d0b938d699" "reference": "4842476c434e375f9d3182ff7b89059583aa8b27"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/3c2d0a0fe39684ba0c1eb842a6a775d0b938d699", "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/4842476c434e375f9d3182ff7b89059583aa8b27",
"reference": "3c2d0a0fe39684ba0c1eb842a6a775d0b938d699", "reference": "4842476c434e375f9d3182ff7b89059583aa8b27",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -2096,7 +2748,7 @@ ...@@ -2096,7 +2748,7 @@
"php": ">=5.4.0" "php": ">=5.4.0"
}, },
"require-dev": { "require-dev": {
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0" "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
}, },
"bin": [ "bin": [
"bin/phpcs", "bin/phpcs",
...@@ -2124,20 +2776,20 @@ ...@@ -2124,20 +2776,20 @@
"phpcs", "phpcs",
"standards" "standards"
], ],
"time": "2017-09-19T22:47:14+00:00" "time": "2018-02-20T21:35:23+00:00"
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v3.3.10", "version": "v3.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "773e19a491d97926f236942484cb541560ce862d" "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/773e19a491d97926f236942484cb541560ce862d", "url": "https://api.github.com/repos/symfony/finder/zipball/bd14efe8b1fabc4de82bf50dce62f05f9a102433",
"reference": "773e19a491d97926f236942484cb541560ce862d", "reference": "bd14efe8b1fabc4de82bf50dce62f05f9a102433",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -2146,7 +2798,7 @@ ...@@ -2146,7 +2798,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.3-dev" "dev-master": "3.4-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2173,20 +2825,20 @@ ...@@ -2173,20 +2825,20 @@
], ],
"description": "Symfony Finder Component", "description": "Symfony Finder Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00" "time": "2018-04-04T05:07:11+00:00"
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v3.3.10", "version": "v3.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "fdf89e57a723a29baf536e288d6e232c059697b1" "reference": "4b7d64e852886319e93ddfdecff0d744ab87658b"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/fdf89e57a723a29baf536e288d6e232c059697b1", "url": "https://api.github.com/repos/symfony/process/zipball/4b7d64e852886319e93ddfdecff0d744ab87658b",
"reference": "fdf89e57a723a29baf536e288d6e232c059697b1", "reference": "4b7d64e852886319e93ddfdecff0d744ab87658b",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -2195,7 +2847,7 @@ ...@@ -2195,7 +2847,7 @@
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.3-dev" "dev-master": "3.4-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2222,20 +2874,20 @@ ...@@ -2222,20 +2874,20 @@
], ],
"description": "Symfony Process Component", "description": "Symfony Process Component",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2017-10-02T06:42:24+00:00" "time": "2018-04-03T05:22:50+00:00"
}, },
{ {
"name": "symfony/var-dumper", "name": "symfony/var-dumper",
"version": "v3.3.10", "version": "v3.4.9",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/var-dumper.git", "url": "https://github.com/symfony/var-dumper.git",
"reference": "03e3693a36701f1c581dd24a6d6eea2eba2113f6" "reference": "0e6545672d8c9ce70dd472adc2f8b03155a46f73"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/03e3693a36701f1c581dd24a6d6eea2eba2113f6", "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0e6545672d8c9ce70dd472adc2f8b03155a46f73",
"reference": "03e3693a36701f1c581dd24a6d6eea2eba2113f6", "reference": "0e6545672d8c9ce70dd472adc2f8b03155a46f73",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
...@@ -2251,12 +2903,13 @@ ...@@ -2251,12 +2903,13 @@
}, },
"suggest": { "suggest": {
"ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
"ext-intl": "To show region name in time zone dump",
"ext-symfony_debug": "" "ext-symfony_debug": ""
}, },
"type": "library", "type": "library",
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "3.3-dev" "dev-master": "3.4-dev"
} }
}, },
"autoload": { "autoload": {
...@@ -2290,12 +2943,177 @@ ...@@ -2290,12 +2943,177 @@
"debug", "debug",
"dump" "dump"
], ],
"time": "2017-10-02T06:42:24+00:00" "time": "2018-04-26T12:42:15+00:00"
},
{
"name": "twig/twig",
"version": "v1.35.3",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "b48680b6eb7d16b5025b9bfc4108d86f6b8af86f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/b48680b6eb7d16b5025b9bfc4108d86f6b8af86f",
"reference": "b48680b6eb7d16b5025b9bfc4108d86f6b8af86f",
"shasum": ""
},
"require": {
"php": ">=5.3.3"
},
"require-dev": {
"psr/container": "^1.0",
"symfony/debug": "^2.7",
"symfony/phpunit-bridge": "^3.3"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.35-dev"
}
},
"autoload": {
"psr-0": {
"Twig_": "lib/"
},
"psr-4": {
"Twig\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com",
"homepage": "http://fabien.potencier.org",
"role": "Lead Developer"
},
{
"name": "Armin Ronacher",
"email": "armin.ronacher@active-4.com",
"role": "Project Founder"
},
{
"name": "Twig Team",
"homepage": "http://twig.sensiolabs.org/contributors",
"role": "Contributors"
}
],
"description": "Twig, the flexible, fast, and secure template language for PHP",
"homepage": "http://twig.sensiolabs.org",
"keywords": [
"templating"
],
"time": "2018-03-20T04:25:58+00:00"
},
{
"name": "umpirsky/twig-php-function",
"version": "v0.1",
"source": {
"type": "git",
"url": "https://github.com/umpirsky/twig-php-function.git",
"reference": "53b4b1eb0c5eacbd7d66c504b7d809c79b4bedbc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/umpirsky/twig-php-function/zipball/53b4b1eb0c5eacbd7d66c504b7d809c79b4bedbc",
"reference": "53b4b1eb0c5eacbd7d66c504b7d809c79b4bedbc",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
"twig/twig": "~1.12"
},
"require-dev": {
"phpspec/phpspec": "~2.0",
"phpunit/phpunit": "~4.4"
},
"type": "library",
"autoload": {
"psr-0": {
"Umpirsky\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Saša Stamenković",
"email": "umpirsky@gmail.com"
}
],
"description": "Call (almost) any PHP function from your Twig templates.",
"time": "2016-03-12T16:36:32+00:00"
},
{
"name": "wyrihaximus/twig-view",
"version": "4.3.4",
"source": {
"type": "git",
"url": "https://github.com/WyriHaximus/TwigView.git",
"reference": "95977a9e22745fa8a5226a7be5850c6ca2e3ebe3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/WyriHaximus/TwigView/zipball/95977a9e22745fa8a5226a7be5850c6ca2e3ebe3",
"reference": "95977a9e22745fa8a5226a7be5850c6ca2e3ebe3",
"shasum": ""
},
"require": {
"ajgl/breakpoint-twig-extension": "^0.3.0",
"aptoma/twig-markdown": "^2.0",
"asm89/twig-cache-extension": "^1.0",
"cakephp/cakephp": "^3.5",
"jasny/twig-extensions": "^1.0",
"php": "^5.6 || ^7.0",
"twig/twig": "^1.27",
"umpirsky/twig-php-function": "0.1"
},
"require-dev": {
"cakephp/bake": "^1.5",
"cakephp/debug_kit": "^3.0",
"phake/phake": "^1.0.4",
"phpunit/phpunit": "^5.7.14",
"squizlabs/php_codesniffer": "^1.5.6",
"wyrihaximus/phpunit-class-reflection-helpers": "dev-master"
},
"type": "cakephp-plugin",
"autoload": {
"psr-4": {
"WyriHaximus\\TwigView\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Cees-Jan Kiewiet",
"email": "ceesjank@gmail.com",
"homepage": "http://wyrihaximus.net/"
}
],
"description": "Twig powered View for CakePHP3",
"keywords": [
"cakephp",
"cakephp3",
"twig",
"view"
],
"time": "2018-04-16T20:29:21+00:00"
} }
], ],
"aliases": [], "aliases": [],
"minimum-stability": "stable", "minimum-stability": "stable",
"stability-flags": { "stability-flags": {
"muffin/oauth2": 20,
"psy/psysh": 0 "psy/psysh": 0
}, },
"prefer-stable": true, "prefer-stable": true,
......
<?php <?php
use Cake\Core\Configure;
/**
* ------------------------------------------------------------------------------------------------------------------
* Application Configure
* ------------------------------------------------------------------------------------------------------------------
*/
/**
*
* Database Configure
* @author sarawutt.b
*/
Configure::write('DATABASE.HOST', '122.155.223.38');
Configure::write('DATABASE.NAME', 'connect06');
Configure::write('DATABASE.ROLE', 'connect06');
Configure::write('DATABASE.PASSWORD', 'c0nn@6');
Configure::write('DATABASE.PORT', '5432');
Configure::write('DATABASE.DRIVER', 'Cake\Database\Driver\Postgres');
/**
* @var Connect API Testing server
*/
//Configure::write('API_SERVER', 'http://connect-api-uat-connect-pakgon');
/**
* @var Connect API Production Server
*/
Configure::write('API_SERVER', 'http://connect05.pakgon.com/api');
/**
* Core Currency format
* @author sarawutt.b
*/
Configure::write('CORE.CURRENCY', '฿');
/**
*
* Document type
* @author sarawutt.b
*/
Configure::write('CORE.DOCUMENT.ALL', 'application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,image/gif,image/jpeg,image/png');
Configure::write('CORE.DOCUMENT.IMG', 'image/gif,image/jpeg,image/png');
Configure::write('CORE.DOCUMENT.PDF', 'application/pdf');
Configure::write('CORE.DOCUMENT.OFFICE', 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel');
Configure::write('CORE.DOCUMENT.IMG_PDF', 'application/pdf,image/gif,image/jpeg,image/png');
Configure::write('CORE.DOCUMENT.OFFICE_PDF', 'application/pdf,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel');
/**
* @var Configuration for multiple language
* @author sarawutt.b
*/
//Configure::write('Config.language', 'tha');
Configure::write('CORE.LANGUAGE', 'tha');
/**
* @var Configuration for pagination on cake render in paginate of each page
* @author sarawutt.b
*/
Configure::write('PAGINATION.PREV.TEXT', 'Prev');
Configure::write('PAGINATION.NEXT.TEXT', 'Next');
Configure::write('PAGINATION.NEXT.CLASS', 'next disabled');
Configure::write('PAGINATION.PREV.CLASS', 'prev disabled');
Configure::write('PAGINATION.MODULE', 9);
Configure::write('PAGINATION.SEPARATE', '');
Configure::write('PAGINATION.LIMIT', 20);
/**
*
* Application Configure
* @author sarawutt.b
*/
Configure::write('APP.NAME', 'CAKEPHP DEMO APPLICATION');
Configure::write('APP.VERSION', '3.5.4');
/**
* @var Configuration for production deployment if is deploy time make this to TRUE
* @author sarawutt.b
*/
Configure::write('APP.DEPLOY_TO_PRODUCTION_TIME', false);
/**
* @var Configuration not found data language
* @author sarawutt.b
*/
Configure::write('APP.DISPLAY.NO_RESULT', 'Result Not Found');
return [ return [
/** /**
* Debug Level: * Debug Level:
...@@ -10,7 +98,6 @@ return [ ...@@ -10,7 +98,6 @@ return [
* true: Errors and warnings shown. * true: Errors and warnings shown.
*/ */
'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN), 'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN),
/** /**
* Configure basic information about the application. * Configure basic information about the application.
* *
...@@ -55,7 +142,6 @@ return [ ...@@ -55,7 +142,6 @@ return [
'locales' => [APP . 'Locale' . DS], 'locales' => [APP . 'Locale' . DS],
], ],
], ],
/** /**
* Security and encryption configuration * Security and encryption configuration
* *
...@@ -66,7 +152,6 @@ return [ ...@@ -66,7 +152,6 @@ return [
'Security' => [ 'Security' => [
'salt' => env('SECURITY_SALT', '34f67849d2c770a24d70fcffa3c44f32fd532e338060fbeb5a9de575b4e4ea17'), 'salt' => env('SECURITY_SALT', '34f67849d2c770a24d70fcffa3c44f32fd532e338060fbeb5a9de575b4e4ea17'),
], ],
/** /**
* Apply timestamps with the last modified time to static assets (js, css, images). * Apply timestamps with the last modified time to static assets (js, css, images).
* Will append a querystring parameter containing the time the file was modified. * Will append a querystring parameter containing the time the file was modified.
...@@ -76,9 +161,8 @@ return [ ...@@ -76,9 +161,8 @@ return [
* enable timestamping regardless of debug value. * enable timestamping regardless of debug value.
*/ */
'Asset' => [ 'Asset' => [
// 'timestamp' => true, // 'timestamp' => true,
], ],
/** /**
* Configure the cache adapters. * Configure the cache adapters.
*/ */
...@@ -88,7 +172,6 @@ return [ ...@@ -88,7 +172,6 @@ return [
'path' => CACHE, 'path' => CACHE,
'url' => env('CACHE_DEFAULT_URL', null), 'url' => env('CACHE_DEFAULT_URL', null),
], ],
/** /**
* Configure the cache used for general framework caching. * Configure the cache used for general framework caching.
* Translation cache files are stored with this configuration. * Translation cache files are stored with this configuration.
...@@ -103,7 +186,6 @@ return [ ...@@ -103,7 +186,6 @@ return [
'duration' => '+1 years', 'duration' => '+1 years',
'url' => env('CACHE_CAKECORE_URL', null), 'url' => env('CACHE_CAKECORE_URL', null),
], ],
/** /**
* Configure the cache for model and datasource caches. This cache * Configure the cache for model and datasource caches. This cache
* configuration is used to store schema descriptions, and table listings * configuration is used to store schema descriptions, and table listings
...@@ -119,7 +201,6 @@ return [ ...@@ -119,7 +201,6 @@ return [
'url' => env('CACHE_CAKEMODEL_URL', null), 'url' => env('CACHE_CAKEMODEL_URL', null),
], ],
], ],
/** /**
* Configure the Error and Exception handlers used by your application. * Configure the Error and Exception handlers used by your application.
* *
...@@ -156,7 +237,6 @@ return [ ...@@ -156,7 +237,6 @@ return [
'log' => true, 'log' => true,
'trace' => true, 'trace' => true,
], ],
/** /**
* Email configuration. * Email configuration.
* *
...@@ -189,8 +269,22 @@ return [ ...@@ -189,8 +269,22 @@ return [
'tls' => null, 'tls' => null,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null), 'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
], ],
'gmail'=> [
'className' => 'Smtp',
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'developer@pakgon.com', //your gmail address
'password' => 'pakgon#pwd', //your gmail password
'log' => true,
'context' => [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]
],
], ],
/** /**
* Email delivery profiles * Email delivery profiles
* *
...@@ -208,7 +302,6 @@ return [ ...@@ -208,7 +302,6 @@ return [
'headerCharset' => 'utf-8', 'headerCharset' => 'utf-8',
] ]
], ],
/** /**
* Connection information used by the ORM to connect * Connection information used by the ORM to connect
* to your application's datastores. * to your application's datastores.
...@@ -220,127 +313,75 @@ return [ ...@@ -220,127 +313,75 @@ return [
'Datasources' => [ 'Datasources' => [
'default' => [ 'default' => [
'className' => 'Cake\Database\Connection', 'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres', 'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false, 'persistent' => false,
'host' => '122.155.223.38', 'host' => Configure::read('DATABASE.HOST'),
'port' => 5432, 'port' => Configure::read('DATABASE.PORT'),
/** 'username' => Configure::read('DATABASE.ROLE'),
* CakePHP will use the default DB port based on the driver selected 'password' => Configure::read('DATABASE.PASSWORD'),
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment 'database' => Configure::read('DATABASE.NAME'),
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'connect06',
'password' => 'c0nn@6',
'database' => 'connect06',
'encoding' => 'utf8',
'schema' => 'core', 'schema' => 'core',
'timezone' => 'UTC', 'encoding' => 'utf8',
'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'flags' => [], 'flags' => [],
'cacheMetadata' => true, 'cacheMetadata' => true,
'log' => false, 'log' => false,
/**
* Set identifier quoting to true if you are using reserved words or
* special characters in your table or column names. Enabling this
* setting will result in queries built using the Query Builder having
* identifiers quoted when creating SQL. It should be noted that this
* decreases performance because each query needs to be traversed and
* manipulated before being executed.
*/
'quoteIdentifiers' => false, 'quoteIdentifiers' => false,
/**
* During development, if using MySQL < 5.6, uncommenting the
* following line could boost the speed at which schema metadata is
* fetched from the database. It can also be set directly with the
* mysql configuration directive 'innodb_stats_on_metadata = 0'
* which is the recommended value in production environments
*/
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_URL', null), 'url' => env('DATABASE_URL', null),
], ],
'core' => [ 'core' => [
'className' => 'Cake\Database\Connection', 'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres', 'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false, 'persistent' => false,
'host' => '122.155.223.38', 'host' => Configure::read('DATABASE.HOST'),
'port' => 5432, 'port' => Configure::read('DATABASE.PORT'),
/** 'username' => Configure::read('DATABASE.ROLE'),
* CakePHP will use the default DB port based on the driver selected 'password' => Configure::read('DATABASE.PASSWORD'),
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment 'database' => Configure::read('DATABASE.NAME'),
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'connect06',
'password' => 'c0nn@6',
'database' => 'connect06',
'encoding' => 'utf8',
'schema' => 'core', 'schema' => 'core',
'timezone' => 'UTC', 'encoding' => 'utf8',
'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'flags' => [], 'flags' => [],
'cacheMetadata' => true, 'cacheMetadata' => true,
'log' => false, 'log' => false,
/**
* Set identifier quoting to true if you are using reserved words or
* special characters in your table or column names. Enabling this
* setting will result in queries built using the Query Builder having
* identifiers quoted when creating SQL. It should be noted that this
* decreases performance because each query needs to be traversed and
* manipulated before being executed.
*/
'quoteIdentifiers' => false, 'quoteIdentifiers' => false,
/**
* During development, if using MySQL < 5.6, uncommenting the
* following line could boost the speed at which schema metadata is
* fetched from the database. It can also be set directly with the
* mysql configuration directive 'innodb_stats_on_metadata = 0'
* which is the recommended value in production environments
*/
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],
'url' => env('DATABASE_URL', null), 'url' => env('DATABASE_URL', null),
], ],
'db_master' => [ 'db_master' => [
'className' => 'Cake\Database\Connection', 'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres', 'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false, 'persistent' => false,
'host' => '122.155.223.38', 'host' => Configure::read('DATABASE.HOST'),
'port' => 5432, 'port' => Configure::read('DATABASE.PORT'),
//'port' => 'non_standard_port_number', 'username' => Configure::read('DATABASE.ROLE'),
'username' => 'connect06', 'password' => Configure::read('DATABASE.PASSWORD'),
'password' => 'c0nn@6', 'database' => Configure::read('DATABASE.NAME'),
'database' => 'connect06',
'encoding' => 'utf8',
'schema' => 'master', 'schema' => 'master',
'timezone' => 'UTC', 'encoding' => 'utf8',
'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'flags' => [],
'cacheMetadata' => true, 'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false, 'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'], 'quoteIdentifiers' => false,
'url' => env('DATABASE_TEST_URL', null), 'url' => env('DATABASE_URL', null),
], ],
'db_education' => [ 'db_education' => [
'className' => 'Cake\Database\Connection', 'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres', 'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false, 'persistent' => false,
'host' => '122.155.223.38', 'host' => Configure::read('DATABASE.HOST'),
'port' => 5432, 'port' => Configure::read('DATABASE.PORT'),
//'port' => 'non_standard_port_number', 'username' => Configure::read('DATABASE.ROLE'),
'username' => 'connect06', 'password' => Configure::read('DATABASE.PASSWORD'),
'password' => 'c0nn@6', 'database' => Configure::read('DATABASE.NAME'),
'database' => 'connect06',
'encoding' => 'utf8',
'schema' => 'education', 'schema' => 'education',
'timezone' => 'UTC', 'encoding' => 'utf8',
'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'flags' => [],
'cacheMetadata' => true, 'cacheMetadata' => true,
'quoteIdentifiers' => false,
'log' => false, 'log' => false,
//'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'], 'quoteIdentifiers' => false,
'url' => env('DATABASE_TEST_URL', null), 'url' => env('DATABASE_URL', null),
], ],
/** /**
* The test connection is used during the test suite. * The test connection is used during the test suite.
...@@ -364,17 +405,16 @@ return [ ...@@ -364,17 +405,16 @@ return [
], ],
'db_temp' => [ 'db_temp' => [
'className' => 'Cake\Database\Connection', 'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Postgres', 'driver' => Configure::read('DATABASE.DRIVER'),
'persistent' => false, 'persistent' => false,
'host' => '122.155.223.38', 'host' => Configure::read('DATABASE.HOST'),
'port' => '5432', 'port' => Configure::read('DATABASE.PORT'),
//'port' => 'non_standard_port_number', 'username' => Configure::read('DATABASE.ROLE'),
'username' => 'connect06', 'password' => Configure::read('DATABASE.PASSWORD'),
'password' => 'c0nn@6', 'database' => Configure::read('DATABASE.NAME'),
'database' => 'connect06',
'encoding' => 'utf8', 'encoding' => 'utf8',
'schema' => 'temp', 'schema' => 'temp',
'timezone' => 'UTC', 'timezone' => Configure::read('CORE.DEFAULT_TIMEZONE'),
'cacheMetadata' => true, 'cacheMetadata' => true,
'quoteIdentifiers' => false, 'quoteIdentifiers' => false,
'log' => false, 'log' => false,
...@@ -382,7 +422,6 @@ return [ ...@@ -382,7 +422,6 @@ return [
'url' => env('DATABASE_TEST_URL', null), 'url' => env('DATABASE_TEST_URL', null),
], ],
], ],
/** /**
* Configures logging options * Configures logging options
*/ */
...@@ -402,7 +441,6 @@ return [ ...@@ -402,7 +441,6 @@ return [
'url' => env('LOG_ERROR_URL', null), 'url' => env('LOG_ERROR_URL', null),
], ],
], ],
/** /**
* Session configuration. * Session configuration.
* *
...@@ -444,32 +482,70 @@ return [ ...@@ -444,32 +482,70 @@ return [
*/ */
'Session' => [ 'Session' => [
'defaults' => 'php', 'defaults' => 'php',
'ini' => [
'session.cookie_path' => '/',
'session.cookie_domain' => '.pakgon.com'
]
],
'OAuth2Client' => [
'routes' => [
'base_uri' => 'http://oauth-uat.connect.pakgon.com',
'access_token_path' => '/oauth',
'refresh_token_path' => '/oauth/access_token',
],
'keys' => [
'client_id' => 'NWFmYTdjYzA3OTI4M2Jj',
'client_secret' => '2cf5e8f82bfaa9971e8af9ed06c23d94ef1326ba'
]
],
'Muffin/OAuth2', [
'providers' => [
'generic' => [
'className' => 'League\OAuth2\Client\Provider\GenericProvider',
// all options defined here are passed to the provider's constructor
'options' => [
'clientId' => 'NWFmYTdjYzA3OTI4M2Jj',
'clientSecret' => '2cf5e8f82bfaa9971e8af9ed06c23d94ef1326ba',
],
'mapFields' => [
'username' => 'login', // maps the app's username to github's login
],
// ... add here the usual AuthComponent configuration if needed like fields, etc.
],
],
],
'OAUTH2_PROVIDER' => [
'URL' => 'http://oauth-uat.connect.pakgon.com',
'CLIENT_ID' => 'NWFmYTdjYzA3OTI4M2Jj',
'CLIENT_SECRET' => '2cf5e8f82bfaa9971e8af9ed06c23d94ef1326ba',
'REDIRECT_URI' => 'http://commu-uat.connect.pakgon.com/home/callback',
'ACCESS_TOKEN_URL' => 'http://oauth-uat.connect.pakgon.com/oauth/access_token.json',
'REFRESH_TOKEN_URL' => 'xxx'
], ],
'Config' => [ 'Config' => [
'apiCore' => [ 'apiCore' => [
'createAccount' => 'http://connect05.pakgon.com/api/Signups', //Signup 'createAccount' => Configure::read('API_SERVER') . '/Signups', //Signup
'verifyPinCode' => 'http://connect05.pakgon.com/api/Signups/verify', //PicCode 'verifyPinCode' => Configure::read('API_SERVER') . '/Signups/verify', //PicCode
'signin' => 'http://connect05.pakgon.com/api/Signins', //Signin 'signin' => Configure::read('API_SERVER') . '/Signins', //Signin
'changePassword' => Configure::read('API_SERVER') . '/Profiles/changePassword', //ChangePassword
'changePassword' => 'http://connect05.pakgon.com/api/Profiles/changePassword', //ChangePassword 'forgotPassword' => Configure::read('API_SERVER') . '/Profiles/forgetPassword', //ForgotPassword
'forgotPassword' => 'http://connect05.pakgon.com/api/Profiles/forgetPassword', //ForgotPassword 'profile' => Configure::read('API_SERVER') . '/Profiles', //Profile
'profile' => 'http://connect05.pakgon.com/api/Profiles', //Profile 'connectProfile' => Configure::read('API_SERVER') . '/Connects/profile', //Profile
'connectProfile' => 'http://connect05.pakgon.com/api/Connects/profile',//Profile 'Contact' => Configure::read('API_SERVER') . '/Contacts', //Contacts
'Contact' => 'http://connect05.pakgon.com/api/Contacts',//Contacts
], ],
'apiCommunication' => [ 'apiCommunication' => [
'getCategoriesHome' => 'http://connect05.pakgon.com/communication/Api/getCategoriesHome.json', 'getCategoriesHome' => Configure::read('API_SERVER') . '/communication/Api/getCategoriesHome.json',
'getNewsHome' => 'http://connect05.pakgon.com/communication/Api/getNewsHome.json', 'getNewsHome' => Configure::read('API_SERVER') . '/communication/Api/getNewsHome.json',
'getNotification' => 'http://connect05.pakgon.com/api/Notifications/push', 'getNotification' => Configure::read('API_SERVER') . '/Notifications/push',
'getNotificationType' => 'http://connect05.pakgon.com/communication/Api/getNotificationType.json', 'getNotificationType' => Configure::read('API_SERVER') . '/communication/Api/getNotificationType.json',
'getNotificationMessage' => 'http://connect05.pakgon.com/communication/Api/getNotificationMessage.json', 'getNotificationMessage' => Configure::read('API_SERVER') . '/communication/Api/getNotificationMessage.json',
'updateReadStatus' => 'http://connect05.pakgon.com/communication/Api/updateReadStatus.json', 'updateReadStatus' => Configure::read('API_SERVER') . '/communication/Api/updateReadStatus.json',
'setNotificationMessage' => 'http://connect05.pakgon.com/communication/Api/setNotificationMessage.json', 'setNotificationMessage' => Configure::read('API_SERVER') . '/communication/Api/setNotificationMessage.json',
'getNewsDetail' => 'http://connect05.pakgon.com/communication/Api/getNewsDetail.json', 'getNewsDetail' => Configure::read('API_SERVER') . '/communication/Api/getNewsDetail.json',
'notification' => 'http://connect05.pakgon.com/communication/Api/getNotificationType.json', 'notification' => Configure::read('API_SERVER') . '/communication/Api/getNotificationType.json',
] ]
]
],
'RedirectApplicationURL' => 'http://commu-uat.connect.pakgon.com'
]; ];
...@@ -217,3 +217,4 @@ if (Configure::read('debug')) { ...@@ -217,3 +217,4 @@ if (Configure::read('debug')) {
//Plugin::load('AdminLTE', ['bootstrap' => true, 'routes' => true]); //Plugin::load('AdminLTE', ['bootstrap' => true, 'routes' => true]);
//Plugin::load('Porto',['bootstrap' => true,'routes' => true ]); //Plugin::load('Porto',['bootstrap' => true,'routes' => true ]);
} }
Plugin::load('Muffin/OAuth2');
\ No newline at end of file
...@@ -49,12 +49,16 @@ Router::scope('/', function (RouteBuilder $routes) { ...@@ -49,12 +49,16 @@ Router::scope('/', function (RouteBuilder $routes) {
* its action called 'display', and we pass a param to select the view file * its action called 'display', and we pass a param to select the view file
* to use (in this case, src/Template/Pages/home.ctp)... * to use (in this case, src/Template/Pages/home.ctp)...
*/ */
$routes->connect('/', ['controller' => 'Users', 'action' => 'signin']); // $routes->connect('/', ['controller' => 'Users', 'action' => 'signin']);
$routes->connect('/', ['controller' => 'homes', 'action' => 'index']);
/** /**
* ...and connect the rest of 'Pages' controller's URLs. * ...and connect the rest of 'Pages' controller's URLs.
*/ */
////$routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']); $routes->connect('/pages/*', ['controller' => 'Pages', 'action' => 'display']);
//Adding by sarawutt.b for oauth2 authenticatio
//$routes->connect('/oauth/:provider', ['controller' => 'users', 'action' => 'login'], ['provider' => 'generic']);
$routes->setExtensions(['json', 'xml', 'html']);
/** /**
* Connect catchall routes for all controllers. * Connect catchall routes for all controllers.
......
<?php <?php
/** /**
* CakePHP(tm) : Rapid Development Framework (https://cakephp.org) * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
* Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
...@@ -12,10 +13,13 @@ ...@@ -12,10 +13,13 @@
* @since 0.2.9 * @since 0.2.9
* @license https://opensource.org/licenses/mit-license.php MIT License * @license https://opensource.org/licenses/mit-license.php MIT License
*/ */
namespace App\Controller; namespace App\Controller;
use Cake\Controller\Controller; use Cake\Controller\Controller;
use Cake\Event\Event; use Cake\Event\Event;
use Cake\I18n\I18n;
use Cake\Core\Configure;
/** /**
* Application Controller * Application Controller
...@@ -25,8 +29,9 @@ use Cake\Event\Event; ...@@ -25,8 +29,9 @@ use Cake\Event\Event;
* *
* @link https://book.cakephp.org/3.0/en/controllers.html#the-app-controller * @link https://book.cakephp.org/3.0/en/controllers.html#the-app-controller
*/ */
class AppController extends Controller class AppController extends Controller {
{
protected $selectEmptyMsg = '---- please select ----';
/** /**
* Initialization hook method. * Initialization hook method.
...@@ -37,8 +42,7 @@ class AppController extends Controller ...@@ -37,8 +42,7 @@ class AppController extends Controller
* *
* @return void * @return void
*/ */
public function initialize() public function initialize() {
{
parent::initialize(); parent::initialize();
//$this->viewBuilder()->theme('Porto'); //$this->viewBuilder()->theme('Porto');
$this->loadComponent('RequestHandler'); $this->loadComponent('RequestHandler');
...@@ -48,42 +52,193 @@ class AppController extends Controller ...@@ -48,42 +52,193 @@ class AppController extends Controller
* Enable the following components for recommended CakePHP security settings. * Enable the following components for recommended CakePHP security settings.
* see https://book.cakephp.org/3.0/en/controllers/components/security.html * see https://book.cakephp.org/3.0/en/controllers/components/security.html
*/ */
$this->loadComponent('Auth', [
'loginRedirect' => ['controller' => 'Homes', 'action' => 'index'],
'logoutRedirect' => ['controller' => 'Users', 'action' => 'signin'],
'authenticate' => [
'Form' => [
'fields' => ['username' => 'username', 'password' => 'password'],
'userModel' => 'Users'
]
],
'loginAction' => ['controller' => 'Users', 'action' => 'signin'],
'authorize' => ['Controller'],
'unauthorizedRedirect' => $this->referer()// If unauthorized, return them to page they were just on
]);
//$this->loadComponent('Security'); //$this->loadComponent('Security');
//$this->loadComponent('Csrf'); //$this->loadComponent('Csrf');
} }
/** /**
*
* Function trigger before filter process
* @author sarawutt.b
* @param Event $event
*/
public function beforeFilter(Event $event) {
parent::beforeFilter($event);
/**
*
* Set appication language this can be thai|english
* @author Sarawutt.b
* @since 2018-02-28
* @return void
*/
if ($this->request->session()->check('SessionLanguage') == false) {
$this->request->session()->write('SessionLanguage', 'tha');
}
$this->Auth->allow(['signin', 'signout', 'signup', 'verify']);
}
/**
* Before render callback. * Before render callback.
* *
* @param \Cake\Event\Event $event The beforeRender event. * @param \Cake\Event\Event $event The beforeRender event.
* @return \Cake\Http\Response|null|void * @return \Cake\Http\Response|null|void
*/ */
public function beforeRender(Event $event) public function beforeRender(Event $event) {
{
//$this->viewBuilder()->theme('Gentelella'); //$this->viewBuilder()->theme('Gentelella');
//$this->viewBuilder()->theme('AdminLTE'); //$this->viewBuilder()->theme('AdminLTE');
//$this->viewBuilder()->theme('Porto'); //$this->viewBuilder()->theme('Porto');
//$this->viewBuilder()->className('AdminLTE.AdminLTE'); //$this->viewBuilder()->className('AdminLTE.AdminLTE');
//$this->viewBuilder()->theme('Porto'); //$this->viewBuilder()->theme('Porto');
//$this->viewBuilder()->className('Porto.Porto'); //$this->viewBuilder()->className('Porto.Porto');
// Note: These defaults are just to get started quickly with development // Note: These defaults are just to get started quickly with development
// and should not be used in production. You should instead set "_serialize" // and should not be used in production. You should instead set "_serialize"
// in each action as required. // in each action as required.
if (!array_key_exists('_serialize', $this->viewVars) && if (!array_key_exists('_serialize', $this->viewVars) &&
in_array($this->response->type(), ['application/json', 'application/xml']) in_array($this->response->type(), ['application/json', 'application/xml'])
) { ) {
$this->set('_serialize', true); $this->set('_serialize', true);
//$this->set('theme', Configure::read('Theme')); //$this->set('theme', Configure::read('Theme'));
} }
//$this->set('theme', Configure::read('Theme')); //$this->set('theme', Configure::read('Theme'));
} }
function checkToken(){
if(empty($this->request->getHeaderLine('Authorization'))){ /**
return $this->redirect(['controller' => 'Users', 'action' => 'signin']); *
} * Function check authorize
* @author sarawutt.b
* @param type $user
* @return boolean
*/
public function isAuthorized($user) {
return true;
}
/**
*
* Function check fore token
* @return type
*/
function checkToken() {
if (empty($this->request->getHeaderLine('Authorization'))) {
return $this->redirect(['controller' => 'Users', 'action' => 'signin']);
}
}
/**
* Set language used this in mutiple language application concept
* @author Sarawutt.b
* @since 2016/03/21 10:23:33
* @return void
*/
public function _setLanguage() {
$this->L10n = new L10n();
$language = $this->request->session()->read('SessionLanguage');
Configure::write('Config.language', $language);
$this->L10n->get($language);
}
/**
*
* Function get for current session user language
* @author sarawutt.b
* @return string
*/
public function getCurrentLanguage() {
return $this->request->session()->read('SessionLanguage');
} }
/**
*
* Function used fro generate _VERSION_
* @author sarawutt.b
* @return biginteger of the version number
*/
public function VERSION() {
$parts = explode(' ', microtime());
$micro = $parts[0] * 1000000;
return(substr(date('YmdHis'), 2) . sprintf("%06d", $micro));
}
/**
*
* Function used for generate UUID key patern
* @author sarawutt.b
* @return string uuid in version
*/
public function UUID() {
return sprintf('%04x%04x-%04x-%04x-%04x-%04x%04x%04x', mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0x0fff) | 0x4000, mt_rand(0, 0x3fff) | 0x8000, mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff));
}
/**
*
* Function get for current session user authentication full name
* @author sarawutt.b
* @since 2018/02/06
* @return string of authentication user full name
*/
protected function getAuthFullname() {
return $this->readAuth('Auth.User.first_name') . ' ' . $this->readAuth('Auth.User.last_name');
}
/**
*
* Function get for current session user authentication user id
* @author sarawutt.b
* @since 2018/02/06
* @return string of authentication user id
*/
protected function getAuthUserId() {
return $this->readAuth('Auth.User.id');
}
/**
*
* Function get for current session user authentication role id
* @author sarawutt.b
* @since 2018/02/06
* @return string of authentication user id
*/
protected function getAuthUserRoleId() {
return $this->readAuth('Auth.User.role_id');
}
/**
*
* Function get for current session with user authentication
* @author sarawutt.b
* @since 2018/02/06
* @return string of authentication session info
*/
protected function readAuth($name = null) {
return $this->request->session()->read($name);
}
/**
* Function get for empty option in DDL
* @author sarawutt.b
* @return array() of empty select DDL
*/
public function getEmptySelect() {
return ['' => __($this->selectEmptyMsg)];
}
} }
...@@ -14,6 +14,8 @@ class ProfilesController extends AppController ...@@ -14,6 +14,8 @@ class ProfilesController extends AppController
/*******************************/ /*******************************/
$id = $this->Auth->user('id');
$this->loadModel('Users'); $this->loadModel('Users');
$responseUserProfile = $this->Users->get($id, [ $responseUserProfile = $this->Users->get($id, [
'contain' => [] 'contain' => []
...@@ -21,9 +23,11 @@ class ProfilesController extends AppController ...@@ -21,9 +23,11 @@ class ProfilesController extends AppController
$username = $responseUserProfile['username']; $username = $responseUserProfile['username'];
$this->loadModel('UserPersonals'); $this->loadModel('UserPersonals');
$responseUserPersonal = $this->UserPersonals->get($id, [ $responseUserPersonal = $this->UserPersonals->find('all', [
'contain' => [] 'conditions' => [
]);
'user_id' => $id ]
])->first();
//********DropdownCountry******** //********DropdownCountry********
$this->loadModel('MasterCountries'); $this->loadModel('MasterCountries');
...@@ -33,7 +37,6 @@ class ProfilesController extends AppController ...@@ -33,7 +37,6 @@ class ProfilesController extends AppController
'keyField' => 'id', 'keyField' => 'id',
'valueField' => 'country_name_th' 'valueField' => 'country_name_th'
]); ]);
// pr($responseUserPersonal['master_country_id']);die;
if(!empty($Country)) $Country = $Country->toArray(); if(!empty($Country)) $Country = $Country->toArray();
//********DropdownProvince******** //********DropdownProvince********
...@@ -43,7 +46,9 @@ class ProfilesController extends AppController ...@@ -43,7 +46,9 @@ class ProfilesController extends AppController
'is_used' => true], 'is_used' => true],
'keyField' => 'id', 'keyField' => 'id',
'valueField' => 'province_name_th' 'valueField' => 'province_name_th'
])->where(['master_country_id =' => $responseUserPersonal['master_country_id']]); ])
->where(['master_country_id =' => $responseUserPersonal['master_country_id']])
->order(['province_name_th']);
// pr($Province);die; // pr($Province);die;
if(!empty($Province)) $Province = $Province->toArray(); if(!empty($Province)) $Province = $Province->toArray();
...@@ -63,7 +68,7 @@ class ProfilesController extends AppController ...@@ -63,7 +68,7 @@ class ProfilesController extends AppController
] ]
] ]
)->first(); )->first();
// pr($userPersonals);die;
if($userPersonals['email'] == $this->request->data['UserPersonals']['email']){ if($userPersonals['email'] == $this->request->data['UserPersonals']['email']){
$chkemail = true; $chkemail = true;
}else{ }else{
...@@ -96,15 +101,15 @@ class ProfilesController extends AppController ...@@ -96,15 +101,15 @@ class ProfilesController extends AppController
$userPersonals['user_id'] = $data['Users']['user_id']; $userPersonals['user_id'] = $data['Users']['user_id'];
$userPersonals['master_country_id'] = $this->request->data['master_country_id']; $userPersonals['master_country_id'] = $this->request->data['master_country_id'];
$userPersonals['master_province_id'] = $this->request->data['master_province_id']; $userPersonals['master_province_id'] = $this->request->data['master_province_id'];
$userPersonals['modified_by'] = ''; $userPersonals['modified_by'] = $id;
if ($this->UserPersonals->save($userPersonals)) { if ($this->UserPersonals->save($userPersonals)) {
$this->Flash->success(__('Update Complete.')); $this->Flash->success(__('Update Complete.'));
return $this->redirect(['action' => 'index']); return $this->redirect(['action' => 'index']);
} }
}else{ }else{
$this->Flash->error(__('Email Address already used by others.')); $this->Flash->error(__('Email Address already used by others.'));
} }
$this->Flash->error(__('Not update. Please, try again.')); $this->Flash->error(__('Not update. Please, try again.'));
} }
$this->set(compact('userPersonals', 'responseUserProfile', 'dateNow', 'username', 'Country', 'Province', 'responseUserPersonal')); $this->set(compact('userPersonals', 'responseUserProfile', 'dateNow', 'username', 'Country', 'Province', 'responseUserPersonal'));
...@@ -592,4 +597,5 @@ if (!empty($SubjectEnrolls)) { ...@@ -592,4 +597,5 @@ if (!empty($SubjectEnrolls)) {
$this->viewBuilder()->layout('blank'); $this->viewBuilder()->layout('blank');
} }
} }
...@@ -3,7 +3,11 @@ namespace App\Controller; ...@@ -3,7 +3,11 @@ namespace App\Controller;
use App\Controller\AppController; use App\Controller\AppController;
class ProvincesController extends AppController class ProvincesController extends AppController
{ {
public function initialize() {
parent::initialize();
$this->Auth->allow();
}
public function getProvince() { public function getProvince() {
$this->autoRender = false; $this->autoRender = false;
......
...@@ -231,7 +231,7 @@ class UserCardsController extends AppController ...@@ -231,7 +231,7 @@ class UserCardsController extends AppController
} }
public function viewCard($user_id = null){ public function viewCard($user_id = null){
$this->viewBuilder()->layout('blank'); $this->viewBuilder()->layout('blank');
// $user = $this->Auth(); $user_id = $this->Auth->user('id');
$this->loadModel('UserCards'); $this->loadModel('UserCards');
$UserCards = $this->UserCards->find('all') $UserCards = $this->UserCards->find('all')
->select($this->UserCards) ->select($this->UserCards)
...@@ -301,8 +301,8 @@ class UserCardsController extends AppController ...@@ -301,8 +301,8 @@ class UserCardsController extends AppController
$userCard['date_expiry'] = $TempUserCards['date_expiry']; $userCard['date_expiry'] = $TempUserCards['date_expiry'];
$userCard['signature'] = $TempUserCards['signature']; $userCard['signature'] = $TempUserCards['signature'];
$userCard['is_used'] = $TempUserCards['is_used']; $userCard['is_used'] = $TempUserCards['is_used'];
$userCard['created_by'] = 1; $userCard['created_by'] = $this->Auth->user('id');
$userCard['user_id'] = 1; $userCard['user_id'] = $this->Auth->user('id');
// pr($userCard);die; // pr($userCard);die;
if ($this->UserCards->save($userCard)) { if ($this->UserCards->save($userCard)) {
$TempUserCards['is_used'] = 0; $TempUserCards['is_used'] = 0;
......
...@@ -10,82 +10,91 @@ use Cake\Mailer\Email; ...@@ -10,82 +10,91 @@ use Cake\Mailer\Email;
use Cake\Utility\Security; use Cake\Utility\Security;
use Cake\Auth\AbstractPasswordHasher; use Cake\Auth\AbstractPasswordHasher;
class UsersController extends AppController class UsersController extends AppController {
{
/**
*
* Function initialize make for automatically trigger when contructure
*/
public function initialize() {
parent::initialize();
$this->Auth->allow(['signin', 'signout', 'signup', 'verify','forgotPassword','createAccount','pinCode','pinCodepassword']);
}
public function index() public function index() {
{ return $this->redirect(['controller' => 'Users', 'action' => 'signin']);
return $this->redirect(['controller' => 'Users', 'action' => 'signin']);
} }
public function signin() public function signin() {
{
$this->viewBuilder()->layout('blank'); $this->viewBuilder()->layout('blank');
} }
#Signin #Signin
public function verify()
{
$this->viewBuilder()->layout('blank');
$data = $this->request->data(); public function verify() {
#$data['data']['ip'] = $this->request->clientIp(); $this->viewBuilder()->layout('blank');
if(!empty($data)){ if ($this->request->is('post')) {
if(!empty($data['data']['username']) && !empty($data['data']['password'])){ $data = $this->request->getData();
$data['data']['ip'] = $this->request->clientIp();#prr($data); if (!empty($data)) {
$data['data']['ip'] = $this->request->clientIp();
$api_core_signin = Configure::read('Config.apiCore.signin'); $api_core_signin = Configure::read('Config.apiCore.signin');
$http = new Client(); $http = new Client();
$response = $http->post($api_core_signin,$data['data'])->body(); $response = $http->post($api_core_signin, $data['data'])->body();
$response = json_decode($response,'_full');#prd($response); $response = json_decode($response, '_full');
if(!empty($response)){ if (!empty($response)) {
if(trim($response['status']) == 'Success'){ if (strtolower(trim($response['status'])) == 'success') {
$url = Router::url(['controller' => 'Homes', 'action' => 'index'], true); $response['result']['user']['id'] = $response['result']['user']['user_id'];
$this->Auth->setUser($response['result']['user']);
echo "<script>setTimeout(function(){Login.onLogin('".$response['result']['token']."','".$url."','".$response['result']['topic']."')},1000);</script>"; //$url = Router::url(['controller' => 'Homes', 'action' => 'index'], true);
#echo "<script>setTimeout(function(){alert('".$response['result']['token']."')},1000);</script>"; // Before chan logic to OAUTH
#echo "<script>Login.onLogin('".$response['result']['token']."','".$url."','".$response['result']['topic']."');</script>"; // echo "<script>setTimeout(function(){Login.onLogin('" . $response['result']['token'] . "','" . $url . "','" . $response['result']['topic'] . "')},1000);</script>";
#echo "<button onclick=Login.onLogin('".$response['result']['token']."','".$url."','".$response['result']['topic']."')>CLICK</button>";
$statusCode = '200';
#------------------------------------------------------------------
$param = []; // echo "<script type='text/javascript'>setTimeout(function(){Login.onLogin('" . $statusCode . "','" . $this->_redirectApplicationURL . "','" . $response['result']['topic'] . "')},1000);</script>";
$param['topic'] = '/topics/'.$response['result']['topic']; $redirectApplicationURL = Configure::read('RedirectApplicationURL');
$param['title'] = '';
$param['message'] = ''; $topic = $response['result']['topic'];
$param['badge'] = 1; $this->set(compact('statusCode', 'redirectApplicationURL', 'topic'));
#$api_notification = 'http://connect05.pakgon.com/api/Notifications/push'; #echo "<script>setTimeout(function(){alert('".$response['result']['token']."')},1000);</script>";
$api_notification = Configure::read('Config.apiCommunication.getNotification'); #echo "<script>Login.onLogin('".$response['result']['token']."','".$url."','".$response['result']['topic']."');</script>";
#echo "<button onclick=Login.onLogin('".$response['result']['token']."','".$url."','".$response['result']['topic']."')>CLICK</button>";
$http = new Client(); #------------------------------------------------------------------
$options = [ $param = [];
'headers' => [ $param['topic'] = '/topics/' . $response['result']['topic'];
'Content-Type' => 'application/x-www-form-urlencoded', $param['title'] = '';
] $param['message'] = '';
]; $param['badge'] = 1;
$response = $http->post($api_notification, $param, $options)->body();
#prr($response); #$api_notification = 'http://connect05.pakgon.com/api/Notifications/push';
#------------------------------------------------------------------ $api_notification = Configure::read('Config.apiCommunication.getNotification');
$http = new Client();
die; $options = [
'headers' => [
}else{ 'Content-Type' => 'application/x-www-form-urlencoded',
$this->Flash->error(__('Verify Fail')); ]
return $this->redirect(['controller' => 'Users', 'action' => 'signin']); ];
} $response = $http->post($api_notification, $param, $options)->body();
}else{ #prr($response);
$this->Flash->error(__('Verify Fail')); #------------------------------------------------------------------
return $this->redirect(['controller' => 'Users', 'action' => 'signin']); //$this->redirect($this->_redirectApplicationURL);
} //header('Location: ' . $this->_redirectApplicationURL);
} else {
}else{ $this->Flash->error(__('Verify Fail'));
$this->Flash->error(__('Data Empty')); return $this->redirect(['controller' => 'Users', 'action' => 'signin']);
return $this->redirect(['controller' => 'Users', 'action' => 'signin']); }
} } else {
$this->Flash->error(__('Verify Fail'));
return $this->redirect(['controller' => 'Users', 'action' => 'signin']);
}
} else {
$this->Flash->error(__('Data Empty'));
return $this->redirect(['controller' => 'Users', 'action' => 'signin']);
}
} }
} }
public function signup() public function signup()
...@@ -113,7 +122,7 @@ class UsersController extends AppController ...@@ -113,7 +122,7 @@ class UsersController extends AppController
$this->set(compact('provinces','countries')); $this->set(compact('provinces','countries'));
$this->viewBuilder()->layout('blank'); $this->viewBuilder()->layout('blank');
} }
#--------------------------------------------------------------------------------------------------- #---------------------------------------------------------------------------------------------------
...@@ -151,7 +160,7 @@ class UsersController extends AppController ...@@ -151,7 +160,7 @@ class UsersController extends AppController
$this->request->data['password'] = $hasher->hash($password); $this->request->data['password'] = $hasher->hash($password);
$users['created_by'] = 0; $users['created_by'] = 0;
$users['is_used'] = true; $users['is_used'] = false;
$users['created'] = $dateNow; $users['created'] = $dateNow;
$users['dynamic_key'] = 'dynamic_key'; $users['dynamic_key'] = 'dynamic_key';
...@@ -182,10 +191,10 @@ class UsersController extends AppController ...@@ -182,10 +191,10 @@ class UsersController extends AppController
// pr($users);die; // pr($users);die;
//------------------------------ ส่งอีเมล์ ----------------------------------------------------- //------------------------------ ส่งอีเมล์ -----------------------------------------------------
// $data_notification = []; $data_notification = [];
// $data_notification['email'] = $this->request->data['email']; $data_notification['email'] = $this->request->data['email'];
// $data_notification['pin_code'] = $users['pin_code']; $data_notification['pin_code'] = $users['pin_code'];
// $this->notification($data_notification); $this->notification($data_notification);
//---------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------
$this->Users->save($users); $this->Users->save($users);
$user_personals['master_country_id'] = $master_country_id; $user_personals['master_country_id'] = $master_country_id;
...@@ -245,19 +254,17 @@ class UsersController extends AppController ...@@ -245,19 +254,17 @@ class UsersController extends AppController
} }
#--------------------------------------------------------------------------------------------------- #---------------------------------------------------------------------------------------------------
function validateAccount($data = null) function validateAccount($data = null) {
{
$error = [];
$error = [];
if (!empty($error)) {
if(!empty($error)){ $this->set('error', $error);
$this->set('error',$error); return false;
return false; } else {
}else{ return true;
return true; }
}
} }
// public function notification() // public function notification()
...@@ -269,7 +276,7 @@ class UsersController extends AppController ...@@ -269,7 +276,7 @@ class UsersController extends AppController
public function pinCode($token=null) public function pinCode($token=null)
{ {
if(empty($token))
$this->viewBuilder()->layout('blank'); $this->viewBuilder()->layout('blank');
...@@ -318,22 +325,23 @@ class UsersController extends AppController ...@@ -318,22 +325,23 @@ class UsersController extends AppController
// $pass[] = $alphabet[$n]; // $pass[] = $alphabet[$n];
// } // }
// $password = implode($pass); // $password = implode($pass);
//--------------------ตัวส่ง Email --------------------------------------
//pr($user_personals);die;
// $data_notification = [];
// $data_notification['email'] = $this->request->data['email'];
// $data_notification['password'] = $password;
// $this->notification($data_notification);
//------------------------------------------------------------------------------------------ //------------------------------------------------------------------------------------------
// $users['password'] = $hasher->hash($password);
$user_personals = $this->UserPersonals->find('all',[ $user_personals = $this->UserPersonals->find('all',[
'conditions' => [ 'conditions' => [
'UserPersonals.email' => $email 'UserPersonals.email' => $email
] ]
])->first(); ])->first();
if(!empty($user_personals)){ if(!empty($user_personals)){
//--------------------ตัวส่ง Email ---------------------------------------------------------
// pr($user_personals);die;
// $data_notification = [];
// $data_notification['email'] = $this->request->data['email'];
// $data_notification['pin_code'] = $users['pin_pass'];
// $this->notification($data_notification);
//----------------------------------------------------------------------------------------
$users = $this->Users->find('all',[ $users = $this->Users->find('all',[
'conditions' => [ 'conditions' => [
'Users.id' => $user_personals['user_id'] 'Users.id' => $user_personals['user_id']
...@@ -342,10 +350,15 @@ class UsersController extends AppController ...@@ -342,10 +350,15 @@ class UsersController extends AppController
$digits = 4; $digits = 4;
$users['pin_pass'] = str_pad(rand(0, pow(10, $digits)-1), $digits, '0', STR_PAD_LEFT); $users['pin_pass'] = str_pad(rand(0, pow(10, $digits)-1), $digits, '0', STR_PAD_LEFT);
$token = $users['token']; $token = $users['token'];
// pr($users);die;
// $users = $this->Users->patchEntity($users, $this->request->getData()); //--------------------ตัวส่ง Email ---------------------------------------------------------
//pr($user_personals);die;
$data_notification = [];
$data_notification['email'] = $this->request->data['email'];
$data_notification['pin_code'] = $users['pin_pass'];
$this->notification($data_notification);
//----------------------------------------------------------------------------------------
$this->Users->save($users); $this->Users->save($users);
// pr($users);die;
$this->Flash->success(__('send password to email success')); $this->Flash->success(__('send password to email success'));
return $this->redirect(['action' => 'pinCodepassword/'.$token]); return $this->redirect(['action' => 'pinCodepassword/'.$token]);
...@@ -414,4 +427,8 @@ class UsersController extends AppController ...@@ -414,4 +427,8 @@ class UsersController extends AppController
$this->checkToken(); $this->checkToken();
} }
} }
<table cellpadding="0" width="100%" cellspacing="0" border="0" id="backgroundTable" class='bgBody'>
<tr>
<td>
<table cellpadding="0" width="620" class="container" align="center" cellspacing="0" border="0">
<tr>
<td>
<!-- Tables are the most common way to format your email consistently. Set your table widths inside cells and in most cases reset cellpadding, cellspacing, and border to zero. Use nested tables as a way to space effectively in your message. -->
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td class='movableContentContainer bgItem'>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr height="40">
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
</tr>
<tr>
<td width="200" valign="top">&nbsp;</td>
<td width="200" valign="top" align="center">
<div class="contentEditableContainer contentImageEditable">
<div class="contentEditable" align='center' >
<img src="images/logo.png" width="155" height="155" alt='Logo' data-default="placeholder" />
</div>
</div>
</td>
<td width="200" valign="top">&nbsp;</td>
</tr>
<tr height="25">
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
</tr>
</table>
</div>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="100%" colspan="3" align="center" style="padding-bottom:10px;padding-top:25px;">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='center' >
<h2 >It's been a while...</h2>
</div>
</div>
</td>
</tr>
<tr>
<td width="100">&nbsp;</td>
<td width="400" align="center">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='left' >
<p >Hi [FirstName,there],
<br/>
<br/>
Click on the link below to update your profile. If you're no longer interested in hearing from us, simply click on unsubscribe below (or ignore this message) and we won't send you any more newsletters.</p>
</div>
</div>
</td>
<td width="100">&nbsp;</td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="200">&nbsp;</td>
<td width="200" align="center" style="padding-top:25px;">
<table cellpadding="0" cellspacing="0" border="0" align="center" width="200" height="50">
<tr>
<td bgcolor="#ED006F" align="center" style="border-radius:4px;" width="200" height="50">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='center' >
<a target='_blank' href="#" class='link2'>Click here to reset it</a>
</div>
</div>
</td>
</tr>
</table>
</td>
<td width="200">&nbsp;</td>
</tr>
</table>
</div>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="100%" colspan="2" style="padding-top:65px;">
<hr style="height:1px;border:none;color:#333;background-color:#ddd;" />
</td>
</tr>
<tr>
<td width="60%" height="70" valign="middle" style="padding-bottom:20px;">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='left' >
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">Sent to [email] by [CLIENTS.COMPANY_NAME]</span>
<br/>
<span style="font-size:11px;color:#555;font-family:Helvetica, Arial, sans-serif;line-height:200%;">[CLIENTS.ADDRESS] | [CLIENTS.PHONE]</span>
<br/>
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">
<a target='_blank' href="[FORWARD]" style="text-decoration:none;color:#555">Forward to a friend</a>
</span>
<br/>
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">
<a target='_blank' href="[UNSUBSCRIBE]" style="text-decoration:none;color:#555">click here to unsubscribe</a></span>
</div>
</div>
</td>
<td width="40%" height="70" align="right" valign="top" align='right' style="padding-bottom:20px;">
<table width="100%" border="0" cellspacing="0" cellpadding="0" align='right'>
<tr>
<td width='57%'></td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentFacebookEditable" style='display:inline;'>
<div class="contentEditable" >
<img src="images/facebook.png" data-default="placeholder" data-max-width='30' data-customIcon="true" width='30' height='30' alt='facebook' style='margin-right:40x;'>
</div>
</div>
</td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentTwitterEditable" style='display:inline;'>
<div class="contentEditable" >
<img src="images/twitter.png" data-default="placeholder" data-max-width='30' data-customIcon="true" width='30' height='30' alt='twitter' style='margin-right:40x;'>
</div>
</div>
</td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentImageEditable" style='display:inline;'>
<div class="contentEditable" >
<a target='_blank' href="#" data-default="placeholder" style="text-decoration:none;">
<img src="images/pinterest.png" width="30" height="30" data-max-width="30" alt='pinterest' style='margin-right:40x;' />
</a>
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
\ No newline at end of file
<table cellpadding="0" width="100%" cellspacing="0" border="0" id="backgroundTable" class='bgBody'>
<tr>
<td>
<table cellpadding="0" width="620" class="container" align="center" cellspacing="0" border="0">
<tr>
<td>
<!-- Tables are the most common way to format your email consistently. Set your table widths inside cells and in most cases reset cellpadding, cellspacing, and border to zero. Use nested tables as a way to space effectively in your message. -->
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td class='movableContentContainer bgItem'>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr height="40">
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
</tr>
<tr>
<td width="200" valign="top">&nbsp;</td>
<td width="200" valign="top" align="center">
<div class="contentEditableContainer contentImageEditable">
<div class="contentEditable" align='center' >
<img src="images/logo.png" width="155" height="155" alt='Logo' data-default="placeholder" />
</div>
</div>
</td>
<td width="200" valign="top">&nbsp;</td>
</tr>
<tr height="25">
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
<td width="200">&nbsp;</td>
</tr>
</table>
</div>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="100%" colspan="3" align="center" style="padding-bottom:10px;padding-top:25px;">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='center' >
<h2 >It's been a while...</h2>
</div>
</div>
</td>
</tr>
<tr>
<td width="100">&nbsp;</td>
<td width="400" align="center">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='left' >
<p >Hi [FirstName,there],
<br/>
<br/>
Click on the link below to update your profile. If you're no longer interested in hearing from us, simply click on unsubscribe below (or ignore this message) and we won't send you any more newsletters.</p>
</div>
</div>
</td>
<td width="100">&nbsp;</td>
</tr>
</table>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="200">&nbsp;</td>
<td width="200" align="center" style="padding-top:25px;">
<table cellpadding="0" cellspacing="0" border="0" align="center" width="200" height="50">
<tr>
<td bgcolor="#ED006F" align="center" style="border-radius:4px;" width="200" height="50">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='center' >
<a target='_blank' href="#" class='link2'>Click here to reset it</a>
</div>
</div>
</td>
</tr>
</table>
</td>
<td width="200">&nbsp;</td>
</tr>
</table>
</div>
<div class='movableContent'>
<table cellpadding="0" cellspacing="0" border="0" align="center" width="600" class="container">
<tr>
<td width="100%" colspan="2" style="padding-top:65px;">
<hr style="height:1px;border:none;color:#333;background-color:#ddd;" />
</td>
</tr>
<tr>
<td width="60%" height="70" valign="middle" style="padding-bottom:20px;">
<div class="contentEditableContainer contentTextEditable">
<div class="contentEditable" align='left' >
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">Sent to [email] by [CLIENTS.COMPANY_NAME]</span>
<br/>
<span style="font-size:11px;color:#555;font-family:Helvetica, Arial, sans-serif;line-height:200%;">[CLIENTS.ADDRESS] | [CLIENTS.PHONE]</span>
<br/>
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">
<a target='_blank' href="[FORWARD]" style="text-decoration:none;color:#555">Forward to a friend</a>
</span>
<br/>
<span style="font-size:13px;color:#181818;font-family:Helvetica, Arial, sans-serif;line-height:200%;">
<a target='_blank' href="[UNSUBSCRIBE]" style="text-decoration:none;color:#555">click here to unsubscribe</a></span>
</div>
</div>
</td>
<td width="40%" height="70" align="right" valign="top" align='right' style="padding-bottom:20px;">
<table width="100%" border="0" cellspacing="0" cellpadding="0" align='right'>
<tr>
<td width='57%'></td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentFacebookEditable" style='display:inline;'>
<div class="contentEditable" >
<img src="images/facebook.png" data-default="placeholder" data-max-width='30' data-customIcon="true" width='30' height='30' alt='facebook' style='margin-right:40x;'>
</div>
</div>
</td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentTwitterEditable" style='display:inline;'>
<div class="contentEditable" >
<img src="images/twitter.png" data-default="placeholder" data-max-width='30' data-customIcon="true" width='30' height='30' alt='twitter' style='margin-right:40x;'>
</div>
</div>
</td>
<td valign="top" width='34'>
<div class="contentEditableContainer contentImageEditable" style='display:inline;'>
<div class="contentEditable" >
<a target='_blank' href="#" data-default="placeholder" style="text-decoration:none;">
<img src="images/pinterest.png" width="30" height="30" data-max-width="30" alt='pinterest' style='margin-right:40x;' />
</a>
</div>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
\ No newline at end of file
<table cellpadding="0" width="100%" cellspacing="0" border="0" id="backgroundTable" class='bgBody'>
<tr>
<td>
<table cellpadding="0" width="620" class="container" align="center" cellspacing="0" border="0">
<tr>
<td>
Verification code: <?php echo $verify_code;?>
</td>
</tr>
</table>
</td>
</tr>
</table>
\ No newline at end of file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>[SUBJECT]</title>
<style type="text/css">
@media screen and (max-width: 600px) {
table[class="container"] {
width: 95% !important;
}
}
#outlook a {padding:0;}
body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}
.ExternalClass {width:100%;}
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;}
#backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}
img {outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;}
a img {border:none;}
.image_fix {display:block;}
p {margin: 1em 0;}
h1, h2, h3, h4, h5, h6 {color: black !important;}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {color: blue !important;}
h1 a:active, h2 a:active, h3 a:active, h4 a:active, h5 a:active, h6 a:active {
color: red !important;
}
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {
color: purple !important;
}
table td {border-collapse: collapse;}
table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }
a {color: #000;}
@media only screen and (max-device-width: 480px) {
a[href^="tel"], a[href^="sms"] {
text-decoration: none;
color: black; /* or whatever your want */
pointer-events: none;
cursor: default;
}
.mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {
text-decoration: default;
color: orange !important; /* or whatever your want */
pointer-events: auto;
cursor: default;
}
}
@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {
a[href^="tel"], a[href^="sms"] {
text-decoration: none;
color: blue; /* or whatever your want */
pointer-events: none;
cursor: default;
}
.mobile_link a[href^="tel"], .mobile_link a[href^="sms"] {
text-decoration: default;
color: orange !important;
pointer-events: auto;
cursor: default;
}
}
@media only screen and (-webkit-min-device-pixel-ratio: 2) {
/* Put your iPhone 4g styles in here */
}
@media only screen and (-webkit-device-pixel-ratio:.75){
/* Put CSS for low density (ldpi) Android layouts in here */
}
@media only screen and (-webkit-device-pixel-ratio:1){
/* Put CSS for medium density (mdpi) Android layouts in here */
}
@media only screen and (-webkit-device-pixel-ratio:1.5){
/* Put CSS for high density (hdpi) Android layouts in here */
}
/* end Android targeting */
h2{
color:#181818;
font-family:Helvetica, Arial, sans-serif;
font-size:22px;
line-height: 22px;
font-weight: normal;
}
a.link1{
}
a.link2{
color:#fff;
text-decoration:none;
font-family:Helvetica, Arial, sans-serif;
font-size:16px;
color:#fff;border-radius:4px;
}
p{
color:#555;
font-family:Helvetica, Arial, sans-serif;
font-size:16px;
line-height:160%;
}
</style>
<script type="colorScheme" class="swatch active">
{
"name":"Default",
"bgBody":"ffffff",
"link":"fff",
"color":"555555",
"bgItem":"ffffff",
"title":"181818"
}
</script>
</head>
<body>
<?php echo $this->fetch('content') ?>
</body>
</html>
\ No newline at end of file
...@@ -50,7 +50,7 @@ public function generate(){ ...@@ -50,7 +50,7 @@ public function generate(){
<br><br> <br><br>
<div class="row"> <div class="row">
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<?php echo $this->Form->create('UserProfiles', ['id' => 'frmSignIn', 'type' => 'file']); ?> <?php echo $this->Form->create('UserProfiles', ['id' => 'frmSignIn', 'type' => 'file', 'name' => 'frmSignIn']); ?>
<?php echo $this->Flash->render() ?> <?php echo $this->Flash->render() ?>
<div class="form-group has-feedback"> <div class="form-group has-feedback">
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
...@@ -205,6 +205,72 @@ public function generate(){ ...@@ -205,6 +205,72 @@ public function generate(){
</div> </div>
</div> </div>
<?php $this->append('scriptBottom'); ?> <?php $this->append('scriptBottom'); ?>
<script>
function validateForm() {
var firstname = document.forms["createAccount"]["firstname"].value;
if (firstname == null || firstname == "") {
alert("กรุณากรอกชื่อ");
return false;
}
var lastname = document.forms["createAccount"]["lastname"].value;
if (lastname == null || lastname == "") {
alert("กรุณากรอกนามสกุล");
return false;
}
var username = document.forms["createAccount"]["username"].value;
if (username == null || username == "") {
alert("กรุณากรอกชื่อผู้ใช้งานของท่าน");
return false;
}
// var birthdate = document.forms["createAccount"]["birthdate"].value;
// if (birthdate == null || birthdate == "") {
// alert("กรุณากรอก วันเดือนปีเกิดของท่าน");
// return false;
// }
// var person_card_no = document.forms["createAccount"]["person_card_no"].value;
// if (person_card_no == null || person_card_no == "") {
// alert("กรุณากรอกเลขบัตรประชาชน");
// return false;
// }
// if(document.forms["createAccount"]["data[person_card_no]"].value.length < 13 || document.forms["createAccount"]["data[person_card_no]"].value.length > 13)
// {
// alert('กรุณากรอกเลขบัตรประชาชนให้ครบ 13 หลัก');
// return false;
// }
var phone_no = document.forms["createAccount"]["phone_no"].value;
// if (phone_no == null || phone_no == "") {
// alert("กรุณากรอก เบอร์โทรศัพท์ของท่าน");
// return false;
}
if(document.forms["createAccount"]["phone_no"].value.length < 10 || document.forms["createAccount"]["phone_no"].value.length > 10)
{
alert('กรุณากรอกเบอร์โทรศัพท์ ให้ครบ 10 หลัก');
return false;
}
// var lastname = document.forms["createAccount"]["data[lastname]"].value;
// if (lastname == null || lastname == "") {
// alert("กรุณากรอกรหัสผ่าน");
// return false;
// }
var email = document.forms["createAccount"]["email"].value;
if (email == null || email == "") {
alert("กรุณากรอกอีเมลล์");
return false;
}
// Validate Email
var email = $("#fremail").val();
if ((/(.+)@(.+){2,}\.(.+){2,}/.test(email)) || email=="" || email==null) { } else {
alert("รูปแบบที่อยู่อีเมลล์ผิด กรุณากรอกให้ถูกต้อง");
return false;
}
}
</script>
<script type="text/javascript"> <script type="text/javascript">
$(function () { $(function () {
$('#moblieNo').inputmask('999-999-9999'); $('#moblieNo').inputmask('999-999-9999');
......
...@@ -176,21 +176,74 @@ use Cake\I18n\Time; ...@@ -176,21 +176,74 @@ use Cake\I18n\Time;
<div class="col-xs-12 col-sm-12 col-md-12"> <div class="col-xs-12 col-sm-12 col-md-12">
<div class="modal fade" id="defaultModal" tabindex="-1" role="dialog" aria-labelledby="defaultModalLabel" aria-hidden="true"> <div class="modal fade" id="defaultModal" tabindex="-1" role="dialog" aria-labelledby="defaultModalLabel" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog">
<div class=""> <div class="col-md-6">
<div class=""> <div class = "">
<div class="col-md-6"> <div class="owl-carousel owl-theme" data-plugin-options="{'items': 1, 'margin': 10}">
<div class="owl-carousel owl-theme" data-plugin-options="{'items': 1, 'margin': 10}"> <div class = "row rotate270 form_1">
<div> <?php echo $this->Html->image('/img/core/img/card-bg-front@3x.png', array('div' => false, 'class' => 'img-responsive img-rounded','style' => 'position: absolute;')); ?>
<?php echo $this->Html->image('/img/core/img/card-bg-front@3x.png', array('div' => false, 'class' => 'img-responsive img-rounded','style' => 'position: absolute;')); ?> <div class="row date-name">
<div class="idcard-profile"><?php echo __('ID Card');?></div> <div class="col-xs-1">
</div> </div>
<div> <div class="col-xs-6">
<?php echo $this->Html->image('/img/core/img/card-bg-back@3x.png', array('div' => false, 'class' => 'img-responsive img-rounded','style' => '3position: absolute;')); ?> <div style="font-size: 17px">
</div> <br>
</div> <label>id<label>
</div> </div>
</div> <div>
</div> <?php echo $value['card_code'] ?>
</div>
<div>
<label style="font-size: 17px">ชื่อ</label> <?php echo $value['prefix_name_th'].$value['firstname_th'].' '.$value['lastname_th'] ?>
</div>
</div>
<div class="col-xs-4">
<div data-toggle="modal" data-target="#defaultModal" style="text-align: center; cursor: pointer;">
<img src="/img/core/img/user-profile@3x.png" class="img-responsive">
</div>
</div>
</div>
<div class="row date-position">
<div class="col-xs-1">
</div>
<div class="col-xs-10">
<label style="font-size: 17px">ตำแหน่ง</label> <?php echo $value['position_name'] ?>
</div>
</div>
<div class="row date-time">
<div class="col-xs-1">
</div>
<div class="col-xs-5">
<?php
$now = new Time($value['date_issued']);
$dateIssued = $now->i18nFormat('yyyy-MM-dd');
echo $this->DateFormat->formatDateThai($dateIssued);
?>
</div>
<div class="col-xs-5">
<?php
$now = new Time($value['date_expiry']);
$dateExpiry = $now->i18nFormat('yyyy-MM-dd');
echo $this->DateFormat->formatDateThai($dateExpiry);
?>
</div>
</div>
<div class="row date-label">
<div class="col-xs-1">
</div>
<div class="col-xs-5">
<label style="font-size: 17px">วันออกบัตร</label>
</div>
<div class="col-xs-5">
<label style="font-size: 17px">วันหมดออายุ</label>
</div>
</div>
<div>
<?php echo $this->Html->image('/img/core/img/card-bg-back@3x.png', array('div' => false, 'class' => 'img-responsive img-rounded','style' => '3position: absolute;')); ?>
</div>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -212,6 +265,33 @@ use Cake\I18n\Time; ...@@ -212,6 +265,33 @@ use Cake\I18n\Time;
cursor: pointer; cursor: pointer;
} }
.rotate270 .row{
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-o-transform: rotate(270deg);
writing-mode: rl-tb;
position: absolute;
}
.form_1 .date-name{
width: 150px;
margin: 100% 0% 0% 62%;
}
.form_1 .date-position{
width: 150px;
margin: 100% 0% 0% 62%;
}
.form_1 .date-time{
width: 150px;
margin: 100% 0% 0% 62%;
}
.form_1 .date-label{
width: 150px;
margin: 100% 0% 0% 62%;
}
</style> </style>
<?php $this->append('scriptBottom'); ?> <?php $this->append('scriptBottom'); ?>
<script type="text/javascript"> <script type="text/javascript">
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
<?php echo $this->Html->image('../img/core/img/logo-connect-login@3x.png', ['alt' => 'Logo']); ?> <?php echo $this->Html->image('../img/core/img/logo-connect-login@3x.png', ['alt' => 'Logo']); ?>
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<?php echo $this->Form->create(null, ['url' => ['controller' => 'Users', 'action' => 'verify'], <?php
echo $this->Form->create(null, ['url' => ['controller' => 'Users', 'action' => 'verify'],
'id' => '', 'name' => 'Users', 'role' => 'form', 'onsubmit' => 'return validateForm()']); 'id' => '', 'name' => 'Users', 'role' => 'form', 'onsubmit' => 'return validateForm()']);
?> ?>
<?php echo $this->Flash->render() ?> <?php echo $this->Flash->render() ?>
...@@ -53,12 +54,11 @@ ...@@ -53,12 +54,11 @@
</label> </label>
</div> </div>
</div> </div>
<?php echo $this->Form->end(); ?> <?php echo $this->Form->end(); ?>
</div> </div>
</div> </div>
<!----------------------------------------------------------------------> <script type="text/javascript">
<script>
function validateForm() { function validateForm() {
var x = document.forms["Users"]["data[username]"].value; var x = document.forms["Users"]["data[username]"].value;
if (x == null || x == "") { if (x == null || x == "") {
...@@ -72,7 +72,10 @@ ...@@ -72,7 +72,10 @@
} }
} }
</script> </script>
<style>
<style type="text/css">
#alertBox { #alertBox {
position:relative; position:relative;
width:300px; width:300px;
...@@ -179,7 +182,7 @@ ...@@ -179,7 +182,7 @@
} }
</style> </style>
<script> <script type="text/javascript">
var ALERT_TITLE = ""; var ALERT_TITLE = "";
var ALERT_BUTTON_TEXT = "Ok"; var ALERT_BUTTON_TEXT = "Ok";
......
<script type='text/javascript'>
setTimeout(function(){
if (typeof Login == 'undefined') {
location = '<?php echo $redirectApplicationURL; ?>';
} else {
Login.onLogin('<?php echo $statusCode; ?>','<?php echo $redirectApplicationURL; ?>','<?php echo $topic; ?>');
}
}, 1000);
</script>;
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment