Page MenuHomePhorge

D5046.1775390912.diff
No OneTemporary

Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None

D5046.1775390912.diff

diff --git a/config.prod/src/database/migrations/2024_12_05_100000_create_passport_sso_client.php b/config.prod/src/database/migrations/2024_12_05_100000_create_passport_sso_client.php
new file mode 100644
--- /dev/null
+++ b/config.prod/src/database/migrations/2024_12_05_100000_create_passport_sso_client.php
@@ -0,0 +1,27 @@
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Laravel\Passport\Passport;
+
+return new class extends Migration
+{
+ /**
+ * Run the migrations.
+ *
+ * @return void
+ */
+ public function up()
+ {
+ \Database\Seeds\PassportSeeder::createSSOClient();
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Passport::client()->where('name', 'Webmail SSO client')->delete();
+ }
+};
diff --git a/config.prod/src/database/seeds/PassportSeeder.php b/config.prod/src/database/seeds/PassportSeeder.php
--- a/config.prod/src/database/seeds/PassportSeeder.php
+++ b/config.prod/src/database/seeds/PassportSeeder.php
@@ -32,19 +32,7 @@
$client->save();
// Create a client for Webmail SSO
- $client = Passport::client()->forceFill([
- 'user_id' => null,
- 'name' => 'Webmail SSO client',
- 'secret' => \config('auth.sso.client_secret'),
- 'provider' => 'users',
- 'redirect' => (str_starts_with(\config('app.webmail_url'), 'http') ? '' : 'https://' . \config('app.website_domain')) . \config('app.webmail_url') . 'index.php/login/oauth',
- 'personal_access_client' => 0,
- 'password_client' => 0,
- 'revoked' => false,
- 'allowed_scopes' => ['email', 'auth.token'],
- ]);
- $client->id = \config('auth.sso.client_id');
- $client->save();
+ self::createSSOClient();
// Create a client for synapse oauth
$client = Passport::client()->forceFill([
@@ -61,4 +49,24 @@
$client->id = \config('auth.synapse.client_id');
$client->save();
}
+
+ public static function createSSOClient()
+ {
+
+ if (!Passport::client()->where('name', 'Webmail SSO client')->first()) {
+ $client = Passport::client()->forceFill([
+ 'user_id' => null,
+ 'name' => 'Webmail SSO client',
+ 'secret' => \config('auth.sso.client_secret'),
+ 'provider' => 'users',
+ 'redirect' => (str_starts_with(\config('app.webmail_url'), 'http') ? '' : 'https://' . \config('app.website_domain')) . \config('app.webmail_url') . 'index.php/login/oauth',
+ 'personal_access_client' => 0,
+ 'password_client' => 0,
+ 'revoked' => false,
+ 'allowed_scopes' => ['email', 'auth.token'],
+ ]);
+ $client->id = \config('auth.sso.client_id');
+ $client->save();
+ }
+ }
}

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 5, 12:08 PM (16 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18829308
Default Alt Text
D5046.1775390912.diff (2 KB)

Event Timeline