surtur
1b2d860beb
All checks were successful
continuous-integration/drone/push Build is passing
...issue by deleting the session cookie after successful password change and forcing the user to re-authenticate. additionally, split the InitialPasswordChange func into separate "GET" and "POST" variants.
66 lines
3.4 KiB
Go HTML Template
66 lines
3.4 KiB
Go HTML Template
{{ template "head.tmpl" . }}
|
|
<body class="min-h-screen flex flex-col justify-between bg-white dark:bg-gray-900">
|
|
{{ template "navbar.tmpl" . }}
|
|
<main class="grow mb-auto">
|
|
<div class="container mx-auto place-items-center px-8">
|
|
{{ if and .Data .Data.flash }}
|
|
<h1 class="text-xl text-pink-600 dark:text-pink-500 py-2">
|
|
{{ .Data.flash }}
|
|
</h1>
|
|
{{- end }}
|
|
{{ if .User -}}
|
|
<h1 class="mt-20 text-2xl text-pink-400 font-bold">
|
|
Welcome,
|
|
<code class="p-1 rounded-sm bg-fuchsia-200">
|
|
{{.Name}}</code>!
|
|
</h1>
|
|
<h3 class="mt-2 mb-4 text-2xl text-purple-500 dark:text-purple-300 font-bold">
|
|
Since you have never changed your password here before, now is the time to do that!
|
|
</h3>
|
|
<span class="text-lg text-gray-500 dark:text-gray-300 font-italic">
|
|
This is necessary in order to make sure that <b>only you</b> know the
|
|
password, as the account was pre-created <em>for</em> you.
|
|
</span>
|
|
<div class="block">
|
|
<div class="mt-6 md:flex md:items-center md:place-items-center md:justify-between">
|
|
<form method="POST" class="w-full md:w-5xl" action="/user/initial-password-change">
|
|
<input type="hidden" name="csrf" value="{{- .CSRF -}}">
|
|
<label class="group relative mt-2 font-bold text-fuchsia-500 dark:text-fuchsia-300 text-sm">
|
|
Your new password 🛈
|
|
<span
|
|
class="absolute hidden group-hover:flex -left-5 -top-2 -translate-y-full w-48 px-2 py-1 bg-gray-700 rounded-lg text-center text-white text-sm after:content-[''] after:absolute after:left-1/2 after:top-[100%] after:-translate-x-1/2 after:border-8 after:border-x-transparent after:border-b-transparent after:border-t-gray-700">
|
|
Please, save this password into a password manager because after clicking
|
|
submit you will be logged out and will need to re-login again.
|
|
</span>
|
|
</label>
|
|
<div class="relative flex items-center">
|
|
<span class="absolute" role="img" aria-label="password lock icon">
|
|
{{ template "svg-password.tmpl" }}
|
|
</span>
|
|
<input name="new-password" type="new-password"
|
|
placeholder="New password" {{if and .Data.form .Data.form.Password}}value="{{.Data.form.Password}}"{{else}}{{end}}
|
|
minlength=20
|
|
required
|
|
class="block w-full px-10 py-3 required:border-slate-500 dark:required:border-slate-300 required:border-3 valid:border text-gray-700 bg-white border rounded-lg dark:bg-gray-900 dark:text-gray-300 dark:valid:border-gray-600 focus:border-blue-400 dark:focus:border-blue-300 focus:ring-blue-300 focus:outline-none focus:ring focus:ring-opacity-40">
|
|
</div>
|
|
<button
|
|
class="w-full my-2 text-sm font-medium tracking-wide text-white capitalize transition-colors duration-300 transform bg-blue-500 rounded-lg md:w-1/4 hover:bg-blue-400 focus:outline-none focus:ring focus:ring-blue-300 focus:ring-opacity-50"
|
|
type="submit">Submit</button>
|
|
</form>
|
|
</div>
|
|
<form method="POST" class="w-full md:w-5xl" action="/logout">
|
|
<input type="hidden" name="csrf" value="{{- .CSRF -}}">
|
|
<button
|
|
class="w-full my-2 text-sm font-medium tracking-wide text-white capitalize transition-colors duration-300 transform bg-blue-500 rounded-lg md:w-1/4 hover:bg-blue-400 focus:outline-none focus:ring focus:ring-blue-300 focus:ring-opacity-50"
|
|
type="submit">Logout</button>
|
|
</form>
|
|
</div>
|
|
{{- else }}
|
|
<h1 class="mt-20 text-2xl text-pink-400 font-bold">
|
|
Please log in.
|
|
</h1>
|
|
{{- end -}}
|
|
</div>
|
|
</main>
|
|
{{ template "footer.tmpl" . }}
|