Merge pull request #267 from openclassify/vedat

register email field optional
This commit is contained in:
Fatih Alp 2020-01-31 12:35:37 +03:00 committed by GitHub
commit 5ce12029ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 80 additions and 59 deletions

View File

@ -1,11 +1,15 @@
<?php
use Anomaly\Streams\Platform\Model\Location\LocationCitiesEntryModel;
use Anomaly\Streams\Platform\Model\Location\LocationDistrictsEntryModel;
use Visiosoft\LocationModule\Country\CountryModel;
return [
'register_email_field' => [
'type' => 'anomaly.field_type.boolean',
'config' => [
'default_value' => true,
],
],
'latest-limit' => [
'type' => 'anomaly.field_type.integer',
'config' => [
@ -13,8 +17,6 @@ return [
'default_value' => 5,
],
],
"favicon" => [
"type" => "anomaly.field_type.file",
"config" => [

View File

@ -107,5 +107,7 @@ return [
'google_statistic_code' => [
'name' => 'Google Statistic Code',
],
'register_email_field' => [
'name' => 'Member Registration Email Requirement',
],
];

View File

@ -18,9 +18,12 @@ return [
],
'favicon' => [
'name' => 'Favicon',
]
,'map_coordinates_long' => [
'name' => 'Önbellek sil',
],
'contact_mail' => [
'name' => 'Mail ile iletişime geçin',
'warning' => 'Otomatik eklenen sitename <strong>info</strong> @sitename',
],'map_coordinates_long' => [
'name' => 'Harita Koordinat',
],
'map_coordinates_lat' => [
'name' => 'Harita Koordinat',
@ -40,7 +43,7 @@ return [
'name' => 'Aktif Para Birimleri',
],
'latest-limit' => [
'name' => 'Son Sınır',
'name' => 'Son Eklenenler Limiti',
],
'site_address' => [
'name' => 'Site adresi',
@ -107,5 +110,7 @@ return [
'google_statistic_code' => [
'name' => 'Google İstatistik Kodu',
],
'register_email_field' => [
'name' => 'Üye Kayıt E-posta Zorunluluğu',
],
];

View File

@ -20,5 +20,6 @@ return [
'not_a_member_yet' => 'Not a Member Yet',
'not_a_member_yet_message' => 'Sign up for our members to benefit from our special service',
'forgot_password' => 'I Forgot My Password',
'email_or_phone_number' => 'Email Address or Phone Number'
'email_or_phone_number' => 'Email Address or Phone Number',
'phone_number' => 'Phone Number',
];

View File

@ -20,5 +20,6 @@ return [
'not_a_member_yet' => 'Henüz Üye Değil Misiniz',
'not_a_member_yet_message' => 'Üyelerimize özel hizmetlerimizden faydalanabilmek için üye olun',
'forgot_password' => 'Şifremi Unuttum',
'email_or_phone_number' => 'E-Posta Adresiniz veya Telefon Numaranız'
'email_or_phone_number' => 'E-Posta Adresiniz veya Telefon Numaranız',
'phone_number' => 'Telefon Numarası',
];

View File

@ -37,19 +37,36 @@
</div>
</div>
</div>
<div class="col-12">
<div class="form-group email-field email-field_type">
<label class="control-label">
{{ trans('visiosoft.theme.base::field.email_or_phone_number') }}
{{ trans('visiosoft.theme.base::field.phone_number') }}
<span class="required">*</span>
</label>
<div class="input-wrapper">
{{ form.fields.email.input|raw }}
{{ form.fields.phone.input|raw }}
</div>
</div>
</div>
{% if setting_value('visiosoft.module.advs::register_email_field') %}
<div class="col-12">
<div class="form-group email-field email-field_type">
<label class="control-label">
{{ trans('visiosoft.theme.base::field.email') }}
<span class="required">*</span>
</label>
<div class="input-wrapper">
{{ form.fields.email.input|raw }}
</div>
</div>
</div>
{% else %}
{{ form.fields.email.setValue(random()~"@example.com").setAttributes({
'class' :'hidden',
}).input|raw }}
{% endif %}
<div class="col-12">
<div class="form-group password-field password-field_type">
<label class="control-label">

View File

@ -23,5 +23,6 @@ return [
'password_do_not_match' => 'Passwords do not match',
'your_password_changed' => 'Your password was successfully updated',
'error_valid_email_or_phone' => 'Phone number or E-mail address format is not correct.',
'error_valid_phone' => 'Phone number format is not correct.',
'registered_phone' => 'This phone number has already been registered.',
];

View File

@ -38,7 +38,9 @@ class Register2FormBuilder extends FormBuilder
* @var array
*/
protected $fields = [
'username',
'username' => [
'required' => true,
],
'first_name' => [
'instructions' => false,
'required' => true,
@ -47,9 +49,9 @@ class Register2FormBuilder extends FormBuilder
'instructions' => false,
'required' => true,
],
'email' => [
'phone' => [
'type' => 'anomaly.field_type.text',
'instructions' => false,
'required' => true,
'rules' => [
'valid_register',
],
@ -60,6 +62,9 @@ class Register2FormBuilder extends FormBuilder
],
],
],
'email' => [
'instructions' => false,
],
'password' => [
'instructions' => false,
],

View File

@ -1,11 +1,9 @@
<?php namespace Visiosoft\ProfileModule\Profile\Register2;
use Anomaly\UsersModule\User\Contract\UserInterface;
use Anomaly\UsersModule\User\Contract\UserRepositoryInterface;
use Anomaly\UsersModule\User\Event\UserHasRegistered;
use Visiosoft\ProfileModule\Profile\ProfileModel;
use Visiosoft\ProfileModule\Profile\Register2\Command\HandleAutomaticRegistration;
use Visiosoft\ProfileModule\Profile\Register2\Command\HandleEmailRegistration;
use Visiosoft\ProfileModule\Profile\Register2\Command\HandleManualRegistration;
use Anomaly\UsersModule\User\UserActivator;
use Illuminate\Contracts\Config\Repository;
use Illuminate\Contracts\Events\Dispatcher;
@ -34,6 +32,7 @@ class Register2FormHandler
public function handle(
Repository $config,
Dispatcher $events,
UserRepositoryInterface $users,
Register2FormBuilder $builder,
UserActivator $activator
)
@ -45,43 +44,33 @@ class Register2FormHandler
$profile_parameters = array();
/* Create Profile in Register */
if (!filter_var($builder->getPostValue('email'), FILTER_VALIDATE_EMAIL)) {
$domain = setting_value('streams::domain');
$domain = str_replace('https://', '', $domain);
$domain = str_replace('http://', '', $domain);
$domain = str_replace('/', '', $domain);
$domain = str_replace('www', '', $domain);
$domain = setting_value('streams::domain');
$domain = str_replace('https://', '', $domain);
$domain = str_replace('http://', '', $domain);
$domain = str_replace('/', '', $domain);
$domain = str_replace('www', '', $domain);
$profile_parameters['gsm_phone'] = $builder->getPostValue('email');
$builder->setFormValue('email', $builder->getPostValue('email') . "@" . $domain);
$profile_parameters['gsm_phone'] = $builder->getPostValue('phone');
if (!setting_value('visiosoft.module.advs::register_email_field')) {
$builder->setFormValue('email', $builder->getPostValue('username') . "@" . $domain);
}
$builder->saveForm(); // Save the new user.
$fields = $builder->getPostData();
unset($fields['phone']);
$register = $users->create($fields);
$register->setAttribute('password', $fields['password']);
$users->save($register);
/* @var UserInterface $user */
$user = $builder->getFormEntry();
$user = $register;
$profile_parameters['user_id'] = $user->getId();
ProfileModel::query()->create($profile_parameters);
$activator->start($user);
$activator->force($user);
$mode = $config->get('anomaly.module.users::config.activation_mode', 'automatic');
switch ($mode) {
case 'automatic':
$this->dispatch(new HandleAutomaticRegistration($builder));
break;
case 'manual':
$this->dispatch(new HandleManualRegistration($builder));
break;
case 'email':
$this->dispatch(new HandleEmailRegistration($builder));
break;
}
$events->dispatch(new UserHasRegistered($user));
}
}

View File

@ -7,14 +7,12 @@ class ValidateRegister
{
public function handle(FormBuilder $builder, ProfileRepositoryInterface $profileRepository, $attribute, $value)
{
if (!filter_var($builder->getPostValue('email'), FILTER_VALIDATE_EMAIL)) {
if (!is_numeric($builder->getPostValue('email'))) {
$builder->addFormError('email', trans('visiosoft.module.profile::message.error_valid_email_or_phone'));
return false;
} elseif (!is_null($profileRepository->findPhoneNumber($builder->getPostValue('email')))) {
$builder->addFormError('email', trans('visiosoft.module.profile::message.registered_phone'));
return false;
}
if (!is_numeric($builder->getPostValue('phone'))) {
$builder->addFormError('phone', trans('visiosoft.module.profile::message.error_valid_phone'));
return false;
} elseif (!is_null($profileRepository->findPhoneNumber($builder->getPostValue('phone')))) {
$builder->addFormError('phone', trans('visiosoft.module.profile::message.registered_phone'));
return false;
}
return true;
}