improve permission logic again and allow flushing indices with command
This commit is contained in:
parent
e3d436d5dd
commit
e2e56831e5
|
|
@ -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));
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Reference in New Issue