@fleetbase/registry-bridge-engine 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.php-cs-fixer.php +29 -0
- package/LICENSE.md +651 -0
- package/README.md +122 -0
- package/addon/adapters/registry-bridge.js +5 -0
- package/addon/adapters/registry-extension-bundle.js +1 -0
- package/addon/adapters/registry-extension.js +1 -0
- package/addon/components/extension-card.hbs +12 -0
- package/addon/components/extension-card.js +235 -0
- package/addon/components/extension-form.hbs +237 -0
- package/addon/components/extension-form.js +123 -0
- package/addon/components/extension-modal-title.hbs +14 -0
- package/addon/components/extension-modal-title.js +20 -0
- package/addon/components/extension-monetize-form.hbs +56 -0
- package/addon/components/extension-monetize-form.js +7 -0
- package/addon/components/extension-pending-publish-viewer.hbs +52 -0
- package/addon/components/extension-pending-publish-viewer.js +37 -0
- package/addon/components/extension-reviewer-control.hbs +68 -0
- package/addon/components/extension-reviewer-control.js +68 -0
- package/addon/components/modals/confirm-extension-purchase.hbs +5 -0
- package/addon/components/modals/confirm-extension-purchase.js +3 -0
- package/addon/components/modals/extension-details.hbs +69 -0
- package/addon/components/modals/extension-details.js +33 -0
- package/addon/components/modals/extension-purchase-form.hbs +5 -0
- package/addon/components/modals/extension-purchase-form.js +3 -0
- package/addon/components/modals/extension-uninstall.hbs +25 -0
- package/addon/components/modals/extension-uninstall.js +11 -0
- package/addon/components/modals/select-extension-bundle.hbs +43 -0
- package/addon/components/modals/select-extension-bundle.js +31 -0
- package/addon/components/progress-bar.hbs +12 -0
- package/addon/components/progress-bar.js +8 -0
- package/addon/controllers/application.js +6 -0
- package/addon/controllers/developers/analytics.js +26 -0
- package/addon/controllers/developers/extensions/edit/bundles.js +70 -0
- package/addon/controllers/developers/extensions/edit/index.js +3 -0
- package/addon/controllers/developers/extensions/edit/monetize.js +7 -0
- package/addon/controllers/developers/extensions/edit.js +107 -0
- package/addon/controllers/developers/extensions/index.js +3 -0
- package/addon/controllers/developers/extensions/new.js +32 -0
- package/addon/controllers/developers/payments/index.js +39 -0
- package/addon/controllers/developers/payments/onboard.js +67 -0
- package/addon/controllers/explore/category.js +22 -0
- package/addon/controllers/explore/index.js +15 -0
- package/addon/controllers/installed.js +86 -0
- package/addon/controllers/purchased.js +18 -0
- package/addon/engine.js +44 -0
- package/addon/models/registry-extension-bundle.js +62 -0
- package/addon/models/registry-extension.js +215 -0
- package/addon/routes/application.js +12 -0
- package/addon/routes/developers/analytics.js +10 -0
- package/addon/routes/developers/credentials.js +3 -0
- package/addon/routes/developers/extensions/edit/bundles.js +21 -0
- package/addon/routes/developers/extensions/edit/details.js +3 -0
- package/addon/routes/developers/extensions/edit/index.js +3 -0
- package/addon/routes/developers/extensions/edit/monetize.js +3 -0
- package/addon/routes/developers/extensions/edit.js +18 -0
- package/addon/routes/developers/extensions/index.js +10 -0
- package/addon/routes/developers/extensions/new.js +3 -0
- package/addon/routes/developers/extensions.js +3 -0
- package/addon/routes/developers/payments/index.js +26 -0
- package/addon/routes/developers/payments/onboard.js +21 -0
- package/addon/routes/developers/payments.js +3 -0
- package/addon/routes/developers.js +3 -0
- package/addon/routes/explore/category.js +27 -0
- package/addon/routes/explore/index.js +17 -0
- package/addon/routes/explore.js +3 -0
- package/addon/routes/installed.js +10 -0
- package/addon/routes/purchased.js +10 -0
- package/addon/routes.js +28 -0
- package/addon/serializers/registry-extension-bundle.js +15 -0
- package/addon/serializers/registry-extension.js +21 -0
- package/addon/services/stripe.js +83 -0
- package/addon/styles/registry-bridge-engine.css +142 -0
- package/addon/templates/application.hbs +26 -0
- package/addon/templates/developers/analytics.hbs +83 -0
- package/addon/templates/developers/credentials.hbs +1 -0
- package/addon/templates/developers/extensions/edit/bundles.hbs +71 -0
- package/addon/templates/developers/extensions/edit/details.hbs +16 -0
- package/addon/templates/developers/extensions/edit/index.hbs +1 -0
- package/addon/templates/developers/extensions/edit/monetize.hbs +3 -0
- package/addon/templates/developers/extensions/edit.hbs +48 -0
- package/addon/templates/developers/extensions/index.hbs +27 -0
- package/addon/templates/developers/extensions/new.hbs +39 -0
- package/addon/templates/developers/extensions.hbs +1 -0
- package/addon/templates/developers/payments/index.hbs +33 -0
- package/addon/templates/developers/payments/onboard.hbs +48 -0
- package/addon/templates/developers/payments.hbs +1 -0
- package/addon/templates/developers.hbs +1 -0
- package/addon/templates/explore/category.hbs +12 -0
- package/addon/templates/explore/index.hbs +12 -0
- package/addon/templates/explore.hbs +1 -0
- package/addon/templates/installed.hbs +32 -0
- package/addon/templates/purchased.hbs +34 -0
- package/app/adapters/registry-bridge.js +1 -0
- package/app/adapters/registry-extension-bundle.js +1 -0
- package/app/adapters/registry-extension.js +1 -0
- package/app/components/extension-card.js +1 -0
- package/app/components/extension-form.js +1 -0
- package/app/components/extension-modal-title.js +1 -0
- package/app/components/extension-monetize-form.js +1 -0
- package/app/components/extension-pending-publish-viewer.js +1 -0
- package/app/components/extension-reviewer-control.js +1 -0
- package/app/components/modals/confirm-extension-purchase.js +1 -0
- package/app/components/modals/extension-details.js +1 -0
- package/app/components/modals/extension-purchase-form.js +1 -0
- package/app/components/modals/extension-uninstall.js +1 -0
- package/app/components/modals/select-extension-bundle.js +1 -0
- package/app/components/progress-bar.js +1 -0
- package/app/controllers/application.js +1 -0
- package/app/controllers/developers/analytics.js +1 -0
- package/app/controllers/developers/extensions/edit/bundles.js +1 -0
- package/app/controllers/developers/extensions/edit/index.js +1 -0
- package/app/controllers/developers/extensions/edit/monetize.js +1 -0
- package/app/controllers/developers/extensions/edit.js +1 -0
- package/app/controllers/developers/extensions/index.js +1 -0
- package/app/controllers/developers/extensions/new.js +1 -0
- package/app/controllers/developers/payments/index.js +1 -0
- package/app/controllers/developers/payments/onboard.js +1 -0
- package/app/controllers/explore/category.js +1 -0
- package/app/controllers/explore/index.js +1 -0
- package/app/controllers/installed.js +1 -0
- package/app/controllers/purchased.js +1 -0
- package/app/models/registry-extension-bundle.js +1 -0
- package/app/models/registry-extension.js +1 -0
- package/app/routes/developers/analytics.js +1 -0
- package/app/routes/developers/credentials.js +1 -0
- package/app/routes/developers/extensions/edit/bundles.js +1 -0
- package/app/routes/developers/extensions/edit/details.js +1 -0
- package/app/routes/developers/extensions/edit/index.js +1 -0
- package/app/routes/developers/extensions/edit/monetize.js +1 -0
- package/app/routes/developers/extensions/edit.js +1 -0
- package/app/routes/developers/extensions/index.js +1 -0
- package/app/routes/developers/extensions/new.js +1 -0
- package/app/routes/developers/extensions.js +1 -0
- package/app/routes/developers/payments/index.js +1 -0
- package/app/routes/developers/payments/onboard.js +1 -0
- package/app/routes/developers/payments.js +1 -0
- package/app/routes/developers.js +1 -0
- package/app/routes/explore/category.js +1 -0
- package/app/routes/explore/index.js +1 -0
- package/app/routes/explore.js +1 -0
- package/app/routes/installed.js +1 -0
- package/app/routes/purchased.js +1 -0
- package/app/serializers/registry-extension-bundle.js +1 -0
- package/app/serializers/registry-extension.js +1 -0
- package/app/services/stripe.js +1 -0
- package/app/templates/developers/analytics.js +1 -0
- package/app/templates/developers/credentials.js +1 -0
- package/app/templates/developers/extensions/edit/bundles.js +1 -0
- package/app/templates/developers/extensions/edit/details.js +1 -0
- package/app/templates/developers/extensions/edit/index.js +1 -0
- package/app/templates/developers/extensions/edit/monetize.js +1 -0
- package/app/templates/developers/extensions/edit.js +1 -0
- package/app/templates/developers/extensions/index.js +1 -0
- package/app/templates/developers/extensions/new.js +1 -0
- package/app/templates/developers/extensions.js +1 -0
- package/app/templates/developers/payments/index.js +1 -0
- package/app/templates/developers/payments/onboard.js +1 -0
- package/app/templates/developers/payments.js +1 -0
- package/app/templates/developers.js +1 -0
- package/app/templates/explore/category.js +1 -0
- package/app/templates/explore/index.js +1 -0
- package/app/templates/explore.js +1 -0
- package/app/templates/installed.js +1 -0
- package/app/templates/purchased.js +1 -0
- package/composer.json +95 -0
- package/config/environment.js +28 -0
- package/extension.json +10 -0
- package/index.js +26 -0
- package/package.json +129 -0
- package/phpstan.neon.dist +8 -0
- package/phpunit.xml.dist +16 -0
- package/server/.gitattributes +14 -0
- package/server/config/registry-bridge.php +32 -0
- package/server/migrations/2024_03_19_060627_create_registry_users_table.php +42 -0
- package/server/migrations/2024_03_21_051614_create_registry_extensions_table.php +76 -0
- package/server/migrations/2024_03_25_044537_create_registry_extension_bundles_table.php +54 -0
- package/server/migrations/2024_03_29_072101_registry_extension_installs.php +35 -0
- package/server/migrations/2024_07_16_155000_create_registry_extension_purchases.php +41 -0
- package/server/seeders/ExtensionsCategorySeeder.php +359 -0
- package/server/src/Console/Commands/Initialize.php +35 -0
- package/server/src/Console/Commands/PostInstallExtension.php +84 -0
- package/server/src/Exceptions/InstallFailedException.php +21 -0
- package/server/src/Expansions/CategoryExpansion.php +30 -0
- package/server/src/Http/Controllers/Internal/v1/ExtensionInstallerController.php +153 -0
- package/server/src/Http/Controllers/Internal/v1/RegistryAuthController.php +230 -0
- package/server/src/Http/Controllers/Internal/v1/RegistryController.php +54 -0
- package/server/src/Http/Controllers/Internal/v1/RegistryExtensionBundleController.php +112 -0
- package/server/src/Http/Controllers/Internal/v1/RegistryExtensionController.php +257 -0
- package/server/src/Http/Controllers/Internal/v1/RegistryPaymentsController.php +227 -0
- package/server/src/Http/Controllers/RegistryBridgeController.php +13 -0
- package/server/src/Http/Filter/RegistryExtensionFilter.php +80 -0
- package/server/src/Http/Requests/AddRegistryUserRequest.php +47 -0
- package/server/src/Http/Requests/AuthenticateRegistryUserRequest.php +47 -0
- package/server/src/Http/Requests/CreateRegistryExtensionBundleRequest.php +42 -0
- package/server/src/Http/Requests/CreateRegistryExtensionRequest.php +31 -0
- package/server/src/Http/Requests/InstallExtensionRequest.php +30 -0
- package/server/src/Http/Requests/RegistryAuthRequest.php +46 -0
- package/server/src/Http/Requests/RegistryExtensionActionRequest.php +30 -0
- package/server/src/Http/Resources/RegistryUser.php +40 -0
- package/server/src/Models/RegistryExtension.php +656 -0
- package/server/src/Models/RegistryExtensionBundle.php +1015 -0
- package/server/src/Models/RegistryExtensionInstall.php +76 -0
- package/server/src/Models/RegistryExtensionPurchase.php +87 -0
- package/server/src/Models/RegistryUser.php +140 -0
- package/server/src/Providers/RegistryBridgeServiceProvider.php +117 -0
- package/server/src/Support/Bridge.php +53 -0
- package/server/src/Support/Utils.php +19 -0
- package/server/src/routes.php +58 -0
- package/server/tests/Feature.php +5 -0
- package/translations/en-us.yaml +119 -0
- package/tsconfig.declarations.json +10 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\RegistryBridge\Http\Requests;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Http\Requests\FleetbaseRequest;
|
|
6
|
+
use Fleetbase\Models\User;
|
|
7
|
+
use Illuminate\Support\Facades\Validator;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Request class to handle the addition of new registry users.
|
|
11
|
+
*
|
|
12
|
+
* Validates the request data for adding a new user to the registry.
|
|
13
|
+
* Ensures that the company ID, user email, and password are provided and valid.
|
|
14
|
+
* The company and user must exist and not be deleted.
|
|
15
|
+
*/
|
|
16
|
+
class AddRegistryUserRequest extends FleetbaseRequest
|
|
17
|
+
{
|
|
18
|
+
/**
|
|
19
|
+
* Determine if the user is authorized to make this request.
|
|
20
|
+
*
|
|
21
|
+
* @return bool
|
|
22
|
+
*/
|
|
23
|
+
public function authorize()
|
|
24
|
+
{
|
|
25
|
+
return session('is_admin') === true;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Get the validation rules that apply to the request.
|
|
30
|
+
*
|
|
31
|
+
* @return array
|
|
32
|
+
*/
|
|
33
|
+
public function rules()
|
|
34
|
+
{
|
|
35
|
+
Validator::extend('valid_identity', function ($attribute, $value, $parameters, $validator) {
|
|
36
|
+
return User::where('email', $value)
|
|
37
|
+
->orWhere('username', $value)
|
|
38
|
+
->whereNull('deleted_at')
|
|
39
|
+
->exists();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
return [
|
|
43
|
+
'identity' => ['required', 'valid_identity'],
|
|
44
|
+
'password' => ['required'],
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\RegistryBridge\Http\Requests;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Http\Requests\FleetbaseRequest;
|
|
6
|
+
use Fleetbase\Models\User;
|
|
7
|
+
use Illuminate\Support\Facades\Validator;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Request class to handle the addition of new registry users.
|
|
11
|
+
*
|
|
12
|
+
* Validates the request data for adding a new user to the registry.
|
|
13
|
+
* Ensures that the company ID, user email, and password are provided and valid.
|
|
14
|
+
* The company and user must exist and not be deleted.
|
|
15
|
+
*/
|
|
16
|
+
class AuthenticateRegistryUserRequest extends FleetbaseRequest
|
|
17
|
+
{
|
|
18
|
+
/**
|
|
19
|
+
* Determine if the user is authorized to make this request.
|
|
20
|
+
*
|
|
21
|
+
* @return bool
|
|
22
|
+
*/
|
|
23
|
+
public function authorize()
|
|
24
|
+
{
|
|
25
|
+
return session('is_admin') === true;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Get the validation rules that apply to the request.
|
|
30
|
+
*
|
|
31
|
+
* @return array
|
|
32
|
+
*/
|
|
33
|
+
public function rules()
|
|
34
|
+
{
|
|
35
|
+
Validator::extend('valid_identity', function ($attribute, $value, $parameters, $validator) {
|
|
36
|
+
return User::where('email', $value)
|
|
37
|
+
->orWhere('username', $value)
|
|
38
|
+
->whereNull('deleted_at')
|
|
39
|
+
->exists();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
return [
|
|
43
|
+
'identity' => ['required', 'valid_identity'],
|
|
44
|
+
'password' => ['required'],
|
|
45
|
+
];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\RegistryBridge\Http\Requests;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Http\Requests\FleetbaseRequest;
|
|
6
|
+
use Fleetbase\Models\File;
|
|
7
|
+
use Fleetbase\RegistryBridge\Models\RegistryExtension;
|
|
8
|
+
use Illuminate\Support\Facades\Validator;
|
|
9
|
+
|
|
10
|
+
class CreateRegistryExtensionBundleRequest extends FleetbaseRequest
|
|
11
|
+
{
|
|
12
|
+
/**
|
|
13
|
+
* Determine if the user is authorized to make this request.
|
|
14
|
+
*
|
|
15
|
+
* @return bool
|
|
16
|
+
*/
|
|
17
|
+
public function authorize()
|
|
18
|
+
{
|
|
19
|
+
return session('company');
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Get the validation rules that apply to the request.
|
|
24
|
+
*
|
|
25
|
+
* @return array
|
|
26
|
+
*/
|
|
27
|
+
public function rules()
|
|
28
|
+
{
|
|
29
|
+
Validator::extend('valid_extension', function ($attribute, $value, $parameters, $validator) {
|
|
30
|
+
return RegistryExtension::where(['uuid' => $value, 'company_uuid' => session('company')])->whereNull('deleted_at')->exists();
|
|
31
|
+
}, 'Invalid extension provided for bundle submission.');
|
|
32
|
+
|
|
33
|
+
Validator::extend('valid_bundle', function ($attribute, $value, $parameters, $validator) {
|
|
34
|
+
return File::where(['uuid' => $value, 'company_uuid' => session('company'), 'subject_uuid' => $this->input('registryExtensionBundle.extension_uuid'), 'type' => 'extension_bundle'])->whereNull('deleted_at')->exists();
|
|
35
|
+
}, 'Invalid bundle zip uploaded for submission.');
|
|
36
|
+
|
|
37
|
+
return [
|
|
38
|
+
'extension_uuid' => ['required', 'valid_extension'],
|
|
39
|
+
'bundle_uuid' => ['required', 'valid_bundle'],
|
|
40
|
+
];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\RegistryBridge\Http\Requests;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Http\Requests\FleetbaseRequest;
|
|
6
|
+
|
|
7
|
+
class CreateRegistryExtensionRequest extends FleetbaseRequest
|
|
8
|
+
{
|
|
9
|
+
/**
|
|
10
|
+
* Determine if the user is authorized to make this request.
|
|
11
|
+
*
|
|
12
|
+
* @return bool
|
|
13
|
+
*/
|
|
14
|
+
public function authorize()
|
|
15
|
+
{
|
|
16
|
+
return session('company');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Get the validation rules that apply to the request.
|
|
21
|
+
*
|
|
22
|
+
* @return array
|
|
23
|
+
*/
|
|
24
|
+
public function rules()
|
|
25
|
+
{
|
|
26
|
+
return [
|
|
27
|
+
'name' => ['required', 'min:3', 'unique:registry_extensions,name'],
|
|
28
|
+
'description' => ['required', 'min:12'],
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\RegistryBridge\Http\Requests;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Http\Requests\FleetbaseRequest;
|
|
6
|
+
|
|
7
|
+
class InstallExtensionRequest extends FleetbaseRequest
|
|
8
|
+
{
|
|
9
|
+
/**
|
|
10
|
+
* Determine if the user is authorized to make this request.
|
|
11
|
+
*
|
|
12
|
+
* @return bool
|
|
13
|
+
*/
|
|
14
|
+
public function authorize()
|
|
15
|
+
{
|
|
16
|
+
return session('company');
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Get the validation rules that apply to the request.
|
|
21
|
+
*
|
|
22
|
+
* @return array
|
|
23
|
+
*/
|
|
24
|
+
public function rules()
|
|
25
|
+
{
|
|
26
|
+
return [
|
|
27
|
+
'extension' => ['required', 'exists:registry_extensions,public_id'],
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\RegistryBridge\Http\Requests;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Http\Requests\FleetbaseRequest;
|
|
6
|
+
use Fleetbase\Models\User;
|
|
7
|
+
use Illuminate\Support\Facades\Validator;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Request class to handle the addition of new registry users.
|
|
11
|
+
*
|
|
12
|
+
* Validates the request data for adding a new user to the registry.
|
|
13
|
+
* Ensures that the company ID, user email, and password are provided and valid.
|
|
14
|
+
* The company and user must exist and not be deleted.
|
|
15
|
+
*/
|
|
16
|
+
class RegistryAuthRequest extends FleetbaseRequest
|
|
17
|
+
{
|
|
18
|
+
/**
|
|
19
|
+
* Determine if the user is authorized to make this request.
|
|
20
|
+
*
|
|
21
|
+
* @return bool
|
|
22
|
+
*/
|
|
23
|
+
public function authorize()
|
|
24
|
+
{
|
|
25
|
+
return session('is_admin') === true;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Get the validation rules that apply to the request.
|
|
30
|
+
*
|
|
31
|
+
* @return array
|
|
32
|
+
*/
|
|
33
|
+
public function rules()
|
|
34
|
+
{
|
|
35
|
+
Validator::extend('valid_identity', function ($attribute, $value, $parameters, $validator) {
|
|
36
|
+
return User::where('email', $value)
|
|
37
|
+
->orWhere('username', $value)
|
|
38
|
+
->whereNull('deleted_at')
|
|
39
|
+
->exists();
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
return [
|
|
43
|
+
'identity' => ['required', 'valid_identity'],
|
|
44
|
+
];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\RegistryBridge\Http\Requests;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Http\Requests\FleetbaseRequest;
|
|
6
|
+
|
|
7
|
+
class RegistryExtensionActionRequest extends FleetbaseRequest
|
|
8
|
+
{
|
|
9
|
+
/**
|
|
10
|
+
* Determine if the user is authorized to make this request.
|
|
11
|
+
*
|
|
12
|
+
* @return bool
|
|
13
|
+
*/
|
|
14
|
+
public function authorize()
|
|
15
|
+
{
|
|
16
|
+
return session('is_admin') === true;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Get the validation rules that apply to the request.
|
|
21
|
+
*
|
|
22
|
+
* @return array
|
|
23
|
+
*/
|
|
24
|
+
public function rules()
|
|
25
|
+
{
|
|
26
|
+
return [
|
|
27
|
+
'id' => 'required|exists:registry_extensions,uuid',
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
|
|
3
|
+
namespace Fleetbase\RegistryBridge\Http\Resources;
|
|
4
|
+
|
|
5
|
+
use Fleetbase\Http\Resources\FleetbaseResource;
|
|
6
|
+
use Fleetbase\Models\Group;
|
|
7
|
+
|
|
8
|
+
class RegistryUser extends FleetbaseResource
|
|
9
|
+
{
|
|
10
|
+
/**
|
|
11
|
+
* Transform the resource into an array.
|
|
12
|
+
*
|
|
13
|
+
* @param \Illuminate\Http\Request $request
|
|
14
|
+
*
|
|
15
|
+
* @return array
|
|
16
|
+
*/
|
|
17
|
+
public function toArray($request)
|
|
18
|
+
{
|
|
19
|
+
return [
|
|
20
|
+
'id' => $this->public_id,
|
|
21
|
+
'user_id' => $this->user->public_id,
|
|
22
|
+
'company_id' => $this->company->public_id,
|
|
23
|
+
'token' => $this->token,
|
|
24
|
+
'groups' => $this->groups(),
|
|
25
|
+
'updated_at' => $this->updated_at,
|
|
26
|
+
'created_at' => $this->created_at,
|
|
27
|
+
];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public function groups(): array
|
|
31
|
+
{
|
|
32
|
+
return collect(['$all', '$authenticated', ...data_get($this->user, 'groups', [])])->map(function ($group) {
|
|
33
|
+
if ($group instanceof Group) {
|
|
34
|
+
return $group->public_id;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return $group;
|
|
38
|
+
})->toArray();
|
|
39
|
+
}
|
|
40
|
+
}
|