first working version
This commit is contained in:
parent
261ebed165
commit
c9dfecc519
21 changed files with 296 additions and 178 deletions
|
|
@ -1,15 +1,19 @@
|
|||
{{define "body"}}
|
||||
{{if .Data}}
|
||||
<div class="row">
|
||||
<div class="col-xs-4 offset-4">
|
||||
<div class="col-xs-4 offset-3">
|
||||
<div class="card border-primary mx-auto">
|
||||
<div class="card-header">
|
||||
<strong>{{.BodyTitle}}</strong>
|
||||
<strong>{{.BodyTitle}} - {{.Data.Info.Client.ClientName}}</strong>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<pre>
|
||||
{{.Data.Info}}
|
||||
</pre>
|
||||
The client <code>{{.Data.Info.Client.ClientName}}</code> is requesting access to your data.<br>
|
||||
Requested Scopes:
|
||||
<ul>
|
||||
{{range $item := .Data.Info.RequestedScope}}
|
||||
<li>{{$item}}</li>
|
||||
{{end}}
|
||||
</ul>
|
||||
<form class="form-horizontal" action="/consent" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<input type="hidden" name="consent_challenge" value="{{.Data.ConsentChallenge}}">
|
||||
|
|
|
|||
17
pkg/server/templates/forbidden.html
Normal file
17
pkg/server/templates/forbidden.html
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<div class="col-xs-4 offset-4">
|
||||
<div class="card border-danger mx-auto">
|
||||
<div class="card-header">
|
||||
<strong>403 - Forbidden</strong>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h5>Access to this page is restricted</h5>
|
||||
<a href="/" class="btn btn-sm btn-primary">Back</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
|
@ -9,7 +9,9 @@
|
|||
<div class="card-body">
|
||||
<form class="form-horizontal" action="/login" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
{{if .Data}}
|
||||
<input type="hidden" name="login_challenge" value="{{.Data.LoginChallenge}}">
|
||||
{{end}}
|
||||
<div class="form-group">
|
||||
<label class="col-form-label" for="user">Username</label>
|
||||
<input class="form-control input-sm" type="text" id="user" name="user" value="{{.Data.User}}" autofocus required>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,9 @@
|
|||
<div class="card-body">
|
||||
<form class="form-horizontal" action="/totp" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
{{if .Data}}
|
||||
<input type="hidden" name="login_challenge" value="{{.Data.LoginChallenge}}">
|
||||
{{end}}
|
||||
<div class="form-group">
|
||||
<label class="col-form-label" for="pin">PIN</label>
|
||||
<input class="form-control input-sm" type="text" id="pin" name="pin" autocomplete="off" autofocus required>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
{{define "menu"}}
|
||||
{{if .Admin}}
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item"><a class="nav-link" href="/users">Users</a></li>
|
||||
</ul>
|
||||
{{end}}
|
||||
<ul class="nav navbar-nav ml-auto">
|
||||
{{if .Login}}
|
||||
{{if .Admin}}
|
||||
<li class="nav-item"><a class="nav-link" href="/users">Users</a></li>
|
||||
{{else}}
|
||||
<li class="nav-item"><a class="nav-link" href="/user/sessions/{{.User}}">Sessions</a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="/user/edit/{{.User}}">Profile</a></li>
|
||||
{{end}}
|
||||
<li class="nav-item"><a class="nav-link" href="/logout">Logout</a></li>
|
||||
{{else}}
|
||||
<li class="nav-item"><a class="nav-link" href="/login">Login</a></li>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<strong>Delete {{.Data.Username}}?</strong>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<p>You are about to delete user <a href="/{{.Data.Username}}">{{.Data.Username}}</a>.</p>
|
||||
<p>You are about to delete user <a href="/user/edit/{{.Data.Username}}">{{.Data.Username}}</a>.</p>
|
||||
<form class="form-horizontal" action="/user/del/{{.Data.Username}}" method="post">
|
||||
<input type="hidden" name="token" value="{{.Token}}">
|
||||
<button class="btn btn-sm btn-danger" type="submit">Delete</button>
|
||||
|
|
|
|||
|
|
@ -41,6 +41,16 @@
|
|||
<label class="custom-control-label" for="admin">Admin Privileges</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
{{if .Data.Disabled}}
|
||||
<input type="checkbox" class="custom-control-input" id="disabled" name="disabled" value="0" checked>
|
||||
{{else}}
|
||||
<input type="checkbox" class="custom-control-input" id="disabled" name="disabled" value="0">
|
||||
{{end}}
|
||||
<label class="custom-control-label" for="disabled">Disabled</label>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
<button class="btn btn-sm btn-primary" type="submit">Update</button>
|
||||
{{if .Admin}}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,12 @@
|
|||
<label class="custom-control-label" for="admin">Admin Privileges</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="disabled" name="disabled" value="0">
|
||||
<label class="custom-control-label" for="disabled">Disabled</label>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-sm btn-primary" type="submit">Create</button>
|
||||
<a href="/users" class="btn btn-sm btn-primary">Back</a>
|
||||
</form>
|
||||
|
|
|
|||
50
pkg/server/templates/userSessions.html
Normal file
50
pkg/server/templates/userSessions.html
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
{{define "body"}}
|
||||
<div class="page-header">
|
||||
<div class="row">
|
||||
<h2>{{.BodyTitle}}</h2>
|
||||
</div>
|
||||
</div>
|
||||
{{$user := .User}}
|
||||
{{$token := .Token}}
|
||||
{{if .Data}}
|
||||
<div class="row mb-3">
|
||||
<div class="col-xs-5">
|
||||
<form class="form-horizontal" action="/user/sessions/{{$user}}" method="post">
|
||||
<input type="hidden" name="token" value="{{$token}}">
|
||||
<input type="hidden" name="all" value="all">
|
||||
<button class="btn btn-sm btn-danger" type="submit">Revoke All</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
{{if .Data}}
|
||||
<table class="table table-hover">
|
||||
<thead><tr>
|
||||
<th scope="col">Client Name</th>
|
||||
<th scope="col">Created</th>
|
||||
<th scope="col">Options</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
{{range $name, $s := .Data}}
|
||||
<tr>
|
||||
<th scope="row">{{$name}}</th>
|
||||
<td>{{$s.Time}}</td>
|
||||
<td>
|
||||
<form class="form-horizontal" action="/user/sessions/{{$user}}" method="post">
|
||||
<input type="hidden" name="token" value="{{$token}}">
|
||||
<input type="hidden" name="client" value="{{$s.ID}}">
|
||||
<button class="btn btn-sm btn-warning" type="submit">Revoke</button>
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{else}}
|
||||
No active sessions found.
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
{{end}}
|
||||
|
|
@ -31,13 +31,15 @@
|
|||
<td>{{$item.Username}}</td>
|
||||
<td>{{$item.Email}}</td>
|
||||
<td>
|
||||
{{if $item.Admin}}<span class="badge badge-danger">admin</span>{{end}}
|
||||
{{if $item.Secret}}<span class="badge badge-success">totp</span>{{end}}
|
||||
{{if eq $item.Locked 3}}<span class="badge badge-warning">locked</span>{{end}}
|
||||
{{if $item.Admin}}<span class="badge badge-danger">admin</span>{{end}}
|
||||
{{if $item.Disabled}}<span class="badge badge-warning">disabled</span>{{end}}
|
||||
</td>
|
||||
<td>
|
||||
<div class="btn-group">
|
||||
{{if $admin}}
|
||||
<a class="btn btn-sm btn-primary" href="/user/sessions/{{$item.Username}}">Sessions</a>
|
||||
<a class="btn btn-sm btn-primary" href="/user/edit/{{$item.Username}}">Edit</a>
|
||||
<a class="btn btn-sm btn-danger" href="/user/del/{{$item.Username}}">Delete</a>
|
||||
{{else}}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue