feat: initial commit
This commit is contained in:
19
template/blocks/base.html.tmpl
Normal file
19
template/blocks/base.html.tmpl
Normal file
@ -0,0 +1,19 @@
|
||||
{{define "base"}}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{block "title" . -}}{{- end}}</title>
|
||||
{{- block "head_style" . -}}
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css" />
|
||||
<link rel="stylesheet" href="{{ .BaseURL }}/css/style.css" />
|
||||
{{end}}
|
||||
{{- block "head_script" . -}}{{end}}
|
||||
</head>
|
||||
<body>
|
||||
{{- block "body" . -}}{{- end -}}
|
||||
{{- block "body_script" . -}}{{end}}
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
24
template/blocks/flash.html.tmpl
Normal file
24
template/blocks/flash.html.tmpl
Normal file
@ -0,0 +1,24 @@
|
||||
{{define "flash"}}
|
||||
<div class="flash has-margin-top-small mb-3">
|
||||
{{- range .Flashes -}}
|
||||
{{- if eq .Type "error" -}}
|
||||
{{template "flash_message" map "Title" "Erreur" "MessageClass" "is-danger" "Message" .Message }}
|
||||
{{- else if eq .Type "warn" -}}
|
||||
{{template "flash_message" map "Title" "Attention" "MessageClass" "is-warning" "Message" .Message }}
|
||||
{{- else if eq .Type "success" -}}
|
||||
{{template "flash_message" map "Title" "Succès" "MessageClass" "is-success" "Message" .Message }}
|
||||
{{- else -}}
|
||||
{{template "flash_message" map "Title" "Information" "MessageClass" "is-info" "Message" .Message }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
{{define "flash_message" -}}
|
||||
<div class="message {{.MessageClass}}">
|
||||
<div class="message-body">
|
||||
<span class="has-text-weight-bold">{{.Title}}</span>
|
||||
<p>{{.Message}}</p>
|
||||
</div>
|
||||
</div>
|
||||
{{- end}}
|
7
template/blocks/footer.html.tmpl
Normal file
7
template/blocks/footer.html.tmpl
Normal file
@ -0,0 +1,7 @@
|
||||
{{define "footer"}}
|
||||
<p class="has-margin-top-small has-text-right is-size-7 has-text-grey">
|
||||
Version: {{ .BuildInfo.ProjectVersion }} -
|
||||
Réf.: {{ .BuildInfo.GitRef }} -
|
||||
Date de construction: {{ .BuildInfo.BuildDate }}
|
||||
</p>
|
||||
{{end}}
|
35
template/layouts/consent.html.tmpl
Normal file
35
template/layouts/consent.html.tmpl
Normal file
@ -0,0 +1,35 @@
|
||||
{{define "title"}}Autorisation{{end}}
|
||||
{{define "body"}}
|
||||
<section class="hero is-fullheight">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<div class="column is-4 is-offset-4">
|
||||
{{template "flash" .}}
|
||||
<p class="has-text-black title has-text-centered">
|
||||
Demande d'autorisation
|
||||
</p>
|
||||
<p class="has-text-black subtitle has-text-centered">
|
||||
Autorisez vous l'application à utiliser ces informations vous concernant ?
|
||||
</p>
|
||||
<div class="box">
|
||||
<form action="{{ .BaseURL }}/consent" method="POST">
|
||||
{{range .RequestedScope}}
|
||||
<div class="">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="scope_{{ . }}">
|
||||
{{ . }}
|
||||
</label>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ .csrfField }}
|
||||
<input name="challenge" type="hidden" value="{{ .ConsentChallenge }}" />
|
||||
<button type="submit" class="button is-link is-medium is-block is-fullwidth">Autoriser</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{end}}
|
||||
{{template "base" .}}
|
20
template/layouts/error.html.tmpl
Normal file
20
template/layouts/error.html.tmpl
Normal file
@ -0,0 +1,20 @@
|
||||
{{define "title"}}Erreur{{end}}
|
||||
{{define "body"}}
|
||||
<section class="hero is-fullheight">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<div class="column is-4 is-offset-4">
|
||||
<div class="message is-danger">
|
||||
<div class="message-body">
|
||||
<p class="title is-size-4 has-text-danger">{{ .ErrorTitle }}</p>
|
||||
<p>{{ .ErrorDescription }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{end}}
|
||||
{{template "base" .}}
|
22
template/layouts/home.html.tmpl
Normal file
22
template/layouts/home.html.tmpl
Normal file
@ -0,0 +1,22 @@
|
||||
{{define "title"}}Connexion{{end}}
|
||||
{{define "body"}}
|
||||
<section class="hero is-fullheight">
|
||||
<div class="hero-body">
|
||||
<div class="container has-text-centered">
|
||||
<div class="columns">
|
||||
<div class="column is-4 is-offset-4">
|
||||
<p class="has-text-black title">
|
||||
Hydra Web<span class="has-text-grey">Authn</span>
|
||||
</p>
|
||||
<p class="is-size-7">
|
||||
Version: {{ .BuildInfo.ProjectVersion }} |
|
||||
Réf.: {{ .BuildInfo.GitRef }} |
|
||||
Date de construction: {{ .BuildInfo.BuildDate }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{end}}
|
||||
{{template "base" .}}
|
53
template/layouts/login.html.tmpl
Normal file
53
template/layouts/login.html.tmpl
Normal file
@ -0,0 +1,53 @@
|
||||
{{define "title"}}Connexion{{end}}
|
||||
{{define "body"}}
|
||||
<section class="hero is-fullheight">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<div class="column is-6 is-offset-3">
|
||||
{{template "flash" .}}
|
||||
<p class="has-text-black title has-text-centered">
|
||||
Authentification sur <br /><a href="{{ .ClientURI }}" class="has-text-info">{{ .ClientName }}</a>
|
||||
</p>
|
||||
<div>
|
||||
<noscript>
|
||||
<div class="message is-danger">
|
||||
<div class="message-body">
|
||||
L'activation de JavaScript est nécessaire afin de pouvoir vous authentifier !
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
<div class="box">
|
||||
<form id="login" method="POST">
|
||||
<div class="field">
|
||||
<label for="username" class="label">Nom d'utilisateur</label>
|
||||
<div class="control">
|
||||
<input id="username" class="input" name="username" type="text" placeholder="jdoe" value="{{ .Username }}" required>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label for="rememberme" class="checkbox">
|
||||
<input type="checkbox" id="rememberme" name="rememberme" {{if .RememberMe }}checked="true"{{end}} >
|
||||
Se souvenir de moi
|
||||
</label>
|
||||
</div>
|
||||
{{if .AssertionRequest}}
|
||||
<input type="hidden" id="assertion" name="assertion" />
|
||||
{{end}}
|
||||
{{ .csrfField }}
|
||||
<input name="challenge" type="hidden" value="{{ .LoginChallenge }}" />
|
||||
<input type="submit" value="Envoyer" class="button is-fullwidth is-primary mt-3" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{{if .AssertionRequest}}
|
||||
<script type="text/javascript" src="{{ .BaseURL }}/js/hydra-webauthn.js"></script>
|
||||
<script type="text/javascript" src="{{ .BaseURL }}/js/login.js" data-assertion-request="{{ base64 ( marshal .AssertionRequest ) }}"></script>
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{template "base" .}}
|
28
template/layouts/register.html.tmpl
Normal file
28
template/layouts/register.html.tmpl
Normal file
@ -0,0 +1,28 @@
|
||||
{{define "title"}}S'enregistrer{{end}}
|
||||
{{define "body"}}
|
||||
<section class="hero is-fullheight">
|
||||
<div class="hero-body">
|
||||
<div class="container">
|
||||
<div class="columns">
|
||||
<div class="column is-4 is-offset-4">
|
||||
{{template "flash" .}}
|
||||
<p class="has-text-black title has-text-centered mt-2">
|
||||
Finaliser votre compte
|
||||
</p>
|
||||
<p>Cliquer sur le bouton ci-dessous pour générer une paire de clés cryptographiques qui sera associée à votre compte.</p>
|
||||
<div class="button is-link is-medium is-block is-fullwidth mt-5" onclick="generateCredentials()">
|
||||
Générer
|
||||
</div>
|
||||
<form id="register" action="{{ .BaseURL }}/register/{{ .Token }}" method="POST">
|
||||
{{ .csrfField }}
|
||||
<input type="hidden" id="credentials" name="credentials" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<script type="text/javascript" src="{{ .BaseURL }}/js/hydra-webauthn.js"></script>
|
||||
<script type="text/javascript" src="{{ .BaseURL }}/js/register.js" data-web-authn-options="{{ base64 ( marshal .WebAuthnOptions ) }}"></script>
|
||||
{{end}}
|
||||
{{template "base" .}}
|
Reference in New Issue
Block a user