use App\Http\Controllers\Admin\Operations\Tools\GitReposCreate;
use App\Http\Controllers\Admin\Operations\Tools\ImagesResizer;
use App\Http\Controllers\Admin\Operations\Tools\JSON2Excel;
+use App\Http\Controllers\Admin\Operations\Tools\PDF2SVGOperation;
+use App\Http\Controllers\Admin\Operations\Tools\SASSCompiler;
use App\Http\Controllers\Admin\Operations\Tools\SVGCleaner;
use App\Http\Controllers\Admin\Operations\Tools\TextToSpeech;
use App\Http\Controllers\Controller;
use SVGCleaner;
use FluidbookReferencesURL;
use FluidbookReplicate;
+ use Excel2JSON;
+ use SASSCompiler;
+ use PDF2SVGOperation;
protected function index($tool, $args = '')
{
namespace App\Models;
+use App\Jobs\RefreshUsersTree;
use Creativeorange\Gravatar\Facades\Gravatar;
+use Cubedesigners\UserDatabase\Jobs\ApplyPermissionsToUsers;
+use Cubedesigners\UserDatabase\Permissions;
+use Cubist\Backpack\Magic\Models\CubistMagicAbstractModel;
+use Illuminate\Support\Facades\Artisan;
use NotificationChannels\WebPush\HasPushSubscriptions;
class User extends \Cubedesigners\UserDatabase\Models\User
}
return str_replace('.jpg', '', $res);
}
+
+ public function onDeleting(): bool
+ {
+ $res = parent::onDeleting();
+
+ $formerId = $this->id;
+ $first = static::withoutGlobalScopes()->where('company', $this->company)->whereNot('id', $this->id)->orderBy('id', 'ASC')->first();
+ if (null === $first) {
+ abort(403, __('Impossible de supprimer cet utilisateur, une entreprise ne peut être laissée sans utilisateur'));
+ }
+
+ static::mergeUsers($formerId, $first->id);
+ return $res;
+ }
+
+ public static function mergeUsers($from, $to)
+ {
+ $models = [
+ ELearningMedia::class => ['owner'],
+ ELearningPackage::class => ['owner'],
+ FluidbookCollection::class => ['owner'],
+ FluidbookDocument::class => ['owner'],
+ FluidbookIconset::class => ['owner'],
+ FluidbookPublication::class => ['owner'],
+ FluidbookQuote::class => ['user', 'admin', 'reseller'],
+ FluidbookTheme::class => ['owner'],
+ Quiz::class => ['owner'],
+ QuizTheme::class => ['owner'],
+ Company::class => ['admin'],
+ ];
+ foreach ($models as $class => $attributes) {
+ /** @var $class CubistMagicAbstractModel */
+ foreach ($attributes as $attribute) {
+ $class::withoutGlobalScopes()->where($attribute, $from)->update([$attribute => $to]);
+ }
+ }
+
+ RefreshUsersTree::dispatchSync();
+ ApplyPermissionsToUsers::dispatch();
+ }
}
+