Build modified streamline images

The official image from streamline does not currently work for the arm64
platform. As a temporary measure, the source code and docker build scripts
have been lifted from the official images and are used to build locally.

Some additional modifications are made to reduce overall image size, these
are documented in docker/README.md
This commit is contained in:
2024-03-10 16:17:50 -07:00
parent 2ffc3c408a
commit a424394109
13506 changed files with 1860172 additions and 6 deletions
@@ -0,0 +1,26 @@
<?php
namespace Streamline\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
use Streamline\Models\GeneralSettings;
use Streamline\Models\User;
class CheckActiveUsersLimit
{
public function handle($request, Closure $next)
{
$general_settings = GeneralSettings::find(1);
$active_users = User::select('id')->get();
$number_of_active_users_limit = $general_settings->number_of_active_users_limit;
if(count($active_users) > $number_of_active_users_limit) {
flash("You have exceeded your active users limit. Please delete extra users to continue")->error();
return redirect('/users');
}
return $next($request);
}
}
@@ -0,0 +1,28 @@
<?php
namespace Streamline\Http\Middleware;
use Closure;
class DisableBackButton {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next) {
$response = $next($request);
/*return $response->header('Cache-Control', 'nocache, no-store, max-age=0, must-revalidate')
->header('Pragma', 'no-cache')
->header('Expires', 'Sun, 02 Jan 1990 00:00:00 GMT');*/
$response->headers->set('Cache-Control', 'nocache, no-store, max-age=0, must-revalidate');
$response->headers->set('Pragma', 'no-cache');
$response->headers->set('Expires', 'Sun, 02 Jan 1990 00:00:00 GMT');
return $response;
}
}
@@ -0,0 +1,17 @@
<?php
namespace Streamline\Http\Middleware;
use Illuminate\Cookie\Middleware\EncryptCookies as BaseEncrypter;
class EncryptCookies extends BaseEncrypter
{
/**
* The names of the cookies that should not be encrypted.
*
* @var array
*/
protected $except = [
//
];
}
@@ -0,0 +1,29 @@
<?php
namespace Streamline\Http\Middleware;
use Closure, Session, Auth;
class LocaleMiddleware {
public function handle($request, Closure $next)
{
if(Auth::user()){
$personal_locale = 'en';
if (Auth::user()->system_language == 1) {
$personal_locale = 'en';
} elseif(Auth::user()->system_language == 2){
$personal_locale = 'pt';
} elseif(Auth::user()->system_language == 3){
$personal_locale = 'fr';
}
app()->setLocale($personal_locale);
}elseif($locale = Session::has('locale')){
app()->setLocale($locale);
}
return $next($request);
}
}
@@ -0,0 +1,26 @@
<?php
namespace Streamline\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
class RedirectIfAuthenticated
{
/**
* 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)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
}
return $next($request);
}
}
+18
View File
@@ -0,0 +1,18 @@
<?php
namespace Streamline\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TrimStrings as BaseTrimmer;
class TrimStrings extends BaseTrimmer
{
/**
* The names of the attributes that should not be trimmed.
*
* @var array
*/
protected $except = [
'password',
'password_confirmation',
];
}
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace Streamline\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Auth;
use Cache;
use Streamline\Models\User;
class UserActivity
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (Auth::check()) {
$expiresAt = now()->addSeconds(120); /* keep online for 2 min */
Cache::put('user-is-online-' . Auth::user()->id, true, $expiresAt);
/* last seen */
User::where('id', Auth::user()->id)->update(['last_seen' => now()]);
}
return $next($request);
}
}
@@ -0,0 +1,17 @@
<?php
namespace Streamline\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'lab_machines/receive_results_mindray_bc5000',
];
}