]> _ Git - fluidbook-toolbox.git/commitdiff
wip #3753 @3
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 2 Dec 2020 12:37:21 +0000 (13:37 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 2 Dec 2020 12:37:21 +0000 (13:37 +0100)
13 files changed:
app/Http/Controllers/Admin/FluidbookQuoteCrudController.php
app/Models/AuthUser.php [new file with mode: 0644]
app/Models/FluidbookQuote.php
app/Models/Quiz.php
app/Models/User.php
app/Providers/AuthServiceProvider.php
composer.lock
config/auth.php
config/backpack/base.php
config/backpack/permissionmanager.php
resources/views/vendor/backpack/base/inc/sidebar_content.blade.php
routes/backpack/backupmanager.php
routes/backpack/permissionmanager.php

index 90f63b8acef6f494eaec74fdcf9735722449cd76..6674277ac632b218d468af6ebd7b4d19fe7c9775 100644 (file)
@@ -6,6 +6,7 @@ class FluidbookQuoteCrudController extends \Cubist\Backpack\app\Magic\Controller
 {
     use \App\Http\Controllers\Admin\Operations\FluidbookQuote\AssignOperation;
        use \App\Http\Controllers\Admin\Operations\FluidbookQuote\CreateFromWebsite;
+       use \App\Http\Controllers\Admin\Operations\FluidbookQuote\ConfirmAssignmentOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
        use \Cubist\Backpack\app\Http\Controllers\Operations\BulkPublishOperation;
        use \Backpack\ReviseOperation\ReviseOperation;
diff --git a/app/Models/AuthUser.php b/app/Models/AuthUser.php
new file mode 100644 (file)
index 0000000..e4f78e8
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+
+namespace App\Models;
+
+use Illuminate\Database\Eloquent\Builder;
+
+class AuthUser extends User
+{
+    protected $_syncDbSchema = false;
+
+    public static function addOwnerClause(Builder $builder)
+    {
+
+    }
+
+    public function can($abilities, $arguments = [])
+    {
+        debug($abilities, $arguments);
+        return $this->can($abilities, $arguments);
+    }
+}
index 65bac0462c3b2129911abc94bf6c935bc5f5e13f..f4de2627dc902a5f2a434e2628c63af1dec440ca 100644 (file)
@@ -8,6 +8,7 @@ use App\Http\Controllers\Admin\Operations\FluidbookQuote\ConfirmAssignmentOperat
 use App\Http\Controllers\Admin\Operations\FluidbookQuote\CreateFromWebsite;
 use Cubedesigners\UserDatabase\User;
 use Cubist\Backpack\app\Magic\Models\CubistMagicAbstractModel;
+use Illuminate\Database\Eloquent\Builder;
 
 class FluidbookQuote extends CubistMagicAbstractModel
 {
@@ -21,6 +22,11 @@ class FluidbookQuote extends CubistMagicAbstractModel
     protected $_enableDeletion = false;
     protected $_enableCreation = false;
 
+    public static function addOwnerClause(Builder $builder)
+    {
+        $builder->where('reseller', backpack_user()->id);
+    }
+
     public function setFields()
     {
         parent::setFields();
index 1ddc926f6f80ef60d74cec5db476d88ec2e5c3a6..ab1b43a04a66af2e9c0675e43945c93d86979d11 100644 (file)
@@ -6,6 +6,7 @@ namespace App\Models;
 use App\Http\Controllers\Admin\Base\QuizController;
 use Cubist\Backpack\app\Magic\Models\CubistMagicAbstractModel;
 use Cubist\Util\Files\Files;
+use Illuminate\Database\Eloquent\Builder;
 use Spatie\MediaLibrary\MediaCollections\Models\Media;
 use Spatie\Image\Manipulations;
 use App\Fields\User;
@@ -342,4 +343,9 @@ class Quiz extends CubistMagicAbstractModel
         }
         return parent::create($data);
     }
+
+    public static function addOwnerClause(Builder $builder)
+    {
+        $builder->whereIn('owner', backpack_user()->getManagedUsers());
+    }
 }
index c51b446c38e72776b26f7309facbb0c927666229..f06cb77eafb0912d5fc063818c67736c8002179d 100644 (file)
@@ -4,5 +4,6 @@ namespace App\Models;
 
 class User extends \Cubedesigners\UserDatabase\User
 {
-    protected $_syncDbSchema=false;
+    protected $_syncDbSchema = false;
+
 }
index 89f36732d953cf597814dc5b0da3075635f38c05..570493cd17c62a4a27683439b6e66deec14ffb96 100644 (file)
@@ -3,12 +3,34 @@
 namespace App\Providers;
 
 use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
+use Illuminate\Support\Facades\Gate;
 
 class AuthServiceProvider extends ServiceProvider
 {
+    /**
+     * The policy mappings for the application.
+     *
+     * @var array
+     */
+    protected $policies = [
+        // 'App\Model' => 'App\Policies\ModelPolicy',
+    ];
 
+    /**
+     * Register any authentication / authorization services.
+     *
+     * @return void
+     */
     public function boot()
     {
         $this->registerPolicies();
+        Gate::before(function ($user, $ability) {
+            return $user->hasRole('superadmin') ? true : null;
+        });
+
+        Gate::before(function ($user, $ability) {
+            debug($user);
+            return $user->hasPermissionTo($ability) ? true : null;
+        });
     }
 }
index 83a2af7f77b0246543f5b987074d8b9a962b3e89..55ce22f0f6c00c0bc9b5ba9492e84d7d874ded65 100644 (file)
             "source": {
                 "type": "git",
                 "url": "git://git.cubedesigners.com/cubedesigners_userdatabase.git",
-                "reference": "10088864870b63e2a3d27e3e9b3cc25c8cbe4019"
+                "reference": "e38d10f283a03e3dd79d046f3634fd95e1c5e9f0"
             },
             "dist": {
                 "type": "tar",
-                "url": "https://composer.cubedesigners.com/dist/cubedesigners/userdatabase/cubedesigners-userdatabase-dev-master-26ae6b.tar",
-                "reference": "10088864870b63e2a3d27e3e9b3cc25c8cbe4019",
-                "shasum": "763d02b2f8b22febab7c26e19e302ecd1b118ccd"
+                "url": "https://composer.cubedesigners.com/dist/cubedesigners/userdatabase/cubedesigners-userdatabase-dev-master-9f9fc8.tar",
+                "reference": "e38d10f283a03e3dd79d046f3634fd95e1c5e9f0",
+                "shasum": "81d40c0a9e6c556799cf8d8ed4ad05fb61d778af"
             },
             "require": {
                 "cubist/cms-back": "dev-master"
                 }
             ],
             "description": "Cubedesigners common users database",
-            "time": "2020-11-25T20:21:18+00:00"
+            "time": "2020-12-01T17:19:49+00:00"
         },
         {
             "name": "cubist/cms-back",
index aaf982bcdcee30074e582002f9832c2e5621f639..f6c662bf1062b4f4f1e177d43823b1affd007fab 100644 (file)
@@ -14,7 +14,7 @@ return [
     */
 
     'defaults' => [
-        'guard' => 'web',
+        'guard' => 'backpack',
         'passwords' => 'users',
     ],
 
@@ -36,7 +36,7 @@ return [
     */
 
     'guards' => [
-        'web' => [
+        'backpack' => [
             'driver' => 'session',
             'provider' => 'users',
         ],
@@ -68,7 +68,7 @@ return [
     'providers' => [
         'users' => [
             'driver' => 'eloquent',
-            'model' => App\User::class,
+            'model' => \App\Models\AuthUser::class,
         ],
 
         // 'users' => [
index 991a8d893336de20c6ec5366b6340733cb68e43e..4774d954023b980cf306e2c4ee0225eccd4f7977 100644 (file)
@@ -201,14 +201,14 @@ return [
     */
 
     // Fully qualified namespace of the User model
-    'user_model_fqn' => App\Models\User::class,
+    'user_model_fqn' => App\Models\AuthUser::class,
 
     // The classes for the middleware to check if the visitor is an admin
     // Can be a single class or an array of clases
     'middleware_class' => [
         App\Http\Middleware\CheckIfAdmin::class,
         \Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
-        // \Backpack\CRUD\app\Http\Middleware\UseBackpackAuthGuardInsteadOfDefaultAuthGuard::class,
+        \Backpack\CRUD\app\Http\Middleware\UseBackpackAuthGuardInsteadOfDefaultAuthGuard::class,
     ],
 
     // Alias for that middleware
index 6396f8d3be13a082a5d5340a81a55405dad8f08a..c963c04692543e3cf312acdb54771f46e7a0430f 100644 (file)
@@ -12,7 +12,7 @@ return [
     */
 
     'models' => [
-        'user'       => App\Models\User::class,
+        'user'       => App\Models\AuthUser::class,
         'permission' => Backpack\PermissionManager\app\Models\Permission::class,
         'role'       => Backpack\PermissionManager\app\Models\Role::class,
     ],
index 9648e1b5c139890161244bf9cb3296701b21f32d..74393614841d3e45c191d64788c5276b0d3af3d9 100644 (file)
@@ -34,7 +34,7 @@
     </li>
 @endcanany
 
-@canany(['users:read','company:read'])
+@canany(['users:read','company:read','managerolesandpersmissions'])
     <li class='nav-item nav-dropdown'><a class='nav-link nav-dropdown-toggle' href='#'><i
                 class='nav-icon la la-group'></i>Clients</a>
         <ul class='nav-dropdown-items'>
index 8738c15dcb1a5dedea515d72eeb2685d8ffcfc56..af8e1c3076997a11915d25f108d2e7e3c05d4f74 100644 (file)
@@ -13,7 +13,7 @@
 Route::group([
     'namespace'  => 'Backpack\BackupManager\app\Http\Controllers',
     'prefix'     => config('backpack.base.route_prefix', 'admin'),
-    'middleware' => ['web', 'admin','can:toolbox:maintenance'],
+    'middleware' => ['web', 'admin','can:maintenance'],
 ], function () {
     Route::get('backup', 'BackupController@index');
     Route::put('backup/create', 'BackupController@create');
index de224a8922a888257b4a9ead8ea19878da5cd142..7e41782e6a2a079787b98e6cad9d5eb6577e1d7b 100644 (file)
@@ -13,9 +13,8 @@
 Route::group([
     'namespace' => 'Backpack\PermissionManager\app\Http\Controllers',
     'prefix' => config('backpack.base.route_prefix', 'admin'),
-    'middleware' => ['web', backpack_middleware(), 'can:manageusers'],
+    'middleware' => ['web', backpack_middleware(), 'can:managerolesandpersmissions'],
 ], function () {
     Route::crud('permission', 'PermissionCrudController');
     Route::crud('role', 'RoleCrudController');
-    Route::crud('user', 'UserCrudController');
 });