blob: cd08cf2cf12fa1f37f3f8a463b1d0c9ca93e60c4 [file] [log] [blame]
Copybara botbe50d492023-11-30 00:16:42 +01001<?php
Adrià Vilanova Martínez5af86512023-12-02 20:44:16 +01002/*
3 * hores
4 * Copyright (c) 2023 Adrià Vilanova Martínez
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as
8 * published by the Free Software Foundation, either version 3 of the
9 * License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
15 *
16 * You should have received a copy of the GNU Affero General Public
17 * License along with this program.
18 * If not, see http://www.gnu.org/licenses/.
19 */
20
Copybara botbe50d492023-11-30 00:16:42 +010021require_once("core.php");
22security::checkType(security::ADMIN);
23
24security::changeActiveView(visual::VIEW_ADMIN);
25
26$tips = array(
27 "companies" => "<a href='companies.php'>Añade una o más empresas</a> antes de empezar. Esta utilidad te permite organizar el horario de trabajadores de varias empresas en la misma aplicación.",
28 "categories" => "Opcionalmente, puedes <a href='categories.php'>crear categorías</a> para clasificar tus trabajadores, si te es conveniente.",
29 "typesincidents" => "Para poder rellenar incidencias, es necesario que <a href='incidenttypes.php'>crees tipos de incidencias</a>. Estos sirven para determinar si una incidencia de ese tipo significa que se han trabajado horas extra o por si lo contrario el trabajador se auyenta del centro de trabajo, o si las horas de incidencia están remuneradas, etc.",
30 "calendars" => "<a href='calendars.php'>Configura los calendarios</a> de días laborables, lectivos y festivos."
31);
32
33$checkEmptiness = ["companies", "categories", "typesincidents", "calendars"];
34$isEmpty = [];
35
36foreach ($checkEmptiness as $table) {
37 if (db::numRows($table) == 0) $isEmpty[] = $table;
38}
39
40?>
41<!DOCTYPE html>
42<html>
43<head>
44 <title><?php echo $conf["appName"]; ?></title>
45 <?php visual::includeHead(); ?>
46 <link rel="stylesheet" href="css/dashboard.css">
47 <style>
48 .tip {
49 border-radius: 4px;
50 border: solid 1px #45b9dc;
51 padding: 22px 16px;
52 }
53
54 .tip p:last-child {
55 margin-bottom: 0;
56 }
57
58 li {
59 margin-bottom: 0.5em;
60 }
61
62 li.done {
63 color: #777;
64 }
65
66 li.done a {
67 color: #555;
68 }
69 </style>
70</head>
71<?php visual::printBodyTag(); ?>
72 <div class="mdl-layout mdl-js-layout mdl-layout--fixed-header mdl-layout--fixed-drawer">
73 <?php visual::includeNav(); ?>
74 <main class="mdl-layout__content">
75 <div class="page-content">
76 <div class="main mdl-shadow--4dp">
77 <h2>Bienvenido</h2>
78 <?php
79 if (count($isEmpty)) {
80 ?>
81 <p>¡Hola <?=people::userData("name")?>! Antes de empezar a sacarle todo el jugo a la aplicación, nos gustaría sugerirte algunas acciones para empezar a configurarla:</p>
82 <ol>
83 <?php
84 foreach ($checkEmptiness as $t) {
85 $strike = !in_array($t, $isEmpty);
86 echo "<li".($strike ? " class='done'" : "").">".$tips[$t]."</li>";
87 }
88 ?>
89 </ol>
90 <p>Después de realizar estas acciones, te sugerimos añadir trabajadores y configurar sus horarios desde la sección <a href="users.php">Trabajadores</a>. También te puede interesar acceder a la sección <a href="scheduletemplates.php">Plantillas de horarios</a> si vas a configurar el mismo horario múltiples veces a varias personas.</p>
91 <?php
92 } else {
93 ?>
94 <p>¡Hola <?=people::userData("name")?>! Bienvenido a tu Panel de Control.</p>
95 <?php
96 if (!secondFactor::isEnabled()) {
97 ?>
98 <hr>
99 <div class="tip mdl-color--blue-100 mdl-shadow--2dp">
100 <p><b>Consejo:</b> debido a que eres un <?=security::htmlsafe(strtolower(security::$types[people::userData("type")]))?> y por lo tanto tu usuario tiene acceso ilimitado a todos los datos del aplicativo, para evitar que estos caigan en manos de un agente malicioso, te recomendamos que actives la <span class="highlighted">verificación en dos pasos</span>.</p>
101 <p>La verificación en dos pasos consiste en la obligación de usar un segundo factor (como un código generado en tu móvil o tu huella dactilar) para iniciar sesión a parte de tu usuario y contraseña. <span class="highlighted">Mientras que una contraseña es relativamente fácil de obtener, para acceder al segundo factor el atacante debe tener acceso físico a un dispositivo tuyo, lo que disminuye el riesgo de sufrir un ataque.</span></p>
102 <p>Puedes aprender más sobre la verificación en dos pasos en <a href="https://avm99963.github.io/hores-external/trabajadores/verificacion-en-dos-pasos/" target="_blank" rel="noopener noreferrer">este artículo de ayuda</a>.</p>
103 </div>
104 <?php
105 }
106 }
107 ?>
108 </div>
109 </div>
110 </main>
111 </div>
112</body>
113</html>