From f5fbc0c7f08efd616a4d24985916d88a846d1723 Mon Sep 17 00:00:00 2001 From: koocotte Date: Wed, 31 Jul 2019 13:48:06 +0200 Subject: Patch for #2460: Run on Apache 2.4+ without mod_access_compat (#2461) * Update .htaccess * Update htaccess for apache2.4 * Update htaccess for apache2.4 * Update htaccess for apache2.4 --- data/.htaccess | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'data') diff --git a/data/.htaccess b/data/.htaccess index 9e768397d..32eca30f7 100644 --- a/data/.htaccess +++ b/data/.htaccess @@ -1,3 +1,11 @@ -Order Allow,Deny -Deny from all -Satisfy all +# Apache 2.2 + + Order Allow,Deny + Deny from all + Satisfy all + + +# Apache 2.4 + + Require all denied + -- cgit v1.2.3 From 80590daeb3627e5712be15fdc4bd98f0e2c40ea5 Mon Sep 17 00:00:00 2001 From: Joris Kinable Date: Mon, 16 Sep 2019 21:18:42 +0200 Subject: Configure user defaults (#2490) * new users inherit defaults from config-user.php * installer creates ./data/config-user.php * fixed typo * .gitignore fix * fixed style issues * Fixed comments * Update according to feedback - rename file into `data/config-user.custom.php` - make it optional (and so, don't copy it during installation) * fixup! Update according to feedback --- app/Controllers/userController.php | 17 ++++++++++++++--- config-user.default.php | 3 +++ data/.gitignore | 1 + 3 files changed, 18 insertions(+), 3 deletions(-) (limited to 'data') diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php index 96e4fec8c..69c1820e5 100644 --- a/app/Controllers/userController.php +++ b/app/Controllers/userController.php @@ -211,9 +211,20 @@ class FreshRSS_user_Controller extends Minz_ActionController { } } - public static function createUser($new_user_name, $email, $passwordPlain, $apiPasswordPlain, $userConfig = array(), $insertDefaultFeeds = true) { - if (!is_array($userConfig)) { - $userConfig = array(); + public static function createUser($new_user_name, $email, $passwordPlain, $apiPasswordPlain, $userConfigOverride = array(), $insertDefaultFeeds = true) { + $userConfig = array(); + + $customUserConfigPath = join_path(DATA_PATH, 'config-user.custom.php'); + if (file_exists($customUserConfigPath)) { + $customUserConfig = include($customUserConfigPath); + } + + if (is_array($customUserConfig)) { + $userConfig = $customUserConfig; + } + + if (is_array($userConfigOverride)) { + $userConfig = array_merge($userConfig, $userConfigOverride); } $ok = self::checkUsername($new_user_name); diff --git a/config-user.default.php b/config-user.default.php index d7149778d..950bef045 100644 --- a/config-user.default.php +++ b/config-user.default.php @@ -1,5 +1,8 @@ 'en', 'old_entries' => 3, diff --git a/data/.gitignore b/data/.gitignore index 0410f3797..1d2d8db89 100644 --- a/data/.gitignore +++ b/data/.gitignore @@ -1,6 +1,7 @@ .htpasswd config.php config.php.bak.php +config-user.custom.php force-https.txt last_update.txt no-cache.txt -- cgit v1.2.3 From a2ed6626c2f4e85878f775abcac897a1fd3a1f42 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Fri, 13 Sep 2019 17:33:18 +0200 Subject: Add support for terms of service This feature is optional. It is based on the presence of a `data/tos.html` file that an administrator can create. If this file exists, FreshRSS will automatically add a "ToS" checkbox on the registration page that users must check to be able to create their account. --- app/Controllers/authController.php | 1 + app/Controllers/indexController.php | 17 +++++++++++ app/Controllers/userController.php | 10 +++++++ app/i18n/cz/gen.php | 1 + app/i18n/cz/index.php | 3 ++ app/i18n/cz/user.php | 5 ++++ app/i18n/de/gen.php | 1 + app/i18n/de/index.php | 3 ++ app/i18n/de/user.php | 5 ++++ app/i18n/en/gen.php | 1 + app/i18n/en/index.php | 3 ++ app/i18n/en/user.php | 5 ++++ app/i18n/es/gen.php | 1 + app/i18n/es/index.php | 3 ++ app/i18n/es/user.php | 5 ++++ app/i18n/fr/gen.php | 1 + app/i18n/fr/index.php | 3 ++ app/i18n/fr/user.php | 5 ++++ app/i18n/he/gen.php | 1 + app/i18n/he/index.php | 3 ++ app/i18n/he/user.php | 5 ++++ app/i18n/it/gen.php | 1 + app/i18n/it/index.php | 3 ++ app/i18n/it/user.php | 5 ++++ app/i18n/kr/gen.php | 1 + app/i18n/kr/index.php | 3 ++ app/i18n/kr/user.php | 5 ++++ app/i18n/nl/gen.php | 1 + app/i18n/nl/index.php | 3 ++ app/i18n/nl/user.php | 5 ++++ app/i18n/oc/gen.php | 1 + app/i18n/oc/index.php | 3 ++ app/i18n/oc/user.php | 5 ++++ app/i18n/pt-br/gen.php | 1 + app/i18n/pt-br/index.php | 3 ++ app/i18n/pt-br/user.php | 5 ++++ app/i18n/ru/gen.php | 1 + app/i18n/ru/index.php | 3 ++ app/i18n/ru/user.php | 5 ++++ app/i18n/sk/gen.php | 1 + app/i18n/sk/index.php | 3 ++ app/i18n/sk/user.php | 37 ++++++++++++++++++++++++ app/i18n/tr/gen.php | 1 + app/i18n/tr/index.php | 3 ++ app/i18n/tr/user.php | 5 ++++ app/i18n/zh-cn/gen.php | 1 + app/i18n/zh-cn/index.php | 3 ++ app/i18n/zh-cn/user.php | 5 ++++ app/views/auth/register.phtml | 9 ++++++ app/views/index/tos.phtml | 13 +++++++++ data/.gitignore | 1 + data/tos.example.html | 56 +++++++++++++++++++++++++++++++++++++ 52 files changed, 274 insertions(+) create mode 100644 app/i18n/sk/user.php create mode 100644 app/views/index/tos.phtml create mode 100644 data/tos.example.html (limited to 'data') diff --git a/app/Controllers/authController.php b/app/Controllers/authController.php index a8b21b886..70adaa5d3 100644 --- a/app/Controllers/authController.php +++ b/app/Controllers/authController.php @@ -205,6 +205,7 @@ class FreshRSS_auth_Controller extends Minz_ActionController { Minz_Error::error(403); } + $this->view->show_tos_checkbox = file_exists(join_path(DATA_PATH, 'tos.html')); $this->view->show_email_field = FreshRSS_Context::$system_conf->force_email_validation; Minz_View::prependTitle(_t('gen.auth.registration.title') . ' · '); } diff --git a/app/Controllers/indexController.php b/app/Controllers/indexController.php index 4023492d2..2d791ce1d 100755 --- a/app/Controllers/indexController.php +++ b/app/Controllers/indexController.php @@ -259,6 +259,23 @@ class FreshRSS_index_Controller extends Minz_ActionController { Minz_View::prependTitle(_t('index.about.title') . ' · '); } + /** + * This action displays the EULA page of FreshRSS. + * This page is enabled only if admin created a data/tos.html file. + * The content of the page is the content of data/tos.html. + * It returns 404 if there is no EULA. + */ + public function tosAction() { + $terms_of_service = file_get_contents(join_path(DATA_PATH, 'tos.html')); + if (!$terms_of_service) { + Minz_Error::error(404); + } + + $this->view->terms_of_service = $terms_of_service; + $this->view->can_register = !max_registrations_reached(); + Minz_View::prependTitle(_t('index.tos.title') . ' · '); + } + /** * This action displays logs of FreshRSS for the current user. */ diff --git a/app/Controllers/userController.php b/app/Controllers/userController.php index 69c1820e5..ab8dfb0b2 100644 --- a/app/Controllers/userController.php +++ b/app/Controllers/userController.php @@ -281,6 +281,9 @@ class FreshRSS_user_Controller extends Minz_ActionController { $passwordPlain = Minz_Request::param('new_user_passwordPlain', '', true); $new_user_language = Minz_Request::param('new_user_language', FreshRSS_Context::$user_conf->language); + $tos_enabled = file_exists(join_path(DATA_PATH, 'tos.html')); + $accept_tos = Minz_Request::param('accept_tos', false); + if ($system_conf->force_email_validation && empty($email)) { Minz_Request::bad( _t('user.email.feedback.required'), @@ -295,6 +298,13 @@ class FreshRSS_user_Controller extends Minz_ActionController { ); } + if ($tos_enabled && !$accept_tos) { + Minz_Request::bad( + _t('user.tos.feedback.invalid'), + array('c' => 'auth', 'a' => 'register') + ); + } + $ok = self::createUser($new_user_name, $email, $passwordPlain, '', array('language' => $new_user_language)); Minz_Request::_param('new_user_passwordPlain'); //Discard plain-text password ASAP $_POST['new_user_passwordPlain'] = ''; diff --git a/app/i18n/cz/gen.php b/app/i18n/cz/gen.php index 78229afaa..c6dabd555 100644 --- a/app/i18n/cz/gen.php +++ b/app/i18n/cz/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Update', //TODO - Translation ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Email', 'keep_logged_in' => 'Zapamatovat přihlášení (%s dny)', 'login' => 'Login', diff --git a/app/i18n/cz/index.php b/app/i18n/cz/index.php index 00f424fe8..b20a75c79 100644 --- a/app/i18n/cz/index.php +++ b/app/i18n/cz/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Verze', 'website' => 'Webové stránka', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'Můžete přidat kanály.', 'empty' => 'Žádné články k zobrazení.', diff --git a/app/i18n/cz/user.php b/app/i18n/cz/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/cz/user.php +++ b/app/i18n/cz/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index a4108775d..6cc791d5e 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Aktualisieren', ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'E-Mail-Adresse', 'keep_logged_in' => 'Eingeloggt bleiben (%s Tage)', 'login' => 'Anmelden', diff --git a/app/i18n/de/index.php b/app/i18n/de/index.php index 10172e6f5..11fa370a3 100644 --- a/app/i18n/de/index.php +++ b/app/i18n/de/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Version', 'website' => 'Webseite', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'Sie können Feeds hinzufügen.', 'empty' => 'Es gibt keinen Artikel zum Anzeigen.', diff --git a/app/i18n/de/user.php b/app/i18n/de/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/de/user.php +++ b/app/i18n/de/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 8f1d8d19e..a6ddcbb60 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Update', ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', 'email' => 'Email address', 'keep_logged_in' => 'Keep me logged in (%s days)', 'login' => 'Login', diff --git a/app/i18n/en/index.php b/app/i18n/en/index.php index 46c415816..ea2c6620b 100644 --- a/app/i18n/en/index.php +++ b/app/i18n/en/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Version', 'website' => 'Website', ), + 'tos' => array( + 'title' => 'Terms of Service', + ), 'feed' => array( 'add' => 'You may add some feeds.', 'empty' => 'There is no article to show.', diff --git a/app/i18n/en/user.php b/app/i18n/en/user.php index 5b4cd4fcb..54d8dfa4d 100644 --- a/app/i18n/en/user.php +++ b/app/i18n/en/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php index b394d292e..4affecc51 100755 --- a/app/i18n/es/gen.php +++ b/app/i18n/es/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Update', //TODO - Translation ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Correo electrónico', 'keep_logged_in' => 'Mantenerme identificado (%s días)', 'login' => 'Conectar', diff --git a/app/i18n/es/index.php b/app/i18n/es/index.php index d7a42537b..5142ae1f5 100755 --- a/app/i18n/es/index.php +++ b/app/i18n/es/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Versión', 'website' => 'Web', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'Puedes añadir fuentes.', 'empty' => 'No hay artículos a mostrar.', diff --git a/app/i18n/es/user.php b/app/i18n/es/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/es/user.php +++ b/app/i18n/es/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 4c4070685..01b66d316 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Mettre à jour', ), 'auth' => array( + 'accept_tos' => 'Accepter les Conditions Générales d’Utilisation.', 'email' => 'Adresse courriel', 'keep_logged_in' => 'Rester connecté (%s jours)', 'login' => 'Connexion', diff --git a/app/i18n/fr/index.php b/app/i18n/fr/index.php index c9595e449..f8f451473 100644 --- a/app/i18n/fr/index.php +++ b/app/i18n/fr/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Version', 'website' => 'Site Internet', ), + 'tos' => array( + 'title' => 'Conditions Générales d’Utilisation', + ), 'feed' => array( 'add' => 'Vous pouvez ajouter des flux.', 'empty' => 'Il n’y a aucun article à afficher.', diff --git a/app/i18n/fr/user.php b/app/i18n/fr/user.php index 01d3ad1af..7b531c749 100644 --- a/app/i18n/fr/user.php +++ b/app/i18n/fr/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Validation de l’adresse email', ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'Vous devez accepter les conditions générales d’utilisation pour pouvoir vous inscrire.', + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'Vous devez valider votre compte', diff --git a/app/i18n/he/gen.php b/app/i18n/he/gen.php index 1aee24742..158f11e5b 100644 --- a/app/i18n/he/gen.php +++ b/app/i18n/he/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Update', //TODO - Translation ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Email address', //TODO - Translation 'keep_logged_in' => 'השאר מחובר חודש', 'login' => 'כניסה לחשבון', diff --git a/app/i18n/he/index.php b/app/i18n/he/index.php index e01a02773..b4b99e583 100644 --- a/app/i18n/he/index.php +++ b/app/i18n/he/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'גרסה', 'website' => 'אתר', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'ניתן להוסיף הזנות חדשות.', 'empty' => 'אין מאמר להצגה.', diff --git a/app/i18n/he/user.php b/app/i18n/he/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/he/user.php +++ b/app/i18n/he/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index 1d4fa4cdc..604cc6941 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Update', // TODO ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Indirizzo email', 'keep_logged_in' => 'Ricorda i dati (%s giorni)', 'login' => 'Accedi', diff --git a/app/i18n/it/index.php b/app/i18n/it/index.php index 8162b1639..b4f7bc8d7 100644 --- a/app/i18n/it/index.php +++ b/app/i18n/it/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Versione', 'website' => 'Sito', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'Aggiungi un Feed RSS', 'empty' => 'Non ci sono articoli da mostrare.', diff --git a/app/i18n/it/user.php b/app/i18n/it/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/it/user.php +++ b/app/i18n/it/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/kr/gen.php b/app/i18n/kr/gen.php index cd38bc9f8..55fea3d66 100644 --- a/app/i18n/kr/gen.php +++ b/app/i18n/kr/gen.php @@ -23,6 +23,7 @@ return array( 'update' => '변경', ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => '메일 주소', 'keep_logged_in' => '로그인 유지 (%s 일)', 'login' => '로그인', diff --git a/app/i18n/kr/index.php b/app/i18n/kr/index.php index bebc8bdec..cc8df32f6 100644 --- a/app/i18n/kr/index.php +++ b/app/i18n/kr/index.php @@ -15,6 +15,9 @@ return array( 'version' => '버전', 'website' => '웹사이트', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => '피드를 추가하세요.', 'empty' => '글이 없습니다.', diff --git a/app/i18n/kr/user.php b/app/i18n/kr/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/kr/user.php +++ b/app/i18n/kr/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 419d8b36c..0dcb3010a 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Updaten', ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Email adres', 'keep_logged_in' => 'Ingelogd blijven voor (%s dagen)', 'login' => 'Log in', diff --git a/app/i18n/nl/index.php b/app/i18n/nl/index.php index 5f71a180f..115e31b5d 100644 --- a/app/i18n/nl/index.php +++ b/app/i18n/nl/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Versie', 'website' => 'Website', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'U kunt wat feeds toevoegen.', 'empty' => 'Er is geen artikel om te laten zien.', diff --git a/app/i18n/nl/user.php b/app/i18n/nl/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/nl/user.php +++ b/app/i18n/nl/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/oc/gen.php b/app/i18n/oc/gen.php index 8bbe04aec..57e783395 100644 --- a/app/i18n/oc/gen.php +++ b/app/i18n/oc/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Actualizar', ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Adreça de corrièl', 'keep_logged_in' => 'Demorar connectat (%s jorns) ', 'login' => 'Connexion', diff --git a/app/i18n/oc/index.php b/app/i18n/oc/index.php index 5cc71c9a9..338d13a8e 100644 --- a/app/i18n/oc/index.php +++ b/app/i18n/oc/index.php @@ -15,6 +15,9 @@ return array( 'website' => 'Site internet', 'version' => 'Version', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'Podètz ajustar de fluxes.', 'empty' => 'I a pas cap de flux de mostrar.', diff --git a/app/i18n/oc/user.php b/app/i18n/oc/user.php index 4bcfebaf9..8f948e61d 100644 --- a/app/i18n/oc/user.php +++ b/app/i18n/oc/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Validacion de l’adreça electronica', ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'Vos cal validar vòstra adreça electronica', diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php index d6d0d9b33..b327937d5 100644 --- a/app/i18n/pt-br/gen.php +++ b/app/i18n/pt-br/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Update', //TODO - Translation ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Endereço de e-mail', 'keep_logged_in' => 'Mantenha logado por (%s days)', 'login' => 'Login', diff --git a/app/i18n/pt-br/index.php b/app/i18n/pt-br/index.php index e5807ed95..17c80f4fc 100644 --- a/app/i18n/pt-br/index.php +++ b/app/i18n/pt-br/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Versão', 'website' => 'Site', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'Você pode adicionar alguns feeds.', 'empty' => 'Não há nenhum artigo para mostrar.', diff --git a/app/i18n/pt-br/user.php b/app/i18n/pt-br/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/pt-br/user.php +++ b/app/i18n/pt-br/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index dec454eae..cc1d7e00e 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Update', //TODO - Translation ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Email address', //TODO - Translation 'keep_logged_in' => 'Keep me logged in (%s дней)', //TODO - Translation 'login' => 'Login', //TODO - Translation diff --git a/app/i18n/ru/index.php b/app/i18n/ru/index.php index 977777178..185350432 100644 --- a/app/i18n/ru/index.php +++ b/app/i18n/ru/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Version', //TODO - Translation 'website' => 'Website', //TODO - Translation ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'You may add some feeds.', //TODO - Translation 'empty' => 'There is no article to show.', //TODO - Translation diff --git a/app/i18n/ru/user.php b/app/i18n/ru/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/ru/user.php +++ b/app/i18n/ru/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/sk/gen.php b/app/i18n/sk/gen.php index 00a03736e..7303ffa9f 100644 --- a/app/i18n/sk/gen.php +++ b/app/i18n/sk/gen.php @@ -22,6 +22,7 @@ return array( 'update' => 'Aktualizovať', ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'E-mailová adresa', 'keep_logged_in' => 'Zostať prihlásený (počet dní: %s)', 'login' => 'Prihlásiť', diff --git a/app/i18n/sk/index.php b/app/i18n/sk/index.php index 19e63e720..5bbcbdc21 100644 --- a/app/i18n/sk/index.php +++ b/app/i18n/sk/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Verzia', 'website' => 'Webová stránka', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'Môžete pridať kanály.', 'empty' => 'Žiadne články.', diff --git a/app/i18n/sk/user.php b/app/i18n/sk/user.php new file mode 100644 index 000000000..3a8343c11 --- /dev/null +++ b/app/i18n/sk/user.php @@ -0,0 +1,37 @@ + array( + 'feedback' => array( + 'invalid' => 'The email address is invalid.', //TODO - Translation + 'required' => 'The email address is required.', //TODO - Translation + ), + 'validation' => array( + 'change_email' => 'You can change your email address on the profile page.', //TODO - Translation + 'email_sent_to' => 'We sent you an email at %s, please follow its indications to validate your address.', //TODO - Translation + 'feedback' => array( + 'email_failed' => 'We couldn’t send you an email because of a misconfiguration of the server.', //TODO - Translation + 'email_sent' => 'An email has been sent to your address.', //TODO - Translation + 'error' => 'The email address failed to be validated.', //TODO - Translation + 'ok' => 'The email address has been validated.', //TODO - Translation + 'unneccessary' => 'The email address was already validated.', //TODO - Translation + 'wrong_token' => 'The email address failed to be validated due to a wrong token.', //TODO - Translation + ), + 'need_to' => 'You need to validate your email address before being able to use %s.', //TODO - Translation + 'resend_email' => 'Resend the email', //TODO - Translation + 'title' => 'Email address validation', //TODO - Translation + ), + ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), + 'mailer' => array( + 'email_need_validation' => array( + 'title' => 'You need to validate your account', //TODO - Translation + 'welcome' => 'Welcome %s,', //TODO - Translation + 'body' => 'You’ve just registered on %s but you still need to validate your email. For that, just follow the link:', //TODO - Translation + ), + ), +); diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 561cee7cd..5e361affb 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -23,6 +23,7 @@ return array( 'update' => 'Update', //TODO - Translation ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Email adresleri', 'keep_logged_in' => '(%s günler) oturumu açık tut', 'login' => 'Giriş', diff --git a/app/i18n/tr/index.php b/app/i18n/tr/index.php index d6db514dd..6f1b596cf 100644 --- a/app/i18n/tr/index.php +++ b/app/i18n/tr/index.php @@ -15,6 +15,9 @@ return array( 'version' => 'Versiyon', 'website' => 'Website', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => 'Akış ekleyebilirsin.', 'empty' => 'Gösterilecek makale yok.', diff --git a/app/i18n/tr/user.php b/app/i18n/tr/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/tr/user.php +++ b/app/i18n/tr/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index 863917f54..7ae156573 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -23,6 +23,7 @@ return array( 'update' => '更新', //TODO - Translation ), 'auth' => array( + 'accept_tos' => 'I accept the Terms of Service.', // TODO - Translation 'email' => 'Email 地址', 'keep_logged_in' => '自动登录(%s 天)', 'login' => '登录', diff --git a/app/i18n/zh-cn/index.php b/app/i18n/zh-cn/index.php index 018813c3e..659f16b7c 100644 --- a/app/i18n/zh-cn/index.php +++ b/app/i18n/zh-cn/index.php @@ -15,6 +15,9 @@ return array( 'version' => '版本', 'website' => '网站', ), + 'tos' => array( + 'title' => 'Terms of Service', // TODO - Translation + ), 'feed' => array( 'add' => '你可以添加一些 RSS 源。', 'empty' => '暂时没有文章可显示。', diff --git a/app/i18n/zh-cn/user.php b/app/i18n/zh-cn/user.php index 4f2cfcda2..3a8343c11 100644 --- a/app/i18n/zh-cn/user.php +++ b/app/i18n/zh-cn/user.php @@ -22,6 +22,11 @@ return array( 'title' => 'Email address validation', //TODO - Translation ), ), + 'tos' => array( + 'feedback' => array( + 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + ), + ), 'mailer' => array( 'email_need_validation' => array( 'title' => 'You need to validate your account', //TODO - Translation diff --git a/app/views/auth/register.phtml b/app/views/auth/register.phtml index 87582a2d0..b90950510 100644 --- a/app/views/auth/register.phtml +++ b/app/views/auth/register.phtml @@ -26,6 +26,15 @@ + show_tos_checkbox) { ?> +
+ +
+ +
+ can_register) { ?> + + + + + + + + + + terms_of_service; ?> +
diff --git a/data/.gitignore b/data/.gitignore index 1d2d8db89..862bf4ad1 100644 --- a/data/.gitignore +++ b/data/.gitignore @@ -6,3 +6,4 @@ force-https.txt last_update.txt no-cache.txt update.php +tos.html diff --git a/data/tos.example.html b/data/tos.example.html new file mode 100644 index 000000000..370302b16 --- /dev/null +++ b/data/tos.example.html @@ -0,0 +1,56 @@ +

Terms of Service

+ +

Article 1: Lorem ipsum

+ +

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed fringilla, + magna non luctus lobortis, ipsum quam bibendum ipsum, ac rhoncus ipsum + velit in dolor. Vivamus quis ultrices sapien. Maecenas imperdiet massa + felis, ut ullamcorper arcu fermentum at. Mauris vitae tempor mi. Nullam ut + fermentum tortor, a luctus neque. Aenean imperdiet, leo vel blandit + molestie, lorem risus suscipit sem, et facilisis tellus elit ut magna. Ut + mattis blandit quam vitae interdum. Vestibulum quis pharetra ex, nec + efficitur erat. Vivamus hendrerit quam non facilisis lacinia. Sed tincidunt + consectetur maximus. Quisque eleifend risus vel felis hendrerit vulputate. + Nulla quis dapibus sapien, eget egestas quam. Nulla facilisi. Pellentesque + tincidunt elementum ultricies. Praesent mauris ante, ultrices quis dui ut, + ornare lacinia lectus. Etiam neque massa, congue in gravida et, mollis + egestas eros. +

+ +

Article 2: Nunc Vel Diam

+ +

+ Nunc vel diam sollicitudin turpis pharetra lobortis. Donec id mattis ipsum, + non porta sem. Maecenas fermentum velit quis sem lacinia egestas. Praesent + vulputate nulla in lectus tempus, maximus suscipit felis molestie. Sed ac + suscipit mi. Maecenas at pretium nibh, a elementum elit. Ut pretium turpis + tempor maximus ullamcorper. Vivamus ipsum velit, volutpat vitae varius ut, + dignissim eget mi. Nunc id erat facilisis, vestibulum lacus in, ultricies + purus. Mauris id ligula tempor, venenatis dolor at, mattis magna. Duis + luctus dui ut est porttitor, id pulvinar enim tempus. +

+ +

Article 3: Ut Non Leo Commodo

+ +

+ Ut non leo commodo, tempus mauris ac, pulvinar nunc. Fusce facilisis purus + et est ornare, eget tempor purus porttitor. Donec ut leo in diam sodales + ullamcorper. Sed efficitur nisl sit amet ante euismod, id dapibus dui + mollis. In sagittis eget dolor id pharetra. Suspendisse pellentesque + ultricies volutpat. Pellentesque pretium quam quis ligula lobortis + convallis. Donec vel erat elementum, varius metus a, egestas turpis. + Aliquam porttitor ut dolor et volutpat. Aliquam pretium, enim quis suscipit + bibendum, risus diam convallis tellus, et cursus odio felis quis nibh. + Vivamus fringilla hendrerit massa, eget varius odio ultrices vestibulum. Ut + vehicula eget tortor quis sodales. +

+ +

+ Pellentesque pulvinar ex vel metus volutpat, a pretium libero aliquet. In + fringilla nisi ac lorem hendrerit, non volutpat elit condimentum. + Pellentesque congue luctus purus id porta. Suspendisse nec elementum urna. + Maecenas sollicitudin a tortor nec finibus. Donec malesuada, lectus + blandit sodales egestas, tortor ipsum cursus eros, eget pellentesque erat + nunc ut nulla. Vivamus porttitor consectetur felis at luctus. +

-- cgit v1.2.3