aboutsummaryrefslogtreecommitdiff
path: root/app/layout
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2019-08-29 12:02:05 +0200
committerGravatar Alexandre Alapetite <alexandre@alapetite.fr> 2019-08-29 12:02:05 +0200
commit75632e70f0d49048f4ce72a0fa8bbcbcd7b2d312 (patch)
tree09c2f637ceedb76a30ad833555f02c2d50ee4863 /app/layout
parentad44ff81694ff4cbcccc514a17351476a38aadd8 (diff)
Provide email address verification feature (#2481)
* Add an email field to the profile page I reuse the `mail_login` from the configuration. I'm not sure if it's useful today (I would say it was used when Persona login was available). A good improvement would be to rename `mail_login` into `email` so it would be more intuitive to use. * Add boolean to the conf to force email validation This commit only adds a configuration item. * Add email during registration if email must be validated * Set email token to validate when email changes * Block access to FreshRSS if email is not validated * Send email when address is changed * Allow to resend the validation email * Allow the user to change its email while blocked * Document the email validation feature * fixup! Allow the user to change its email while blocked * tec: Autoload PHPMailer lib * Validate email address format * Add feedback on validation email resend action * Allow to logout when user is blocked * fix: Change default email "from" * Reorganize i18n keys * Complete all the locales with default english * Hide sidebar (profile page) if email is not validated * Check email requirements on registration * Allow admin to specify email when creating users * Don't check email format if value is empty * Remove trailing comma in userController Co-Authored-By: Alexandre Alapetite <alexandre@alapetite.fr> * Set PHPMailer validator to html5 before sending email * fixup! Remove trailing comma in userController
Diffstat (limited to 'app/layout')
-rw-r--r--app/layout/simple.phtml66
1 files changed, 66 insertions, 0 deletions
diff --git a/app/layout/simple.phtml b/app/layout/simple.phtml
new file mode 100644
index 000000000..5546966be
--- /dev/null
+++ b/app/layout/simple.phtml
@@ -0,0 +1,66 @@
+<?php FreshRSS::preLayout(); ?>
+<!DOCTYPE html>
+<html lang="<?php echo FreshRSS_Context::$user_conf->language; ?>" xml:lang="<?php echo FreshRSS_Context::$user_conf->language; ?>">
+ <head>
+ <meta charset="UTF-8" />
+ <meta name="viewport" content="initial-scale=1.0" />
+ <?php echo self::headStyle(); ?>
+ <?php echo self::headScript(); ?>
+ <link rel="shortcut icon" id="favicon" type="image/x-icon" sizes="16x16 64x64" href="<?php echo Minz_Url::display('/favicon.ico'); ?>" />
+ <link rel="icon msapplication-TileImage apple-touch-icon" type="image/png" sizes="256x256" href="<?php echo Minz_Url::display('/themes/icons/favicon-256.png'); ?>" />
+ <link rel="apple-touch-icon" href="<?php echo Minz_Url::display('/themes/icons/apple-touch-icon.png'); ?>" />
+ <meta name="apple-mobile-web-app-capable" content="yes" />
+ <meta name="apple-mobile-web-app-status-bar-style" content="black" />
+ <meta name="apple-mobile-web-app-title" content="<?php echo FreshRSS_Context::$system_conf->title; ?>">
+ <meta name="msapplication-TileColor" content="#FFF" />
+ <meta name="referrer" content="never" />
+ <meta name="robots" content="noindex,nofollow" />
+ <?php echo self::headTitle(); ?>
+ </head>
+ <body>
+
+<?php flush(); ?>
+<div class="app-layout app-layout-simple">
+ <div class="header">
+ <div class="item title">
+ <h1>
+ <a href="<?php echo _url('index', 'index'); ?>">
+ <img class="logo" src="<?php echo _i('icon', true); ?>" alt="" />
+ <?php echo FreshRSS_Context::$system_conf->title; ?>
+ </a>
+ </h1>
+ </div>
+
+ <div class="item"></div>
+
+ <div class="item">
+ <?php if (FreshRSS_Auth::accessNeedsAction()) { ?>
+ <a class="signout" href="<?php echo _url('auth', 'logout'); ?>">
+ <?php echo _i('logout') . _t('gen.auth.logout'); ?>
+
+ (<?php echo htmlspecialchars(Minz_Session::param('currentUser', '_'), ENT_NOQUOTES, 'UTF-8'); ?>)
+ </a>
+ <?php } ?>
+ </div>
+ </div>
+
+ <?php $this->render(); ?>
+</div>
+
+<?php
+ $msg = '';
+ $status = 'closed';
+ if (isset($this->notification)) {
+ $msg = $this->notification['content'];
+ $status = $this->notification['type'];
+
+ invalidateHttpCache();
+ }
+?>
+<div id="notification" class="notification <?php echo $status; ?>">
+ <span class="msg"><?php echo $msg; ?></span>
+ <a class="close" href=""><?php echo _i('close'); ?></a>
+</div>
+
+ </body>
+</html>