close #676 Fixed: Unique link not working.
This commit is contained in:
parent
6ba3c1f8bc
commit
8c312ad6cb
@ -184,7 +184,9 @@ class Invoices extends Controller
|
|||||||
|
|
||||||
public function link(Invoice $invoice, Request $request)
|
public function link(Invoice $invoice, Request $request)
|
||||||
{
|
{
|
||||||
session(['company_id' => $invoice->company_id]);
|
if (empty($invoice)) {
|
||||||
|
redirect()->route('login');
|
||||||
|
}
|
||||||
|
|
||||||
$paid = 0;
|
$paid = 0;
|
||||||
|
|
||||||
|
@ -73,6 +73,11 @@ class Kernel extends HttpKernel
|
|||||||
'company.settings',
|
'company.settings',
|
||||||
'company.currencies',
|
'company.currencies',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
'signed' => [
|
||||||
|
'signed-url',
|
||||||
|
'signed-url.company',
|
||||||
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -100,5 +105,6 @@ class Kernel extends HttpKernel
|
|||||||
'company.currencies' => \App\Http\Middleware\LoadCurrencies::class,
|
'company.currencies' => \App\Http\Middleware\LoadCurrencies::class,
|
||||||
'dateformat' => \App\Http\Middleware\DateFormat::class,
|
'dateformat' => \App\Http\Middleware\DateFormat::class,
|
||||||
'money' => \App\Http\Middleware\Money::class,
|
'money' => \App\Http\Middleware\Money::class,
|
||||||
|
'signed-url.company' => \App\Http\Middleware\SignedUrlCompany::class,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
33
app/Http/Middleware/SignedUrlCompany.php
Normal file
33
app/Http/Middleware/SignedUrlCompany.php
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Middleware;
|
||||||
|
|
||||||
|
use Closure;
|
||||||
|
|
||||||
|
class SignedUrlCompany
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Handle an incoming request.
|
||||||
|
*
|
||||||
|
* @param \Illuminate\Http\Request $request
|
||||||
|
* @param \Closure $next
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle($request, Closure $next)
|
||||||
|
{
|
||||||
|
$company_id = $request->get('company_id');
|
||||||
|
|
||||||
|
if (empty($company_id)) {
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set company id
|
||||||
|
session(['company_id' => $company_id]);
|
||||||
|
|
||||||
|
// Set the company settings
|
||||||
|
setting()->setExtraColumns(['company_id' => $company_id]);
|
||||||
|
setting()->load(true);
|
||||||
|
|
||||||
|
return $next($request);
|
||||||
|
}
|
||||||
|
}
|
54
app/Overrides/Akaunting/SignedUrl.php
Normal file
54
app/Overrides/Akaunting/SignedUrl.php
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Akaunting\SignedUrl;
|
||||||
|
|
||||||
|
use Spatie\UrlSigner\MD5UrlSigner;
|
||||||
|
|
||||||
|
class SignedUrl extends MD5UrlSigner
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The key that is used to generate secure signatures.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signatureKey;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The URL's query parameter name for the expiration.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $expiresParameter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The URL's query parameter name for the signature.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signatureParameter;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->signatureKey = config('signed-url.signatureKey');
|
||||||
|
$this->expiresParameter = config('signed-url.parameters.expires');
|
||||||
|
$this->signatureParameter = config('signed-url.parameters.signature');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a secure URL to a controller action.
|
||||||
|
*
|
||||||
|
* @param string $url
|
||||||
|
* @param \DateTime|int|null $expiration Defaults to the config value
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function sign($url, $expiration = null)
|
||||||
|
{
|
||||||
|
$url .= '?company_id=' . session('company_id');
|
||||||
|
|
||||||
|
$expiration = $expiration ? $expiration : config('signed-url.default_expiration_time_in_days');
|
||||||
|
|
||||||
|
return parent::sign($url, $expiration);
|
||||||
|
}
|
||||||
|
}
|
@ -237,7 +237,7 @@ Route::group(['middleware' => 'language'], function () {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::group(['middleware' => 'signed-url'], function () {
|
Route::group(['middleware' => 'signed'], function () {
|
||||||
Route::group(['prefix' => 'links'], function () {
|
Route::group(['prefix' => 'links'], function () {
|
||||||
Route::get('invoices/{invoice}', 'Customers\Invoices@link');
|
Route::get('invoices/{invoice}', 'Customers\Invoices@link');
|
||||||
Route::get('invoices/{invoice}/print', 'Customers\Invoices@printInvoice');
|
Route::get('invoices/{invoice}/print', 'Customers\Invoices@printInvoice');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user