# filter for reading time
$filter = new Twig_SimpleFilter('getReadingTime', 'Tools::getReadingTime');
$this->tpl->addFilter($filter);
-
- # filter for simple filenames in config view
- $filter = new Twig_SimpleFilter('getPrettyFilename', function($string) { return str_replace(ROOT, '', $string); });
- $this->tpl->addFilter($filter);
}
private function install()
{
case 'add':
$content = $this->getPageContent($url);
- $title = $content['rss']['channel']['item']['title'];
+ $title = ($content['rss']['channel']['item']['title'] != '') ? $content['rss']['channel']['item']['title'] : _('Untitled');
$body = $content['rss']['channel']['item']['description'];
if ($this->store->add($url->getUrl(), $title, $body, $this->user->getId())) {
switch ($view)
{
case 'config':
- $dev = $this->getPocheVersion('dev');
- $prod = $this->getPocheVersion('prod');
+ $dev = trim($this->getPocheVersion('dev'));
+ $prod = trim($this->getPocheVersion('prod'));
$compare_dev = version_compare(POCHE, $dev);
$compare_prod = version_compare(POCHE, $prod);
$themes = $this->getInstalledThemes();
if (count($entries) > 0) {
$this->pagination->set_total(count($entries));
- $page_links = $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&');
+ $page_links = str_replace(array('previous', 'next'), array(_('previous'), _('next')),
+ $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&'));
$datas = $this->store->getEntriesByView($view, $this->user->getId(), $this->pagination->get_limit());
$tpl_vars['entries'] = $datas;
$tpl_vars['page_links'] = $page_links;
*/
private function credentials() {
if(isset($_SERVER['PHP_AUTH_USER'])) {
- return array($_SERVER['PHP_AUTH_USER'],'php_auth');
+ return array($_SERVER['PHP_AUTH_USER'],'php_auth',true);
}
if(!empty($_POST['login']) && !empty($_POST['password'])) {
- return array($_POST['login'],$_POST['password']);
+ return array($_POST['login'],$_POST['password'],false);
}
if(isset($_SERVER['REMOTE_USER'])) {
- return array($_SERVER['REMOTE_USER'],'http_auth');
+ return array($_SERVER['REMOTE_USER'],'http_auth',true);
}
- return array(false,false);
- }
+ return array(false,false,false);
+ }
/**
* checks if login & password are correct and save the user in session.
*/
public function login($referer)
{
- list($login,$password)=$this->credentials();
+ list($login,$password,$isauthenticated)=$this->credentials();
if($login === false || $password === false) {
$this->messages->add('e', _('login failed: you have to fill all fields'));
Tools::logm('login failed');
Tools::redirect();
}
if (!empty($login) && !empty($password)) {
- $user = $this->store->login($login, Tools::encodeString($password . $login));
+ $user = $this->store->login($login, Tools::encodeString($password . $login), $isauthenticated);
if ($user != array()) {
# Save login into Session
- $longlastingsession = isset($_POST['longlastingsession']);
- Session::login($user['username'], $user['password'], $login, Tools::encodeString($password . $login), $longlastingsession, array('poche_user' => new User($user)));
- $this->messages->add('s', _('welcome to your poche'));
+ $longlastingsession = isset($_POST['longlastingsession']);
+ $passwordTest = ($isauthenticated) ? $user['password'] : Tools::encodeString($password . $login);
+ Session::login($user['username'], $user['password'], $login, $passwordTest, $longlastingsession, array('poche_user' => new User($user)));
+ $this->messages->add('s', _('welcome to your wallabag'));
Tools::logm('login successful');
Tools::redirect($referer);
}
{
$this->user = array();
Session::logout();
- $this->messages->add('s', _('see you soon!'));
Tools::logm('logout');
Tools::redirect();
}
$token = substr(base64_encode(uniqid(mt_rand(), true)), 0, 20);
}
+ $token = str_replace('+', '', $token);
$this->store->updateUserConfig($this->user->getId(), 'token', $token);
$currentConfig = $_SESSION['poche_user']->config;
$currentConfig['token'] = $token;