git subrepo clone https://github.com/mailcow/mailcow-dockerized.git mailcow/src/mailcow-dockerized
subrepo: subdir: "mailcow/src/mailcow-dockerized"
merged: "a832becb"
upstream: origin: "https://github.com/mailcow/mailcow-dockerized.git"
branch: "master"
commit: "a832becb"
git-subrepo: version: "0.4.3"
origin: "???"
commit: "???"
Change-Id: If5be2d621a211e164c9b6577adaa7884449f16b5
diff --git a/mailcow/src/mailcow-dockerized/data/web/index.php b/mailcow/src/mailcow-dockerized/data/web/index.php
new file mode 100644
index 0000000..571f189
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/index.php
@@ -0,0 +1,145 @@
+<?php
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
+
+if (isset($_SESSION['mailcow_cc_role']) && isset($_SESSION['oauth2_request'])) {
+ $oauth2_request = $_SESSION['oauth2_request'];
+ unset($_SESSION['oauth2_request']);
+ header('Location: ' . $oauth2_request);
+ exit();
+}
+elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'admin') {
+ header('Location: /admin');
+ exit();
+}
+elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'domainadmin') {
+ header('Location: /mailbox');
+ exit();
+}
+elseif (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == 'user') {
+ header('Location: /user');
+ exit();
+}
+
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
+$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
+$_SESSION['index_query_string'] = $_SERVER['QUERY_STRING'];
+
+?>
+<div class="container">
+ <div class="row">
+ <div class="col-md-offset-3 col-md-6">
+ <div class="panel panel-default">
+ <div class="panel-heading"><span class="glyphicon glyphicon-user" aria-hidden="true"></span> <?= $lang['login']['login']; ?></div>
+ <div class="panel-body">
+ <div class="text-center mailcow-logo"><img src="<?=($main_logo = customize('get', 'main_logo')) ? $main_logo : '/img/cow_mailcow.svg';?>" alt="mailcow"></div>
+ <?php if (!empty($UI_TEXTS['ui_announcement_text']) && in_array($UI_TEXTS['ui_announcement_type'], array('info', 'warning', 'danger')) && $UI_TEXTS['ui_announcement_active'] == 1) { ?>
+ <div class="alert alert-<?=$UI_TEXTS['ui_announcement_type'];?> rot-enc"><?=str_rot13($UI_TEXTS['ui_announcement_text']);?></div>
+ <?php } ?>
+ <legend><?= isset($_SESSION['oauth2_request']) ? $lang['oauth2']['authorize_app'] : $UI_TEXTS['main_name'];?></legend>
+ <?php
+ if (strpos($_SESSION['index_query_string'], 'mobileconfig') !== false) {
+ ?>
+ <div class="alert alert-info"><?= $lang['login']['mobileconfig_info']; ?></div>
+ <?php
+ }
+ ?>
+ <form method="post" autofill="off">
+ <div class="form-group">
+ <label class="sr-only" for="login_user"><?= $lang['login']['username']; ?></label>
+ <div class="input-group">
+ <div class="input-group-addon"><i class="glyphicon glyphicon-user"></i></div>
+ <input name="login_user" autocorrect="off" autocapitalize="none" type="<?=(strpos($_SESSION['index_query_string'], 'mobileconfig') !== false) ? 'email' : 'text';?>" id="login_user" class="form-control" placeholder="<?= $lang['login']['username']; ?>" required="" autofocus="">
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="sr-only" for="pass_user"><?= $lang['login']['password']; ?></label>
+ <div class="input-group">
+ <div class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></div>
+ <input name="pass_user" type="password" id="pass_user" class="form-control" placeholder="<?= $lang['login']['password']; ?>" required="">
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="btn-group">
+ <button type="submit" class="btn btn-success" value="Login"><?= $lang['login']['login']; ?></button>
+ <div class="btn-group">
+ <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
+ <?= $lang['login']['other_logins']; ?> <span class="caret"></span></button>
+ <ul class="dropdown-menu" role="menu">
+ <li><a href="#" id="fido2-login"><?= $lang['login']['fido2_webauthn']; ?></a></li>
+ </ul>
+ </div>
+ </div>
+ <?php if(!isset($_SESSION['oauth2_request'])) { ?>
+ <div class="btn-group pull-right">
+ <button type="button" <?=(isset($_SESSION['mailcow_locale']) && count($AVAILABLE_LANGUAGES) === 1) ? 'disabled="true"' : '' ?> class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
+ <span class="lang-sm lang-lbl" lang="<?= $_SESSION['mailcow_locale']; ?>"></span> <span class="caret"></span>
+ </button>
+ <ul class="dropdown-menu">
+ <?php
+ foreach ($AVAILABLE_LANGUAGES as $language) {
+ ?>
+ <li<?= ($_SESSION['mailcow_locale'] == $language) ? ' class="active"' : ''; ?>><a href="?<?= http_build_query(array_merge($_GET, array('lang' => $language))) ?>"><span class="lang-xs lang-lbl-full" lang="<?= $language; ?>"></span></a></li>
+ <?php } ?>
+ </ul>
+ </div>
+ <?php } ?>
+ </div>
+ </form>
+ <?php
+ if (isset($_SESSION['ldelay']) && $_SESSION['ldelay'] != '0') {
+ ?>
+ <p><div class="alert alert-info"><?= sprintf($lang['login']['delayed'], $_SESSION['ldelay']); ?></b></div></p>
+ <?php } ?>
+ <div id="fido2-alerts"></div>
+ <?php if(!isset($_SESSION['oauth2_request'])) { ?>
+ <legend><span class="glyphicon glyphicon-link" aria-hidden="true"></span> <?=$UI_TEXTS['apps_name'];?></legend>
+ <?php
+ if (!empty($MAILCOW_APPS)) {
+ foreach ($MAILCOW_APPS as $app) {
+ if (getenv('SKIP_SOGO') == "y" && preg_match('/^\/SOGo/i', $app['link'])) { continue; }
+ ?>
+ <a href="<?= htmlspecialchars($app['link']); ?>" role="button" style="margin-bottom:3pt" title="<?= htmlspecialchars($app['description']); ?>" class="btn btn-primary"><?= htmlspecialchars($app['name']); ?></a>
+ <?php
+ }
+ }
+ $app_links = customize('get', 'app_links');
+ if (!empty($app_links)) {
+ foreach ($app_links as $row) {
+ foreach ($row as $key => $val) {
+ ?>
+ <a href="<?= htmlspecialchars($val); ?>" role="button" style="margin-bottom:3pt" class="btn btn-primary"><?= htmlspecialchars($key); ?></a>
+ <?php
+ }
+ }
+ }
+ }
+ ?>
+ </div>
+ </div>
+ </div>
+ <?php if(!isset($_SESSION['oauth2_request'])) { ?>
+ <div class="col-md-offset-3 col-md-6">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <a data-toggle="collapse" href="#collapse1"><span class="glyphicon glyphicon-question-sign" aria-hidden="true"></span> <?= $lang['start']['help']; ?></a>
+ </div>
+ <div id="collapse1" class="panel-collapse collapse">
+ <div class="panel-body">
+ <?php if ($UI_TEXTS['help_text']) { ?>
+ <p><?=$UI_TEXTS['help_text'];?></p>
+ <?php } else { ?>
+ <p><span style="border-bottom: 1px dotted #999;"><?=$UI_TEXTS['main_name'];?></span></p>
+ <p><?= $lang['start']['mailcow_panel_detail']; ?></p>
+ <p><span style="border-bottom: 1px dotted #999;"><?=$UI_TEXTS['apps_name'];?></span></p>
+ <p><?= $lang['start']['mailcow_apps_detail']; ?></p>
+ <?php } ?>
+ </div>
+ </div>
+ </div>
+ </div>
+ <?php } ?>
+ </div>
+</div><!-- /.container -->
+<?php
+$js_minifier->add('/web/js/site/index.js');
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';