Files
investbrain/app/Imports/ValidatesPortfolioPermissions.php
T
hackerESQ f93bfad3ce feat:adds ability to share portfolios
also includes basic permissions and authorization
2024-10-21 22:23:20 -05:00

26 lines
658 B
PHP

<?php
namespace App\Imports;
use Exception;
use App\Models\Portfolio;
trait ValidatesPortfolioPermissions {
public function validatePortfolioPermissions($collection)
{
$portfolios = auth()->user()->portfolios->pluck('id');
$collection->pluck('portfolio_id')->unique()->each(function($portfolio) use ($portfolios) {
if (
!$portfolios->contains($portfolio)
|| auth()->user()->cannot('fullAccess', Portfolio::find($portfolio))
) {
throw new Exception('You do not have permission to access that portfolio.');
}
});
}
}