Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Controllers/API/SignupController.php
Show All 23 Lines | class SignupController extends Controller | ||||
/** @var \App\Plan Signup plan object */ | /** @var \App\Plan Signup plan object */ | ||||
protected $plan; | protected $plan; | ||||
/** | /** | ||||
* Returns plans definitions for signup. | * Returns plans definitions for signup. | ||||
* | * | ||||
* @param Illuminate\Http\Request HTTP request | * @param \Illuminate\Http\Request $request HTTP request | ||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse JSON response | * @return \Illuminate\Http\JsonResponse JSON response | ||||
*/ | */ | ||||
public function plans(Request $request) | public function plans(Request $request) | ||||
{ | { | ||||
$plans = []; | $plans = []; | ||||
Plan::all()->map(function ($plan) use (&$plans) { | Plan::all()->map(function ($plan) use (&$plans) { | ||||
Show All 9 Lines | class SignupController extends Controller | ||||
} | } | ||||
/** | /** | ||||
* Starts signup process. | * Starts signup process. | ||||
* | * | ||||
* Verifies user name and email/phone, sends verification email/sms message. | * Verifies user name and email/phone, sends verification email/sms message. | ||||
* Returns the verification code. | * Returns the verification code. | ||||
* | * | ||||
* @param Illuminate\Http\Request HTTP request | * @param \Illuminate\Http\Request $request HTTP request | ||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse JSON response | * @return \Illuminate\Http\JsonResponse JSON response | ||||
*/ | */ | ||||
public function init(Request $request) | public function init(Request $request) | ||||
{ | { | ||||
// Check required fields | // Check required fields | ||||
$v = Validator::make( | $v = Validator::make( | ||||
$request->all(), | $request->all(), | ||||
Show All 30 Lines | public function init(Request $request) | ||||
} | } | ||||
return response()->json(['status' => 'success', 'code' => $code->code]); | return response()->json(['status' => 'success', 'code' => $code->code]); | ||||
} | } | ||||
/** | /** | ||||
* Validation of the verification code. | * Validation of the verification code. | ||||
* | * | ||||
* @param Illuminate\Http\Request HTTP request | * @param \Illuminate\Http\Request $request HTTP request | ||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse JSON response | * @return \Illuminate\Http\JsonResponse JSON response | ||||
*/ | */ | ||||
public function verify(Request $request) | public function verify(Request $request) | ||||
{ | { | ||||
// Validate the request args | // Validate the request args | ||||
$v = Validator::make( | $v = Validator::make( | ||||
$request->all(), | $request->all(), | ||||
Show All 34 Lines | public function verify(Request $request) | ||||
'is_domain' => $has_domain, | 'is_domain' => $has_domain, | ||||
'domains' => $has_domain ? [] : Domain::getPublicDomains(), | 'domains' => $has_domain ? [] : Domain::getPublicDomains(), | ||||
]); | ]); | ||||
} | } | ||||
/** | /** | ||||
* Finishes the signup process by creating the user account. | * Finishes the signup process by creating the user account. | ||||
* | * | ||||
* @param Illuminate\Http\Request HTTP request | * @param \Illuminate\Http\Request $request HTTP request | ||||
* | * | ||||
* @return \Illuminate\Http\JsonResponse JSON response | * @return \Illuminate\Http\JsonResponse JSON response | ||||
*/ | */ | ||||
public function signup(Request $request) | public function signup(Request $request) | ||||
{ | { | ||||
// Validate input | // Validate input | ||||
$v = Validator::make( | $v = Validator::make( | ||||
$request->all(), | $request->all(), | ||||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | public function signup(Request $request) | ||||
'namespace' => $domain, | 'namespace' => $domain, | ||||
'status' => Domain::STATUS_NEW, | 'status' => Domain::STATUS_NEW, | ||||
'type' => Domain::TYPE_EXTERNAL, | 'type' => Domain::TYPE_EXTERNAL, | ||||
]); | ]); | ||||
} | } | ||||
// Create SKUs (after domain) | // Create SKUs (after domain) | ||||
foreach ($plan->packages as $package) { | foreach ($plan->packages as $package) { | ||||
foreach ($package->skus as $sku) { | $package->assign($user); | ||||
$sku->registerEntitlement($user, is_object($domain) ? [$domain] : []); | |||||
} | |||||
} | } | ||||
// Save the external email and plan in user settings | // Save the external email and plan in user settings | ||||
$user->setSettings([ | $user->setSettings([ | ||||
'external_email' => $user_email, | 'external_email' => $user_email, | ||||
machniak: I guess, this is not finished yet, cause I see you ignore the package plan. | |||||
'plan' => $plan->id, | 'plan' => $plan->id, | ||||
Not Done Inline ActionsThe comment does not say truth now machniak: The comment does not say truth now | |||||
]); | ]); | ||||
// Remove the verification code | // Remove the verification code | ||||
$this->code->delete(); | $this->code->delete(); | ||||
DB::commit(); | DB::commit(); | ||||
return UsersController::logonResponse($user); | return UsersController::logonResponse($user); | ||||
} | } | ||||
/** | /** | ||||
* Checks if the input string is a valid email address or a phone number | * Checks if the input string is a valid email address or a phone number | ||||
* | * | ||||
* @param string $email Email address or phone number | * @param string $input Email address or phone number | ||||
* @param bool &$is_phone Will be set to True if the string is valid phone number | * @param bool $is_phone Will have been set to True if the string is valid phone number | ||||
* | * | ||||
* @return string Error message label on validation error | * @return string Error message label on validation error | ||||
*/ | */ | ||||
protected function validatePhoneOrEmail($input, &$is_phone = false) | protected function validatePhoneOrEmail($input, &$is_phone = false) | ||||
{ | { | ||||
$is_phone = false; | $is_phone = false; | ||||
return $this->validateEmail($input); | return $this->validateEmail($input); | ||||
Show All 35 Lines | protected function validateEmail($email) | ||||
if (strpos($domain, '.') === false) { | if (strpos($domain, '.') === false) { | ||||
return 'validation.emailinvalid'; | return 'validation.emailinvalid'; | ||||
} | } | ||||
} | } | ||||
/** | /** | ||||
* Login (kolab identity) validation | * Login (kolab identity) validation | ||||
* | * | ||||
* @param string $email Login (local part of an email address) | * @param string $login Login (local part of an email address) | ||||
* @param string $domain Domain name | * @param string $domain Domain name | ||||
* @param bool $external Enables additional checks for domain part | * @param bool $external Enables additional checks for domain part | ||||
* | * | ||||
* @return array Error messages on validation error | * @return array Error messages on validation error | ||||
*/ | */ | ||||
protected function validateLogin($login, $domain, $external = false) | protected function validateLogin($login, $domain, $external = false) | ||||
{ | { | ||||
// don't allow @localhost and other no-fqdn | // don't allow @localhost and other no-fqdn | ||||
▲ Show 20 Lines • Show All 84 Lines • Show Last 20 Lines |
I guess, this is not finished yet, cause I see you ignore the package plan.