Skip to content

Commit

Permalink
Merge ad7bc04 into 4ec6fd7
Browse files Browse the repository at this point in the history
  • Loading branch information
willdoran committed Sep 28, 2018
2 parents 4ec6fd7 + ad7bc04 commit bdd5433
Show file tree
Hide file tree
Showing 20 changed files with 54 additions and 20 deletions.
35 changes: 35 additions & 0 deletions app/Http/Middleware/CheckDemoExpiration.php
@@ -0,0 +1,35 @@
<?php

namespace Ushahidi\App\Http\Middleware;

use Closure;

class CheckDemoExpiration
{

/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @param string|null $guard
* @return mixed
*/
public function handle($request, Closure $next, $guard = null)
{
$multisite = config('multisite.enabled');
$isDemoTier = service('site.config')['tier'] === 'demo';
$isNotGet = !$request->isMethod('get');

if ($multisite && $isNotGet && $isDemoTier) {
$now = new DateTime();
$expiration_date = strtotime(service('site.config')['expiration_date']);
$extension_date = strtotime(service('site.config')['extension_date']);

if ($expiration_date < $now && (!$extension_date || $extension_date < $now)) {
abort(503, 'The demo period for this deployment has expired.');
}
}
return $next($request);
}
}
3 changes: 1 addition & 2 deletions bootstrap/lumen.php
Expand Up @@ -69,8 +69,7 @@
// Customised scope middleware
'scopes' => Ushahidi\App\Http\Middleware\CheckScopes::class,
'scope' => Ushahidi\App\Http\Middleware\CheckForAnyScope::class,
//'scopes' => Laravel\Passport\Http\Middleware\CheckScopes::class,
//'scope' => Laravel\Passport\Http\Middleware\CheckForAnyScope::class,
'expiration' => Ushahidi\App\Http\Middleware\CheckDemoExpiration::class,
'signature' => Ushahidi\App\Http\Middleware\SignatureAuth::class,
'feature' => Ushahidi\App\Http\Middleware\CheckFeature::class,
]);
Expand Down
2 changes: 1 addition & 1 deletion routes/apikeys.php
@@ -1,5 +1,5 @@
<?php

resource($router, 'apikeys', 'ApiKeysController', [
'middleware' => ['auth:api', 'scope:apikeys'],
'middleware' => ['auth:api', 'scope:apikeys', 'expiration'],
]);
2 changes: 1 addition & 1 deletion routes/collections.php
Expand Up @@ -4,7 +4,7 @@
$router->group([
'namespace' => 'Collections',
'prefix' => 'collections',
'middleware' => ['scope:collections,sets']
'middleware' => ['scope:collections, sets, expiration']
], function () use ($router) {
// Public access
resource($router, '/', 'CollectionsController', [
Expand Down
2 changes: 1 addition & 1 deletion routes/config.php
Expand Up @@ -14,7 +14,7 @@
$router->options('/', ['uses' => 'ConfigController@indexOptions']);

// Restricted access
$router->group(['middleware' => ['auth:api', 'scope:config']], function () use ($router) {
$router->group(['middleware' => ['auth:api', 'scope:config', 'expiration']], function () use ($router) {
$router->put('/{id}', ['uses' => 'ConfigController@update']);
});
});
2 changes: 1 addition & 1 deletion routes/contacts.php
Expand Up @@ -2,5 +2,5 @@

// Contacts
resource($router, 'contacts', 'ContactsController', [
'middleware' => ['auth:api', 'scope:contacts']
'middleware' => ['auth:api', 'scope:contacts', 'expiration']
]);
2 changes: 1 addition & 1 deletion routes/csv.php
Expand Up @@ -7,7 +7,7 @@
'prefix' => 'csv'
], function () use ($router) {
resource($router, '/', 'CSVController', [
'middleware' => ['auth:api', 'scope:csv']
'middleware' => ['auth:api', 'scope:csv', 'expiration']
]);

$router->post('/{id}/import', 'CSVImportController@store');
Expand Down
2 changes: 1 addition & 1 deletion routes/dataproviders.php
Expand Up @@ -2,7 +2,7 @@

// Data providers
resource($router, 'dataproviders', 'DataProvidersController', [
'middleware' => ['auth:api', 'scope:dataproviders'],
'middleware' => ['auth:api', 'scope:dataproviders', 'expiration'],
'only' => ['index', 'show'],
'id' => 'id' // Override id to allow non-numeric IDs
]);
2 changes: 1 addition & 1 deletion routes/forms.php
Expand Up @@ -4,7 +4,7 @@
$router->group([
'namespace' => 'Forms',
'prefix' => 'forms',
'middleware' => ['scope:forms']
'middleware' => ['scope:forms', 'expiration']
], function () use ($router) {
// Public access
$router->get('/', 'FormsController@index');
Expand Down
2 changes: 1 addition & 1 deletion routes/layers.php
Expand Up @@ -3,7 +3,7 @@
// Layers
$router->group([
'prefix' => 'layers',
'middleware' => ['scope:layers']
'middleware' => ['scope:layers', 'expiration']
], function () use ($router) {
// Public access
resource($router, '/', 'LayersController', [
Expand Down
2 changes: 1 addition & 1 deletion routes/media.php
Expand Up @@ -3,7 +3,7 @@
// Media
$router->group([
'prefix' => 'media',
'middleware' => ['scope:media']
'middleware' => ['scope:media', 'expiration']
], function () use ($router) {
// Public access
$router->get('/', 'MediaController@index');
Expand Down
2 changes: 1 addition & 1 deletion routes/messages.php
Expand Up @@ -2,7 +2,7 @@

// Messages
$router->group([
'middleware' => ['auth:api', 'scope:messages'],
'middleware' => ['auth:api', 'scope:messages', 'expiration'],
'prefix' => 'messages'
], function () use ($router) {
$router->get('/', 'MessagesController@index');
Expand Down
2 changes: 1 addition & 1 deletion routes/notifications.php
Expand Up @@ -2,5 +2,5 @@

// Notifications
resource($router, 'notifications', 'NotificationsController', [
'middleware' => ['auth:api', 'scope:notifications'],
'middleware' => ['auth:api', 'scope:notifications', 'expiration'],
]);
2 changes: 1 addition & 1 deletion routes/permissions.php
Expand Up @@ -2,6 +2,6 @@

// Permissions
resource($router, 'permissions', 'PermissionsController', [
'middleware' => ['auth:api', 'scope:permissions'],
'middleware' => ['auth:api', 'scope:permissions', 'expiration'],
'only' => ['index', 'show'],
]);
2 changes: 1 addition & 1 deletion routes/posts.php
Expand Up @@ -4,7 +4,7 @@
$router->group([
'namespace' => 'Posts',
'prefix' => 'posts',
'middleware' => ['scope:posts']
'middleware' => ['scope:posts', 'expiration']
], function () use ($router) {
// Public access
$router->get('/', 'PostsController@index');
Expand Down
2 changes: 1 addition & 1 deletion routes/roles.php
Expand Up @@ -3,7 +3,7 @@
// Roles
$router->group([
'prefix' => 'roles',
'middleware' => ['scope:roles']
'middleware' => ['scope:roles', 'expiration']
], function () use ($router) {
// Public access
resource($router, '/', 'RolesController', [
Expand Down
2 changes: 1 addition & 1 deletion routes/savedsearches.php
Expand Up @@ -3,7 +3,7 @@
// Saved Searches
$router->group([
'prefix' => 'savedsearches',
'middleware' => ['scope:savedsearches']
'middleware' => ['scope:savedsearches', 'expiration']
], function () use ($router) {
// Public access
resource($router, '/', 'SavedSearchesController', [
Expand Down
2 changes: 1 addition & 1 deletion routes/tags.php
Expand Up @@ -3,7 +3,7 @@
// Tags
$router->group([
'prefix' => 'tags',
'middleware' => ['scope:tags']
'middleware' => ['scope:tags', 'expiration']
], function () use ($router) {
// Public access
resource($router, '/', 'TagsController', [
Expand Down
2 changes: 1 addition & 1 deletion routes/users.php
Expand Up @@ -3,7 +3,7 @@
// Users
$router->group([
'namespace' => 'Users',
'middleware' => ['scope:users']
'middleware' => ['scope:users', 'expiration']
], function () use ($router) {
// Public access
resource($router, 'users', 'UsersController', [
Expand Down
2 changes: 1 addition & 1 deletion routes/webhooks.php
Expand Up @@ -2,7 +2,7 @@

// Web hooks
resource($router, 'webhooks', 'WebhooksController', [
'middleware' => ['auth:api', 'scope:webhooks']
'middleware' => ['auth:api', 'scope:webhooks', 'expiration']
]);

// Webhook posts update endpoint
Expand Down

0 comments on commit bdd5433

Please sign in to comment.