aboutsummaryrefslogtreecommitdiff
path: root/server/templates
diff options
context:
space:
mode:
Diffstat (limited to 'server/templates')
-rw-r--r--server/templates/certs.go70
-rw-r--r--server/templates/token.go56
2 files changed, 126 insertions, 0 deletions
diff --git a/server/templates/certs.go b/server/templates/certs.go
new file mode 100644
index 0000000..2bda893
--- /dev/null
+++ b/server/templates/certs.go
@@ -0,0 +1,70 @@
+package templates
+
+// Certs lists all unexpired issued certificates.
+const Certs = `
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
+ <title>Issued Certificates</title>
+
+ <!-- Bootstrap -->
+ <link href="/static/css/bootstrap.min.css" rel="stylesheet">
+
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+ <!--[if lt IE 9]>
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+ <![endif]-->
+ </head>
+ <body>
+ <div class="container">
+ <div class="page-header">
+ <h1>Issued SSH Certificates</h1>
+ </div>
+
+ <form action="/admin/revoke" method="post" id="form_revoke">
+ {{ .CSRF }}
+ <table class="table table-hover table-condensed">
+ <tr>
+ <th>ID</th>
+ <th>Created</th>
+ <th>Expires</th>
+ <th>Principals</th>
+ <th>Revoked</th>
+ <th>Revoke</th>
+ </tr>
+
+ {{range .Certs}}
+ <div class="checkbox">
+ <tr>
+ <td>{{.KeyID}}</td>
+ <td>{{.CreatedAt}}</td>
+ <td>{{.Expires}}</td>
+ <td>{{.Principals}}</td>
+ <td>{{.Revoked}}</td>
+ <td>
+ {{if not .Revoked}}
+ <input type="checkbox" value="{{.KeyID}}" name="cert_id" id="cert_id" />
+ {{end}}
+ </td>
+ </tr>
+ </div>
+ {{ end }}
+ </table>
+ </form>
+ <button class="btn btn-primary" type="submit" form="form_revoke" value="Submit">Submit</button>
+ </div>
+
+ <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
+ <!-- Include all compiled plugins (below), or include individual files as needed -->
+ <script src="/static/js/bootstrap.min.js"></script>
+ </body>
+</html>
+
+`
diff --git a/server/templates/token.go b/server/templates/token.go
new file mode 100644
index 0000000..d21c03f
--- /dev/null
+++ b/server/templates/token.go
@@ -0,0 +1,56 @@
+package templates
+
+// Token is the page users see when authenticated.
+const Token = `
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
+ <title>Token</title>
+
+ <!-- Bootstrap -->
+ <link href="/static/css/bootstrap.min.css" rel="stylesheet">
+
+ <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
+ <!--[if lt IE 9]>
+ <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
+ <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+ <![endif]-->
+ <style>
+ <!--
+ .code {
+ border: none;
+ font-family: monospace;
+ font-weight: bold;
+ height: auto;
+ margin: 12px 12px 12px 12px;
+ padding: 24px 12px 12px 12px;
+ resize: none;
+ text-align: center;
+ }
+ -->
+ </style>
+ </head>
+ <body>
+ <div class="container">
+ <div class="page-header">
+ <h1>Access Token</h1>
+ </div>
+ <div>
+ <textarea style="font-size: 15pt" class="form-control code" readonly spellcheck="false" onclick="this.focus();this.select();">{{.Token}}</textarea>
+ <h2>
+ The token will expire in &lt; 1 hour.
+ </h2>
+ </div>
+ </div>
+ <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
+ <!-- Include all compiled plugins (below), or include individual files as needed -->
+ <script src="/static/js/bootstrap.min.js"></script>
+ </body>
+</html>
+`