mirror of
https://github.com/openclassify/openclassify.git
synced 2026-02-09 14:56:13 -06:00
#4322 ocify.co fixes
This commit is contained in:
parent
a4b2840c78
commit
98b406dbac
@ -0,0 +1,39 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Profile\BasicRegister;
|
||||||
|
|
||||||
|
use Anomaly\Streams\Platform\Ui\Form\FormBuilder;
|
||||||
|
use Anomaly\UsersModule\User\UserModel;
|
||||||
|
|
||||||
|
class BasicRegisterFormBuilder extends FormBuilder
|
||||||
|
{
|
||||||
|
protected $roles = [
|
||||||
|
'user',
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $model = UserModel::class;
|
||||||
|
|
||||||
|
protected $actions = [
|
||||||
|
'blue' => [
|
||||||
|
'text' => 'anomaly.module.users::button.register',
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $options = [
|
||||||
|
'redirect' => '/',
|
||||||
|
'success_message' => 'anomaly.module.users::success.user_registered',
|
||||||
|
'pending_message' => 'anomaly.module.users::message.pending_admin_activation',
|
||||||
|
'confirm_message' => 'anomaly.module.users::message.pending_email_activation',
|
||||||
|
'activated_message' => 'anomaly.module.users::message.account_activated',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function getRoles()
|
||||||
|
{
|
||||||
|
return $this->roles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setRoles($roles)
|
||||||
|
{
|
||||||
|
$this->roles = $roles;
|
||||||
|
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,83 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Profile\BasicRegister;
|
||||||
|
|
||||||
|
use Visiosoft\ProfileModule\Profile\Validation\ValidateRegister;
|
||||||
|
use Visiosoft\ProfileModule\Rules\ReCaptchaRule;
|
||||||
|
|
||||||
|
class BasicRegisterFormFields
|
||||||
|
{
|
||||||
|
public function handle(BasicRegisterFormBuilder $builder)
|
||||||
|
{
|
||||||
|
$captchaSiteKey = setting_value('visiosoft.module.profile::google_captcha_site_key');
|
||||||
|
$captchaSecretKey = setting_value('visiosoft.module.profile::google_captcha_secret_key');
|
||||||
|
|
||||||
|
$register = [];
|
||||||
|
if ($captchaSiteKey && $captchaSecretKey) {
|
||||||
|
$register = [
|
||||||
|
'recaptcha_token' => [
|
||||||
|
'required' => true,
|
||||||
|
'type' => 'anomaly.field_type.text',
|
||||||
|
'config' => [
|
||||||
|
"max" => 0,
|
||||||
|
],
|
||||||
|
'rules' => [
|
||||||
|
'valid_recaptcha'
|
||||||
|
],
|
||||||
|
'validators' => [
|
||||||
|
'valid_recaptcha' => [
|
||||||
|
'message' => false,
|
||||||
|
'handler' => ReCaptchaRule::class
|
||||||
|
]
|
||||||
|
]
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (setting_value('visiosoft.module.profile::show_checkbox_terms_on_register')) {
|
||||||
|
$register = array_merge($register, [
|
||||||
|
"accept_protection_law" => [
|
||||||
|
'required' => true,
|
||||||
|
"type" => "anomaly.field_type.boolean",
|
||||||
|
"config" => [
|
||||||
|
"default_value" => false,
|
||||||
|
"mode" => "checkbox",
|
||||||
|
"label" => 'visiosoft.module.profile::field.accept_protection_law_label',
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"accept_privacy_terms" => [
|
||||||
|
'required' => true,
|
||||||
|
"type" => "anomaly.field_type.boolean",
|
||||||
|
"config" => [
|
||||||
|
"default_value" => false,
|
||||||
|
"mode" => "checkbox",
|
||||||
|
"label" => 'visiosoft.module.profile::field.accept_privacy_terms_label',
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"receive_sms_emails" => [
|
||||||
|
"type" => "anomaly.field_type.boolean",
|
||||||
|
"config" => [
|
||||||
|
"default_value" => false,
|
||||||
|
"mode" => "checkbox",
|
||||||
|
"label" => 'visiosoft.module.profile::field.receive_sms_emails_label',
|
||||||
|
]
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$builder->setFields(
|
||||||
|
array_merge(
|
||||||
|
$register,
|
||||||
|
[
|
||||||
|
'username' => [
|
||||||
|
'required' => true,
|
||||||
|
],
|
||||||
|
'email' => [
|
||||||
|
'instructions' => false,
|
||||||
|
],
|
||||||
|
'password' => [
|
||||||
|
'instructions' => false,
|
||||||
|
],
|
||||||
|
]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,87 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Profile\BasicRegister;
|
||||||
|
|
||||||
|
use Anomaly\UsersModule\Role\Command\GetRole;
|
||||||
|
use Anomaly\UsersModule\User\Contract\UserInterface;
|
||||||
|
use Anomaly\UsersModule\User\Contract\UserRepositoryInterface;
|
||||||
|
use Anomaly\UsersModule\User\Event\UserHasRegistered;
|
||||||
|
use Anomaly\UsersModule\User\UserActivator;
|
||||||
|
use Illuminate\Contracts\Events\Dispatcher;
|
||||||
|
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||||
|
use Visiosoft\ProfileModule\Profile\BasicRegister\Command\HandleAutomaticRegistration;
|
||||||
|
use Visiosoft\ProfileModule\Profile\BasicRegister\Command\HandleEmailRegistration;
|
||||||
|
use Visiosoft\ProfileModule\Profile\BasicRegister\Command\HandleManualRegistration;
|
||||||
|
|
||||||
|
class BasicRegisterFormHandler
|
||||||
|
{
|
||||||
|
use DispatchesJobs;
|
||||||
|
|
||||||
|
public function handle(
|
||||||
|
Dispatcher $events,
|
||||||
|
UserRepositoryInterface $users,
|
||||||
|
BasicRegisterFormBuilder $builder,
|
||||||
|
UserActivator $activator
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (!$builder->canSave()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Create Profile in Register */
|
||||||
|
$domain = setting_value('streams::domain');
|
||||||
|
$domain = str_replace('https://', '', $domain);
|
||||||
|
$domain = str_replace('http://', '', $domain);
|
||||||
|
$domain = str_replace('/', '', $domain);
|
||||||
|
$domain = str_replace('www', '', $domain);
|
||||||
|
|
||||||
|
if (!setting_value('visiosoft.module.advs::register_email_field')) {
|
||||||
|
$builder->setFormValue('email', $builder->getPostValue('username') . "@" . $domain);
|
||||||
|
}
|
||||||
|
|
||||||
|
$fields = $builder->getPostData();
|
||||||
|
$fields['display_name'] = $fields['username'];
|
||||||
|
$fields['gsm_phone'] = $builder->getPostValue('phone');
|
||||||
|
unset(
|
||||||
|
$fields['phone'],
|
||||||
|
$fields['accept_protection_law'],
|
||||||
|
$fields['accept_privacy_terms'],
|
||||||
|
$fields['receive_sms_emails'],
|
||||||
|
$fields['recaptcha_token']
|
||||||
|
);
|
||||||
|
|
||||||
|
$register = $users->create($fields);
|
||||||
|
$register->setAttribute('password', $fields['password']);
|
||||||
|
$users->save($register);
|
||||||
|
|
||||||
|
/* @var UserInterface $user */
|
||||||
|
$user = $register;
|
||||||
|
$builder->setFormEntry($register);
|
||||||
|
|
||||||
|
$activator->start($user);
|
||||||
|
|
||||||
|
$mode = config('anomaly.module.users::config.activation_mode', 'automatic');
|
||||||
|
|
||||||
|
switch ($mode) {
|
||||||
|
case 'automatic':
|
||||||
|
dispatch_now(new HandleAutomaticRegistration($builder));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'manual':
|
||||||
|
dispatch_now(new HandleManualRegistration($builder));
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'email':
|
||||||
|
dispatch_now(new HandleEmailRegistration($builder));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$user = $builder->getFormEntry();
|
||||||
|
|
||||||
|
foreach ($builder->getRoles() as $role) {
|
||||||
|
if ($role = $this->dispatch(new GetRole($role))) {
|
||||||
|
$user->attachRole($role);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$events->dispatch(new UserHasRegistered($user));
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,37 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Profile\BasicRegister\Command;
|
||||||
|
|
||||||
|
use Anomaly\UsersModule\User\Contract\UserRepositoryInterface;
|
||||||
|
use Anomaly\UsersModule\User\UserActivator;
|
||||||
|
use Anomaly\UsersModule\User\UserAuthenticator;
|
||||||
|
use Illuminate\Contracts\Encryption\Encrypter;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class HandleActivateRequest
|
||||||
|
{
|
||||||
|
public function handle(
|
||||||
|
UserRepositoryInterface $users,
|
||||||
|
UserAuthenticator $authenticator,
|
||||||
|
UserActivator $activator,
|
||||||
|
Encrypter $encrypter,
|
||||||
|
Request $request
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (!$code = $request->get('code')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$email = $request->get('email')) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$user = $users->findByEmail($encrypter->decrypt($email))) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($activated = $activator->activate($user, $encrypter->decrypt($code))) {
|
||||||
|
$authenticator->login($user);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $activated;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,32 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Profile\BasicRegister\Command;
|
||||||
|
|
||||||
|
use Anomaly\Streams\Platform\Message\MessageBag;
|
||||||
|
use Anomaly\UsersModule\User\Contract\UserInterface;
|
||||||
|
use Visiosoft\ProfileModule\Profile\BasicRegister\BasicRegisterFormBuilder;
|
||||||
|
use Anomaly\UsersModule\User\UserActivator;
|
||||||
|
use Anomaly\UsersModule\User\UserAuthenticator;
|
||||||
|
|
||||||
|
class HandleAutomaticRegistration
|
||||||
|
{
|
||||||
|
protected $builder;
|
||||||
|
|
||||||
|
public function __construct(BasicRegisterFormBuilder $builder)
|
||||||
|
{
|
||||||
|
$this->builder = $builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle(UserAuthenticator $authenticator, UserActivator $activator, MessageBag $messages)
|
||||||
|
{
|
||||||
|
/* @var UserInterface $user */
|
||||||
|
$user = $this->builder->getFormEntry();
|
||||||
|
|
||||||
|
$activator->force($user);
|
||||||
|
$authenticator->login($user);
|
||||||
|
|
||||||
|
if (!is_null($message = $this->builder->getFormOption('activated_message'))) {
|
||||||
|
$messages->info($message);
|
||||||
|
}
|
||||||
|
|
||||||
|
$messages->success('anomaly.module.users::message.logged_in');
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,28 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Profile\BasicRegister\Command;
|
||||||
|
|
||||||
|
use Anomaly\UsersModule\User\UserActivator;
|
||||||
|
use Anomaly\Streams\Platform\Message\MessageBag;
|
||||||
|
use Anomaly\UsersModule\User\Contract\UserInterface;
|
||||||
|
use Visiosoft\ProfileModule\Profile\BasicRegister\BasicRegisterFormBuilder;
|
||||||
|
|
||||||
|
class HandleEmailRegistration
|
||||||
|
{
|
||||||
|
protected $builder;
|
||||||
|
|
||||||
|
public function __construct(BasicRegisterFormBuilder $builder)
|
||||||
|
{
|
||||||
|
$this->builder = $builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle(UserActivator $activator, MessageBag $messages)
|
||||||
|
{
|
||||||
|
/* @var UserInterface $user */
|
||||||
|
$user = $this->builder->getFormEntry();
|
||||||
|
|
||||||
|
$activator->send($user, $this->builder->getFormOption('activate_redirect', '/'));
|
||||||
|
|
||||||
|
if (!is_null($message = $this->builder->getFormOption('confirm_message'))) {
|
||||||
|
$messages->info($message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
<?php namespace Visiosoft\ProfileModule\Profile\BasicRegister\Command;
|
||||||
|
|
||||||
|
use Anomaly\Streams\Platform\Message\MessageBag;
|
||||||
|
use Anomaly\UsersModule\User\Contract\UserInterface;
|
||||||
|
use Anomaly\UsersModule\User\Notification\UserPendingActivation;
|
||||||
|
use Visiosoft\ProfileModule\Profile\BasicRegister\BasicRegisterFormBuilder;
|
||||||
|
use Illuminate\Contracts\Config\Repository;
|
||||||
|
use Illuminate\Notifications\AnonymousNotifiable;
|
||||||
|
|
||||||
|
class HandleManualRegistration
|
||||||
|
{
|
||||||
|
protected $builder;
|
||||||
|
|
||||||
|
public function __construct(BasicRegisterFormBuilder $builder)
|
||||||
|
{
|
||||||
|
$this->builder = $builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handle(MessageBag $messages, Repository $config)
|
||||||
|
{
|
||||||
|
if (!is_null($message = $this->builder->getFormOption('pending_message'))) {
|
||||||
|
$messages->info($message);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* @var UserInterface $user */
|
||||||
|
$user = $this->builder->getFormEntry();
|
||||||
|
|
||||||
|
$recipients = $config->get('anomaly.module.users::notifications.pending_user', []);
|
||||||
|
|
||||||
|
foreach ($recipients as $email) {
|
||||||
|
(new AnonymousNotifiable)
|
||||||
|
->route('mail', $email)
|
||||||
|
->notify(
|
||||||
|
new UserPendingActivation($user)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -16,6 +16,7 @@ use Visiosoft\ProfileModule\Education\EducationModel;
|
|||||||
use Visiosoft\ProfileModule\Education\EducationRepository;
|
use Visiosoft\ProfileModule\Education\EducationRepository;
|
||||||
use Visiosoft\ProfileModule\Http\Middleware\authCheck;
|
use Visiosoft\ProfileModule\Http\Middleware\authCheck;
|
||||||
use Visiosoft\ProfileModule\Http\Middleware\OGImage;
|
use Visiosoft\ProfileModule\Http\Middleware\OGImage;
|
||||||
|
use Visiosoft\ProfileModule\Profile\BasicRegister\BasicRegisterFormBuilder;
|
||||||
use Visiosoft\ProfileModule\Profile\Password\ForgotPassFormBuilder;
|
use Visiosoft\ProfileModule\Profile\Password\ForgotPassFormBuilder;
|
||||||
use Visiosoft\ProfileModule\Profile\Password\PasswordFormBuilder;
|
use Visiosoft\ProfileModule\Profile\Password\PasswordFormBuilder;
|
||||||
use Visiosoft\ProfileModule\Profile\Profile\ProfileFormBuilder;
|
use Visiosoft\ProfileModule\Profile\Profile\ProfileFormBuilder;
|
||||||
@ -144,6 +145,7 @@ class ProfileModuleServiceProvider extends AddonServiceProvider
|
|||||||
AdressRepositoryInterface::class => AdressRepository::class,
|
AdressRepositoryInterface::class => AdressRepository::class,
|
||||||
EducationRepositoryInterface::class => EducationRepository::class,
|
EducationRepositoryInterface::class => EducationRepository::class,
|
||||||
'register2' => Register2FormBuilder::class,
|
'register2' => Register2FormBuilder::class,
|
||||||
|
'basic_register' => BasicRegisterFormBuilder::class,
|
||||||
'forgot_pass' => ForgotPassFormBuilder::class,
|
'forgot_pass' => ForgotPassFormBuilder::class,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user