- Rol «externas» para la asamblea de externas: pide sin cupo, siempre con el colectivo de fuera y su contacto, y sus solicitudes salen en naranja hasta que la asamblea de la Enre las confirma. - /pedir/ explica en una línea que los colectivos externos piden fecha en la asamblea de externas, los lunes de 19:00 a 20:00. - Seguridad: argon2 limitado a dos cálculos a la vez y el intento se cuenta antes de calcular (60 accesos simultáneos llevaban el proceso a 3,8 GB); bloqueo por cuenta a 20 fallos para que no se pueda dejar fuera a la asamblea; avisos por sesión en vez de por URL; sig sin «..»; eventos de 31 días como mucho; parámetros de argon2 acotados. - Títulos pegados arriba en todas las páginas; la franja de la enredadera recupera ese alto para seguir llenando la pantalla. - despliegue/: instalar.sh, cuenta.sh, servicio de systemd con el proceso encerrado, fragmento de nginx que además deja de servir .git y las notas internas, y configuración de ejemplo. Ninguna contraseña en el repositorio.
89 lines
3.6 KiB
HTML
89 lines
3.6 KiB
HTML
{{template "arriba" .}}
|
|
|
|
{{- if .Clave}}
|
|
<section class="pantalla" aria-label="Clave temporal">
|
|
<h2>Clave temporal de «{{.DeQuien}}»</h2>
|
|
<p class="clave-nueva">{{.Clave}}</p>
|
|
<p class="pie">
|
|
Apuntadla y entregadla en mano. No se vuelve a mostrar: de la contraseña solo se
|
|
guarda su huella, no la contraseña. Quien entre con ella tendrá que cambiarla antes
|
|
de poder hacer nada.
|
|
</p>
|
|
</section>
|
|
{{- end}}
|
|
|
|
<section class="pantalla" aria-label="Cuentas">
|
|
<h2>Cuentas</h2>
|
|
<div class="tabla-envoltorio">
|
|
<table class="pedir-tabla">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col">Usuario</th>
|
|
<th scope="col">Colectivo</th>
|
|
<th scope="col">Rol</th>
|
|
<th scope="col">Estado</th>
|
|
<th scope="col">Acciones</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{{- range .Cuentas}}
|
|
<tr>
|
|
<th scope="row">{{.Usuario}}</th>
|
|
<td>{{.Nombre}}</td>
|
|
<td>{{.Rol}}</td>
|
|
<td>
|
|
{{- if .Activa}}activa{{else}}desactivada{{end}}
|
|
{{- if .Temporal}} <span class="pista">clave temporal sin cambiar</span>{{end}}
|
|
</td>
|
|
<td>
|
|
<form class="en-linea" method="post" action="/pedir/cuentas">
|
|
<input type="hidden" name="csrf" value="{{$.CSRF}}">
|
|
<input type="hidden" name="usuario" value="{{.Usuario}}">
|
|
<button type="submit" name="accion" value="reset" class="pedir-boton-flojo">Resetear clave</button>
|
|
{{- if .Activa}}
|
|
<button type="submit" name="accion" value="desactivar" class="pedir-boton-flojo">Desactivar</button>
|
|
{{- else}}
|
|
<button type="submit" name="accion" value="activar" class="pedir-boton-flojo">Activar</button>
|
|
{{- end}}
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
{{- end}}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="pantalla" aria-label="Dar de alta un colectivo">
|
|
<h2>Dar de alta un colectivo de la Enre</h2>
|
|
<form class="pedir-form" method="post" action="/pedir/cuentas" autocomplete="off">
|
|
<input type="hidden" name="csrf" value="{{.CSRF}}">
|
|
<input type="hidden" name="accion" value="crear">
|
|
<p>
|
|
<label for="nuevo-usuario">Usuario</label>
|
|
<input id="nuevo-usuario" name="usuario" type="text" required maxlength="32"
|
|
autocapitalize="none" spellcheck="false">
|
|
<span class="pista">Minúsculas, números, guion y guion bajo.</span>
|
|
</p>
|
|
<p>
|
|
<label for="nuevo-nombre">Nombre del colectivo</label>
|
|
<input id="nuevo-nombre" name="nombre" type="text" required maxlength="60">
|
|
</p>
|
|
<p>
|
|
<label for="nuevo-rol">Rol</label>
|
|
<select id="nuevo-rol" name="rol">
|
|
<option value="interno">interno: pide fechas y amadrina</option>
|
|
<option value="externas">externas: la asamblea de externas, pide sin cupo</option>
|
|
<option value="enre">enre: además confirma y rechaza</option>
|
|
</select>
|
|
</p>
|
|
<p><button type="submit">Crear la cuenta</button></p>
|
|
</form>
|
|
<p class="pie">
|
|
Los colectivos de fuera no tienen cuenta: sus eventos los apunta la cuenta de externas
|
|
en la asamblea de externas, o un colectivo de la Enre que los amadrina. Cuantas menos
|
|
contraseñas haya guardadas, menos hay que perder.
|
|
</p>
|
|
</section>
|
|
|
|
{{template "abajo" .}}
|