diff --git a/src/app/Observers/UserAliasObserver.php b/src/app/Observers/UserAliasObserver.php --- a/src/app/Observers/UserAliasObserver.php +++ b/src/app/Observers/UserAliasObserver.php @@ -21,17 +21,22 @@ { $alias->alias = \strtolower($alias->alias); - if ($exists = User::emailExists($alias->alias, true, $alias_exists)) { + list($login, $domain) = explode('@', $alias->alias); + + $domain = Domain::where('namespace', $domain)->first(); + + if (!$domain) { + \Log::error("Failed creating alias {$alias->alias}. Domain does not exist."); + return false; + } +/* + if ($exists = User::emailExists($alias->alias, true, $alias_exists, !$domain->isPublic())) { if (!$alias_exists) { \Log::error("Failed creating alias {$alias->alias}. Email address exists."); return false; } - list($login, $domain) = explode('@', $alias->alias); - - $domain = Domain::where('namespace', $domain)->first(); - - if (!$domain || $domain->isPublic()) { + if ($domain->isPublic()) { \Log::error("Failed creating alias {$alias->alias}. Alias exists in public domain."); return false; } @@ -41,7 +46,7 @@ return false; } } - +*/ return true; } diff --git a/src/tests/Feature/Controller/UsersTest.php b/src/tests/Feature/Controller/UsersTest.php --- a/src/tests/Feature/Controller/UsersTest.php +++ b/src/tests/Feature/Controller/UsersTest.php @@ -418,6 +418,8 @@ { $jack = $this->getTestUser('jack@kolab.org'); $john = $this->getTestUser('john@kolab.org'); + $deleted_priv = $this->getTestUser('deleted@kolab.org'); + $deleted_priv->delete(); // Test empty request $response = $this->actingAs($john)->post("/api/v4/users", []); @@ -481,7 +483,7 @@ 'last_name' => 'Doe2', 'email' => 'john2.doe2@kolab.org', 'organization' => 'TestOrg', - 'aliases' => ['useralias1@kolab.org', 'useralias2@kolab.org'], + 'aliases' => ['useralias1@kolab.org', 'deleted@kolab.org'], ]; // Missing package @@ -523,8 +525,8 @@ $this->assertSame('TestOrg', $user->getSetting('organization')); $aliases = $user->aliases()->orderBy('alias')->get(); $this->assertCount(2, $aliases); - $this->assertSame('useralias1@kolab.org', $aliases[0]->alias); - $this->assertSame('useralias2@kolab.org', $aliases[1]->alias); + $this->assertSame('deleted@kolab.org', $aliases[0]->alias); + $this->assertSame('useralias1@kolab.org', $aliases[1]->alias); // Assert the new user entitlements $this->assertUserEntitlements($user, ['groupware', 'mailbox', 'storage', 'storage']); // Assert the wallet to which the new user should be assigned to