X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ada7c83e96f35a6b484869d6d27939555e1942f7..refs/pull/3918/head:/app/Console/Commands/RegeneratePermissions.php diff --git a/app/Console/Commands/RegeneratePermissions.php b/app/Console/Commands/RegeneratePermissions.php index bd221c138..efb3535d6 100644 --- a/app/Console/Commands/RegeneratePermissions.php +++ b/app/Console/Commands/RegeneratePermissions.php @@ -2,8 +2,9 @@ namespace BookStack\Console\Commands; -use BookStack\Services\RestrictionService; +use BookStack\Auth\Permissions\JointPermissionBuilder; use Illuminate\Console\Command; +use Illuminate\Support\Facades\DB; class RegeneratePermissions extends Command { @@ -12,7 +13,7 @@ class RegeneratePermissions extends Command * * @var string */ - protected $signature = 'permissions:regen'; + protected $signature = 'bookstack:regenerate-permissions {--database= : The database connection to use.}'; /** * The console command description. @@ -21,21 +22,14 @@ class RegeneratePermissions extends Command */ protected $description = 'Regenerate all system permissions'; - /** - * The service to handle the permission system. - * - * @var RestrictionService - */ - protected $restrictionService; + protected JointPermissionBuilder $permissionBuilder; /** * Create a new command instance. - * - * @param RestrictionService $restrictionService */ - public function __construct(RestrictionService $restrictionService) + public function __construct(JointPermissionBuilder $permissionBuilder) { - $this->restrictionService = $restrictionService; + $this->permissionBuilder = $permissionBuilder; parent::__construct(); } @@ -46,6 +40,17 @@ class RegeneratePermissions extends Command */ public function handle() { - $this->restrictionService->buildEntityPermissions(); + $connection = DB::getDefaultConnection(); + + if ($this->option('database')) { + DB::setDefaultConnection($this->option('database')); + } + + $this->permissionBuilder->rebuildForAll(); + + DB::setDefaultConnection($connection); + $this->comment('Permissions regenerated'); + + return 0; } }