mirror of
https://github.com/solidtime-io/solidtime.git
synced 2026-08-11 01:32:16 +01:00
Fixed permissions for tasks endpoints
This commit is contained in:
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
namespace App\Models;
|
||||
|
||||
use Database\Factories\ProjectFactory;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Concerns\HasUuids;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
@@ -23,6 +24,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
* @property-read Client|null $client
|
||||
* @property-read Collection<Task> $tasks
|
||||
*
|
||||
* @method Builder<Project> visibleByUser(User $user)
|
||||
* @method static ProjectFactory factory()
|
||||
*/
|
||||
class Project extends Model
|
||||
@@ -71,4 +73,17 @@ class Project extends Model
|
||||
{
|
||||
return $this->hasMany(Task::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Builder<Project> $builder
|
||||
*/
|
||||
public function scopeVisibleByUser(Builder $builder, User $user): void
|
||||
{
|
||||
$builder->where(function (Builder $builder) use ($user): Builder {
|
||||
return $builder->where('is_public', '=', true)
|
||||
->orWhereHas('members', function (Builder $builder) use ($user): Builder {
|
||||
return $builder->whereBelongsTo($user, 'user');
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user