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/oauth/authorize.php b/mailcow/src/mailcow-dockerized/data/web/oauth/authorize.php
new file mode 100644
index 0000000..48e99b0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/oauth/authorize.php
@@ -0,0 +1,69 @@
+<?php
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
+
+if (!isset($_SESSION['mailcow_cc_role'])) {
+ $_SESSION['oauth2_request'] = $_SERVER['REQUEST_URI'];
+ header('Location: /?oauth');
+}
+
+$request = OAuth2\Request::createFromGlobals();
+$response = new OAuth2\Response();
+
+if (!$oauth2_server->validateAuthorizeRequest($request, $response)) {
+ $response->send();
+ exit();
+}
+
+if (!isset($_POST['authorized'])):
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
+
+?>
+<div class="container">
+ <div class="panel panel-default">
+ <div class="panel-heading"><?=$lang['oauth2']['authorize_app'];?></div>
+ <div class="panel-body">
+ <?php
+ if ($_SESSION['mailcow_cc_role'] != 'user'):
+ $request = '';
+ ?>
+ <p><?=$lang['oauth2']['access_denied'];?></p>
+ <?php
+ else:
+ ?>
+ <p><?=$lang['oauth2']['scope_ask_permission'];?>:</p>
+ <dl class="dl-horizontal">
+ <dt><?=$lang['oauth2']['profile'];?></dt>
+ <dd><?=$lang['oauth2']['profile_desc'];?></dd>
+ </dl>
+ <form class="form-horizontal" autocapitalize="none" autocorrect="off" role="form" method="post">
+ <div class="form-group">
+ <div class="col-sm-10 text-center">
+ <button class="btn btn-success" name="authorized" type="submit" value="1"><?=$lang['oauth2']['permit'];?></button>
+ <a href="#" class="btn btn-default" onclick="window.history.back()" role="button"><?=$lang['oauth2']['deny'];?></a>
+ <input type="hidden" name="csrf_token" value="<?=$_SESSION['CSRF']['TOKEN'];?>">
+ </div>
+ </div>
+ </form>
+ <?php
+ endif;
+ ?>
+ </div>
+ </div>
+</div> <!-- /container -->
+<?php
+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';
+exit();
+endif;
+
+// print the authorization code if the user has authorized your client
+$is_authorized = ($_POST['authorized'] == '1');
+$oauth2_server->handleAuthorizeRequest($request, $response, $is_authorized, $_SESSION['mailcow_cc_username']);
+if ($is_authorized) {
+ unset($_SESSION['oauth2_request']);
+ if ($GLOBALS['OAUTH2_FORGET_SESSION_AFTER_LOGIN'] === true) {
+ session_unset();
+ session_destroy();
+ }
+ header('Location: ' . $response->getHttpHeader('Location'));
+ exit;
+}