mirror of
https://github.com/bingohuang/docker-labs.git
synced 2025-10-04 01:17:49 +08:00
Enable use of override for session timeout in hours, fix captcha bypass bug. (#51)
* - Enable use of override for session timeout. This is more useful than having to hard-code and rebuild the code for the previous 4 hour limit. Just set environmental variable and start the app. - Future work may involve breaking down into minutes, but this is a good minimum delivery to provide value to end-user/developer. - Fixes bug in Captcha code by introducing new landing page. This is not a new go template, it's a separate HTML file because SRP - single reponsibility principle. Happy for this to be refacted after merging commit. - Fix for including Docker 1.12 override has been removed for later PR. * Merge * Reinstate 'material' JS include' * https for JS includes * HTTPs for JS in bypass
This commit is contained in:
@@ -3,6 +3,14 @@
|
||||
|
||||
var app = angular.module('DockerPlay', ['ngMaterial']);
|
||||
|
||||
// Automatically redirects user to a new session when bypassing captcha.
|
||||
// Controller keeps code/logic separate from the HTML
|
||||
app.controller("BypassController", ['$scope', '$log', '$http', '$location', '$timeout', '$mdDialog', '$window', function($scope, $log, $http, $location, $timeout, $mdDialog, $window) {
|
||||
setTimeout(function() {
|
||||
var el = document.querySelector("#submit");
|
||||
el.click();
|
||||
}, 500);
|
||||
}]);
|
||||
|
||||
app.controller('PlayController', ['$scope', '$log', '$http', '$location', '$timeout', '$mdDialog', '$window', function($scope, $log, $http, $location, $timeout, $mdDialog, $window) {
|
||||
$scope.sessionId = window.location.pathname.replace('/p/', '');
|
||||
|
25
www/bypass.html
Normal file
25
www/bypass.html
Normal file
@@ -0,0 +1,25 @@
|
||||
<!doctype html>
|
||||
<html ng-app="DockerPlay" ng-controller="BypassController">
|
||||
<head>
|
||||
<title>Docker Playground</title>
|
||||
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.css">
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
</head>
|
||||
<body class="welcome">
|
||||
<div>
|
||||
<h1>Welcome!</h1>
|
||||
<h2>We're bypassing the Captcha and redirecting you now..</h2>
|
||||
<form id="welcomeFormBypass" method="POST" action="/">
|
||||
<button id="submit" type="submit">Start Session</button>
|
||||
</form>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-messages.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.js"></script>
|
||||
|
||||
<script src="/assets/app.js"></script>
|
||||
</html>
|
@@ -8,6 +8,7 @@
|
||||
<link rel="stylesheet" href="/assets/style.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div layout="column" style="height:100%;" ng-cloak>
|
||||
<section id="sessionEnd" layout="row" flex ng-if="!isAlive">
|
||||
<md-content flex layout-padding ng-if="!instances.length">
|
||||
@@ -19,10 +20,12 @@
|
||||
<div flex></div>
|
||||
</md-content>
|
||||
</section>
|
||||
|
||||
<section ng-if="!connected" class="disconnected" layout="row" layout-align="center center">
|
||||
<h1 class="md-headline">No connection to server. Reconnecting...</h1>
|
||||
<md-progress-circular class="md-hue-2" md-diameter="20px"></md-progress-circular>
|
||||
</section>
|
||||
|
||||
<section id="popupContainer" layout="row" flex ng-if="isAlive">
|
||||
<md-sidenav
|
||||
class="md-sidenav-left"
|
||||
@@ -36,9 +39,7 @@
|
||||
<h1 class="md-toolbar-tools">Instances</h1>
|
||||
</md-toolbar>
|
||||
<md-content layout-padding>
|
||||
<md-button ng-click="newInstance()" class="md-primary">
|
||||
+ Add new instance
|
||||
</md-button>
|
||||
<md-button ng-click="newInstance()" class="md-primary">+ Add new instance</md-button>
|
||||
<md-list>
|
||||
<md-list-item ng-switch on="instance.isManager" class="md-3-line" ng-repeat="instance in instances" ng-click="showInstance(instance)" ng-class="instance.name == selectedInstance.name ? 'selected' : false">
|
||||
<md-icon ng-switch-when="true" style="color: blue" md-svg-icon="person"></md-icon>
|
||||
@@ -52,12 +53,8 @@
|
||||
</md-sidenav>
|
||||
<md-content flex layout-padding ng-if="!instances.length">
|
||||
<div layout="column" layout-align="top center">
|
||||
<p>
|
||||
Add instances to your playground.
|
||||
</p>
|
||||
<p>
|
||||
<strong>Sessions and all their instances are deleted after 4 hours.</strong>
|
||||
</p>
|
||||
<p>Add instances to your playground.</p>
|
||||
<p><strong>Sessions and all their instances are deleted after {{ttl}} hours.</strong></p>
|
||||
</div>
|
||||
|
||||
<div flex></div>
|
||||
@@ -92,10 +89,7 @@
|
||||
</md-card-content>
|
||||
</md-card>
|
||||
</md-content>
|
||||
|
||||
|
||||
</section>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
|
||||
@@ -103,6 +97,7 @@
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-messages.min.js"></script>
|
||||
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.js"></script>
|
||||
|
||||
<script src="https://cdn.socket.io/socket.io-1.3.7.js"></script>
|
||||
<script src="/assets/app.js"></script>
|
||||
<script src="/assets/xterm.js"></script>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{{define "GOOGLE_RECAPTCHA_SITE_KEY"}}
|
||||
<!doctype html>
|
||||
<html ng-app="DockerPlay" ng-controller="PlayController">
|
||||
<html>
|
||||
<head>
|
||||
<title>Docker Playground</title>
|
||||
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/1.1.0/angular-material.min.css">
|
||||
|
Reference in New Issue
Block a user