Migration to PHP 7.x
* updated dependencies * updated LV version to 5.6 * added object storage for assets Change-Id: I9a66563c925fe6f70c4f7703f13867caa30b8fb7
This commit is contained in:
parent
51a67b1782
commit
6d52da8a9b
10
.env.example
10
.env.example
@ -69,4 +69,12 @@ SSH_PRIVATE_KEY=
|
|||||||
SCP_HOST=
|
SCP_HOST=
|
||||||
SCP_REMOTE_BASE_PATH=/tmp
|
SCP_REMOTE_BASE_PATH=/tmp
|
||||||
|
|
||||||
GOOGLE_GEO_CODING_API_KEY=
|
GOOGLE_GEO_CODING_API_KEY=
|
||||||
|
|
||||||
|
CLOUD_STORAGE_BASE_URL=
|
||||||
|
CLOUD_STORAGE_CONTAINER=
|
||||||
|
CLOUD_STORAGE_AUTH_URL=
|
||||||
|
CLOUD_STORAGE_USERNAME=
|
||||||
|
CLOUD_STORAGE_APIKEY=
|
||||||
|
CLOUD_STORAGE_PROJECT_NAME=
|
||||||
|
CLOUD_STORAGE_REGION=
|
@ -12,28 +12,27 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\Route;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
class RequestUtils {
|
/**
|
||||||
|
* Class RequestUtils
|
||||||
|
* @package libs\utils
|
||||||
|
*/
|
||||||
|
final class RequestUtils {
|
||||||
|
|
||||||
public static function getCurrentRoutePath($request)
|
/**
|
||||||
|
* @return bool|string
|
||||||
|
*/
|
||||||
|
public static function getCurrentRoutePath()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//gets routes from container and try to find the route
|
$route_path = Route::getCurrentRoute()->uri();
|
||||||
$router = App::make('router');
|
if (strpos($route_path, '/') != 0)
|
||||||
$routes = $router->getRoutes();
|
$route_path = '/' . $route_path;
|
||||||
$route = $routes->match($request);
|
|
||||||
if (!is_null($route))
|
return $route_path;
|
||||||
{
|
|
||||||
$route = $route->getPath();
|
|
||||||
if (strpos($route, '/') != 0)
|
|
||||||
{
|
|
||||||
$route = '/' . $route;
|
|
||||||
}
|
|
||||||
return $route;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (\Exception $ex)
|
catch (\Exception $ex)
|
||||||
{
|
{
|
||||||
|
@ -13,7 +13,6 @@
|
|||||||
**/
|
**/
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use App\Services\Model\IAdminActionsCalendarSyncProcessingService;
|
use App\Services\Model\IAdminActionsCalendarSyncProcessingService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AdminActionsCalendarSyncProcessingCommand
|
* Class AdminActionsCalendarSyncProcessingCommand
|
||||||
* @package App\Console\Commands
|
* @package App\Console\Commands
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use App\Services\Model\IMemberActionsCalendarSyncProcessingService;
|
use App\Services\Model\IMemberActionsCalendarSyncProcessingService;
|
||||||
use models\summit\CalendarSync\CalendarSyncInfo;
|
use models\summit\CalendarSync\CalendarSyncInfo;
|
||||||
|
@ -11,14 +11,12 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use libs\utils\ICacheService;
|
use libs\utils\ICacheService;
|
||||||
use models\summit\ISummitRepository;
|
use models\summit\ISummitRepository;
|
||||||
use ModelSerializers\SerializerRegistry;
|
use ModelSerializers\SerializerRegistry;
|
||||||
use services\model\ISummitService;
|
use services\model\ISummitService;
|
||||||
use Illuminate\Support\Facades\Config;
|
use Illuminate\Support\Facades\Config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class SummitJsonGenerator
|
* Class SummitJsonGenerator
|
||||||
* @package App\Console\Commands
|
* @package App\Console\Commands
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use libs\utils\ICacheService;
|
use libs\utils\ICacheService;
|
||||||
use Mockery\Exception;
|
use Mockery\Exception;
|
||||||
@ -21,7 +20,6 @@ use services\model\ISummitService;
|
|||||||
use utils\PagingResponse;
|
use utils\PagingResponse;
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
use Illuminate\Support\Facades\Config;
|
use Illuminate\Support\Facades\Config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class SummitListJsonGenerator
|
* Class SummitListJsonGenerator
|
||||||
* @package App\Console\Commands
|
* @package App\Console\Commands
|
||||||
|
@ -1,73 +0,0 @@
|
|||||||
<?php namespace App\Events;
|
|
||||||
/**
|
|
||||||
* Copyright 2017 OpenStack Foundation
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
**/
|
|
||||||
|
|
||||||
use Illuminate\Queue\SerializesModels;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class FileCreated
|
|
||||||
* @package App\Events
|
|
||||||
*/
|
|
||||||
final class FileCreated extends Event
|
|
||||||
{
|
|
||||||
use SerializesModels;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $local_path;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $file_name;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
private $folder_name;
|
|
||||||
|
|
||||||
|
|
||||||
public function __construct($local_path, $file_name, $folder_name)
|
|
||||||
{
|
|
||||||
$this->local_path = $local_path;
|
|
||||||
$this->file_name = $file_name;
|
|
||||||
$this->folder_name = $folder_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getLocalPath()
|
|
||||||
{
|
|
||||||
return $this->local_path;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getFileName()
|
|
||||||
{
|
|
||||||
return $this->file_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getFolderName()
|
|
||||||
{
|
|
||||||
return $this->folder_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
<?php namespace App\Factories\AssetsSyncRequest;
|
|
||||||
/**
|
|
||||||
* Copyright 2018 OpenStack Foundation
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
**/
|
|
||||||
use App\Events\FileCreated;
|
|
||||||
use Illuminate\Support\Facades\Config;
|
|
||||||
use models\main\AssetsSyncRequest;
|
|
||||||
/**
|
|
||||||
* Class FileCreatedAssetSyncRequestFactory
|
|
||||||
* @package App\Factories\AssetsSyncRequest
|
|
||||||
*/
|
|
||||||
final class FileCreatedAssetSyncRequestFactory
|
|
||||||
{
|
|
||||||
public static function build(FileCreated $event){
|
|
||||||
$folder_name = $event->getFolderName();
|
|
||||||
$file_name = $event->getFileName();
|
|
||||||
$remote_base_path = Config::get('scp.scp_remote_base_path', null);
|
|
||||||
$remote_destination = sprintf("%s/%s", $remote_base_path, $file_name);
|
|
||||||
$asset_sync_request = new AssetsSyncRequest();
|
|
||||||
$asset_sync_request->setFrom($remote_destination);
|
|
||||||
$asset_sync_request->setTo(sprintf("%s/%s", $folder_name, $file_name));
|
|
||||||
$asset_sync_request->setProcessed(false);
|
|
||||||
return $asset_sync_request;
|
|
||||||
}
|
|
||||||
}
|
|
@ -157,7 +157,7 @@ class CORSMiddleware
|
|||||||
$real_method = $request->headers->get('Access-Control-Request-Method');
|
$real_method = $request->headers->get('Access-Control-Request-Method');
|
||||||
$request->setMethod($real_method);
|
$request->setMethod($real_method);
|
||||||
|
|
||||||
$route_path = RequestUtils::getCurrentRoutePath($request);
|
$route_path = RequestUtils::getCurrentRoutePath();
|
||||||
if (!$route_path || !$this->checkEndPoint($route_path, $real_method))
|
if (!$route_path || !$this->checkEndPoint($route_path, $real_method))
|
||||||
{
|
{
|
||||||
$response = new Response();
|
$response = new Response();
|
||||||
|
@ -1,10 +1,25 @@
|
|||||||
<?php
|
<?php namespace App\Http\Middleware;
|
||||||
|
/**
|
||||||
namespace App\Http\Middleware;
|
* Copyright 2015 OpenStack Foundation
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
use Illuminate\Cookie\Middleware\EncryptCookies as BaseEncrypter;
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
class EncryptCookies extends BaseEncrypter
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
**/
|
||||||
|
use Illuminate\Contracts\Encryption\DecryptException;
|
||||||
|
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
|
||||||
|
use OAuth2\Services\IPrincipalService;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
/**
|
||||||
|
* Class EncryptCookies
|
||||||
|
* @package App\Http\Middleware
|
||||||
|
*/
|
||||||
|
class EncryptCookies extends Middleware
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The names of the cookies that should not be encrypted.
|
* The names of the cookies that should not be encrypted.
|
||||||
@ -12,6 +27,32 @@ class EncryptCookies extends BaseEncrypter
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
protected $except = [
|
protected $except = [
|
||||||
//
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decrypt the cookies on the request.
|
||||||
|
*
|
||||||
|
* @param \Symfony\Component\HttpFoundation\Request $request
|
||||||
|
* @return \Symfony\Component\HttpFoundation\Request
|
||||||
|
*/
|
||||||
|
protected function decrypt(Request $request)
|
||||||
|
{
|
||||||
|
foreach ($request->cookies as $key => $cookie) {
|
||||||
|
if ($this->isDisabled($key)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$request->cookies->set($key, $this->decryptCookie($key, $cookie));
|
||||||
|
} catch (DecryptException $e) {
|
||||||
|
$request->cookies->set($key, null);
|
||||||
|
}
|
||||||
|
catch(\ErrorException $e1){
|
||||||
|
$request->cookies->set($key, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $request;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ class OAuth2BearerAccessTokenRequestValidator
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
$route = RequestUtils::getCurrentRoutePath($request);
|
$route = RequestUtils::getCurrentRoutePath();
|
||||||
if (!$route) {
|
if (!$route) {
|
||||||
throw new OAuth2ResourceServerException(
|
throw new OAuth2ResourceServerException(
|
||||||
400,
|
400,
|
||||||
|
@ -62,7 +62,7 @@ final class RateLimitMiddleware extends ThrottleRequests
|
|||||||
*/
|
*/
|
||||||
public function handle($request, Closure $next, $max_attempts = 0, $decay_minutes = 0)
|
public function handle($request, Closure $next, $max_attempts = 0, $decay_minutes = 0)
|
||||||
{
|
{
|
||||||
$route = RequestUtils::getCurrentRoutePath($request);
|
$route = RequestUtils::getCurrentRoutePath();
|
||||||
$method = $request->getMethod();
|
$method = $request->getMethod();
|
||||||
$endpoint = $this->endpoint_repository->getApiEndpointByUrlAndMethod($route, $method);
|
$endpoint = $this->endpoint_repository->getApiEndpointByUrlAndMethod($route, $method);
|
||||||
$key = $this->resolveRequestSignature($request);
|
$key = $this->resolveRequestSignature($request);
|
||||||
|
18
app/Http/Middleware/TrimStrings.php
Normal file
18
app/Http/Middleware/TrimStrings.php
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
|
||||||
|
|
||||||
|
class TrimStrings extends Middleware
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The names of the attributes that should not be trimmed.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $except = [
|
||||||
|
'password',
|
||||||
|
'password_confirmation',
|
||||||
|
];
|
||||||
|
}
|
23
app/Http/Middleware/TrustProxies.php
Normal file
23
app/Http/Middleware/TrustProxies.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Fideloper\Proxy\TrustProxies as Middleware;
|
||||||
|
|
||||||
|
class TrustProxies extends Middleware
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The trusted proxies for this application.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $proxies;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The headers that should be used to detect proxies.
|
||||||
|
*
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
protected $headers = Request::HEADER_X_FORWARDED_ALL;
|
||||||
|
}
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
namespace App\Http\Middleware;
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
|
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
|
||||||
|
|
||||||
class VerifyCsrfToken extends BaseVerifier
|
class VerifyCsrfToken extends Middleware
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* The URIs that should be excluded from CSRF verification.
|
* The URIs that should be excluded from CSRF verification.
|
||||||
|
@ -75,6 +75,7 @@ final class CSVExporter
|
|||||||
function cleanData(&$str)
|
function cleanData(&$str)
|
||||||
{
|
{
|
||||||
if (is_null($str)) {$str = ''; return;};
|
if (is_null($str)) {$str = ''; return;};
|
||||||
|
if (is_array($str)) {$str = ''; return;};
|
||||||
$str = preg_replace("/\t/", "\\t", $str);
|
$str = preg_replace("/\t/", "\\t", $str);
|
||||||
$str = preg_replace("/\r?\n/", "\\n", $str);
|
$str = preg_replace("/\r?\n/", "\\n", $str);
|
||||||
$str = preg_replace("/,/", "-", $str);
|
$str = preg_replace("/,/", "-", $str);
|
||||||
|
@ -11,13 +11,11 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
use App\Events\FileCreated;
|
|
||||||
use App\Services\Model\IFolderService;
|
use App\Services\Model\IFolderService;
|
||||||
use Illuminate\Http\UploadedFile;
|
use Illuminate\Http\UploadedFile;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
use models\main\File;
|
use models\main\File;
|
||||||
use models\main\IFolderRepository;
|
|
||||||
/**
|
/**
|
||||||
* Class FileUploader
|
* Class FileUploader
|
||||||
* @package App\Http\Utils
|
* @package App\Http\Utils
|
||||||
@ -29,12 +27,18 @@ final class FileUploader
|
|||||||
*/
|
*/
|
||||||
private $folder_service;
|
private $folder_service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var IBucket
|
||||||
|
*/
|
||||||
|
private $bucket;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FileUploader constructor.
|
* FileUploader constructor.
|
||||||
* @param IFolderService $folder_service
|
* @param IFolderService $folder_service
|
||||||
*/
|
*/
|
||||||
public function __construct(IFolderService $folder_service){
|
public function __construct(IFolderService $folder_service, IBucket $bucket){
|
||||||
$this->folder_service = $folder_service;
|
$this->folder_service = $folder_service;
|
||||||
|
$this->bucket = $bucket;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,17 +49,27 @@ final class FileUploader
|
|||||||
*/
|
*/
|
||||||
public function build(UploadedFile $file, $folder_name, $is_image = false){
|
public function build(UploadedFile $file, $folder_name, $is_image = false){
|
||||||
$attachment = new File();
|
$attachment = new File();
|
||||||
$local_path = Storage::putFileAs(sprintf('/public/%s', $folder_name), $file, $file->getClientOriginalName());
|
try {
|
||||||
$folder = $this->folder_service->findOrMake($folder_name);
|
|
||||||
|
|
||||||
$attachment->setParent($folder);
|
$local_path = Storage::putFileAs(sprintf('/public/%s', $folder_name), $file, $file->getClientOriginalName());
|
||||||
$attachment->setName($file->getClientOriginalName());
|
$folder = $this->folder_service->findOrMake($folder_name);
|
||||||
$attachment->setFilename(sprintf("assets/%s/%s",$folder_name, $file->getClientOriginalName()));
|
|
||||||
$attachment->setTitle(str_replace(array('-','_'),' ', preg_replace('/\.[^.]+$/', '', $file->getClientOriginalName())));
|
$attachment->setParent($folder);
|
||||||
$attachment->setShowInSearch(true);
|
$attachment->setName($file->getClientOriginalName());
|
||||||
if($is_image)
|
$attachment->setFilename(sprintf("assets/%s/%s", $folder_name, $file->getClientOriginalName()));
|
||||||
$attachment->setImage();
|
$attachment->setTitle(str_replace(array('-', '_'), ' ', preg_replace('/\.[^.]+$/', '', $file->getClientOriginalName())));
|
||||||
Event::fire(new FileCreated($local_path, $file->getClientOriginalName(), $folder_name));
|
$attachment->setShowInSearch(true);
|
||||||
|
if ($is_image) $attachment->setImage();
|
||||||
|
$this->bucket->put($attachment, $local_path);
|
||||||
|
$attachment->setCloudMeta('LastPut', time());
|
||||||
|
$attachment->setCloudStatus('Live');
|
||||||
|
$attachment->setCloudSize(filesize($local_path));
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (\Exception $ex){
|
||||||
|
Log::error($ex);
|
||||||
|
$attachment->setCloudStatu('Error');
|
||||||
|
}
|
||||||
return $attachment;
|
return $attachment;
|
||||||
}
|
}
|
||||||
}
|
}
|
30
app/Http/Utils/IBucket.php
Normal file
30
app/Http/Utils/IBucket.php
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?php namespace App\Http\Utils;
|
||||||
|
/**
|
||||||
|
* Copyright 2018 OpenStack Foundation
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
**/
|
||||||
|
use models\main\File;
|
||||||
|
use Exception;
|
||||||
|
/**
|
||||||
|
* Interface IBucket
|
||||||
|
* @package App\Http\Utils
|
||||||
|
*/
|
||||||
|
interface IBucket
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @param File $f
|
||||||
|
* @param string $local_path
|
||||||
|
* @return object
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public function put(File $f, $local_path);
|
||||||
|
|
||||||
|
}
|
82
app/Http/Utils/SwiftBucket.php
Normal file
82
app/Http/Utils/SwiftBucket.php
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
<?php namespace App\Http\Utils;
|
||||||
|
/**
|
||||||
|
* Copyright 2018 OpenStack Foundation
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
**/
|
||||||
|
use models\main\File;
|
||||||
|
use OpenStack\ObjectStore\v1\Models\StorageObject;
|
||||||
|
use OpenStack\OpenStack;
|
||||||
|
use GuzzleHttp\Psr7\Stream;
|
||||||
|
use Illuminate\Support\Facades\Config;
|
||||||
|
use Exception;
|
||||||
|
/**
|
||||||
|
* Class SwiftBucket
|
||||||
|
* @package App\Http\Utils
|
||||||
|
*/
|
||||||
|
final class SwiftBucket implements IBucket
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var StorageObject
|
||||||
|
*/
|
||||||
|
protected $container;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \OpenStack\ObjectStore\v1\Models\Container|StorageObject
|
||||||
|
*/
|
||||||
|
protected function getContainer()
|
||||||
|
{
|
||||||
|
if (!isset($this->container)) {
|
||||||
|
$openstack = new OpenStack([
|
||||||
|
'authUrl' => Config::get("cloudstorage.auth_url"),
|
||||||
|
'region' => Config::get("cloudstorage.region"),
|
||||||
|
'user' => [
|
||||||
|
'name' => Config::get("cloudstorage.user_name"),
|
||||||
|
'password' => Config::get("cloudstorage.api_key"),
|
||||||
|
'domain' => ['id' => Config::get("cloudstorage.user_domain", "default")]
|
||||||
|
],
|
||||||
|
'scope' => [
|
||||||
|
'project' => [
|
||||||
|
'name' => Config::get("cloudstorage.project_name"),
|
||||||
|
'domain' => ['id' => Config::get("cloudstorage.project_domain", "default")]
|
||||||
|
],
|
||||||
|
]
|
||||||
|
]);
|
||||||
|
|
||||||
|
$this->container = $openstack->objectStoreV1()->getContainer( Config::get("cloudstorage.container"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->container;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param File $f
|
||||||
|
* @param string $local_path
|
||||||
|
* @return object|StorageObject
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public function put(File $f, $local_path)
|
||||||
|
{
|
||||||
|
|
||||||
|
$fp = fopen($local_path, 'r');
|
||||||
|
if (!$fp) {
|
||||||
|
throw new Exception("Unable to open file: " . $f->getFilename());
|
||||||
|
}
|
||||||
|
|
||||||
|
$options = [
|
||||||
|
'name' => $f->getRelativeLinkFor(),
|
||||||
|
'stream' => new Stream($fp)
|
||||||
|
];
|
||||||
|
|
||||||
|
return $this->getContainer()->createObject($options);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -43,7 +43,7 @@ class SummitLocationImageSerializer extends SilverStripeSerializer
|
|||||||
if($this->object->hasPicture())
|
if($this->object->hasPicture())
|
||||||
{
|
{
|
||||||
$picture = $this->object->getPicture();
|
$picture = $this->object->getPicture();
|
||||||
$values['image_url'] = Config::get("server.assets_base_url", 'https://www.openstack.org/'). $picture->getFilename();
|
$values['image_url'] = $picture->getFilename()->getUrl();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -45,7 +45,7 @@ final class SummitVenueFloorSerializer extends SilverStripeSerializer
|
|||||||
|
|
||||||
// floor image
|
// floor image
|
||||||
$values['image']= ($floor->getImage() !== null) ?
|
$values['image']= ($floor->getImage() !== null) ?
|
||||||
Config::get("server.assets_base_url", 'https://www.openstack.org/').$floor->getImage()->getFilename()
|
$floor->getImage()->getUrl()
|
||||||
: null;
|
: null;
|
||||||
// rooms
|
// rooms
|
||||||
$rooms = [];
|
$rooms = [];
|
||||||
|
@ -11,9 +11,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use models\summit\PresentationCategoryGroup;
|
use models\summit\PresentationCategoryGroup;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class PresentationCategoryGroupSerializer
|
* Class PresentationCategoryGroupSerializer
|
||||||
* @package ModelSerializers
|
* @package ModelSerializers
|
||||||
|
@ -36,7 +36,7 @@ final class PresentationSlideSerializer extends PresentationMaterialSerializer
|
|||||||
$values = parent::serialize($expand, $fields, $relations, $params);
|
$values = parent::serialize($expand, $fields, $relations, $params);
|
||||||
$slide = $this->object;
|
$slide = $this->object;
|
||||||
if(empty($values['link'])){
|
if(empty($values['link'])){
|
||||||
$values['link'] = $slide->hasSlide() ? Config::get("server.assets_base_url", 'https://www.openstack.org/') . $slide->getSlide()->getFilename(): null;
|
$values['link'] = $slide->hasSlide() ? $slide->getSlide()->getUrl(): null;
|
||||||
}
|
}
|
||||||
return $values;
|
return $values;
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,9 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use libs\utils\JsonUtils;
|
use libs\utils\JsonUtils;
|
||||||
use Illuminate\Support\Facades\Config;
|
use Illuminate\Support\Facades\Config;
|
||||||
use models\summit\SummitAttendee;
|
use models\summit\SummitAttendee;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class SummitAttendeeSerializer
|
* Class SummitAttendeeSerializer
|
||||||
* @package ModelSerializers
|
* @package ModelSerializers
|
||||||
|
@ -31,7 +31,7 @@ final class SummitEventWithFileSerializer extends SummitEventSerializer
|
|||||||
|
|
||||||
$values = parent::serialize($expand, $fields, $relations, $params);
|
$values = parent::serialize($expand, $fields, $relations, $params);
|
||||||
|
|
||||||
$values['attachment'] = $event->hasAttachment()? Config::get("server.assets_base_url", 'https://www.openstack.org/') . $event->getAttachment()->getFilename() : null;
|
$values['attachment'] = $event->hasAttachment()? $event->getAttachment()->getUrl() : null;
|
||||||
|
|
||||||
return $values;
|
return $values;
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,7 @@ class SummitSerializer extends SilverStripeSerializer
|
|||||||
}
|
}
|
||||||
|
|
||||||
$values['logo'] = ($summit->hasLogo()) ?
|
$values['logo'] = ($summit->hasLogo()) ?
|
||||||
Config::get("server.assets_base_url", 'https://www.openstack.org/') . $summit->getLogo()->getFilename()
|
$summit->getLogo()->getUrl()
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
// pages info
|
// pages info
|
||||||
|
@ -16,14 +16,13 @@ use models\summit\PresentationSpeaker;
|
|||||||
use models\summit\SpeakerAnnouncementSummitEmail;
|
use models\summit\SpeakerAnnouncementSummitEmail;
|
||||||
use models\summit\SummitOwned;
|
use models\summit\SummitOwned;
|
||||||
use models\summit\SummitRegistrationPromoCode;
|
use models\summit\SummitRegistrationPromoCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
* @ORM\Table(name="SpeakerSelectionAnnouncementEmailCreationRequest")
|
* @ORM\Table(name="SpeakerSelectionAnnouncementEmailCreationRequest")
|
||||||
* Class SpeakerSelectionAnnouncementEmailCreationRequest
|
* Class SpeakerSelectionAnnouncementEmailCreationRequest
|
||||||
* @package models\main
|
* @package models\main
|
||||||
*/
|
*/
|
||||||
final class SpeakerSelectionAnnouncementEmailCreationRequest
|
class SpeakerSelectionAnnouncementEmailCreationRequest
|
||||||
extends EmailCreationRequest
|
extends EmailCreationRequest
|
||||||
{
|
{
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
**/
|
**/
|
||||||
use models\utils\SilverstripeBaseModel;
|
use models\utils\SilverstripeBaseModel;
|
||||||
use Doctrine\ORM\Mapping AS ORM;
|
use Doctrine\ORM\Mapping AS ORM;
|
||||||
|
use Illuminate\Support\Facades\Config;
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity(repositoryClass="repositories\main\DoctrineFolderRepository")
|
* @ORM\Entity(repositoryClass="repositories\main\DoctrineFolderRepository")
|
||||||
* @ORM\Table(name="File")
|
* @ORM\Table(name="File")
|
||||||
@ -52,6 +53,21 @@ class File extends SilverstripeBaseModel
|
|||||||
*/
|
*/
|
||||||
private $show_in_search;
|
private $show_in_search;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Column(name="CloudStatus", type="string")
|
||||||
|
*/
|
||||||
|
private $cloud_status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Column(name="CloudSize", type="int")
|
||||||
|
*/
|
||||||
|
private $cloud_size;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ORM\Column(name="CloudMetaJson", type="string")
|
||||||
|
*/
|
||||||
|
private $cloud_metajson;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="models\main\File")
|
* @ORM\ManyToOne(targetEntity="models\main\File")
|
||||||
* @ORM\JoinColumn(name="ParentID", referencedColumnName="ID")
|
* @ORM\JoinColumn(name="ParentID", referencedColumnName="ID")
|
||||||
@ -181,16 +197,119 @@ class File extends SilverstripeBaseModel
|
|||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
$this->class_name = 'File';
|
$this->class_name = 'CloudFile';
|
||||||
$this->show_in_search = true;
|
$this->show_in_search = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setImage(){
|
public function setImage(){
|
||||||
$this->class_name = 'Image';
|
$this->class_name = 'CloudImage';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setFolder(){
|
public function setFolder(){
|
||||||
$this->class_name = 'Folder';
|
$this->class_name = 'Folder';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getCloudStatus()
|
||||||
|
{
|
||||||
|
return $this->cloud_status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $cloud_status
|
||||||
|
*/
|
||||||
|
public function setCloudStatus($cloud_status): void
|
||||||
|
{
|
||||||
|
$this->cloud_status = $cloud_status;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function getCloudSize()
|
||||||
|
{
|
||||||
|
return $this->cloud_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $cloud_size
|
||||||
|
*/
|
||||||
|
public function setCloudSize($cloud_size): void
|
||||||
|
{
|
||||||
|
$this->cloud_size = $cloud_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $cloud_metajson
|
||||||
|
*/
|
||||||
|
public function setCloudMetaJSON($cloud_metajson): void
|
||||||
|
{
|
||||||
|
$this->cloud_metajson = $cloud_metajson;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getUrl()
|
||||||
|
{
|
||||||
|
$local = Config::get("server.assets_base_url", 'https://www.openstack.org/').$this->getFilename();
|
||||||
|
return $this->cloud_status == 'Live' ? $this->getCloudLink() : $local;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getRelativeLinkFor()
|
||||||
|
{
|
||||||
|
$fn = $this->getFilename();
|
||||||
|
return trim(str_replace("assets", '', $fn), '/');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getCloudLink()
|
||||||
|
{
|
||||||
|
return Config::get("cloudstorage.base_url") . $this->getRelativeLinkFor();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string|array $key - passing an array as the first argument replaces the meta data entirely
|
||||||
|
* @param mixed $val
|
||||||
|
* @return File - chainable
|
||||||
|
*/
|
||||||
|
public function setCloudMeta($key, $val = null)
|
||||||
|
{
|
||||||
|
if (is_array($key)) {
|
||||||
|
$data = $key;
|
||||||
|
} else {
|
||||||
|
$data = $this->getCloudMetaJSON();
|
||||||
|
$data[$key] = $val;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->cloud_metajson = json_encode($data);
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string $key [optional] - if not present returns the whole array
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getCloudMetaJSON($key = null)
|
||||||
|
{
|
||||||
|
$data = json_decode($this->cloud_metajson, true);
|
||||||
|
if (empty($data) || !is_array($data)) {
|
||||||
|
$data = array();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($key)) {
|
||||||
|
return isset($data[$key]) ? $data[$key] : null;
|
||||||
|
} else {
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -20,7 +20,7 @@ use models\utils\SilverstripeBaseModel;
|
|||||||
* Class Language
|
* Class Language
|
||||||
* @package App\Models\Foundation\Main
|
* @package App\Models\Foundation\Main
|
||||||
*/
|
*/
|
||||||
final class Language extends SilverstripeBaseModel
|
class Language extends SilverstripeBaseModel
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(name="Name", type="string")
|
* @ORM\Column(name="Name", type="string")
|
||||||
|
@ -20,7 +20,7 @@ use models\summit\SummitEvent;
|
|||||||
* Class SummitMemberSchedule
|
* Class SummitMemberSchedule
|
||||||
* @package models\main
|
* @package models\main
|
||||||
*/
|
*/
|
||||||
final class SummitMemberFavorite extends BaseEntity
|
class SummitMemberFavorite extends BaseEntity
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,7 +21,7 @@ use models\utils\IEntity;
|
|||||||
* Class SummitMemberSchedule
|
* Class SummitMemberSchedule
|
||||||
* @package models\main
|
* @package models\main
|
||||||
*/
|
*/
|
||||||
final class SummitMemberSchedule extends BaseEntity
|
class SummitMemberSchedule extends BaseEntity
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,7 +19,7 @@ use models\utils\SilverstripeBaseModel;
|
|||||||
* Class MarketPlaceReview
|
* Class MarketPlaceReview
|
||||||
* @package App\Models\Foundation\Marketplace
|
* @package App\Models\Foundation\Marketplace
|
||||||
*/
|
*/
|
||||||
final class MarketPlaceReview extends SilverstripeBaseModel
|
class MarketPlaceReview extends SilverstripeBaseModel
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,6 +21,12 @@ use models\main\SummitMemberSchedule;
|
|||||||
use models\utils\SilverstripeBaseModel;
|
use models\utils\SilverstripeBaseModel;
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="attendees"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="SummitAttendee")
|
* @ORM\Table(name="SummitAttendee")
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitAttendeeRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitAttendeeRepository")
|
||||||
* Class SummitAttendee
|
* Class SummitAttendee
|
||||||
|
@ -11,17 +11,15 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use Doctrine\ORM\Mapping AS ORM;
|
use Doctrine\ORM\Mapping AS ORM;
|
||||||
use services\utils\Facades\Encryption;
|
use services\utils\Facades\Encryption;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CalendarSyncInfoCalDav
|
* Class CalendarSyncInfoCalDav
|
||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
* @ORM\Table(name="CalendarSyncInfoCalDav")
|
* @ORM\Table(name="CalendarSyncInfoCalDav")
|
||||||
* @package models\summit\CalendarSync
|
* @package models\summit\CalendarSync
|
||||||
*/
|
*/
|
||||||
final class CalendarSyncInfoCalDav extends CalendarSyncInfo
|
class CalendarSyncInfoCalDav extends CalendarSyncInfo
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(name="UserName", type="string")
|
* @ORM\Column(name="UserName", type="string")
|
||||||
|
@ -11,17 +11,15 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use Doctrine\ORM\Mapping AS ORM;
|
use Doctrine\ORM\Mapping AS ORM;
|
||||||
use services\utils\Facades\Encryption;
|
use services\utils\Facades\Encryption;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class CalendarSyncInfoOAuth2
|
* Class CalendarSyncInfoOAuth2
|
||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
* @ORM\Table(name="CalendarSyncInfoOAuth2")
|
* @ORM\Table(name="CalendarSyncInfoOAuth2")
|
||||||
* @package models\summit\CalendarSync
|
* @package models\summit\CalendarSync
|
||||||
*/
|
*/
|
||||||
final class CalendarSyncInfoOAuth2 extends CalendarSyncInfo
|
class CalendarSyncInfoOAuth2 extends CalendarSyncInfo
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @ORM\Column(name="AccessToken", type="string")
|
* @ORM\Column(name="AccessToken", type="string")
|
||||||
|
@ -19,7 +19,7 @@ use models\summit\SummitAbstractLocation;
|
|||||||
* @ORM\Table(name="AdminSummitLocationActionSyncWorkRequest")
|
* @ORM\Table(name="AdminSummitLocationActionSyncWorkRequest")
|
||||||
* @package models\summit\CalendarSync\WorkQueue
|
* @package models\summit\CalendarSync\WorkQueue
|
||||||
*/
|
*/
|
||||||
final class AdminSummitLocationActionSyncWorkRequest
|
class AdminSummitLocationActionSyncWorkRequest
|
||||||
extends AdminScheduleSummitActionSyncWorkRequest
|
extends AdminScheduleSummitActionSyncWorkRequest
|
||||||
{
|
{
|
||||||
const SubType = 'ADMIN_LOCATION';
|
const SubType = 'ADMIN_LOCATION';
|
||||||
|
@ -22,6 +22,12 @@ use Doctrine\Common\Collections\ArrayCollection;
|
|||||||
/**
|
/**
|
||||||
* Class PresentationCategory
|
* Class PresentationCategory
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitTrackRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitTrackRepository")
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="presentation_categories"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="PresentationCategory")
|
* @ORM\Table(name="PresentationCategory")
|
||||||
* @package models\summit
|
* @package models\summit
|
||||||
*/
|
*/
|
||||||
|
@ -19,7 +19,7 @@ use Doctrine\ORM\Mapping AS ORM;
|
|||||||
* Class TrackRadioButtonListQuestionTemplate
|
* Class TrackRadioButtonListQuestionTemplate
|
||||||
* @package App\Models\Foundation\Summit\Events\Presentations\TrackQuestions
|
* @package App\Models\Foundation\Summit\Events\Presentations\TrackQuestions
|
||||||
*/
|
*/
|
||||||
final class TrackRadioButtonListQuestionTemplate extends TrackMultiValueQuestionTemplate
|
class TrackRadioButtonListQuestionTemplate extends TrackMultiValueQuestionTemplate
|
||||||
{
|
{
|
||||||
const ClassName = 'TrackRadioButtonListQuestionTemplate';
|
const ClassName = 'TrackRadioButtonListQuestionTemplate';
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ use Doctrine\ORM\Mapping AS ORM;
|
|||||||
* Class TrackTextBoxQuestionTemplate
|
* Class TrackTextBoxQuestionTemplate
|
||||||
* @package App\Models\Foundation\Summit\Events\Presentations\TrackQuestions
|
* @package App\Models\Foundation\Summit\Events\Presentations\TrackQuestions
|
||||||
*/
|
*/
|
||||||
final class TrackTextBoxQuestionTemplate extends TrackSingleValueTemplateQuestion
|
class TrackTextBoxQuestionTemplate extends TrackSingleValueTemplateQuestion
|
||||||
{
|
{
|
||||||
const ClassName = 'TrackTextBoxQuestionTemplate';
|
const ClassName = 'TrackTextBoxQuestionTemplate';
|
||||||
|
|
||||||
|
@ -22,6 +22,12 @@ use Doctrine\ORM\Mapping AS ORM;
|
|||||||
/**
|
/**
|
||||||
* @ORM\Table(name="RSVPTemplate")
|
* @ORM\Table(name="RSVPTemplate")
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineRSVPTemplateRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineRSVPTemplateRepository")
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="rsvp_templates"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* Class RSVPTemplate
|
* Class RSVPTemplate
|
||||||
* @package App\Models\Foundation\Summit\Events\RSVP
|
* @package App\Models\Foundation\Summit\Events\RSVP
|
||||||
*/
|
*/
|
||||||
|
@ -11,14 +11,18 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use models\main\Member;
|
use models\main\Member;
|
||||||
use models\utils\IEntity;
|
use models\utils\IEntity;
|
||||||
use models\utils\SilverstripeBaseModel;
|
use models\utils\SilverstripeBaseModel;
|
||||||
use Doctrine\ORM\Mapping AS ORM;
|
use Doctrine\ORM\Mapping AS ORM;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="entity_events"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="SummitEntityEvent")
|
* @ORM\Table(name="SummitEntityEvent")
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitEntityEventRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitEntityEventRepository")
|
||||||
* Class SummitEntityEvent
|
* Class SummitEntityEvent
|
||||||
|
@ -30,6 +30,12 @@ use Cocur\Slugify\Slugify;
|
|||||||
use Doctrine\ORM\Mapping AS ORM;
|
use Doctrine\ORM\Mapping AS ORM;
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitEventRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitEventRepository")
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="events"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="SummitEvent")
|
* @ORM\Table(name="SummitEvent")
|
||||||
* @ORM\InheritanceType("JOINED")
|
* @ORM\InheritanceType("JOINED")
|
||||||
* @ORM\DiscriminatorColumn(name="ClassName", type="string")
|
* @ORM\DiscriminatorColumn(name="ClassName", type="string")
|
||||||
|
@ -15,6 +15,12 @@ use models\utils\SilverstripeBaseModel;
|
|||||||
use Doctrine\ORM\Mapping AS ORM;
|
use Doctrine\ORM\Mapping AS ORM;
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitEventTypeRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitEventTypeRepository")
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="event_types"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="SummitEventType")
|
* @ORM\Table(name="SummitEventType")
|
||||||
* @ORM\InheritanceType("JOINED")
|
* @ORM\InheritanceType("JOINED")
|
||||||
* @ORM\DiscriminatorColumn(name="ClassName", type="string")
|
* @ORM\DiscriminatorColumn(name="ClassName", type="string")
|
||||||
|
@ -37,11 +37,12 @@ class SummitGroupEvent extends SummitEvent
|
|||||||
*/
|
*/
|
||||||
private $groups;
|
private $groups;
|
||||||
|
|
||||||
|
const ClassName = 'SummitGroupEvent';
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getClassName(){
|
public function getClassName(){
|
||||||
return "SummitGroupEvent";
|
return self::ClassName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
<?php namespace models\summit;
|
<?php namespace models\summit;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Copyright 2016 OpenStack Foundation
|
* Copyright 2016 OpenStack Foundation
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@ -12,18 +11,15 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
|
||||||
use Doctrine\ORM\Mapping AS ORM;
|
use Doctrine\ORM\Mapping AS ORM;
|
||||||
use models\utils\SilverstripeBaseModel;
|
use models\utils\SilverstripeBaseModel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
* @ORM\Table(name="RoomMetricSampleData")
|
* @ORM\Table(name="RoomMetricSampleData")
|
||||||
* Class RoomMetricSampleData
|
* Class RoomMetricSampleData
|
||||||
* @package RoomMetricType\summit
|
* @package RoomMetricType\summit
|
||||||
*/
|
*/
|
||||||
final class RoomMetricSampleData extends SilverstripeBaseModel
|
class RoomMetricSampleData extends SilverstripeBaseModel
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -31,6 +31,12 @@ use Doctrine\ORM\Mapping AS ORM;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitLocationRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitLocationRepository")
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="locations"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="SummitAbstractLocation")
|
* @ORM\Table(name="SummitAbstractLocation")
|
||||||
* @ORM\InheritanceType("JOINED")
|
* @ORM\InheritanceType("JOINED")
|
||||||
* @ORM\DiscriminatorColumn(name="ClassName", type="string")
|
* @ORM\DiscriminatorColumn(name="ClassName", type="string")
|
||||||
|
@ -23,6 +23,12 @@ use models\utils\SilverstripeBaseModel;
|
|||||||
use DateTime;
|
use DateTime;
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSelectionPlanRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSelectionPlanRepository")
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="selection_plans"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="SelectionPlan")
|
* @ORM\Table(name="SelectionPlan")
|
||||||
* Class SelectionPlan
|
* Class SelectionPlan
|
||||||
* @package App\Models\Foundation\Summit
|
* @package App\Models\Foundation\Summit
|
||||||
|
@ -17,6 +17,12 @@ use Doctrine\ORM\Mapping AS ORM;
|
|||||||
/**
|
/**
|
||||||
* Class PresentationSpeakerSummitAssistanceConfirmationRequest
|
* Class PresentationSpeakerSummitAssistanceConfirmationRequest
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrinePresentationSpeakerSummitAssistanceConfirmationRequestRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrinePresentationSpeakerSummitAssistanceConfirmationRequestRepository")
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="speaker_assistances"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="PresentationSpeakerSummitAssistanceConfirmationRequest")
|
* @ORM\Table(name="PresentationSpeakerSummitAssistanceConfirmationRequest")
|
||||||
* @package models\summit
|
* @package models\summit
|
||||||
*/
|
*/
|
||||||
|
@ -45,9 +45,14 @@ final class SummitPushNotificationChannel {
|
|||||||
return in_array($channel, self::getPublicChannels());
|
return in_array($channel, self::getPublicChannels());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitNotificationRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitNotificationRepository")
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="notifications"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="SummitPushNotification")
|
* @ORM\Table(name="SummitPushNotification")
|
||||||
* Class SummitPushNotification
|
* Class SummitPushNotification
|
||||||
* @package models\summit
|
* @package models\summit
|
||||||
|
@ -16,6 +16,12 @@ use models\utils\SilverstripeBaseModel;
|
|||||||
use Doctrine\Common\Collections\ArrayCollection;
|
use Doctrine\Common\Collections\ArrayCollection;
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitTicketTypeRepository")
|
* @ORM\Entity(repositoryClass="App\Repositories\Summit\DoctrineSummitTicketTypeRepository")
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="ticket_types"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="SummitTicketType")
|
* @ORM\Table(name="SummitTicketType")
|
||||||
* Class SummitTicketType
|
* Class SummitTicketType
|
||||||
* @package models\summit
|
* @package models\summit
|
||||||
|
@ -16,6 +16,12 @@ use models\utils\SilverstripeBaseModel;
|
|||||||
use Doctrine\ORM\Mapping AS ORM;
|
use Doctrine\ORM\Mapping AS ORM;
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="wifi_connections"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="SummitWIFIConnection")
|
* @ORM\Table(name="SummitWIFIConnection")
|
||||||
* Class SummitWIFIConnection
|
* Class SummitWIFIConnection
|
||||||
* @package models\summit\SummitWIFIConnection
|
* @package models\summit\SummitWIFIConnection
|
||||||
|
@ -19,6 +19,12 @@ use models\utils\SilverstripeBaseModel;
|
|||||||
use Doctrine\ORM\Mapping AS ORM;
|
use Doctrine\ORM\Mapping AS ORM;
|
||||||
/**
|
/**
|
||||||
* @ORM\Entity
|
* @ORM\Entity
|
||||||
|
* @ORM\AssociationOverrides({
|
||||||
|
* @ORM\AssociationOverride(
|
||||||
|
* name="summit",
|
||||||
|
* inversedBy="track_tag_groups"
|
||||||
|
* )
|
||||||
|
* })
|
||||||
* @ORM\Table(name="TrackTagGroup")
|
* @ORM\Table(name="TrackTagGroup")
|
||||||
* Class TrackTagGroup
|
* Class TrackTagGroup
|
||||||
* @package models\summit\TrackTagGroup
|
* @package models\summit\TrackTagGroup
|
||||||
|
@ -1,18 +1,16 @@
|
|||||||
<?php namespace models\oauth2;
|
<?php namespace models\oauth2;
|
||||||
|
/**
|
||||||
/**
|
* Copyright 2015 OpenStack Foundation
|
||||||
* Copyright 2015 OpenStack Foundation
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* you may not use this file except in compliance with the License.
|
||||||
* you may not use this file except in compliance with the License.
|
* You may obtain a copy of the License at
|
||||||
* You may obtain a copy of the License at
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* See the License for the specific language governing permissions and
|
||||||
* See the License for the specific language governing permissions and
|
* limitations under the License.
|
||||||
* limitations under the License.
|
**/
|
||||||
**/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class ResourceServerContext
|
* Class ResourceServerContext
|
||||||
* @package models\oauth2
|
* @package models\oauth2
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use GuzzleHttp\Client;
|
use GuzzleHttp\Client;
|
||||||
use GuzzleHttp\Exception\RequestException;
|
use GuzzleHttp\Exception\RequestException;
|
||||||
use Illuminate\Support\Facades\Config;
|
use Illuminate\Support\Facades\Config;
|
||||||
@ -23,7 +22,6 @@ use libs\utils\ConfigurationException;
|
|||||||
use libs\utils\ICacheService;
|
use libs\utils\ICacheService;
|
||||||
use models\oauth2\AccessToken;
|
use models\oauth2\AccessToken;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AccessTokenService
|
* Class AccessTokenService
|
||||||
* @package App\Models\ResourceServer
|
* @package App\Models\ResourceServer
|
||||||
|
@ -23,7 +23,7 @@ use Illuminate\Support\Facades\Config;
|
|||||||
* Class EndPointRateLimitByIP
|
* Class EndPointRateLimitByIP
|
||||||
* @package App\Models\ResourceServer
|
* @package App\Models\ResourceServer
|
||||||
*/
|
*/
|
||||||
final class EndPointRateLimitByIP extends ResourceServerEntity
|
class EndPointRateLimitByIP extends ResourceServerEntity
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -86,8 +86,8 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
*/
|
*/
|
||||||
public function boot()
|
public function boot()
|
||||||
{
|
{
|
||||||
$monolog = Log::getMonolog();
|
$logger = Log::getLogger();
|
||||||
foreach($monolog->getHandlers() as $handler) {
|
foreach($logger->getHandlers() as $handler) {
|
||||||
$handler->setLevel(Config::get('log.level', 'debug'));
|
$handler->setLevel(Config::get('log.level', 'debug'));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -97,10 +97,9 @@ class AppServiceProvider extends ServiceProvider
|
|||||||
|
|
||||||
if (!empty($to) && !empty($from)) {
|
if (!empty($to) && !empty($from)) {
|
||||||
$subject = 'openstackid-resource-server error';
|
$subject = 'openstackid-resource-server error';
|
||||||
$mono_log = Log::getMonolog();
|
|
||||||
$handler = new NativeMailerHandler($to, $subject, $from);
|
$handler = new NativeMailerHandler($to, $subject, $from);
|
||||||
$handler->setLevel(Config::get('log.email_level', 'error'));
|
$handler->setLevel(Config::get('log.email_level', 'error'));
|
||||||
$mono_log->pushHandler($handler);
|
$logger->pushHandler($handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
Validator::extend('int_array', function($attribute, $value, $parameters, $validator)
|
Validator::extend('int_array', function($attribute, $value, $parameters, $validator)
|
||||||
|
@ -13,9 +13,7 @@
|
|||||||
**/
|
**/
|
||||||
use App\EntityPersisters\AdminSummitEventActionSyncWorkRequestPersister;
|
use App\EntityPersisters\AdminSummitEventActionSyncWorkRequestPersister;
|
||||||
use App\EntityPersisters\AdminSummitLocationActionSyncWorkRequestPersister;
|
use App\EntityPersisters\AdminSummitLocationActionSyncWorkRequestPersister;
|
||||||
use App\EntityPersisters\AssetSyncRequestPersister;
|
|
||||||
use App\EntityPersisters\EntityEventPersister;
|
use App\EntityPersisters\EntityEventPersister;
|
||||||
use App\Factories\AssetsSyncRequest\FileCreatedAssetSyncRequestFactory;
|
|
||||||
use App\Factories\CalendarAdminActionSyncWorkRequest\AdminSummitLocationActionSyncWorkRequestFactory;
|
use App\Factories\CalendarAdminActionSyncWorkRequest\AdminSummitLocationActionSyncWorkRequestFactory;
|
||||||
use App\Factories\CalendarAdminActionSyncWorkRequest\SummitEventDeletedCalendarSyncWorkRequestFactory;
|
use App\Factories\CalendarAdminActionSyncWorkRequest\SummitEventDeletedCalendarSyncWorkRequestFactory;
|
||||||
use App\Factories\CalendarAdminActionSyncWorkRequest\SummitEventUpdatedCalendarSyncWorkRequestFactory;
|
use App\Factories\CalendarAdminActionSyncWorkRequest\SummitEventUpdatedCalendarSyncWorkRequestFactory;
|
||||||
@ -40,7 +38,6 @@ use App\Factories\EntityEvents\SummitEventUpdatedEntityEventFactory;
|
|||||||
use App\Factories\EntityEvents\SummitTicketTypeActionEntityEventFactory;
|
use App\Factories\EntityEvents\SummitTicketTypeActionEntityEventFactory;
|
||||||
use App\Factories\EntityEvents\TrackActionEntityEventFactory;
|
use App\Factories\EntityEvents\TrackActionEntityEventFactory;
|
||||||
use App\Factories\EntityEvents\TrackGroupActionActionEntityEventFactory;
|
use App\Factories\EntityEvents\TrackGroupActionActionEntityEventFactory;
|
||||||
use App\Services\Utils\SCPFileUploader;
|
|
||||||
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
|
||||||
use Illuminate\Support\Facades\Event;
|
use Illuminate\Support\Facades\Event;
|
||||||
/**
|
/**
|
||||||
@ -123,12 +120,6 @@ final class EventServiceProvider extends ServiceProvider
|
|||||||
EntityEventPersister::persist(PresentationMaterialDeletedEntityEventFactory::build($event));
|
EntityEventPersister::persist(PresentationMaterialDeletedEntityEventFactory::build($event));
|
||||||
});
|
});
|
||||||
|
|
||||||
Event::listen(\App\Events\FileCreated::class, function($event)
|
|
||||||
{
|
|
||||||
SCPFileUploader::upload($event);
|
|
||||||
AssetSyncRequestPersister::persist(FileCreatedAssetSyncRequestFactory::build($event));
|
|
||||||
});
|
|
||||||
|
|
||||||
Event::listen(\App\Events\PresentationSpeakerCreated::class, function($event)
|
Event::listen(\App\Events\PresentationSpeakerCreated::class, function($event)
|
||||||
{
|
{
|
||||||
EntityEventPersister::persist_list(PresentationSpeakerCreatedEntityEventFactory::build($event));
|
EntityEventPersister::persist_list(PresentationSpeakerCreatedEntityEventFactory::build($event));
|
||||||
|
@ -27,6 +27,8 @@ use utils\PagingInfo;
|
|||||||
use utils\PagingResponse;
|
use utils\PagingResponse;
|
||||||
use Doctrine\ORM\Query\Expr\Join;
|
use Doctrine\ORM\Query\Expr\Join;
|
||||||
use utils\DoctrineLeftJoinFilterMapping;
|
use utils\DoctrineLeftJoinFilterMapping;
|
||||||
|
use models\summit\SummitGroupEvent;
|
||||||
|
use models\summit\Presentation;
|
||||||
/**
|
/**
|
||||||
* Class DoctrineSummitEventRepository
|
* Class DoctrineSummitEventRepository
|
||||||
* @package App\Repositories\Summit
|
* @package App\Repositories\Summit
|
||||||
@ -37,8 +39,8 @@ final class DoctrineSummitEventRepository
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
private static $forbidded_classes = [
|
private static $forbidden_classes = [
|
||||||
'models\\summit\\SummitGroupEvent'
|
SummitGroupEvent::ClassName,
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -51,17 +53,26 @@ final class DoctrineSummitEventRepository
|
|||||||
$end_date = $event->getEndDate();
|
$end_date = $event->getEndDate();
|
||||||
$start_date = $event->getStartDate();
|
$start_date = $event->getStartDate();
|
||||||
|
|
||||||
return $this->getEntityManager()->createQueryBuilder()
|
$query = $this->getEntityManager()->createQueryBuilder()
|
||||||
->select("e")
|
->select("e")
|
||||||
->from(\models\summit\SummitEvent::class, "e")
|
->from(\models\summit\SummitEvent::class, "e")
|
||||||
->join('e.summit', 's', Join::WITH, " s.id = :summit_id")
|
->join('e.summit', 's', Join::WITH, " s.id = :summit_id")
|
||||||
->where('e.published = 1')
|
->where('e.published = 1')
|
||||||
->andWhere('e.start_date < :end_date')
|
->andWhere('e.start_date < :end_date')
|
||||||
->andWhere("not e INSTANCE OF ('" . implode("','", self::$forbidded_classes) . "')")
|
|
||||||
->andWhere('e.end_date > :start_date')
|
->andWhere('e.end_date > :start_date')
|
||||||
->setParameter('summit_id', $summit->getId())
|
->setParameter('summit_id', $summit->getId())
|
||||||
->setParameter('start_date', $start_date)
|
->setParameter('start_date', $start_date)
|
||||||
->setParameter('end_date', $end_date)->getQuery()->getResult();
|
->setParameter('end_date', $end_date);
|
||||||
|
|
||||||
|
$idx = 1;
|
||||||
|
foreach(self::$forbidden_classes as $forbidden_class){
|
||||||
|
$query = $query
|
||||||
|
->andWhere("not e INSTANCE OF :forbidden_class".$idx);
|
||||||
|
$query->setParameter("forbidden_class".$idx, $forbidden_class);
|
||||||
|
$idx++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query->getQuery()->getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -212,8 +223,13 @@ final class DoctrineSummitEventRepository
|
|||||||
$can_view_private_events = self::isCurrentMemberOnGroup(IGroup::SummitAdministrators);
|
$can_view_private_events = self::isCurrentMemberOnGroup(IGroup::SummitAdministrators);
|
||||||
|
|
||||||
if(!$can_view_private_events){
|
if(!$can_view_private_events){
|
||||||
$query = $query
|
$idx = 1;
|
||||||
->andWhere("not e INSTANCE OF ('" . implode("','", self::$forbidded_classes) . "')");
|
foreach(self::$forbidden_classes as $forbidden_class){
|
||||||
|
$query = $query
|
||||||
|
->andWhere("not e INSTANCE OF :forbidden_class".$idx);
|
||||||
|
$query->setParameter("forbidden_class".$idx, $forbidden_class);
|
||||||
|
$idx++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = $query
|
$query = $query
|
||||||
@ -303,8 +319,13 @@ final class DoctrineSummitEventRepository
|
|||||||
$can_view_private_events = self::isCurrentMemberOnGroup(IGroup::SummitAdministrators);
|
$can_view_private_events = self::isCurrentMemberOnGroup(IGroup::SummitAdministrators);
|
||||||
|
|
||||||
if(!$can_view_private_events){
|
if(!$can_view_private_events){
|
||||||
$query = $query
|
$idx = 1;
|
||||||
->andWhere("not e INSTANCE OF ('" . implode("','", self::$forbidded_classes) . "')");
|
foreach(self::$forbidden_classes as $forbidden_class){
|
||||||
|
$query = $query
|
||||||
|
->andWhere("not e INSTANCE OF :forbidden_class".$idx);
|
||||||
|
$query->setParameter("forbidden_class".$idx, $forbidden_class);
|
||||||
|
$idx++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = $query
|
$query = $query
|
||||||
|
@ -26,6 +26,7 @@ use utils\Filter;
|
|||||||
use utils\Order;
|
use utils\Order;
|
||||||
use utils\PagingInfo;
|
use utils\PagingInfo;
|
||||||
use utils\PagingResponse;
|
use utils\PagingResponse;
|
||||||
|
use models\summit\SummitVenueRoom;
|
||||||
/**
|
/**
|
||||||
* Class DoctrineSummitLocationRepository
|
* Class DoctrineSummitLocationRepository
|
||||||
* @package App\Repositories\Summit
|
* @package App\Repositories\Summit
|
||||||
@ -35,8 +36,8 @@ final class DoctrineSummitLocationRepository
|
|||||||
implements ISummitLocationRepository
|
implements ISummitLocationRepository
|
||||||
{
|
{
|
||||||
|
|
||||||
private static $forbidded_classes = [
|
private static $forbidden_classes = [
|
||||||
'models\\summit\\SummitVenueRoom',
|
SummitVenueRoom::ClassName,
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -109,8 +110,15 @@ final class DoctrineSummitLocationRepository
|
|||||||
->leftJoin(SummitHotel::class, 'h', 'WITH', 'h.id = el.id')
|
->leftJoin(SummitHotel::class, 'h', 'WITH', 'h.id = el.id')
|
||||||
->leftJoin(SummitAirport::class, 'ap', 'WITH', 'ap.id = el.id')
|
->leftJoin(SummitAirport::class, 'ap', 'WITH', 'ap.id = el.id')
|
||||||
->leftJoin('al.summit', 's')
|
->leftJoin('al.summit', 's')
|
||||||
->where("s.id = :summit_id")
|
->where("s.id = :summit_id");
|
||||||
->andWhere("not al INSTANCE OF ('" . implode("','", self::$forbidded_classes) . "')");
|
|
||||||
|
$idx = 1;
|
||||||
|
foreach(self::$forbidden_classes as $forbidden_class){
|
||||||
|
$query = $query
|
||||||
|
->andWhere("not al INSTANCE OF :forbidden_class".$idx);
|
||||||
|
$query->setParameter("forbidden_class".$idx, $forbidden_class);
|
||||||
|
$idx++;
|
||||||
|
}
|
||||||
|
|
||||||
$query->setParameter("summit_id", $summit->getId());
|
$query->setParameter("summit_id", $summit->getId());
|
||||||
|
|
||||||
|
@ -570,7 +570,7 @@ final class SpeakerService
|
|||||||
throw new ValidationException(sprintf("file exceeds max_file_size (%s MB).", ($max_file_size / 1024) / 1024));
|
throw new ValidationException(sprintf("file exceeds max_file_size (%s MB).", ($max_file_size / 1024) / 1024));
|
||||||
}
|
}
|
||||||
|
|
||||||
$uploader = new FileUploader($this->folder_service);
|
$uploader = new FileUploader($this->folder_service, new SwiftBucket);
|
||||||
$photo = $uploader->build($file, 'profile-images', true);
|
$photo = $uploader->build($file, 'profile-images', true);
|
||||||
$speaker->setPhoto($photo);
|
$speaker->setPhoto($photo);
|
||||||
|
|
||||||
|
@ -1172,7 +1172,7 @@ final class SummitLocationService
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$uploader = new FileUploader($this->folder_service);
|
$uploader = new FileUploader($this->folder_service, new SwiftBucket);
|
||||||
$pic = $uploader->build($file, sprintf('summits/%s/locations/%s/maps', $location->getSummitId(), $location->getId()), true);
|
$pic = $uploader->build($file, sprintf('summits/%s/locations/%s/maps', $location->getSummitId(), $location->getId()), true);
|
||||||
$map = SummitLocationImageFactory::buildMap($metadata);
|
$map = SummitLocationImageFactory::buildMap($metadata);
|
||||||
$map->setPicture($pic);
|
$map->setPicture($pic);
|
||||||
@ -1276,7 +1276,7 @@ final class SummitLocationService
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$uploader = new FileUploader($this->folder_service);
|
$uploader = new FileUploader($this->folder_service, new SwiftBucket);
|
||||||
$pic = $uploader->build($file, sprintf('summits/%s/locations/%s/maps', $location->getSummitId(), $location->getId()), true);
|
$pic = $uploader->build($file, sprintf('summits/%s/locations/%s/maps', $location->getSummitId(), $location->getId()), true);
|
||||||
$map->setPicture($pic);
|
$map->setPicture($pic);
|
||||||
}
|
}
|
||||||
@ -1443,7 +1443,7 @@ final class SummitLocationService
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$uploader = new FileUploader($this->folder_service);
|
$uploader = new FileUploader($this->folder_service, new SwiftBucket);
|
||||||
$pic = $uploader->build($file, sprintf('summits/%s/locations/%s/images', $location->getSummitId(), $location->getId()), true);
|
$pic = $uploader->build($file, sprintf('summits/%s/locations/%s/images', $location->getSummitId(), $location->getId()), true);
|
||||||
$image = SummitLocationImageFactory::buildImage($metadata);
|
$image = SummitLocationImageFactory::buildImage($metadata);
|
||||||
$image->setPicture($pic);
|
$image->setPicture($pic);
|
||||||
@ -1547,7 +1547,7 @@ final class SummitLocationService
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
$uploader = new FileUploader($this->folder_service);
|
$uploader = new FileUploader($this->folder_service, new SwiftBucket);
|
||||||
$pic = $uploader->build($file, sprintf('summits/%s/locations/%s/images', $location->getSummitId(), $location->getId()), true);
|
$pic = $uploader->build($file, sprintf('summits/%s/locations/%s/images', $location->getSummitId(), $location->getId()), true);
|
||||||
$image->setPicture($pic);
|
$image->setPicture($pic);
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ use App\Events\MyScheduleRemove;
|
|||||||
use App\Events\SummitDeleted;
|
use App\Events\SummitDeleted;
|
||||||
use App\Events\SummitUpdated;
|
use App\Events\SummitUpdated;
|
||||||
use App\Http\Utils\FileUploader;
|
use App\Http\Utils\FileUploader;
|
||||||
|
use App\Http\Utils\SwiftBucket;
|
||||||
use App\Models\Foundation\Summit\Factories\SummitFactory;
|
use App\Models\Foundation\Summit\Factories\SummitFactory;
|
||||||
use App\Models\Foundation\Summit\Repositories\IDefaultSummitEventTypeRepository;
|
use App\Models\Foundation\Summit\Repositories\IDefaultSummitEventTypeRepository;
|
||||||
use App\Models\Utils\IntervalParser;
|
use App\Models\Utils\IntervalParser;
|
||||||
@ -1282,7 +1283,7 @@ final class SummitService extends AbstractService implements ISummitService
|
|||||||
throw new ValidationException(sprintf( "file exceeds max_file_size (%s MB).", ($max_file_size/1024)/1024));
|
throw new ValidationException(sprintf( "file exceeds max_file_size (%s MB).", ($max_file_size/1024)/1024));
|
||||||
}
|
}
|
||||||
|
|
||||||
$uploader = new FileUploader($this->folder_service);
|
$uploader = new FileUploader($this->folder_service, new SwiftBucket);
|
||||||
$attachment = $uploader->build($file, 'summit-event-attachments', true);
|
$attachment = $uploader->build($file, 'summit-event-attachments', true);
|
||||||
$event->setAttachment($attachment);
|
$event->setAttachment($attachment);
|
||||||
|
|
||||||
|
@ -94,7 +94,8 @@ final class ServicesProvider extends ServiceProvider
|
|||||||
});
|
});
|
||||||
|
|
||||||
// setting facade
|
// setting facade
|
||||||
$this->app['encryption'] = App::share(function ($app) {
|
|
||||||
|
App::singleton('encryption', function ($app) {
|
||||||
return new \services\utils\EncryptionService(
|
return new \services\utils\EncryptionService(
|
||||||
Config::get("server.ss_encrypt_key", ''),
|
Config::get("server.ss_encrypt_key", ''),
|
||||||
Config::get("server.ss_encrypt_cypher", '')
|
Config::get("server.ss_encrypt_cypher", '')
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
<?php namespace App\Services\Utils;
|
|
||||||
/**
|
|
||||||
* Copyright 2018 OpenStack Foundation
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
**/
|
|
||||||
use App\Events\FileCreated;
|
|
||||||
use IDCT\Networking\Ssh\Credentials;
|
|
||||||
use IDCT\Networking\Ssh\SftpClient;
|
|
||||||
use Illuminate\Support\Facades\Config;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class SCPFileUploader
|
|
||||||
* @package App\Services\Utils
|
|
||||||
*/
|
|
||||||
final class SCPFileUploader
|
|
||||||
{
|
|
||||||
public static function upload(FileCreated $event){
|
|
||||||
$storage_path = storage_path();
|
|
||||||
$local_path = $event->getLocalPath();
|
|
||||||
$file_name = $event->getFileName();
|
|
||||||
$remote_base_path = Config::get('scp.scp_remote_base_path', null);
|
|
||||||
$client = new SftpClient();
|
|
||||||
$host = Config::get('scp.scp_host', null);
|
|
||||||
|
|
||||||
$credentials = Credentials::withPublicKey
|
|
||||||
(
|
|
||||||
Config::get('scp.ssh_user', null),
|
|
||||||
Config::get('scp.ssh_public_key', null),
|
|
||||||
Config::get('scp.ssh_private_key', null)
|
|
||||||
);
|
|
||||||
|
|
||||||
$client->setCredentials($credentials);
|
|
||||||
$client->connect($host);
|
|
||||||
$remote_destination = sprintf("%s/%s", $remote_base_path, $file_name);
|
|
||||||
$client->scpUpload(sprintf("%s/app/%s", $storage_path, $local_path), $remote_destination);
|
|
||||||
$client->close();
|
|
||||||
}
|
|
||||||
}
|
|
29
app/User.php
Normal file
29
app/User.php
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Notifications\Notifiable;
|
||||||
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||||
|
|
||||||
|
class User extends Authenticatable
|
||||||
|
{
|
||||||
|
use Notifiable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'name', 'email', 'password',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that should be hidden for arrays.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $hidden = [
|
||||||
|
'password', 'remember_token',
|
||||||
|
];
|
||||||
|
}
|
@ -8,29 +8,41 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">=5.5.9",
|
"php": "^7.1.3",
|
||||||
"laravel/framework": "5.3.*",
|
"fideloper/proxy": "^4.0",
|
||||||
"predis/predis": "1.0.1",
|
"laravel/framework": "5.6.*",
|
||||||
|
"laravel/tinker": "^1.0",
|
||||||
|
"predis/predis": "1.0.*",
|
||||||
|
"ext-json":"*",
|
||||||
|
"ext-pdo":"*",
|
||||||
"ezyang/htmlpurifier": "4.7.0",
|
"ezyang/htmlpurifier": "4.7.0",
|
||||||
"glenscott/url-normalizer" : "^1.4",
|
"glenscott/url-normalizer" : "^1.4",
|
||||||
"laravel-doctrine/orm":"1.2.*",
|
"laravel-doctrine/orm":"1.4.*",
|
||||||
"laravel-doctrine/extensions": "1.0.*",
|
"laravel-doctrine/extensions": "1.0.*",
|
||||||
"cocur/slugify": "^2.3",
|
"cocur/slugify": "^2.3",
|
||||||
"guzzlehttp/guzzle": "^6.3",
|
"guzzlehttp/guzzle": "^6.3",
|
||||||
"google/apiclient": "^2.2",
|
"google/apiclient": "^2.2",
|
||||||
"smarcet/caldavclient": "1.1.6",
|
"smarcet/caldavclient": "1.1.6",
|
||||||
"smarcet/outlook-rest-client": "dev-master",
|
"smarcet/outlook-rest-client": "dev-master",
|
||||||
"idct/sftp-client": "dev-master"
|
"idct/sftp-client": "dev-master",
|
||||||
|
"php-opencloud/openstack": "3.0.5"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fzaninotto/faker": "~1.4",
|
"filp/whoops": "^2.0",
|
||||||
"phpunit/phpunit": "~4.0",
|
"fzaninotto/faker": "^1.4",
|
||||||
"symfony/css-selector": "3.1.*",
|
"mockery/mockery": "^1.0",
|
||||||
"symfony/dom-crawler": "3.1.*",
|
"nunomaduro/collision": "^2.0",
|
||||||
"mockery/mockery": "^0.9.9"
|
"phpunit/phpunit": "^7.0",
|
||||||
|
"laravel/browser-kit-testing": "4.0.2"
|
||||||
|
},
|
||||||
|
"suggest":{
|
||||||
|
"lib-openssl": "Required to use AES algorithms (except AES GCM)",
|
||||||
|
"ext-json":"Required to use json algorithms"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"classmap": [
|
"classmap": [
|
||||||
|
"database/seeds",
|
||||||
|
"database/factories",
|
||||||
"database",
|
"database",
|
||||||
"app",
|
"app",
|
||||||
"tests",
|
"tests",
|
||||||
@ -41,28 +53,33 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload-dev": {
|
"autoload-dev": {
|
||||||
"classmap": [
|
"psr-4": {
|
||||||
"tests/TestCase.php"
|
"Tests\\": "tests/"
|
||||||
]
|
}
|
||||||
|
},
|
||||||
|
"extra": {
|
||||||
|
"laravel": {
|
||||||
|
"dont-discover": [
|
||||||
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"post-root-package-install": [
|
"post-root-package-install": [
|
||||||
"php -r \"copy('.env.example', '.env');\""
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
||||||
],
|
],
|
||||||
"post-create-project-cmd": [
|
"post-create-project-cmd": [
|
||||||
"php artisan key:generate"
|
"@php artisan key:generate"
|
||||||
],
|
],
|
||||||
"post-install-cmd": [
|
"post-autoload-dump": [
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postInstall",
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||||
"php artisan optimize"
|
"@php artisan package:discover"
|
||||||
],
|
|
||||||
"post-update-cmd": [
|
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
|
|
||||||
"php artisan optimize"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"preferred-install": "dist"
|
"preferred-install": "dist",
|
||||||
|
"sort-packages": true,
|
||||||
|
"optimize-autoloader": true
|
||||||
},
|
},
|
||||||
"minimum-stability":"dev"
|
"minimum-stability": "dev",
|
||||||
|
"prefer-stable": true
|
||||||
}
|
}
|
||||||
|
3130
composer.lock
generated
3130
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -99,21 +99,6 @@ return [
|
|||||||
|
|
||||||
'cipher' => 'AES-256-CBC',
|
'cipher' => 'AES-256-CBC',
|
||||||
|
|
||||||
/*
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
| Logging Configuration
|
|
||||||
|--------------------------------------------------------------------------
|
|
||||||
|
|
|
||||||
| Here you may configure the log settings for your application. Out of
|
|
||||||
| the box, Laravel uses the Monolog PHP logging library. This gives
|
|
||||||
| you a variety of powerful log handlers / formatters to utilize.
|
|
||||||
|
|
|
||||||
| Available Settings: "single", "daily", "syslog", "errorlog"
|
|
||||||
|
|
|
||||||
*/
|
|
||||||
|
|
||||||
'log' => env('APP_LOG', 'daily'),
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
| Autoloaded Service Providers
|
| Autoloaded Service Providers
|
||||||
|
@ -67,7 +67,7 @@ return [
|
|||||||
'providers' => [
|
'providers' => [
|
||||||
'users' => [
|
'users' => [
|
||||||
'driver' => 'eloquent',
|
'driver' => 'eloquent',
|
||||||
//'model' => App\User::class,
|
'model' => App\User::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
// 'users' => [
|
// 'users' => [
|
||||||
@ -81,10 +81,6 @@ return [
|
|||||||
| Resetting Passwords
|
| Resetting Passwords
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
|
||||||
| Here you may set the options for resetting passwords including the view
|
|
||||||
| that is your password reset e-mail. You may also set the name of the
|
|
||||||
| table that maintains all of the reset tokens for your application.
|
|
||||||
|
|
|
||||||
| You may specify multiple password reset configurations if you have more
|
| You may specify multiple password reset configurations if you have more
|
||||||
| than one user table or model in the application and you want to have
|
| than one user table or model in the application and you want to have
|
||||||
| separate password reset settings based on the specific user types.
|
| separate password reset settings based on the specific user types.
|
||||||
@ -98,7 +94,6 @@ return [
|
|||||||
'passwords' => [
|
'passwords' => [
|
||||||
'users' => [
|
'users' => [
|
||||||
'provider' => 'users',
|
'provider' => 'users',
|
||||||
'email' => 'auth.emails.password',
|
|
||||||
'table' => 'password_resets',
|
'table' => 'password_resets',
|
||||||
'expire' => 60,
|
'expire' => 60,
|
||||||
],
|
],
|
||||||
|
23
config/cloudstorage.php
Normal file
23
config/cloudstorage.php
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright 2018 OpenStack Foundation
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
**/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'base_url' => env('CLOUD_STORAGE_BASE_URL', null),
|
||||||
|
'container' => env('CLOUD_STORAGE_CONTAINER', null),
|
||||||
|
'auth_url' => env('CLOUD_STORAGE_AUTH_URL', null),
|
||||||
|
'user_name' => env('CLOUD_STORAGE_USERNAME', null),
|
||||||
|
'api_key' => env('CLOUD_STORAGE_APIKEY', null),
|
||||||
|
'project_name' => env('CLOUD_STORAGE_PROJECT_NAME', null),
|
||||||
|
'region' => env('CLOUD_STORAGE_REGION', null),
|
||||||
|
];
|
@ -22,7 +22,7 @@ return [
|
|||||||
*/
|
*/
|
||||||
'managers' => [
|
'managers' => [
|
||||||
'default' => [
|
'default' => [
|
||||||
'dev' => env('APP_DEBUG'),
|
'dev' => env('APP_DEBUG', true),
|
||||||
'meta' => env('DOCTRINE_METADATA', 'annotations'),
|
'meta' => env('DOCTRINE_METADATA', 'annotations'),
|
||||||
'connection' => env('DB_CONNECTION', 'openstackid_resources'),
|
'connection' => env('DB_CONNECTION', 'openstackid_resources'),
|
||||||
'namespaces' => [
|
'namespaces' => [
|
||||||
|
52
config/hashing.php
Normal file
52
config/hashing.php
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default Hash Driver
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This option controls the default hash driver that will be used to hash
|
||||||
|
| passwords for your application. By default, the bcrypt algorithm is
|
||||||
|
| used; however, you remain free to modify this option if you wish.
|
||||||
|
|
|
||||||
|
| Supported: "bcrypt", "argon"
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'driver' => 'bcrypt',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Bcrypt Options
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you may specify the configuration options that should be used when
|
||||||
|
| passwords are hashed using the Bcrypt algorithm. This will allow you
|
||||||
|
| to control the amount of time it takes to hash the given password.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'bcrypt' => [
|
||||||
|
'rounds' => env('BCRYPT_ROUNDS', 10),
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Argon Options
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you may specify the configuration options that should be used when
|
||||||
|
| passwords are hashed using the Argon algorithm. These will allow you
|
||||||
|
| to control the amount of time it takes to hash the given password.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'argon' => [
|
||||||
|
'memory' => 1024,
|
||||||
|
'threads' => 2,
|
||||||
|
'time' => 2,
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
81
config/logging.php
Normal file
81
config/logging.php
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Monolog\Handler\StreamHandler;
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default Log Channel
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| This option defines the default log channel that gets used when writing
|
||||||
|
| messages to the logs. The name specified in this option should match
|
||||||
|
| one of the channels defined in the "channels" configuration array.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'default' => env('LOG_CHANNEL', 'stack'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Channels
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Here you may configure the log channels for your application. Out of
|
||||||
|
| the box, Laravel uses the Monolog PHP logging library. This gives
|
||||||
|
| you a variety of powerful log handlers / formatters to utilize.
|
||||||
|
|
|
||||||
|
| Available Drivers: "single", "daily", "slack", "syslog",
|
||||||
|
| "errorlog", "monolog",
|
||||||
|
| "custom", "stack"
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'channels' => [
|
||||||
|
'stack' => [
|
||||||
|
'driver' => 'stack',
|
||||||
|
'channels' => ['daily'],
|
||||||
|
],
|
||||||
|
|
||||||
|
'single' => [
|
||||||
|
'driver' => 'single',
|
||||||
|
'path' => storage_path('logs/laravel.log'),
|
||||||
|
'level' => 'debug',
|
||||||
|
],
|
||||||
|
|
||||||
|
'daily' => [
|
||||||
|
'driver' => 'daily',
|
||||||
|
'path' => storage_path('logs/laravel.log'),
|
||||||
|
'level' => 'debug',
|
||||||
|
'days' => 7,
|
||||||
|
],
|
||||||
|
|
||||||
|
'slack' => [
|
||||||
|
'driver' => 'slack',
|
||||||
|
'url' => env('LOG_SLACK_WEBHOOK_URL'),
|
||||||
|
'username' => 'Laravel Log',
|
||||||
|
'emoji' => ':boom:',
|
||||||
|
'level' => 'critical',
|
||||||
|
],
|
||||||
|
|
||||||
|
'stderr' => [
|
||||||
|
'driver' => 'monolog',
|
||||||
|
'handler' => StreamHandler::class,
|
||||||
|
'with' => [
|
||||||
|
'stream' => 'php://stderr',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'syslog' => [
|
||||||
|
'driver' => 'syslog',
|
||||||
|
'level' => 'debug',
|
||||||
|
],
|
||||||
|
|
||||||
|
'errorlog' => [
|
||||||
|
'driver' => 'errorlog',
|
||||||
|
'level' => 'debug',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
@ -16,6 +16,7 @@ use models\summit\ICalendarSyncInfoRepository;
|
|||||||
use models\summit\SummitEvent;
|
use models\summit\SummitEvent;
|
||||||
use models\summit\CalendarSync\WorkQueue\AdminSummitEventActionSyncWorkRequest;
|
use models\summit\CalendarSync\WorkQueue\AdminSummitEventActionSyncWorkRequest;
|
||||||
use models\summit\CalendarSync\WorkQueue\AbstractCalendarSyncWorkRequest;
|
use models\summit\CalendarSync\WorkQueue\AbstractCalendarSyncWorkRequest;
|
||||||
|
use Tests\TestCase;
|
||||||
/**
|
/**
|
||||||
* Class AdminActionsCalendarSyncPreProcessorTest
|
* Class AdminActionsCalendarSyncPreProcessorTest
|
||||||
*/
|
*/
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
use App\Services\Model\IAttendeeService;
|
use App\Services\Model\IAttendeeService;
|
||||||
|
use Tests\TestCase;
|
||||||
|
use Illuminate\Support\Facades\App;
|
||||||
/**
|
/**
|
||||||
* Class AttendeeServiceTest
|
* Class AttendeeServiceTest
|
||||||
*/
|
*/
|
||||||
|
54
tests/BrowserKitTestCase.php
Normal file
54
tests/BrowserKitTestCase.php
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?php namespace Tests;
|
||||||
|
/**
|
||||||
|
* Copyright 2015 Openstack Foundation
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
**/
|
||||||
|
use Illuminate\Support\Facades\Artisan;
|
||||||
|
use Illuminate\Support\Facades\Redis;
|
||||||
|
use Laravel\BrowserKitTesting\TestCase as BaseTestCase;
|
||||||
|
/**
|
||||||
|
* Class TestCase
|
||||||
|
* @package Tests
|
||||||
|
*/
|
||||||
|
abstract class BrowserKitTestCase extends BaseTestCase
|
||||||
|
{
|
||||||
|
use CreatesApplication;
|
||||||
|
|
||||||
|
private $redis;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The base URL to use while testing the application.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $baseUrl = 'http://localhost';
|
||||||
|
|
||||||
|
public function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp(); // Don't forget this!
|
||||||
|
$this->redis = Redis::connection();
|
||||||
|
$this->redis->flushall();
|
||||||
|
$this->prepareForTests();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Migrates the database and set the mailer to 'pretend'.
|
||||||
|
* This will cause the tests to run quickly.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
protected function prepareForTests()
|
||||||
|
{
|
||||||
|
Artisan::call('migrate');
|
||||||
|
//Mail::pretend(true);
|
||||||
|
$this->seed('TestSeeder');
|
||||||
|
}
|
||||||
|
}
|
@ -11,7 +11,10 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
use Tests\TestCase;
|
||||||
|
/**
|
||||||
|
* Class CountriesApiTest
|
||||||
|
*/
|
||||||
final class CountriesApiTest extends TestCase
|
final class CountriesApiTest extends TestCase
|
||||||
{
|
{
|
||||||
public function testGetAllCountries()
|
public function testGetAllCountries()
|
||||||
|
22
tests/CreatesApplication.php
Normal file
22
tests/CreatesApplication.php
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?php namespace Tests;
|
||||||
|
use Illuminate\Contracts\Console\Kernel;
|
||||||
|
/**
|
||||||
|
* Trait CreatesApplication
|
||||||
|
* @package Tests
|
||||||
|
*/
|
||||||
|
trait CreatesApplication
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Creates the application.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Foundation\Application
|
||||||
|
*/
|
||||||
|
public function createApplication()
|
||||||
|
{
|
||||||
|
$app = require __DIR__.'/../bootstrap/app.php';
|
||||||
|
|
||||||
|
$app->make(Kernel::class)->bootstrap();
|
||||||
|
|
||||||
|
return $app;
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
use Tests\TestCase;
|
||||||
/**
|
/**
|
||||||
* Copyright 2016 OpenStack Foundation
|
* Copyright 2016 OpenStack Foundation
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
21
tests/Feature/ExampleTest.php
Normal file
21
tests/Feature/ExampleTest.php
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Feature;
|
||||||
|
|
||||||
|
use Tests\TestCase;
|
||||||
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
|
|
||||||
|
class ExampleTest extends TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* A basic test example.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testBasicTest()
|
||||||
|
{
|
||||||
|
$response = $this->get('/');
|
||||||
|
|
||||||
|
$response->assertStatus(200);
|
||||||
|
}
|
||||||
|
}
|
@ -1,5 +1,5 @@
|
|||||||
<?php
|
<?php
|
||||||
|
use Tests\TestCase;
|
||||||
/**
|
/**
|
||||||
* Copyright 2015 OpenStack Foundation
|
* Copyright 2015 OpenStack Foundation
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
use Tests\TestCase;
|
||||||
/**
|
/**
|
||||||
* Class LanguagesApiTest
|
* Class LanguagesApiTest
|
||||||
*/
|
*/
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
use Tests\TestCase;
|
||||||
/**
|
/**
|
||||||
* Class MarketplaceApiTest
|
* Class MarketplaceApiTest
|
||||||
*/
|
*/
|
||||||
|
@ -11,7 +11,6 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use models\summit\IAbstractCalendarSyncWorkRequestRepository;
|
use models\summit\IAbstractCalendarSyncWorkRequestRepository;
|
||||||
use models\summit\ICalendarSyncInfoRepository;
|
use models\summit\ICalendarSyncInfoRepository;
|
||||||
@ -20,7 +19,7 @@ use models\summit\SummitEvent;
|
|||||||
use models\summit\CalendarSync\WorkQueue\AbstractCalendarSyncWorkRequest;
|
use models\summit\CalendarSync\WorkQueue\AbstractCalendarSyncWorkRequest;
|
||||||
use models\summit\CalendarSync\CalendarSyncInfo;
|
use models\summit\CalendarSync\CalendarSyncInfo;
|
||||||
use models\main\Member;
|
use models\main\Member;
|
||||||
|
use Tests\TestCase;
|
||||||
/**
|
/**
|
||||||
* Class MemberActionsCalendarSyncPreProcessorTest
|
* Class MemberActionsCalendarSyncPreProcessorTest
|
||||||
*/
|
*/
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use models\marketplace\ICompanyServiceRepository;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class OAuth2PublicCloudApiTest
|
* Class OAuth2PublicCloudApiTest
|
||||||
@ -26,14 +25,14 @@ class OAuth2PublicCloudApiTest extends ProtectedApiTest
|
|||||||
$params = array(
|
$params = array(
|
||||||
'page' => 1,
|
'page' => 1,
|
||||||
'per_page' => 10,
|
'per_page' => 10,
|
||||||
'status' => ICompanyServiceRepository::Status_active,
|
'status' => 'active',
|
||||||
);
|
);
|
||||||
|
|
||||||
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
||||||
|
|
||||||
$response = $this->action(
|
$response = $this->action(
|
||||||
"GET",
|
"GET",
|
||||||
"OAuth2PublicCloudApiController@getClouds",
|
"PublicCloudsApiController@getAll",
|
||||||
$params,
|
$params,
|
||||||
array(),
|
array(),
|
||||||
array(),
|
array(),
|
||||||
@ -57,7 +56,7 @@ class OAuth2PublicCloudApiTest extends ProtectedApiTest
|
|||||||
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
||||||
$response = $this->action(
|
$response = $this->action(
|
||||||
"GET",
|
"GET",
|
||||||
"OAuth2PublicCloudApiController@getCloud",
|
"PublicCloudsApiController@get",
|
||||||
$params,
|
$params,
|
||||||
array(),
|
array(),
|
||||||
array(),
|
array(),
|
||||||
@ -81,7 +80,7 @@ class OAuth2PublicCloudApiTest extends ProtectedApiTest
|
|||||||
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
||||||
$response = $this->action(
|
$response = $this->action(
|
||||||
"GET",
|
"GET",
|
||||||
"OAuth2PublicCloudApiController@getCloud",
|
"PublicCloudsApiController@getCloud",
|
||||||
$params,
|
$params,
|
||||||
array(),
|
array(),
|
||||||
array(),
|
array(),
|
||||||
@ -105,7 +104,7 @@ class OAuth2PublicCloudApiTest extends ProtectedApiTest
|
|||||||
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
$headers = array("HTTP_Authorization" => " Bearer " . $this->access_token);
|
||||||
$response = $this->action(
|
$response = $this->action(
|
||||||
"GET",
|
"GET",
|
||||||
"OAuth2PublicCloudApiController@getCloudDataCenters",
|
"PublicCloudsApiController@getCloudDataCenters",
|
||||||
$params,
|
$params,
|
||||||
array(),
|
array(),
|
||||||
array(),
|
array(),
|
||||||
|
@ -153,6 +153,41 @@ final class OAuth2SummitLocationsApiTest extends ProtectedApiTest
|
|||||||
$this->assertTrue(!is_null($locations));
|
$this->assertTrue(!is_null($locations));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testGetCurrentSummitLocationsByClassHotels($summit_id = 25)
|
||||||
|
{
|
||||||
|
$params = [
|
||||||
|
'id' => $summit_id,
|
||||||
|
'page' => 1,
|
||||||
|
'per_page' => 100,
|
||||||
|
'filter' => [
|
||||||
|
'class_name=='.\models\summit\SummitHotel::ClassName,
|
||||||
|
]
|
||||||
|
];
|
||||||
|
|
||||||
|
$headers =
|
||||||
|
[
|
||||||
|
"HTTP_Authorization" => " Bearer " . $this->access_token,
|
||||||
|
"CONTENT_TYPE" => "application/json"
|
||||||
|
];
|
||||||
|
|
||||||
|
$response = $this->action
|
||||||
|
(
|
||||||
|
"GET",
|
||||||
|
"OAuth2SummitLocationsApiController@getLocations",
|
||||||
|
$params,
|
||||||
|
[],
|
||||||
|
[],
|
||||||
|
[],
|
||||||
|
$headers
|
||||||
|
);
|
||||||
|
|
||||||
|
$content = $response->getContent();
|
||||||
|
$this->assertResponseStatus(200);
|
||||||
|
|
||||||
|
$locations = json_decode($content);
|
||||||
|
$this->assertTrue(!is_null($locations));
|
||||||
|
}
|
||||||
|
|
||||||
public function testGetCurrentSummitVenues()
|
public function testGetCurrentSummitVenues()
|
||||||
{
|
{
|
||||||
$params = array
|
$params = array
|
||||||
|
@ -111,7 +111,6 @@ final class OAuth2TrackGroupsApiTest extends ProtectedApiTest
|
|||||||
$track_group = json_decode($content);
|
$track_group = json_decode($content);
|
||||||
$this->assertTrue(!is_null($track_group));
|
$this->assertTrue(!is_null($track_group));
|
||||||
$this->assertResponseStatus(200);
|
$this->assertResponseStatus(200);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,6 +12,9 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class OAuth2TrackTagGroupsApiTest
|
||||||
|
*/
|
||||||
final class OAuth2TrackTagGroupsApiTest extends ProtectedApiTest
|
final class OAuth2TrackTagGroupsApiTest extends ProtectedApiTest
|
||||||
{
|
{
|
||||||
public function testGetTrackTagGroups($summit_id = 25)
|
public function testGetTrackTagGroups($summit_id = 25)
|
||||||
|
@ -11,8 +11,12 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
use Tests\TestCase;
|
||||||
|
|
||||||
class ParseMultiPartFormDataInputStreamTest extends TestCase
|
/**
|
||||||
|
* Class ParseMultiPartFormDataInputStreamTest
|
||||||
|
*/
|
||||||
|
final class ParseMultiPartFormDataInputStreamTest extends TestCase
|
||||||
{
|
{
|
||||||
public function testParse(){
|
public function testParse(){
|
||||||
$input = <<<DATA
|
$input = <<<DATA
|
||||||
|
@ -125,7 +125,7 @@ class AccessTokenServiceStub2 implements IAccessTokenService
|
|||||||
/**
|
/**
|
||||||
* Class ProtectedApiTest
|
* Class ProtectedApiTest
|
||||||
*/
|
*/
|
||||||
abstract class ProtectedApiTest extends TestCase
|
abstract class ProtectedApiTest extends \Tests\BrowserKitTestCase
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,13 +11,12 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
use Illuminate\Support\Facades\App;
|
use Illuminate\Support\Facades\App;
|
||||||
use LaravelDoctrine\ORM\Facades\EntityManager;
|
use LaravelDoctrine\ORM\Facades\EntityManager;
|
||||||
use App\Models\Utils\IntervalParser;
|
use App\Models\Utils\IntervalParser;
|
||||||
use services\model\ISummitService;
|
use services\model\ISummitService;
|
||||||
use utils\FilterParser;
|
use utils\FilterParser;
|
||||||
|
use Tests\TestCase;
|
||||||
/**
|
/**
|
||||||
* Class SearchEmptySpotsTest
|
* Class SearchEmptySpotsTest
|
||||||
*/
|
*/
|
||||||
@ -57,7 +56,7 @@ final class SearchEmptySpotsTest extends TestCase
|
|||||||
|
|
||||||
$intervals = IntervalParser::getInterval($start_datetime, $end_datetime);
|
$intervals = IntervalParser::getInterval($start_datetime, $end_datetime);
|
||||||
|
|
||||||
$this->assertTrue(count($intervals) == 4);
|
$this->assertTrue(count($intervals) == 3);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testFindSpots(){
|
public function testFindSpots(){
|
||||||
|
@ -1,46 +1,22 @@
|
|||||||
<?php
|
<?php namespace Tests;
|
||||||
|
/**
|
||||||
use Illuminate\Support\Facades\Redis;
|
* Copyright 2015 Openstack Foundation
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
class TestCase extends Illuminate\Foundation\Testing\TestCase
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
**/
|
||||||
|
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
|
||||||
|
/**
|
||||||
|
* Class TestCase
|
||||||
|
* @package Tests
|
||||||
|
*/
|
||||||
|
abstract class TestCase extends BaseTestCase
|
||||||
{
|
{
|
||||||
|
use CreatesApplication;
|
||||||
//services
|
}
|
||||||
private $redis = null;
|
|
||||||
/**
|
|
||||||
* Creates the application.
|
|
||||||
*
|
|
||||||
* @return \Illuminate\Foundation\Application
|
|
||||||
*/
|
|
||||||
public function createApplication()
|
|
||||||
{
|
|
||||||
//putenv('DB_DEFAULT=sqlite_testing');
|
|
||||||
|
|
||||||
$app = require __DIR__.'/../bootstrap/app.php';
|
|
||||||
|
|
||||||
$instance = $app->make('Illuminate\Contracts\Console\Kernel');
|
|
||||||
$app->loadEnvironmentFrom('.env.testing');
|
|
||||||
$instance->bootstrap();
|
|
||||||
return $app;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function setUp()
|
|
||||||
{
|
|
||||||
parent::setUp();
|
|
||||||
$this->redis = Redis::connection();
|
|
||||||
$this->redis->flushall();
|
|
||||||
$this->prepareForTests();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function prepareForTests()
|
|
||||||
{
|
|
||||||
Artisan::call('migrate');
|
|
||||||
$this->seed('TestSeeder');
|
|
||||||
}
|
|
||||||
|
|
||||||
public function tearDown()
|
|
||||||
{
|
|
||||||
|
|
||||||
parent::tearDown();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
19
tests/Unit/ExampleTest.php
Normal file
19
tests/Unit/ExampleTest.php
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tests\Unit;
|
||||||
|
|
||||||
|
use Tests\TestCase;
|
||||||
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
||||||
|
|
||||||
|
class ExampleTest extends TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* A basic test example.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function testBasicTest()
|
||||||
|
{
|
||||||
|
$this->assertTrue(true);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user