====== Tiny Tiny RSS ====== Tiny Tiny RSS est un lecteur de flux (RSS, RDS, Atom) écrit en PHP. Il s'installe donc sur un serveur central, et permet aux utilisateurs de suivre leurs flux depuis n'importe où. Tiny Tiny RSS (ou tt-rss) dispose d'une interface web riche (utilisation intensive d'AJAX), et s'utilise comme la plupart des lecteurs de flux "lourd" (installés sur les postes). Site du projet: http://tt-rss.org/redmine/wiki/tt-rss/ ===== Informations ===== Le rpms pour tt-rss présent dans notre dépôt contient les patches suivants: diff -Nur -x '*.orig' -x '*.rej' tt-rss-1.5.0/config.php-dist mezzanine_patched_tt-rss-1.5.0/config.php-dist --- tt-rss-1.5.0/config.php-dist 2010-12-21 07:30:28.000000000 +0100 +++ mezzanine_patched_tt-rss-1.5.0/config.php-dist 2011-01-03 12:39:21.000000000 +0100 @@ -135,6 +135,11 @@ // option can be used to integrate tt-rss with Apache's external // authentication modules. + define('AUTO_CREATE_USER',true); + // If users are authenticated by your web server, set this to true if + // You want new users to be automaticaly created in tt-rss database + // on first login + define('LOCK_DIRECTORY', 'lock'); // Directory for lockfiles, must be writable to the user you run // daemon process or cronjobs under. diff -Nur -x '*.orig' -x '*.rej' tt-rss-1.5.0/functions.php mezzanine_patched_tt-rss-1.5.0/functions.php --- tt-rss-1.5.0/functions.php 2011-01-03 12:41:23.000000000 +0100 +++ mezzanine_patched_tt-rss-1.5.0/functions.php 2011-01-03 12:41:15.000000000 +0100 @@ -1812,6 +1812,18 @@ FROM ttrss_users WHERE login = '$login'"; + if (defined('AUTO_CREATE_USER') && AUTO_CREATE_USER + && $_SERVER["REMOTE_USER"]) { + $result = db_query($link, $query); + // First login ? + if (db_num_rows($result) == 0) { + $insert = "INSERT INTO ttrss_users + (login,access_level,last_login,created) + VALUES ('$login', 0, null, NOW())"; + db_query($link, $insert); + } + } + } else { $query = "SELECT id,login,access_level,pwd_hash FROM ttrss_users WHERE @@ -1828,7 +1840,23 @@ db_query($link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . $_SESSION["uid"]); - + + // LemonLDAP can send user informations via HTTP HEADER + if (defined('AUTO_CREATE_USER') && AUTO_CREATE_USER){ + // update user name + if ($_SERVER['HTTP_USER_NAME']){ + $fullname = db_escape_string($_SERVER['HTTP_USER_NAME']); + db_query($link, "UPDATE ttrss_users SET full_name = '$fullname' WHERE id = " . + $_SESSION["uid"]); + } + // update user mail + if ($_SERVER['HTTP_USER_MAIL']){ + $email = db_escape_string($_SERVER['HTTP_USER_MAIL']); + db_query($link, "UPDATE ttrss_users SET email = '$email' WHERE id = " . + $_SESSION["uid"]); + } + } + $_SESSION["ip_address"] = $_SERVER["REMOTE_ADDR"]; $_SESSION["pwd_hash"] = db_fetch_result($result, 0, "pwd_hash"); diff -Nur -x '*.orig' -x '*.rej' tt-rss-1.5.0/functions.php mezzanine_patched_tt-rss-1.5.0/functions.php --- tt-rss-1.5.0/functions.php 2010-12-21 07:30:28.000000000 +0100 +++ mezzanine_patched_tt-rss-1.5.0/functions.php 2011-01-03 12:35:36.000000000 +0100 @@ -1804,7 +1804,7 @@ $login = db_escape_string($login); if (defined('ALLOW_REMOTE_USER_AUTH') && ALLOW_REMOTE_USER_AUTH - && $_SERVER["REMOTE_USER"] && $login != "admin") { + && $_SERVER["REMOTE_USER"]) { $login = db_escape_string($_SERVER["REMOTE_USER"]); diff -Nur -x '*.orig' -x '*.rej' tt-rss-1.5.0/config.php-dist mezzanine_patched_tt-rss-1.5.0/config.php-dist --- tt-rss-1.5.0/config.php-dist 2011-01-03 12:44:20.000000000 +0100 +++ mezzanine_patched_tt-rss-1.5.0/config.php-dist 2011-01-03 12:44:11.000000000 +0100 @@ -140,6 +140,11 @@ // You want new users to be automaticaly created in tt-rss database // on first login + define('AUTO_LOGIN',true); + // Set this to true if you use ALLOW_REMOTE_USER_AUTH and you want + // to skip the login form. If set to true, users won't be able to select + // profile + define('LOCK_DIRECTORY', 'lock'); // Directory for lockfiles, must be writable to the user you run // daemon process or cronjobs under. diff -Nur -x '*.orig' -x '*.rej' tt-rss-1.5.0/functions.php mezzanine_patched_tt-rss-1.5.0/functions.php --- tt-rss-1.5.0/functions.php 2011-01-03 12:44:20.000000000 +0100 +++ mezzanine_patched_tt-rss-1.5.0/functions.php 2011-01-03 12:43:44.000000000 +0100 @@ -2019,9 +2019,15 @@ } if (!$_SESSION["uid"] || !validate_session($link)) { - render_login_form($link, $mobile); - //header("Location: login.php"); - exit; + if (defined('ALLOW_REMOTE_USER_AUTH') && ALLOW_REMOTE_USER_AUTH + && $_SERVER["REMOTE_USER"] && defined('AUTO_LOGIN') && AUTO_LOGIN) { + authenticate_user($link,$_SERVER['REMOTE_USER'],null); + $_SESSION["ref_schema_version"] = get_schema_version($link, true); + } else { + render_login_form($link, $mobile); + //header("Location: login.php"); + exit; + } } else { /* bump login timestamp */ db_query($link, "UPDATE ttrss_users SET last_login = NOW() WHERE id = " . ===== Installation ===== ==== iPasserelle ==== yum --enbalerepo=fws install smeserver-tt-rss Une fois l'installation terminée, il suffit de lancer la commande: signal-event webapps-update === Configuration === tt-rss dispose de certaines options accessibles dans la DB configuration: * status (enabled|disabled). Active ou désactive l'accès web, ainsi que le démon de mise à jour * access (public|private). Par défaut en private, ne donne l'accès qu'aux réseaux locaux, ainsi qu'aux adresse IP autorisées à accéder au server-manager ($localAccess $externalSSLAccess) * MultiUser (enabled|disabled). Active ou désactive le support multi-utilisateurs de tt-rss. Il est vivement conseillé de laisser cette valeur à enabled * Authentication (http|internal|LemonLDAP): Défini le type d'authentification pour accéder à tt-rss. Par défaut, (http), tt-rss est protégé par une authentification basic, tout les comptes systèmes sont autorisés à y accéder. L'authentification internal permet d'utiliser la base de donnée rssdb pour y stocker les comptes utilisateurs (il faut alors se loguer avec admin/password, et créer manuellement les comptes que l'on souhaite avoir). Enfin, l'authentification LemonLDAP permet d'intégrer tt-rss avec le portail d'authentification LemonLDAP::NG * AliasOnPrimary (enabled|disabled): Par défaut, vaut enabled. Si disabled, alors l'alias /tt-rss ne sera pas ajouté au domaine primaire. Il faudra définir un domaine virtuel pointant vers /usr/share/tt-rss pour accéder à l'application === Accès via un domaine virtuel === Pour accéder à tt-rss via un domaine virtuel, il suffit de le créer: db domains set rss.$(db configuration get DomainName) domain Content Primary \ DocumentRoot /usr/share/tt-rss Description 'Rss Reader' \ Nameserver internet TemplatePath WebAppVirtualHost signal-event domain-create rss.$(db configuration get DomainName) ==== CentOS ==== yum --enbalerepo=fws install tt-rss ===== Support LemonLDAP ===== Pour intégrer tt-rss sur un portail LemonLDAP::NG, il faut d'abord créer un domaine virtuel, puis, désactiver l'alias /tt-rss du domaine primaire (afin que le seul accès à l’application se fasse au travers du domaine virtuel dédié). Sur une iPasserelle, vous pouvez le faire avec ces commandes db domains setprop rss.$(db configuration get DomainName) LemonLDAP enabled db configuration setprop tt-rss Authentication LemonLDAP AliasOnPrimary disabled signal-event webapps-update Pour les autres systèmes, il faudra éditer la configuration apache (/etc/httpd/conf.d/tt-rss.conf) Il faut maintenant déclarer le virtualhost dans le manager de LemonLDAP, et créer (par exemple) ces deux règles: * Commentaire: 01logout * Expression: ^/backend\.php\?op=logout * Règle: logout_app * Expression: default * Règle: $groups =~ /\bequipe\b/ Il faut également créer les entêtes HTTP suivantes: * User-Mail => $mail * User-Name => $cn