chore: add AGPL3-or-later license

This CL adds the AGPL3-or-later license for all public code.

It also adds some configuration so we can use headroom to automatically
generate the license headers.

GitOrigin-RevId: 634827ab248c207e6841dbad29f59aeadcbef541
diff --git a/src/dynamic/addincidentbulk.php b/src/dynamic/addincidentbulk.php
index afb04ba..228fa21 100644
--- a/src/dynamic/addincidentbulk.php
+++ b/src/dynamic/addincidentbulk.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/addworkhistoryitem.php b/src/dynamic/addworkhistoryitem.php
index 712c3f6..64263d5 100644
--- a/src/dynamic/addworkhistoryitem.php
+++ b/src/dynamic/addworkhistoryitem.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/authorsincident.php b/src/dynamic/authorsincident.php
index 25194f3..e95e608 100644
--- a/src/dynamic/authorsincident.php
+++ b/src/dynamic/authorsincident.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/authorsrecord.php b/src/dynamic/authorsrecord.php
index 8888af3..fbe6619 100644
--- a/src/dynamic/authorsrecord.php
+++ b/src/dynamic/authorsrecord.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/companyuser.php b/src/dynamic/companyuser.php
index 0acfac3..c0a398e 100644
--- a/src/dynamic/companyuser.php
+++ b/src/dynamic/companyuser.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
@@ -57,7 +76,7 @@
 
 <h4 class="mdl-dialog__title"><?=security::htmlsafe($p["name"])?></h4>
 <div class="mdl-dialog__content">
-<?php
+<?php //do-not-add-license-header-here
 $list = [];
 $list["visible"] = "";
 $list["hidden"] = "";
diff --git a/src/dynamic/copytemplate.php b/src/dynamic/copytemplate.php
index 0f127ba..f7b72a8 100644
--- a/src/dynamic/copytemplate.php
+++ b/src/dynamic/copytemplate.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/deleteattachment.php b/src/dynamic/deleteattachment.php
index 66b6b1f..a208180 100644
--- a/src/dynamic/deleteattachment.php
+++ b/src/dynamic/deleteattachment.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/deletecalendar.php b/src/dynamic/deletecalendar.php
index 83f19cc..b73c45c 100644
--- a/src/dynamic/deletecalendar.php
+++ b/src/dynamic/deletecalendar.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/deleteday.php b/src/dynamic/deleteday.php
index d22206a..9a66a7e 100644
--- a/src/dynamic/deleteday.php
+++ b/src/dynamic/deleteday.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/deleteincident.php b/src/dynamic/deleteincident.php
index 8ba455c..d54fce3 100644
--- a/src/dynamic/deleteincident.php
+++ b/src/dynamic/deleteincident.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/deleteincidentsbulk.php b/src/dynamic/deleteincidentsbulk.php
index b3a397c..b441197 100644
--- a/src/dynamic/deleteincidentsbulk.php
+++ b/src/dynamic/deleteincidentsbulk.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/deleteschedule.php b/src/dynamic/deleteschedule.php
index 52c14f9..f58ee29 100644
--- a/src/dynamic/deleteschedule.php
+++ b/src/dynamic/deleteschedule.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/deletescheduletemplate.php b/src/dynamic/deletescheduletemplate.php
index ad3a1ae..f2f1b14 100644
--- a/src/dynamic/deletescheduletemplate.php
+++ b/src/dynamic/deletescheduletemplate.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/deletesecuritykey.php b/src/dynamic/deletesecuritykey.php
index 8b62609..2de01ad 100644
--- a/src/dynamic/deletesecuritykey.php
+++ b/src/dynamic/deletesecuritykey.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/deletetemplateday.php b/src/dynamic/deletetemplateday.php
index 63e0cb8..8043483 100644
--- a/src/dynamic/deletetemplateday.php
+++ b/src/dynamic/deletetemplateday.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/deleteworkhistoryitem.php b/src/dynamic/deleteworkhistoryitem.php
index 0dd5613..19a3ada 100644
--- a/src/dynamic/deleteworkhistoryitem.php
+++ b/src/dynamic/deleteworkhistoryitem.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/disablesecondfactor.php b/src/dynamic/disablesecondfactor.php
index ad9913e..5a174b8 100644
--- a/src/dynamic/disablesecondfactor.php
+++ b/src/dynamic/disablesecondfactor.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
@@ -21,7 +40,7 @@
   width: auto;
 }
 </style>
-<?php
+<?php //do-not-add-license-header-here
 }
 ?>
 
diff --git a/src/dynamic/editcategory.php b/src/dynamic/editcategory.php
index 1057df1..42a4c3d 100644
--- a/src/dynamic/editcategory.php
+++ b/src/dynamic/editcategory.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/editcompany.php b/src/dynamic/editcompany.php
index 1af315e..c21fe2b 100644
--- a/src/dynamic/editcompany.php
+++ b/src/dynamic/editcompany.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/editday.php b/src/dynamic/editday.php
index 3829b47..45633d6 100644
--- a/src/dynamic/editday.php
+++ b/src/dynamic/editday.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/editincident.php b/src/dynamic/editincident.php
index 808070e..07f644f 100644
--- a/src/dynamic/editincident.php
+++ b/src/dynamic/editincident.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/editincidentcomment.php b/src/dynamic/editincidentcomment.php
index 8fd9dd6..2c98970 100644
--- a/src/dynamic/editincidentcomment.php
+++ b/src/dynamic/editincidentcomment.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/editincidenttype.php b/src/dynamic/editincidenttype.php
index 2901a4f..a31780c 100644
--- a/src/dynamic/editincidenttype.php
+++ b/src/dynamic/editincidenttype.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/editschedule.php b/src/dynamic/editschedule.php
index c8d0b6a..fac8b8a 100644
--- a/src/dynamic/editschedule.php
+++ b/src/dynamic/editschedule.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/editscheduletemplate.php b/src/dynamic/editscheduletemplate.php
index 3c67d74..6bd964a 100644
--- a/src/dynamic/editscheduletemplate.php
+++ b/src/dynamic/editscheduletemplate.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/edittemplateday.php b/src/dynamic/edittemplateday.php
index 136ff1a..caeb170 100644
--- a/src/dynamic/edittemplateday.php
+++ b/src/dynamic/edittemplateday.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/edituser.php b/src/dynamic/edituser.php
index 36fb51c..d029d0e 100644
--- a/src/dynamic/edituser.php
+++ b/src/dynamic/edituser.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/editworkhistoryitem.php b/src/dynamic/editworkhistoryitem.php
index 14fd04c..0b65d85 100644
--- a/src/dynamic/editworkhistoryitem.php
+++ b/src/dynamic/editworkhistoryitem.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/enablesecondfactor.php b/src/dynamic/enablesecondfactor.php
index 633d36e..fd7184f 100644
--- a/src/dynamic/enablesecondfactor.php
+++ b/src/dynamic/enablesecondfactor.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/exportcalendar.php b/src/dynamic/exportcalendar.php
index 47b88fa..ad60760 100644
--- a/src/dynamic/exportcalendar.php
+++ b/src/dynamic/exportcalendar.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/incidentattachments.php b/src/dynamic/incidentattachments.php
index 2402688..f9bcbac 100644
--- a/src/dynamic/incidentattachments.php
+++ b/src/dynamic/incidentattachments.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/invalidateincident.php b/src/dynamic/invalidateincident.php
index ceeeac3..eae06f0 100644
--- a/src/dynamic/invalidateincident.php
+++ b/src/dynamic/invalidateincident.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/invalidaterecord.php b/src/dynamic/invalidaterecord.php
index 2dc0dfc..b1cedcd 100644
--- a/src/dynamic/invalidaterecord.php
+++ b/src/dynamic/invalidaterecord.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::WORKER, security::METHOD_NOTFOUND);
 security::checkWorkerUIEnabled();
diff --git a/src/dynamic/log.php b/src/dynamic/log.php
index 1c10dc5..7931a54 100644
--- a/src/dynamic/log.php
+++ b/src/dynamic/log.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
@@ -54,6 +73,6 @@
 <div class="mdl-dialog__actions">
   <button data-dyndialog-close class="mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--primary">Cerrar</button>
 </div>
-<?php
+<?php //do-not-add-license-header-here
 visual::renderTooltips();
 ?>
diff --git a/src/dynamic/sethelpresource.php b/src/dynamic/sethelpresource.php
index 2171dde..b67d42a 100644
--- a/src/dynamic/sethelpresource.php
+++ b/src/dynamic/sethelpresource.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::HYPERADMIN, security::METHOD_NOTFOUND);
 
diff --git a/src/dynamic/user.php b/src/dynamic/user.php
index d0aec1d..43f345f 100644
--- a/src/dynamic/user.php
+++ b/src/dynamic/user.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);
 
@@ -28,7 +47,7 @@
   dynDialog.load("dynamic/disablesecondfactor.php?id=<?=(int)$p["id"]?>");
 });
 </dynscript>
-<?php
+<?php //do-not-add-license-header-here
 }
 ?>
 
diff --git a/src/dynamic/workhistory.php b/src/dynamic/workhistory.php
index 4c74000..fa7c7c9 100644
--- a/src/dynamic/workhistory.php
+++ b/src/dynamic/workhistory.php
@@ -1,4 +1,23 @@
 <?php
+/*
+ * hores
+ * Copyright (c) 2023 Adrià Vilanova Martínez
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this program.
+ * If not, see http://www.gnu.org/licenses/.
+ */
+
 require_once(__DIR__."/../core.php");
 security::checkType(security::ADMIN, security::METHOD_NOTFOUND);