public function restore($email)
 {
     $lang = tlocal::admin('password');
     $email = strtolower(trim($email));
     if (empty($email)) {
         return $this->error($lang->error);
     }
     $id = $this->getiduser($email);
     if (!$id) {
         return $this->error($lang->error);
     }
     $args = new targs();
     tsession::start('password-restore-' . md5(litepublisher::$options->hash($email)));
     if (!isset($_SESSION['count'])) {
         $_SESSION['count'] = 1;
     } else {
         if ($_SESSION['count']++ > 3) {
             return $this->error($lang->outofcount);
         }
     }
     $_SESSION['email'] = $email;
     $password = md5uniq();
     $_SESSION['password'] = $password;
     $_SESSION['confirm'] = md5rand();
     $args->confirm = $_SESSION['confirm'];
     session_write_close();
     $args->email = urlencode($email);
     if ($id == 1) {
         $name = litepublisher::$site->author;
     } else {
         $item = tusers::i()->getitem($id);
         $args->add($item);
         $name = $item['name'];
     }
     $args->password = $password;
     tlocal::usefile('mail');
     $lang = tlocal::i('mailpassword');
     $theme = ttheme::i();
     $subject = $theme->parsearg($lang->subject, $args);
     $body = $theme->parsearg($lang->body, $args);
     tmailer::sendmail(litepublisher::$site->name, litepublisher::$options->fromemail, $name, $email, $subject, $body);
     return true;
 }
Пример #2
0
 public static function init($usecookie = false)
 {
     if (!self::$initialized) {
         self::$initialized = true;
         ini_set('session.use_cookies', $usecookie);
         ini_set('session.use_only_cookies', $usecookie);
         ini_set('session.use_trans_sid', 0);
         session_cache_limiter(false);
         if (function_exists('igbinary_serialize')) {
             ini_set('igbinary.compact_strings', 0);
             ini_set('session.serialize_handler', 'igbinary');
         }
     }
     if (tfilestorage::$memcache) {
         return getinstance(__CLASS__);
     } else {
         //ini_set('session.gc_probability', 1);
     }
 }
Пример #3
0
 public function request($arg)
 {
     $this->cache = false;
     turlmap::nocache();
     if (empty($_GET['oauth_token'])) {
         return 403;
     }
     tsession::start(md5($_GET['oauth_token']));
     if (!isset($_SESSION['tokens'])) {
         session_destroy();
         return 403;
     }
     $tokens = $_SESSION['tokens'];
     session_destroy();
     $oauth = $this->getoauth();
     $oauth->settokens($tokens['oauth_token'], $tokens['oauth_token_secret']);
     if ($tokens = $oauth->getaccesstoken($_REQUEST['oauth_verifier'])) {
         if ($r = $oauth->get_data('https://api.twitter.com/1/account/verify_credentials.json')) {
             $info = json_decode($r);
             return $this->adduser(array('uid' => $info->id, 'name' => $info->name, 'website' => 'http://twitter.com/account/redirect_by_id?id=' . $info->id_str), $info);
         }
     }
     return $this->errorauth();
 }
Пример #4
0
 public function request_confirm(array $values, array $shortpost)
 {
     /*
     $kept = tkeptcomments::i();
     $kept->deleteold();
     */
     $values['date'] = time();
     $values['ip'] = preg_replace('/[^0-9., ]/', '', $_SERVER['REMOTE_ADDR']);
     $confirmid = md5uniq();
     if ($sess = tsession::start(md5($confirmid))) {
         $sess->lifetime = 900;
     }
     $_SESSION['confirmid'] = $confirmid;
     $_SESSION['values'] = $values;
     session_write_close();
     if ((int) $shortpost['idperm']) {
         $header = $this->getpermheader($shortpost);
         return $header . $this->confirm($confirmid);
     }
     return $this->confirm($confirmid);
 }
Пример #5
0
 public function reguser($email, $name)
 {
     $email = strtolower(trim($email));
     if (!tcontentfilter::ValidateEmail($email)) {
         return $this->error(tlocal::get('comment', 'invalidemail'));
     }
     if (substr_count($email, '.', 0, strpos($email, '@')) > 2) {
         return $this->error(tlocal::get('comment', 'invalidemail'));
     }
     $users = tusers::i();
     if ($id = $users->emailexists($email)) {
         if ('comuser' != $users->getvalue($id, 'status')) {
             return $this->error(tlocal::i()->invalidregdata);
         }
     }
     tsession::start('reguser-' . md5(litepublisher::$options->hash($email)));
     $_SESSION['email'] = $email;
     $_SESSION['name'] = $name;
     $confirm = md5rand();
     $_SESSION['confirm'] = $confirm;
     $password = md5uniq();
     $_SESSION['password'] = $password;
     $_SESSION['backurl'] = isset($_GET['backurl']) ? $_GET['backurl'] : '';
     session_write_close();
     $args = new targs();
     $args->name = $name;
     $args->email = $email;
     $args->confirm = $confirm;
     $args->password = $password;
     $args->confirmurl = litepublisher::$site->url . '/admin/reguser/' . litepublisher::$site->q . 'email=' . urlencode($email);
     tlocal::usefile('mail');
     $lang = tlocal::i('mailusers');
     $theme = ttheme::i();
     $subject = $theme->parsearg($lang->subject, $args);
     $body = $theme->parsearg($lang->body, $args);
     tmailer::sendmail(litepublisher::$site->name, litepublisher::$options->fromemail, $name, $email, $subject, $body);
     return true;
 }
Пример #6
0
 public function start_session()
 {
     tsession::init(1);
     session_start();
     $this->session_id = session_id();
 }
Пример #7
0
 public static function confirm_restore($email, $password)
 {
     tsession::start('password-restore-' . md5(litepublisher::$options->hash($email)));
     if (!isset($_SESSION['email']) || $email != $_SESSION['email'] || $password != $_SESSION['password']) {
         if (isset($_SESSION['email'])) {
             session_write_close();
         } else {
             session_destroy();
         }
         return false;
     }
     session_destroy();
     if ($email == strtolower(trim(litepublisher::$options->email))) {
         litepublisher::$options->changepassword($password);
         return 1;
     } else {
         $users = tusers::i();
         if ($id = $users->emailexists($email)) {
             $users->changepassword($id, $password);
         }
         return $id;
     }
 }