function tregservicesUninstall($self) { $name = basename(dirname(__FILE__)); tcommentform::i()->unbind($self); turlmap::unsub($self); foreach ($self->items as $id => $classname) { litepublisher::$classes->delete($classname); } litepublisher::$classes->delete('tregserviceuser'); litepublisher::$classes->delete('toauth'); tfiler::delete(litepublisher::$paths->data . 'regservices', true, true); tusers::i()->unbind('tregserviceuser'); tdbmanager::i()->deletetable('regservices'); $css = tcssmerger::i(); $css->deletestyle("/plugins/{$name}/regservices.min.css"); }
public function oncomuser(array $values, $comfirmed) { //ignore $comfirmed, always return redirect $form = tcommentform::i(); if ($err = $form->processcomuser($values)) { return $err; } $email = strtolower(trim($values['email'])); $host = substr($email, strpos($email, '@') + 1); switch ($host) { case 'gmail.com': $name = 'google'; break; case 'yandex.ru': $name = 'yandex'; break; case 'mail.ru': case 'inbox.ru': case 'list.ru': case 'bk.ru': $name = 'mailru'; break; default: return false; } if (!isset($this->items[$name])) { return false; } $service = getinstance($this->items[$name]); if (!$service->valid) { return false; } $service->sessdata['comuser'] = $values; $url = $service->getauthurl(); if (!$url) { return false; } return $form->sendresult($url, array(ini_get('session.name') => $service->session_id)); }
public function adduser(array $item, $rawdata) { $users = tusers::i(); $reguser = tregserviceuser::i(); if (!empty($item['email'])) { if ($id = $users->emailexists($item['email'])) { $user = $users->getitem($id); if ($user['status'] == 'comuser') { $users->approve($id); } } elseif (litepublisher::$options->reguser) { $id = $users->add(array('email' => $item['email'], 'name' => $item['name'], 'website' => isset($item['website']) ? tcontentfilter::clean_website($item['website']) : '')); if (isset($item['uid'])) { $uid = $item['uid']; if (strlen($uid) >= 22) { $uid = basemd5($uid); } $reguser->add($id, $this->name, $uid); } } else { //registration disabled return 403; } } else { $uid = !empty($item['uid']) ? $item['uid'] : (!empty($item['website']) ? $item['website'] : ''); if ($uid) { if (strlen($uid) >= 22) { $uid = basemd5($uid); } if ($id = $reguser->find($this->name, $uid)) { //nothing } elseif (litepublisher::$options->reguser) { $id = $users->add(array('email' => '', 'name' => $item['name'], 'website' => isset($item['website']) ? tcontentfilter::clean_website($item['website']) : '')); $users->approve($id); $reguser->add($id, $this->name, $uid); } else { //registration disabled return 403; } } else { //nothing found and hasnt email or uid return 403; } } $expired = time() + 31536000; $cookie = md5uniq(); litepublisher::$options->user = $id; litepublisher::$options->updategroup(); litepublisher::$options->setcookies($cookie, $expired); if (litepublisher::$options->ingroup('admin')) { setcookie('litepubl_user_flag', 'true', $expired, litepublisher::$site->subdir . '/', false); } setcookie('litepubl_regservice', $this->name, $expired, litepublisher::$site->subdir . '/', false); $this->onadd($id, $rawdata); if (isset($this->sessdata['comuser'])) { return tcommentform::i()->processform($this->sessdata['comuser'], true); } if (!empty($_COOKIE['backurl'])) { $backurl = $_COOKIE['backurl']; } else { $user = $users->getitem($id); $backurl = tusergroups::i()->gethome($user['idgroups'][0]); } return litepublisher::$urlmap->redir($backurl); }
public function comment_add(array $args) { if (litepublisher::$options->commentsdisabled) { return array('error' => array('message' => 'Comments disabled', 'code' => 403)); } $commentform = tcommentform::i(); $commentform->helper = $this; return $commentform->dorequest($args); }