Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 50e9730045 | |||
| 101b165905 | |||
| 147885377a |
+8
-12
@@ -3,12 +3,13 @@
|
|||||||
namespace KTXM\ProviderMailSystem;
|
namespace KTXM\ProviderMailSystem;
|
||||||
|
|
||||||
use KTXC\Resource\ProviderManager;
|
use KTXC\Resource\ProviderManager;
|
||||||
use KTXF\Module\ModuleBrowserInterface;
|
use KTXF\Module\Configuration\BrowserModuleContextInterface;
|
||||||
|
use KTXF\Module\Configuration\ModuleContextInterface;
|
||||||
use KTXF\Module\ModuleInstanceAbstract;
|
use KTXF\Module\ModuleInstanceAbstract;
|
||||||
use KTXF\Resource\Provider\ProviderInterface;
|
use KTXF\Resource\Provider\ProviderInterface;
|
||||||
use KTXM\ProviderMailSystem\Providers\Provider;
|
use KTXM\ProviderMailSystem\Providers\Provider;
|
||||||
|
|
||||||
class Module extends ModuleInstanceAbstract implements ModuleBrowserInterface
|
class Module extends ModuleInstanceAbstract
|
||||||
{
|
{
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private readonly ProviderManager $providerManager,
|
private readonly ProviderManager $providerManager,
|
||||||
@@ -55,15 +56,10 @@ class Module extends ModuleInstanceAbstract implements ModuleBrowserInterface
|
|||||||
$this->providerManager->register(ProviderInterface::TYPE_MAIL, 'system', Provider::class);
|
$this->providerManager->register(ProviderInterface::TYPE_MAIL, 'system', Provider::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function registerBI(): array {
|
public function configure(ModuleContextInterface $context): void
|
||||||
return [
|
{
|
||||||
'handle' => $this->handle(),
|
if ($context instanceof BrowserModuleContextInterface) {
|
||||||
'namespace' => 'ProviderMailSystem',
|
$context->registerModule($this, 'ProviderMailSystem', 'static/module.mjs');
|
||||||
'version' => $this->version(),
|
}
|
||||||
'label' => $this->label(),
|
|
||||||
'author' => $this->author(),
|
|
||||||
'description' => $this->description(),
|
|
||||||
'boot' => 'static/module.mjs',
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ use KTXC\Resource\ProviderManager;
|
|||||||
use KTXF\Mail\Provider\ProviderBaseInterface;
|
use KTXF\Mail\Provider\ProviderBaseInterface;
|
||||||
use KTXF\Mail\Provider\ProviderServiceMutateInterface;
|
use KTXF\Mail\Provider\ProviderServiceMutateInterface;
|
||||||
use KTXF\Resource\Provider\ResourceServiceMutateInterface;
|
use KTXF\Resource\Provider\ResourceServiceMutateInterface;
|
||||||
|
use KTXF\Resource\SystemIdentity;
|
||||||
use KTXM\ProviderMailSystem\Stores\ServiceStore;
|
use KTXM\ProviderMailSystem\Stores\ServiceStore;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -108,7 +109,7 @@ class Provider implements ProviderBaseInterface, ProviderServiceMutateInterface
|
|||||||
{
|
{
|
||||||
// routes are tenant scoped and only visible in the system user context,
|
// routes are tenant scoped and only visible in the system user context,
|
||||||
// keeping them out of regular user account listings
|
// keeping them out of regular user account listings
|
||||||
if ($userId !== self::USER_SYSTEM) {
|
if ($userId !== SystemIdentity::USER) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -122,7 +123,7 @@ class Provider implements ProviderBaseInterface, ProviderServiceMutateInterface
|
|||||||
|
|
||||||
public function serviceFetch(string $tenantId, string $userId, string|int $identifier): ?Service
|
public function serviceFetch(string $tenantId, string $userId, string|int $identifier): ?Service
|
||||||
{
|
{
|
||||||
if ($userId !== self::USER_SYSTEM) {
|
if ($userId !== SystemIdentity::USER) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,7 +148,7 @@ class Provider implements ProviderBaseInterface, ProviderServiceMutateInterface
|
|||||||
if (!str_ends_with($address, self::ADDRESS_DOMAIN_SUFFIX)) {
|
if (!str_ends_with($address, self::ADDRESS_DOMAIN_SUFFIX)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if ($userId !== self::USER_SYSTEM) {
|
if ($userId !== SystemIdentity::USER) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -170,7 +171,7 @@ class Provider implements ProviderBaseInterface, ProviderServiceMutateInterface
|
|||||||
|
|
||||||
public function serviceExtant(string $tenantId, string $userId, string|int ...$identifiers): array
|
public function serviceExtant(string $tenantId, string $userId, string|int ...$identifiers): array
|
||||||
{
|
{
|
||||||
if ($userId !== self::USER_SYSTEM) {
|
if ($userId !== SystemIdentity::USER) {
|
||||||
return array_fill_keys(array_map('strval', $identifiers), false);
|
return array_fill_keys(array_map('strval', $identifiers), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -223,7 +224,7 @@ class Provider implements ProviderBaseInterface, ProviderServiceMutateInterface
|
|||||||
*/
|
*/
|
||||||
protected function assertSystemContext(string $userId): void
|
protected function assertSystemContext(string $userId): void
|
||||||
{
|
{
|
||||||
if ($userId !== self::USER_SYSTEM) {
|
if ($userId !== SystemIdentity::USER) {
|
||||||
throw new InvalidArgumentException('System mail routes can only be managed in the system user context');
|
throw new InvalidArgumentException('System mail routes can only be managed in the system user context');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ use KTXF\Resource\Identifier\EntityIdentifierInterface;
|
|||||||
use KTXF\Resource\Provider\ProviderInterface;
|
use KTXF\Resource\Provider\ProviderInterface;
|
||||||
use KTXF\Resource\Provider\ResourceServiceIdentityInterface;
|
use KTXF\Resource\Provider\ResourceServiceIdentityInterface;
|
||||||
use KTXF\Resource\Provider\ResourceServiceLocationInterface;
|
use KTXF\Resource\Provider\ResourceServiceLocationInterface;
|
||||||
|
use KTXF\Resource\SystemIdentity;
|
||||||
use KTXF\Resource\Range\IRange;
|
use KTXF\Resource\Range\IRange;
|
||||||
use KTXF\Resource\Range\RangeType;
|
use KTXF\Resource\Range\RangeType;
|
||||||
use KTXF\Resource\Sort\ISort;
|
use KTXF\Resource\Sort\ISort;
|
||||||
@@ -422,7 +423,7 @@ class Service implements ServiceBaseInterface, ServiceMutableInterface, ServiceE
|
|||||||
throw new RuntimeException("Target mail provider '$providerId' is not available");
|
throw new RuntimeException("Target mail provider '$providerId' is not available");
|
||||||
}
|
}
|
||||||
|
|
||||||
$service = $provider->serviceFetch($this->serviceTenantId, ProviderBaseInterface::USER_SYSTEM, $serviceId);
|
$service = $provider->serviceFetch($this->serviceTenantId, SystemIdentity::USER, $serviceId);
|
||||||
if ($service === null) {
|
if ($service === null) {
|
||||||
throw new RuntimeException("Target mail service '$providerId/$serviceId' was not found");
|
throw new RuntimeException("Target mail service '$providerId/$serviceId' was not found");
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+64
-4
@@ -1212,6 +1212,63 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@vuetify/v0": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@vuetify/v0/-/v0-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-lFBUeMmQiKbFR7JXC1Z74Z2dvvGLCqt/Wd9JQqg4falICTvHtlkulYqaHbtmByGV9eR7cbG1ohN1+7OQLLSPfg==",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/johnleider"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/vuetify"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@adobe/leonardo-contrast-colors": ">=1.0.0",
|
||||||
|
"@ant-design/colors": ">=7.0.0",
|
||||||
|
"@flagsmith/flagsmith": ">=11.0.0",
|
||||||
|
"@floating-ui/dom": ">=1.8.0",
|
||||||
|
"@js-temporal/polyfill": ">=0.5.0",
|
||||||
|
"@material/material-color-utilities": ">=0.3.0",
|
||||||
|
"launchdarkly-js-client-sdk": "^3.0.0",
|
||||||
|
"posthog-js": "^1.0.0",
|
||||||
|
"vue": ">=3.5.0 || >=3.6.0-0",
|
||||||
|
"vue-i18n": ">=10.0.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@adobe/leonardo-contrast-colors": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@ant-design/colors": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@flagsmith/flagsmith": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@floating-ui/dom": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@js-temporal/polyfill": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@material/material-color-utilities": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"launchdarkly-js-client-sdk": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"posthog-js": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"vue-i18n": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/abbrev": {
|
"node_modules/abbrev": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz",
|
||||||
@@ -3278,10 +3335,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vuetify": {
|
"node_modules/vuetify": {
|
||||||
"version": "4.1.6",
|
"version": "4.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-4.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/vuetify/-/vuetify-4.2.1.tgz",
|
||||||
"integrity": "sha512-VOsRTsNfs+FE4JXMONZkqX2yznSqC/FXG9/pgVVjsoqIjUvJg+CfFTuOlgyWVFrZYY+crk7LV9uaiN8bZREV/g==",
|
"integrity": "sha512-K3ZIqu7YkorQFB6//dR5KEBpbfOo+y/LkcGtknsnneE3JN1pW3R7o/JB9QDkJuP1ELhENIdBZIkiSmXu0dQ9lQ==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@vuetify/v0": "^1.2.1"
|
||||||
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"type": "github",
|
"type": "github",
|
||||||
"url": "https://github.com/sponsors/johnleider"
|
"url": "https://github.com/sponsors/johnleider"
|
||||||
@@ -3289,7 +3349,7 @@
|
|||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"typescript": ">=4.7",
|
"typescript": ">=4.7",
|
||||||
"vite-plugin-vuetify": ">=2.1.0",
|
"vite-plugin-vuetify": ">=2.1.0",
|
||||||
"vue": "^3.5.0",
|
"vue": "^3.5.0 || ^3.6.0-0",
|
||||||
"webpack-plugin-vuetify": ">=3.1.0"
|
"webpack-plugin-vuetify": ">=3.1.0"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
|
|||||||
Reference in New Issue
Block a user