Page MenuHomePhorge

D5217.1775308468.diff
No OneTemporary

Authored By
Unknown
Size
6 KB
Referenced Files
None
Subscribers
None

D5217.1775308468.diff

diff --git a/src/app/Backends/IMAP.php b/src/app/Backends/IMAP.php
--- a/src/app/Backends/IMAP.php
+++ b/src/app/Backends/IMAP.php
@@ -10,25 +10,6 @@
class IMAP
{
- /** @const array Group settings used by the backend */
- public const GROUP_SETTINGS = [];
-
- /** @const array Resource settings used by the backend */
- public const RESOURCE_SETTINGS = [
- 'folder',
- 'invitation_policy',
- ];
-
- /** @const array Shared folder settings used by the backend */
- public const SHARED_FOLDER_SETTINGS = [
- 'folder',
- 'acl',
- ];
-
- /** @const array User settings used by the backend */
- public const USER_SETTINGS = [];
-
-
/** @const array Maps Kolab permissions to IMAP permissions */
private const ACL_MAP = [
'read-only' => 'lrs',
diff --git a/src/app/Backends/LDAP.php b/src/app/Backends/LDAP.php
--- a/src/app/Backends/LDAP.php
+++ b/src/app/Backends/LDAP.php
@@ -11,30 +11,6 @@
class LDAP
{
- /** @const array Group settings used by the backend */
- public const GROUP_SETTINGS = [
- 'sender_policy',
- ];
-
- /** @const array Resource settings used by the backend */
- public const RESOURCE_SETTINGS = [
- 'folder',
- 'invitation_policy',
- ];
-
- /** @const array Shared folder settings used by the backend */
- public const SHARED_FOLDER_SETTINGS = [
- 'folder',
- 'acl',
- ];
-
- /** @const array User settings used by the backend */
- public const USER_SETTINGS = [
- 'first_name',
- 'last_name',
- 'organization',
- ];
-
/** @var ?\Net_LDAP3 LDAP connection object */
protected static $ldap;
diff --git a/src/app/GroupSetting.php b/src/app/GroupSetting.php
--- a/src/app/GroupSetting.php
+++ b/src/app/GroupSetting.php
@@ -26,4 +26,12 @@
{
return $this->belongsTo(Group::class, 'group_id', 'id');
}
+
+ /**
+ * Check if the setting is used in any storage backend.
+ */
+ public function isBackendSetting(): bool
+ {
+ return (\config('app.with_ldap') && $this->key == 'sender_policy');
+ }
}
diff --git a/src/app/Observers/GroupSettingObserver.php b/src/app/Observers/GroupSettingObserver.php
--- a/src/app/Observers/GroupSettingObserver.php
+++ b/src/app/Observers/GroupSettingObserver.php
@@ -49,10 +49,7 @@
*/
private function dispatchUpdateJob(GroupSetting $groupSetting): void
{
- if (
- (\config('app.with_ldap') && in_array($groupSetting->key, \App\Backends\LDAP::GROUP_SETTINGS))
- || (\config('app.with_imap') && in_array($groupSetting->key, \App\Backends\IMAP::GROUP_SETTINGS))
- ) {
+ if ($groupSetting->isBackendSetting()) {
\App\Jobs\Group\UpdateJob::dispatch($groupSetting->group_id);
}
}
diff --git a/src/app/Observers/ResourceSettingObserver.php b/src/app/Observers/ResourceSettingObserver.php
--- a/src/app/Observers/ResourceSettingObserver.php
+++ b/src/app/Observers/ResourceSettingObserver.php
@@ -49,10 +49,7 @@
*/
private function dispatchUpdateJob(ResourceSetting $resourceSetting): void
{
- if (
- (\config('app.with_ldap') && in_array($resourceSetting->key, \App\Backends\LDAP::RESOURCE_SETTINGS))
- || (\config('app.with_imap') && in_array($resourceSetting->key, \App\Backends\IMAP::RESOURCE_SETTINGS))
- ) {
+ if ($resourceSetting->isBackendSetting()) {
$props = [$resourceSetting->key => $resourceSetting->getOriginal('value')];
\App\Jobs\Resource\UpdateJob::dispatch($resourceSetting->resource_id, $props);
}
diff --git a/src/app/Observers/SharedFolderSettingObserver.php b/src/app/Observers/SharedFolderSettingObserver.php
--- a/src/app/Observers/SharedFolderSettingObserver.php
+++ b/src/app/Observers/SharedFolderSettingObserver.php
@@ -49,10 +49,7 @@
*/
private function dispatchUpdateJob(SharedFolderSetting $folderSetting): void
{
- if (
- (\config('app.with_ldap') && in_array($folderSetting->key, \App\Backends\LDAP::SHARED_FOLDER_SETTINGS))
- || (\config('app.with_imap') && in_array($folderSetting->key, \App\Backends\IMAP::SHARED_FOLDER_SETTINGS))
- ) {
+ if ($folderSetting->isBackendSetting()) {
$props = [$folderSetting->key => $folderSetting->getOriginal('value')];
\App\Jobs\SharedFolder\UpdateJob::dispatch($folderSetting->shared_folder_id, $props);
}
diff --git a/src/app/Observers/UserSettingObserver.php b/src/app/Observers/UserSettingObserver.php
--- a/src/app/Observers/UserSettingObserver.php
+++ b/src/app/Observers/UserSettingObserver.php
@@ -49,10 +49,7 @@
*/
private function dispatchUpdateJob(UserSetting $userSetting): void
{
- if (
- (\config('app.with_ldap') && in_array($userSetting->key, \App\Backends\LDAP::USER_SETTINGS))
- || (\config('app.with_imap') && in_array($userSetting->key, \App\Backends\IMAP::USER_SETTINGS))
- ) {
+ if ($userSetting->isBackendSetting()) {
\App\Jobs\User\UpdateJob::dispatch($userSetting->user_id);
}
}
diff --git a/src/app/ResourceSetting.php b/src/app/ResourceSetting.php
--- a/src/app/ResourceSetting.php
+++ b/src/app/ResourceSetting.php
@@ -26,4 +26,13 @@
{
return $this->belongsTo(Resource::class, 'resource_id', 'id');
}
+
+ /**
+ * Check if the setting is used in any storage backend.
+ */
+ public function isBackendSetting(): bool
+ {
+ return (\config('app.with_imap') || \config('app.with_ldap'))
+ && ($this->key == 'invitation_policy' || $this->key == 'folder');
+ }
}
diff --git a/src/app/SharedFolderSetting.php b/src/app/SharedFolderSetting.php
--- a/src/app/SharedFolderSetting.php
+++ b/src/app/SharedFolderSetting.php
@@ -26,4 +26,13 @@
{
return $this->belongsTo(SharedFolder::class, 'shared_folder_id', 'id');
}
+
+ /**
+ * Check if the setting is used in any storage backend.
+ */
+ public function isBackendSetting(): bool
+ {
+ return (\config('app.with_imap') || \config('app.with_ldap'))
+ && ($this->key == 'acl' || $this->key == 'folder');
+ }
}
diff --git a/src/app/UserSetting.php b/src/app/UserSetting.php
--- a/src/app/UserSetting.php
+++ b/src/app/UserSetting.php
@@ -19,4 +19,14 @@
/** @var array<int, string> The attributes that are mass assignable */
protected $fillable = ['user_id', 'key', 'value'];
+
+
+ /**
+ * Check if the setting is used in any storage backend.
+ */
+ public function isBackendSetting(): bool
+ {
+ return \config('app.with_ldap')
+ && in_array($this->key, ['first_name', 'last_name', 'organization']);
+ }
}

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 4, 1:14 PM (16 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18829597
Default Alt Text
D5217.1775308468.diff (6 KB)

Event Timeline