Ejemplo n.º 1
0
<?php

if (!empty($_POST['partnerInvite']['email'])) {
    $title = '';
    if (!empty($_POST['partnerInvite']['name'])) {
        $title .= 'Ув. ' . htmlspecialchars($_POST['partnerInvite']['name']) . '. ';
    }
    if (!filter_var($_POST['partnerInvite']['email'], FILTER_VALIDATE_EMAIL)) {
        Tools::redirect(null, 'Вы ввели не корректный E-mail', 'danger');
    }
    $title = \Users\User::$cur->name() . ' приглашает вас зарегистрироваться на сайте: ' . idn_to_utf8(INJI_DOMAIN_NAME);
    $inviteCode = Tools::randomString(60);
    $invite = new Users\User\Invite();
    $invite->code = $inviteCode;
    $invite->type = 'UsersPartnerInvite';
    $invite->user_id = \Users\User::$cur->id;
    $invite->limit = 1;
    $invite->save();
    $text = "<h3>{$title}</h3>";
    $text .= '<p>Чтобы принять приглашение, перейдите по <a href = "http://' . idn_to_utf8(INJI_DOMAIN_NAME) . '/users/registration?invite_code=' . $inviteCode . '">этой ссылке</a> и завершите процедуру регистрации</p>';
    Tools::sendMail('noreply@' . INJI_DOMAIN_NAME, $_POST['partnerInvite']['email'], $title, $text);
    Tools::redirect(null, 'Приглашение было отправлено', 'success');
}
$partners = App::$cur->users->getUserPartners(Users\User::$cur, 8);
$usersSearch = [];
foreach ($partners['users'] as $user) {
    $usersSearch[] = ['name' => $user->name(), 'id' => $user->pk(), 'translit' => Tools::translit($user->name())];
}
if (!empty($_GET['info']['user_id']) && !empty($users[$_GET['info']['user_id']])) {
}
App::$cur->libs->loadLib('typeahead');
Ejemplo n.º 2
0
 public function registration($data, $autorization = false)
 {
     extract($data);
     if (empty($user_mail)) {
         Msg::add('Вы не ввели E-mail', 'danger');
         return false;
     }
     $user_mail = trim($user_mail);
     if (!filter_var($user_mail, FILTER_VALIDATE_EMAIL)) {
         Msg::add('Вы ввели не корректный E-mail', 'danger');
         return false;
     }
     $user = $this->get($user_mail, 'mail');
     if ($user) {
         Msg::add('Введенный вами почтовый ящик зарегистрирован в нашей системе, войдите или введите другой почтовый ящик', 'danger');
         return false;
     }
     if (empty($user_login)) {
         $user_login = $user_mail;
     }
     $user_login = trim($user_login);
     $user = $this->get($user_login, 'login');
     if ($user) {
         Msg::add('Введенный вами логин зарегистрирован в нашей системе, войдите или введите другой логин', 'danger');
         return false;
     }
     if (empty($user_name)) {
         $user_name = '';
     }
     if (empty($user_city)) {
         $user_city = '';
     }
     if (empty($user_birthday)) {
         $user_birthday = '';
     }
     if (empty($user_phone)) {
         $user_phone = '';
     }
     $invite_code = !empty($data['invite_code']) ? $data['invite_code'] : (!empty($_POST['invite_code']) ? $_POST['invite_code'] : (!empty($_COOKIE['invite_code']) ? $_COOKIE['invite_code'] : (!empty($_GET['invite_code']) ? $_GET['invite_code'] : '')));
     if (!empty($invite_code)) {
         $invite = Users\User\Invite::get($invite_code, 'code');
         if (!$invite) {
             Msg::add('Такой код приглашения не найден', 'danger');
             return false;
         }
         if ($invite->limit && !($invite->limit - $invite->count)) {
             Msg::add('Лимит приглашений для данного кода исчерпан', 'danger');
             return false;
         }
         $parent_id = $invite->user_id;
         $inviter = $parent_id;
         $invite->count++;
         $invite->save();
     }
     if (empty($parent_id) && !empty($this->config['defaultPartner'])) {
         $parent_id = $this->config['defaultPartner'];
     }
     $pass = Tools::randomString(10);
     $user = new Users\User(['pass' => $this->hashpass($pass), 'mail' => $user_mail, 'login' => htmlspecialchars($user_login), 'role_id' => 2, 'group_id' => 2, 'parent_id' => !empty($parent_id) ? $parent_id : 0]);
     if (!empty($this->config['needActivation'])) {
         $user->activation = Tools::randomString();
     }
     $user->save();
     if (!$user->id) {
         Msg::add('Не удалось зарегистрировать', 'danger');
         return false;
     }
     $info = new \Users\User\Info(['user_id' => $user->id, 'first_name' => htmlspecialchars($user_name), 'city' => htmlspecialchars($user_city), 'bday' => htmlspecialchars($user_birthday), 'phone' => htmlspecialchars($user_phone)]);
     $info->save();
     if (isset($inviter)) {
         $this->AddUserActivity($inviter, 2, "У вас зарегистрировался новый партнер, {$info->first_name} {$info->last_name} (id: {$user->id}, email: {$user->mail})");
     }
     if ($autorization) {
         $this->autorization($user_mail, $pass, 'mail');
     }
     if (!empty($this->config['needActivation'])) {
         $from = 'noreply@' . INJI_DOMAIN_NAME;
         $to = $user_mail;
         $subject = 'Регистрация на сайте ' . idn_to_utf8(INJI_DOMAIN_NAME);
         $text = 'Вы были зарегистрированы на сайте ' . idn_to_utf8(INJI_DOMAIN_NAME) . '<br />для входа используйте ваш почтовый ящик в качестве логина и пароль: ' . $pass;
         $text .= '<br />';
         $text .= '<br />';
         $text .= 'Для активации вашего аккаунта перейдите по ссылке <a href = "http://' . INJI_DOMAIN_NAME . '/users/activation/' . $user->id . '/' . $user->activation . '">http://' . idn_to_utf8(INJI_DOMAIN_NAME) . '/users/activation/' . $user->id . '/' . $user->activation . '</a>';
         Tools::sendMail($from, $to, $subject, $text);
         Msg::add('Вы были зарегистрированы. На указанный почтовый ящик был выслан ваш пароль и ссылка для активации', 'success');
     } else {
         $from = 'noreply@' . INJI_DOMAIN_NAME;
         $to = $user_mail;
         $subject = 'Регистрация на сайте ' . idn_to_utf8(INJI_DOMAIN_NAME);
         $text = 'Вы были зарегистрированы на сайте ' . idn_to_utf8(INJI_DOMAIN_NAME) . '<br />для входа используйте ваш почтовый ящик в качестве логина и пароль: ' . $pass;
         Tools::sendMail($from, $to, $subject, $text);
         Msg::add('Вы были зарегистрированы. На указанный почтовый ящик был выслан ваш пароль', 'success');
     }
     return $user->id;
 }