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
{
*
* @var string
*/
- protected $signature = 'permissions:regen';
+ protected $signature = 'bookstack:regenerate-permissions {--database= : The database connection to use.}';
/**
* The console command description.
*/
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();
}
*/
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;
}
}