Page MenuHomePhorge

D4782.1775441675.diff
No OneTemporary

Authored By
Unknown
Size
3 KB
Referenced Files
None
Subscribers
None

D4782.1775441675.diff

diff --git a/src/app/Console/Commands/User/CreateCommand.php b/src/app/Console/Commands/User/CreateCommand.php
--- a/src/app/Console/Commands/User/CreateCommand.php
+++ b/src/app/Console/Commands/User/CreateCommand.php
@@ -57,17 +57,8 @@
return 1;
}
- if ($domain->isPublic()) {
- $this->error("Domain {$domainName} is public.");
- return 1;
- }
-
- $owner = $domain->wallet()->owner;
-
- // Validate email address
- if ($error = UsersController::validateEmail($email, $owner, $existingDeletedUser)) {
- $this->error("{$email}: {$error}");
- return 1;
+ if (!$domain->isPublic()) {
+ $owner = $domain->wallet()->owner;
}
foreach ($packages as $package) {
@@ -94,6 +85,18 @@
return 1;
}
+ if (empty($owner)) {
+ $owner = $user;
+ }
+
+ if ($role != User::ROLE_ADMIN && $role != User::ROLE_RESELLER) {
+ // Validate email address
+ if ($error = UsersController::validateEmail($email, $owner, $existingDeletedUser)) {
+ $this->error("{$email}: {$error}");
+ return 1;
+ }
+ }
+
DB::beginTransaction();
if ($existingDeletedUser) {
@@ -103,10 +106,6 @@
$user->save();
- if (empty($owner)) {
- $owner = $user;
- }
-
foreach ($packagesToAssign as $package) {
$owner->assignPackage($package, $user);
}
diff --git a/src/tests/Feature/Console/User/CreateTest.php b/src/tests/Feature/Console/User/CreateTest.php
--- a/src/tests/Feature/Console/User/CreateTest.php
+++ b/src/tests/Feature/Console/User/CreateTest.php
@@ -16,6 +16,7 @@
parent::setUp();
$this->deleteTestUser('user@kolab.org');
+ $this->deleteTestUser('user@kolabnow.com');
$this->deleteTestUser('admin@kolab.org');
$this->deleteTestUser('reseller@unknown.domain.tld');
}
@@ -26,6 +27,7 @@
public function tearDown(): void
{
$this->deleteTestUser('user@kolab.org');
+ $this->deleteTestUser('user@kolabnow.com');
$this->deleteTestUser('admin@kolab.org');
$this->deleteTestUser('reseller@unknown.domain.tld');
@@ -66,12 +68,6 @@
$this->assertSame(1, $code);
$this->assertSame("jack.daniels@kolab.org: The specified email is not available.", $output);
- // Public domain not allowed in the group email address
- $code = \Artisan::call("user:create user@kolabnow.com");
- $output = trim(\Artisan::output());
- $this->assertSame(1, $code);
- $this->assertSame("Domain kolabnow.com is public.", $output);
-
// Valid (user)
$code = \Artisan::call("user:create user@kolab.org --package=kolab");
$output = trim(\Artisan::output());
@@ -98,6 +94,13 @@
$this->assertEquals($user->id, $output);
$this->assertEquals($user->role, User::ROLE_RESELLER);
+ // Valid (public domain)
+ $code = \Artisan::call("user:create user@kolabnow.com");
+ $output = trim(\Artisan::output());
+ $user = User::where('email', 'user@kolabnow.com')->first();
+ $this->assertSame(0, $code);
+ $this->assertEquals($user->id, $output);
+
// Invalid role
$code = \Artisan::call("user:create unknwon@kolab.org --role=unknown");
$output = trim(\Artisan::output());

File Metadata

Mime Type
text/plain
Expires
Mon, Apr 6, 2:14 AM (4 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
18826082
Default Alt Text
D4782.1775441675.diff (3 KB)

Event Timeline