improve permission logic again and allow flushing indices with command

This commit is contained in:
Daniel Klabbers 2021-10-14 00:56:32 +02:00
parent e3d436d5dd
commit e2e56831e5
2 changed files with 10 additions and 4 deletions

View File

@ -9,10 +9,11 @@ use Illuminate\Contracts\Container\Container;
use Illuminate\Contracts\Queue\Queue;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;
use MeiliSearch\Client;
class RebuildDocumentsCommand extends Command
{
protected $signature = 'blomstra:search:documents:rebuild';
protected $signature = 'blomstra:search:documents:rebuild {--flush : Flush the indices}';
protected $description = 'Rebuilds the complete search server with its documents.';
public function handle(Container $container)
@ -23,11 +24,17 @@ class RebuildDocumentsCommand extends Command
/** @var Queue $queue */
$queue = $container->make(Queue::class);
/** @var Client $meili */
$meili = $container->make(Client::class);
/** @var Schema $schema */
foreach ($schemas as $schema) {
/** @var Model $model */
$model = $schema::model();
// Flush the index.
if ($this->option('flush')) $meili->index($schema::index())->delete();
$model::query()->chunk(50, function (Collection $collection) use ($model, $queue) {
$queue->push(new SavingJob($model, $collection));

View File

@ -44,11 +44,10 @@ class DiscussionSchema extends Schema
})->flatten();
}
if (! $permissions) {
if (! $permissions || $permissions->isEmpty()) {
$permissions = Permission::query()
->where('permission', 'viewForum')
->pluck('group_id')
->get();
->pluck('group_id');
}
$filters['groups'] = $permissions->toArray();