mirror of
https://github.com/1f349/tulip.git
synced 2024-11-15 00:01:45 +00:00
157 lines
6.4 KiB
HTML
157 lines
6.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<title>{{.ServiceName}}</title>
|
|
<link rel="stylesheet" href="/theme/style.css">
|
|
</head>
|
|
<body>
|
|
<header>
|
|
<h1>{{.ServiceName}}</h1>
|
|
</header>
|
|
<main>
|
|
<form method="GET" action="/">
|
|
<button type="submit">Home</button>
|
|
</form>
|
|
|
|
{{if .Edit}}
|
|
<h2>Edit User</h2>
|
|
<form method="POST" action="/manage/users">
|
|
<input type="hidden" name="action" value="edit"/>
|
|
<input type="hidden" name="offset" value="{{.Offset}}"/>
|
|
<input type="hidden" name="subject" value="{{.Edit.Sub}}"/>
|
|
<div>
|
|
<label>ID: {{.Edit.Sub}}</label>
|
|
</div>
|
|
<div>
|
|
<label for="field_name">Name:</label>
|
|
<input type="text" name="name" id="field_name" value="{{.Edit.Name}}" required/>
|
|
</div>
|
|
<div>
|
|
<label for="field_username">Username:</label>
|
|
<input type="text" name="username" id="field_username" value="{{.Edit.Username}}" required/>
|
|
</div>
|
|
<div>
|
|
<label for="field_role">Role:</label>
|
|
<select name="role" id="field_role" required>
|
|
<option value="member" {{if (eq .Edit.Role 0)}}selected{{end}}>Member</option>
|
|
<option value="admin" {{if (eq .Edit.Role 1)}}selected{{end}}>Admin</option>
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<label for="field_active">Active: <input type="checkbox" name="active" id="field_active"
|
|
checked/></label>
|
|
</div>
|
|
<button type="submit">Edit</button>
|
|
</form>
|
|
<form method="GET" action="/manage/users">
|
|
<input type="hidden" name="offset" value="{{.Offset}}"/>
|
|
<button type="submit">Cancel</button>
|
|
</form>
|
|
{{else}}
|
|
<h2>Manage Users</h2>
|
|
{{if eq (len .Users) 0}}
|
|
<div>No users found, this is definitely a bug.</div>
|
|
{{else}}
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Name</th>
|
|
<th>Username</th>
|
|
<th>Picture</th>
|
|
<th>Website</th>
|
|
<th>Email</th>
|
|
<th>Email Verified</th>
|
|
<th>Role</th>
|
|
<th>Last Updated</th>
|
|
<th>Active</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{range .Users}}
|
|
<tr>
|
|
<td>{{.Sub}}</td>
|
|
<td>{{.Name}}</td>
|
|
<td>{{.Username}}</td>
|
|
<td>
|
|
{{if .Picture}}
|
|
<img width="32" height="32" src="{{.Picture}}" alt="{{.Name}} Profile Picture"/>
|
|
{{end}}
|
|
</td>
|
|
<td><a href="{{.Website}}" target="_blank">{{.Website}}</a></td>
|
|
<th>
|
|
{{if $.EmailShow}}
|
|
<span>{{.Email}}</span>
|
|
{{else}}
|
|
<span>{{emailHide .Email}}</span>
|
|
{{end}}
|
|
</th>
|
|
<th>{{.EmailVerified}}</th>
|
|
<th>{{.Role}}</th>
|
|
<th>{{.UpdatedAt}}</th>
|
|
<td>{{.Active}}</td>
|
|
<td>
|
|
{{if eq $.CurrentAdmin .Sub}}
|
|
<span></span>
|
|
{{else}}
|
|
<form method="GET" action="/manage/users">
|
|
<input type="hidden" name="offset" value="{{$.Offset}}"/>
|
|
<input type="hidden" name="edit" value="{{.Sub}}"/>
|
|
<button type="submit">Edit</button>
|
|
</form>
|
|
<form method="POST" action="/reset-password">
|
|
<input type="hidden" name="email" value="{{.Email}}"/>
|
|
<button type="submit">Send Reset Password Email</button>
|
|
</form>
|
|
{{end}}
|
|
</td>
|
|
</tr>
|
|
{{end}}
|
|
</tbody>
|
|
</table>
|
|
<form method="GET" action="/manage/users">
|
|
<input type="hidden" name="offset" value="{{.Offset}}"/>
|
|
{{if not .EmailShow}}
|
|
<input type="hidden" name="show-email"/>
|
|
{{end}}
|
|
<button type="submit">{{if .EmailShow}}Hide Email Addresses{{else}}Show email addresses{{end}}</button>
|
|
</form>
|
|
{{end}}
|
|
|
|
<h2>Create User</h2>
|
|
<form method="POST" action="/manage/users">
|
|
<input type="hidden" name="action" value="create"/>
|
|
<input type="hidden" name="offset" value="{{.Offset}}"/>
|
|
<div>
|
|
<label for="field_name">Name:</label>
|
|
<input type="text" name="name" id="field_name" required/>
|
|
</div>
|
|
<div>
|
|
<label for="field_username">Username:</label>
|
|
<input type="text" name="username" id="field_username" required/>
|
|
</div>
|
|
<div>
|
|
<label for="field_email">Email:</label>
|
|
<p>Using an `@{{.Namespace}}` email address will automatically verify as it is owned by this login
|
|
service.</p>
|
|
<input type="text" name="email" id="field_email" required/>
|
|
</div>
|
|
<div>
|
|
<label for="field_role">Role:</label>
|
|
<select name="role" id="field_role" required>
|
|
<option value="member" selected>Member</option>
|
|
<option value="admin">Admin</option>
|
|
</select>
|
|
</div>
|
|
<div>
|
|
<label for="field_active">Active: <input type="checkbox" name="active" id="field_active"
|
|
checked/></label>
|
|
</div>
|
|
<button type="submit">Create</button>
|
|
</form>
|
|
{{end}}
|
|
</main>
|
|
</body>
|
|
</html>
|