/**
* Lite Publisher
* Copyright (C) 2010 - 2013 Vladimir Yushko http://litepublisher.ru/ http://litepublisher.com/
* Dual licensed under the MIT (mit.txt)
* and GPL (gpl.txt) licenses.
**/
function tusernewsInstall($self)
{
    $name = basename(dirname(__FILE__));
    $self->data['dir'] = $name;
    $self->save();
    tlocalmerger::i()->addplugin($name);
    $filter = tcontentfilter::i();
    $filter->phpcode = true;
    $filter->save();
    litepublisher::$options->parsepost = false;
    litepublisher::$options->reguser = true;
    $adminoptions = tadminoptions::i();
    $adminoptions->usersenabled = true;
    $groups = tusergroups::i();
    $groups->defaults = array($groups->getidgroup('author'));
    $groups->save();
    $rights = tauthor_rights::i();
    $rights->lock();
    $rights->gethead = $self->gethead;
    $rights->getposteditor = $self->getposteditor;
    $rights->editpost = $self->editpost;
    $rights->changeposts = $self->changeposts;
    $rights->canupload = $self->canupload;
    $rights->candeletefile = $self->candeletefile;
    $rights->unlock();
}
 public function processform()
 {
     $groups = tusergroups::i();
     switch ($this->action) {
         case 'add':
             $groups->lock();
             $id = $groups->add($_POST['name'], $_POST['title'], $_POST['home']);
             $groups->items[$id]['parents'] = tadminhtml::check2array('idgroup-');
             $groups->unlock();
             $_POST['id'] = $id;
             $_GET['id'] = $id;
             $_GET['action'] = 'edit';
             break;
         case 'edit':
             $id = $this->idget();
             if ($groups->itemexists($id)) {
                 foreach (array('name', 'title', 'home') as $name) {
                     $groups->items[$id][$name] = $_POST[$name];
                 }
                 $groups->items[$id]['parents'] = tadminhtml::check2array('idgroup-');
                 $groups->save();
             }
             break;
     }
 }
 public function processform()
 {
     $pages = tuserpages::i();
     $pages->createpage = isset($_POST['createpage']);
     $pages->lite = isset($_POST['lite']);
     $pages->save();
     $groups = tusergroups::i();
     $groups->defaults = tadminhtml::check2array('idgroup-');
     $groups->defaulthome = trim($_POST['defaulthome']);
     $groups->save();
     $linkgen = tlinkgenerator::i();
     $linkgen->data['user'] = $_POST['linkschema'];
     $linkgen->save();
 }
 public function request($id)
 {
     if ($s = tguard::checkattack()) {
         return $s;
     }
     if (!litepublisher::$options->user) {
         return litepublisher::$urlmap->redir('/admin/login/' . litepublisher::$site->q . 'backurl=' . urlencode(litepublisher::$urlmap->url));
     }
     if (!litepublisher::$options->hasgroup('editor')) {
         $url = tusergroups::i()->gethome(litepublisher::$options->group);
         return litepublisher::$urlmap->redir($url);
     }
     tlocal::usefile('admin');
 }
 public function getcontent()
 {
     $result = '';
     $html = $this->html;
     $lang = tlocal::admin('users');
     if ($this->logged) {
         return $html->h4red($lang->logged . ' ' . $html->getlink('/admin/', $lang->adminpanel));
     }
     $args = new targs();
     if ($this->regstatus) {
         switch ($this->regstatus) {
             case 'ok':
                 $backurl = $this->backurl;
                 if (!$backurl) {
                     $backurl = tusergroups::i()->gethome(litepublisher::$options->group);
                 }
                 if (!strbegin($backurl, 'http://')) {
                     $backurl = litepublisher::$site->url . $backurl;
                 }
                 return $html->h4($lang->successreg . ' ' . $html->getlink($backurl, $lang->continue));
             case 'mail':
                 return $html->h4->waitconfirm;
             case 'error':
                 $result .= $html->h4->invalidregdata;
         }
     }
     $form = '';
     foreach (array('email', 'name') as $name) {
         $args->{$name} = isset($_POST[$name]) ? $_POST[$name] : '';
         $form .= "[text={$name}]";
     }
     $lang = tlocal::i('users');
     $args->formtitle = $lang->regform;
     $args->data['$lang.email'] = 'email';
     $result .= $this->widget;
     if (isset($_GET['backurl'])) {
         //normalize
         $result = str_replace('&backurl=', '&backurl=', $result);
         $result = str_replace('backurl=', 'backurl=' . urlencode($_GET['backurl']), $result);
         $result = str_replace('backurl%3D', 'backurl%3D' . urlencode(urlencode($_GET['backurl'])), $result);
     }
     $result .= $html->adminform($form, $args);
     $result = str_replace(' action=""', ' action="' . litepublisher::$site->url . '/admin/reguser/"', $result);
     $this->callevent('oncontent', array(&$result));
     return $result;
 }
Example #6
0
 public function request($arg)
 {
     $this->cache = false;
     Header('Cache-Control: no-cache, must-revalidate');
     Header('Pragma: no-cache');
     $token = isset($_POST['token']) ? $_POST['token'] : (isset($_GET['token']) ? $_GET['token'] : '');
     if (!$token) {
         //try fix ulogin bug double symbol ?
         $uri = $_SERVER['REQUEST_URI'];
         if (substr_count($uri, '?') <= 1) {
             return 403;
         }
         $q = substr($uri, strpos($uri, '?') + 1);
         $q = str_replace('?', '&', $q);
         parse_str($q, $_GET);
         $token = isset($_GET['token']) ? $_GET['token'] : '';
         if (!$token) {
             return 403;
         }
     }
     if (!($cookies = $this->auth($token))) {
         return 403;
     }
     if (!empty($_GET['backurl'])) {
         $backurl = $_GET['backurl'];
     } elseif (!empty($_COOKIE['backurl'])) {
         $backurl = $_COOKIE['backurl'];
     } else {
         $user = tusers::i()->getitem($cookies['id']);
         $backurl = tusergroups::i()->gethome($user['idgroups'][0]);
     }
     if (!(int) tusers::i()->db->getvalue($cookies['id'], 'phone')) {
         if ($url = $this->onphone($backurl)) {
             return litepublisher::$urlmap->redir($url);
         }
     }
     setcookie('backurl', '', 0, litepublisher::$site->subdir, false);
     return litepublisher::$urlmap->redir($backurl);
 }
Example #7
0
 public function updategroup()
 {
     if ($this->_user == 1) {
         $this->group = 'admin';
         $this->idgroups = array(1);
     } else {
         $user = tusers::i()->getitem($this->_user);
         $this->idgroups = $user['idgroups'];
         $this->group = count($this->idgroups) ? tusergroups::i()->items[$this->idgroups[0]]['name'] : '';
     }
 }
 public function processform()
 {
     $users = tusers::i();
     $groups = tusergroups::i();
     if (isset($_POST['delete'])) {
         foreach ($_POST as $key => $value) {
             if (!is_numeric($value)) {
                 continue;
             }
             $id = (int) $value;
             $users->delete($id);
             //if (litepublisher::$classes->exists('tregservices')) $users->getdb('
         }
         return;
     }
     switch ($this->action) {
         case 'add':
             $_POST['idgroups'] = tadminhtml::check2array('idgroup-');
             if ($id = $users->add($_POST)) {
                 litepublisher::$urlmap->redir("{$this->adminurl}={$id}&action=edit");
             } else {
                 return $this->html->h4red->invalidregdata;
             }
             break;
         case 'edit':
             $id = $this->idget();
             if (!$users->itemexists($id)) {
                 return;
             }
             $_POST['idgroups'] = tadminhtml::check2array('idgroup-');
             if (!$users->edit($id, $_POST)) {
                 return $this->notfound;
             }
             if ($id == 1) {
                 litepublisher::$site->author = $_POST['name'];
                 //litepublisher::$site->email = $_POST['email'];
             }
             break;
     }
 }
Example #9
0
 public function cleangroup($v)
 {
     if (is_string($v)) {
         $v = trim($v);
     }
     if (is_numeric($v)) {
         $id = (int) $v;
         if (tusergroups::i()->itemexists($id)) {
             return $id;
         }
     } else {
         return tusergroups::i()->getidgroup($v);
     }
     return false;
 }
Example #10
0
 public function getgroupname($id)
 {
     $item = $this->getitem($id);
     $groups = tusergroups::i();
     return $groups->items[$item['idgroups'][0]]['name'];
 }
Example #11
0
 public static function auth($group)
 {
     if ($s = tguard::checkattack()) {
         return $s;
     }
     if (!litepublisher::$options->user) {
         turlmap::nocache();
         return litepublisher::$urlmap->redir('/admin/login/' . litepublisher::$site->q . 'backurl=' . urlencode(litepublisher::$urlmap->url));
     }
     if (!litepublisher::$options->hasgroup($group)) {
         $url = tusergroups::i()->gethome(litepublisher::$options->group);
         turlmap::nocache();
         return litepublisher::$urlmap->redir($url);
     }
 }
/**
* Lite Publisher
* Copyright (C) 2010 - 2013 Vladimir Yushko http://litepublisher.ru/ http://litepublisher.com/
* Dual licensed under the MIT (mit.txt)
* and GPL (gpl.txt) licenses.
**/
function tticketsInstall($self)
{
    if (version_compare(PHP_VERSION, '5.3', '<')) {
        die('Ticket system requires PHP 5.3 or later. You are using PHP ' . PHP_VERSION);
    }
    $dirname = basename(dirname(__FILE__));
    $l = tlocalmerger::i();
    $l->lock();
    $l->add('default', "plugins/{$dirname}/resource/" . litepublisher::$options->language . ".ini");
    $l->add('mail', "plugins/{$dirname}/resource/" . litepublisher::$options->language . ".mail.ini");
    $l->unlock();
    tadminhtml::i()->inidir(dirname(__FILE__) . '/resource/');
    $lang = tlocal::admin('tickets');
    $lang->addsearch('ticket', 'tickets');
    $self->data['cats'] = array();
    $self->data['idcomauthor'] = tusers::i()->add(array('email' => '', 'name' => tlocal::get('ticket', 'comname'), 'status' => 'approved', 'idgroups' => 'commentator'));
    $self->save();
    $dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'resource' . DIRECTORY_SEPARATOR;
    $filter = tcontentfilter::i();
    $filter->phpcode = true;
    $filter->save();
    litepublisher::$options->parsepost = false;
    $manager = tdbmanager::i();
    $manager->CreateTable($self->childtable, file_get_contents($dir . 'ticket.sql'));
    $manager->addenum('posts', 'class', 'tticket');
    $optimizer = tdboptimizer::i();
    $optimizer->lock();
    $optimizer->childtables[] = 'tickets';
    $optimizer->addevent('postsdeleted', 'ttickets', 'postsdeleted');
    $optimizer->unlock();
    litepublisher::$classes->lock();
    //install polls if its needed
    $plugins = tplugins::i();
    if (!isset($plugins->items['polls'])) {
        $plugins->add('polls');
    }
    litepublisher::$classes->Add('tticket', 'ticket.class.php', $dirname);
    //litepublisher::$classes->Add('tticketsmenu', 'tickets.menu.class.php', $dirname);
    litepublisher::$classes->Add('tticketeditor', 'admin.ticketeditor.class.php', $dirname);
    litepublisher::$classes->Add('tadmintickets', 'admin.tickets.class.php', $dirname);
    litepublisher::$classes->Add('tadminticketoptions', 'admin.tickets.options.php', $dirname);
    litepublisher::$options->reguser = true;
    $adminoptions = tadminoptions::i();
    $adminoptions->usersenabled = true;
    $adminmenus = tadminmenus::i();
    $adminmenus->lock();
    $parent = $adminmenus->createitem(0, 'tickets', 'ticket', 'tadmintickets');
    $adminmenus->items[$parent]['title'] = tlocal::get('tickets', 'tickets');
    $idmenu = $adminmenus->createitem($parent, 'editor', 'ticket', 'tticketeditor');
    $adminmenus->items[$idmenu]['title'] = tlocal::get('tickets', 'editortitle');
    $idmenu = $adminmenus->createitem($parent, 'opened', 'ticket', 'tadmintickets');
    $adminmenus->items[$idmenu]['title'] = tlocal::get('ticket', 'opened');
    $idmenu = $adminmenus->createitem($parent, 'fixed', 'ticket', 'tadmintickets');
    $adminmenus->items[$idmenu]['title'] = tlocal::get('ticket', 'fixed');
    $idmenu = $adminmenus->createitem($parent, 'options', 'admin', 'tadminticketoptions');
    $adminmenus->items[$idmenu]['title'] = tlocal::i()->options;
    $adminmenus->onexclude = $self->onexclude;
    $adminmenus->unlock();
    /*
    $menus = tmenus::i();
    $menus->lock();
    $ini = parse_ini_file($dir . litepublisher::$options->language . '.install.ini', false);
    
    $menu = tticketsmenu::i();
    $menu->type = 'tickets';
    $menu->url = '/tickets/';
    $menu->title = $ini['tickets'];
    $menu->content = $ini['contenttickets'];
    $id = $menus->add($menu);
    
    foreach (array('bug', 'feature', 'support', 'task') as $type) {
      $menu = tticketsmenu::i();
      $menu->type = $type;
      $menu->parent = $id;
      $menu->url = "/$type/";
      $menu->title = $ini[$type];
      $menu->content = '';
      $menus->add($menu);
    }
    $menus->unlock();
    */
    litepublisher::$classes->unlock();
    $linkgen = tlinkgenerator::i();
    $linkgen->data['ticket'] = '/tickets/[title].htm';
    $linkgen->save();
    $groups = tusergroups::i();
    $groups->lock();
    $idticket = $groups->add('ticket', 'Tickets', '/admin/tickets/editor/');
    $groups->defaults = array($idticket, $groups->getidgroup('author'));
    $groups->items[litepublisher::$options->groupnames['author']]['parents'][] = $idticket;
    $groups->items[litepublisher::$options->groupnames['commentator']]['parents'][] = $idticket;
    $groups->unlock();
}
Example #13
0
 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 request($arg)
 {
     if ($arg == 'out') {
         return $this->logout($arg);
     }
     parent::request($arg);
     $this->section = 'login';
     if (!isset($_POST['email']) || !isset($_POST['password'])) {
         return turlmap::nocache();
     }
     $email = trim($_POST['email']);
     $password = trim($_POST['password']);
     if ($mesg = self::autherror($email, $password)) {
         $this->formresult = $this->html->h4red($mesg);
         return turlmap::nocache();
     }
     $expired = isset($_POST['remember']) ? time() + 31536000 : time() + 8 * 3600;
     $cookie = md5uniq();
     litepublisher::$options->setcookies($cookie, $expired);
     litepublisher::$options->setcookie('litepubl_regservice', 'email', $expired);
     $url = !empty($_GET['backurl']) ? $_GET['backurl'] : (!empty($_GET['amp;backurl']) ? $_GET['amp;backurl'] : (isset($_COOKIE['backurl']) ? $_COOKIE['backurl'] : ''));
     if ($url && strbegin($url, litepublisher::$site->url)) {
         $url = substr($url, strlen(litepublisher::$site->url));
     }
     if ($url && (strbegin($url, '/admin/login/') || strbegin($url, '/admin/password/'))) {
         $url = false;
     }
     if (!$url) {
         $url = '/admin/';
         if (litepublisher::$options->group != 'admin') {
             $groups = tusergroups::i();
             $url = $groups->gethome(litepublisher::$options->group);
         }
     }
     litepublisher::$options->setcookie('backurl', '', 0);
     turlmap::nocache();
     return litepublisher::$urlmap->redir($url);
 }