develop dans master - première version stable #9
@@ -0,0 +1,485 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2021 The Bootstrap Authors
|
||||||
|
* Copyright 2011-2021 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
|
*/
|
||||||
|
:root {
|
||||||
|
--bs-blue: #0d6efd;
|
||||||
|
--bs-indigo: #6610f2;
|
||||||
|
--bs-purple: #6f42c1;
|
||||||
|
--bs-pink: #d63384;
|
||||||
|
--bs-red: #dc3545;
|
||||||
|
--bs-orange: #fd7e14;
|
||||||
|
--bs-yellow: #ffc107;
|
||||||
|
--bs-green: #198754;
|
||||||
|
--bs-teal: #20c997;
|
||||||
|
--bs-cyan: #0dcaf0;
|
||||||
|
--bs-white: #fff;
|
||||||
|
--bs-gray: #6c757d;
|
||||||
|
--bs-gray-dark: #343a40;
|
||||||
|
--bs-gray-100: #f8f9fa;
|
||||||
|
--bs-gray-200: #e9ecef;
|
||||||
|
--bs-gray-300: #dee2e6;
|
||||||
|
--bs-gray-400: #ced4da;
|
||||||
|
--bs-gray-500: #adb5bd;
|
||||||
|
--bs-gray-600: #6c757d;
|
||||||
|
--bs-gray-700: #495057;
|
||||||
|
--bs-gray-800: #343a40;
|
||||||
|
--bs-gray-900: #212529;
|
||||||
|
--bs-primary: #0d6efd;
|
||||||
|
--bs-secondary: #6c757d;
|
||||||
|
--bs-success: #198754;
|
||||||
|
--bs-info: #0dcaf0;
|
||||||
|
--bs-warning: #ffc107;
|
||||||
|
--bs-danger: #dc3545;
|
||||||
|
--bs-light: #f8f9fa;
|
||||||
|
--bs-dark: #212529;
|
||||||
|
--bs-primary-rgb: 13, 110, 253;
|
||||||
|
--bs-secondary-rgb: 108, 117, 125;
|
||||||
|
--bs-success-rgb: 25, 135, 84;
|
||||||
|
--bs-info-rgb: 13, 202, 240;
|
||||||
|
--bs-warning-rgb: 255, 193, 7;
|
||||||
|
--bs-danger-rgb: 220, 53, 69;
|
||||||
|
--bs-light-rgb: 248, 249, 250;
|
||||||
|
--bs-dark-rgb: 33, 37, 41;
|
||||||
|
--bs-white-rgb: 255, 255, 255;
|
||||||
|
--bs-black-rgb: 0, 0, 0;
|
||||||
|
--bs-body-color-rgb: 33, 37, 41;
|
||||||
|
--bs-body-bg-rgb: 255, 255, 255;
|
||||||
|
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
|
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
|
||||||
|
--bs-body-font-family: var(--bs-font-sans-serif);
|
||||||
|
--bs-body-font-size: 1rem;
|
||||||
|
--bs-body-font-weight: 400;
|
||||||
|
--bs-body-line-height: 1.5;
|
||||||
|
--bs-body-color: #212529;
|
||||||
|
--bs-body-bg: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: no-preference) {
|
||||||
|
:root {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-family: var(--bs-body-font-family);
|
||||||
|
font-size: var(--bs-body-font-size);
|
||||||
|
font-weight: var(--bs-body-font-weight);
|
||||||
|
line-height: var(--bs-body-line-height);
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
text-align: var(--bs-body-text-align);
|
||||||
|
background-color: var(--bs-body-bg);
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
margin: 1rem 0;
|
||||||
|
color: inherit;
|
||||||
|
background-color: currentColor;
|
||||||
|
border: 0;
|
||||||
|
opacity: 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr:not([size]) {
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6, h5, h4, h3, h2, h1 {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: calc(1.375rem + 1.5vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: calc(1.325rem + 0.9vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h2 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: calc(1.3rem + 0.6vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h3 {
|
||||||
|
font-size: 1.75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: calc(1.275rem + 0.3vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h4 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr[title],
|
||||||
|
abbr[data-bs-original-title] {
|
||||||
|
-webkit-text-decoration: underline dotted;
|
||||||
|
text-decoration: underline dotted;
|
||||||
|
cursor: help;
|
||||||
|
-webkit-text-decoration-skip-ink: none;
|
||||||
|
text-decoration-skip-ink: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
address {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
padding-left: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
dl {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol ol,
|
||||||
|
ul ul,
|
||||||
|
ol ul,
|
||||||
|
ul ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
margin-left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark {
|
||||||
|
padding: 0.2em;
|
||||||
|
background-color: #fcf8e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
position: relative;
|
||||||
|
font-size: 0.75em;
|
||||||
|
line-height: 0;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0d6efd;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
color: #0a58ca;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre,
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
samp {
|
||||||
|
font-family: var(--bs-font-monospace);
|
||||||
|
font-size: 1em;
|
||||||
|
direction: ltr /* rtl:ignore */;
|
||||||
|
unicode-bidi: bidi-override;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
display: block;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
overflow: auto;
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
pre code {
|
||||||
|
font-size: inherit;
|
||||||
|
color: inherit;
|
||||||
|
word-break: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-size: 0.875em;
|
||||||
|
color: #d63384;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
a > code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
padding: 0.2rem 0.4rem;
|
||||||
|
font-size: 0.875em;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #212529;
|
||||||
|
border-radius: 0.2rem;
|
||||||
|
}
|
||||||
|
kbd kbd {
|
||||||
|
padding: 0;
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
img,
|
||||||
|
svg {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
caption-side: bottom;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
caption {
|
||||||
|
padding-top: 0.5rem;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
color: #6c757d;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: inherit;
|
||||||
|
text-align: -webkit-match-parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead,
|
||||||
|
tbody,
|
||||||
|
tfoot,
|
||||||
|
tr,
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
border-color: inherit;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus:not(:focus-visible) {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input,
|
||||||
|
button,
|
||||||
|
select,
|
||||||
|
optgroup,
|
||||||
|
textarea {
|
||||||
|
margin: 0;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[role=button] {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
word-wrap: normal;
|
||||||
|
}
|
||||||
|
select:disabled {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
[list]::-webkit-calendar-picker-indicator {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
[type=button],
|
||||||
|
[type=reset],
|
||||||
|
[type=submit] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
button:not(:disabled),
|
||||||
|
[type=button]:not(:disabled),
|
||||||
|
[type=reset]:not(:disabled),
|
||||||
|
[type=submit]:not(:disabled) {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
legend {
|
||||||
|
float: left;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-size: calc(1.275rem + 0.3vw);
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
legend {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
legend + * {
|
||||||
|
clear: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-datetime-edit-fields-wrapper,
|
||||||
|
::-webkit-datetime-edit-text,
|
||||||
|
::-webkit-datetime-edit-minute,
|
||||||
|
::-webkit-datetime-edit-hour-field,
|
||||||
|
::-webkit-datetime-edit-day-field,
|
||||||
|
::-webkit-datetime-edit-month-field,
|
||||||
|
::-webkit-datetime-edit-year-field {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-inner-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type=search] {
|
||||||
|
outline-offset: -2px;
|
||||||
|
-webkit-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* rtl:raw:
|
||||||
|
[type="tel"],
|
||||||
|
[type="url"],
|
||||||
|
[type="email"],
|
||||||
|
[type="number"] {
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-color-swatch-wrapper {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
::file-selector-button {
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
font: inherit;
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
output {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
iframe {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
summary {
|
||||||
|
display: list-item;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
||||||
@@ -0,0 +1,482 @@
|
|||||||
|
/*!
|
||||||
|
* Bootstrap Reboot v5.1.3 (https://getbootstrap.com/)
|
||||||
|
* Copyright 2011-2021 The Bootstrap Authors
|
||||||
|
* Copyright 2011-2021 Twitter, Inc.
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||||
|
*/
|
||||||
|
:root {
|
||||||
|
--bs-blue: #0d6efd;
|
||||||
|
--bs-indigo: #6610f2;
|
||||||
|
--bs-purple: #6f42c1;
|
||||||
|
--bs-pink: #d63384;
|
||||||
|
--bs-red: #dc3545;
|
||||||
|
--bs-orange: #fd7e14;
|
||||||
|
--bs-yellow: #ffc107;
|
||||||
|
--bs-green: #198754;
|
||||||
|
--bs-teal: #20c997;
|
||||||
|
--bs-cyan: #0dcaf0;
|
||||||
|
--bs-white: #fff;
|
||||||
|
--bs-gray: #6c757d;
|
||||||
|
--bs-gray-dark: #343a40;
|
||||||
|
--bs-gray-100: #f8f9fa;
|
||||||
|
--bs-gray-200: #e9ecef;
|
||||||
|
--bs-gray-300: #dee2e6;
|
||||||
|
--bs-gray-400: #ced4da;
|
||||||
|
--bs-gray-500: #adb5bd;
|
||||||
|
--bs-gray-600: #6c757d;
|
||||||
|
--bs-gray-700: #495057;
|
||||||
|
--bs-gray-800: #343a40;
|
||||||
|
--bs-gray-900: #212529;
|
||||||
|
--bs-primary: #0d6efd;
|
||||||
|
--bs-secondary: #6c757d;
|
||||||
|
--bs-success: #198754;
|
||||||
|
--bs-info: #0dcaf0;
|
||||||
|
--bs-warning: #ffc107;
|
||||||
|
--bs-danger: #dc3545;
|
||||||
|
--bs-light: #f8f9fa;
|
||||||
|
--bs-dark: #212529;
|
||||||
|
--bs-primary-rgb: 13, 110, 253;
|
||||||
|
--bs-secondary-rgb: 108, 117, 125;
|
||||||
|
--bs-success-rgb: 25, 135, 84;
|
||||||
|
--bs-info-rgb: 13, 202, 240;
|
||||||
|
--bs-warning-rgb: 255, 193, 7;
|
||||||
|
--bs-danger-rgb: 220, 53, 69;
|
||||||
|
--bs-light-rgb: 248, 249, 250;
|
||||||
|
--bs-dark-rgb: 33, 37, 41;
|
||||||
|
--bs-white-rgb: 255, 255, 255;
|
||||||
|
--bs-black-rgb: 0, 0, 0;
|
||||||
|
--bs-body-color-rgb: 33, 37, 41;
|
||||||
|
--bs-body-bg-rgb: 255, 255, 255;
|
||||||
|
--bs-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||||
|
--bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||||
|
--bs-gradient: linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));
|
||||||
|
--bs-body-font-family: var(--bs-font-sans-serif);
|
||||||
|
--bs-body-font-size: 1rem;
|
||||||
|
--bs-body-font-weight: 400;
|
||||||
|
--bs-body-line-height: 1.5;
|
||||||
|
--bs-body-color: #212529;
|
||||||
|
--bs-body-bg: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
*,
|
||||||
|
*::before,
|
||||||
|
*::after {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: no-preference) {
|
||||||
|
:root {
|
||||||
|
scroll-behavior: smooth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
font-family: var(--bs-body-font-family);
|
||||||
|
font-size: var(--bs-body-font-size);
|
||||||
|
font-weight: var(--bs-body-font-weight);
|
||||||
|
line-height: var(--bs-body-line-height);
|
||||||
|
color: var(--bs-body-color);
|
||||||
|
text-align: var(--bs-body-text-align);
|
||||||
|
background-color: var(--bs-body-bg);
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
hr {
|
||||||
|
margin: 1rem 0;
|
||||||
|
color: inherit;
|
||||||
|
background-color: currentColor;
|
||||||
|
border: 0;
|
||||||
|
opacity: 0.25;
|
||||||
|
}
|
||||||
|
|
||||||
|
hr:not([size]) {
|
||||||
|
height: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6, h5, h4, h3, h2, h1 {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-weight: 500;
|
||||||
|
line-height: 1.2;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: calc(1.375rem + 1.5vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: calc(1.325rem + 0.9vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h2 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: calc(1.3rem + 0.6vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h3 {
|
||||||
|
font-size: 1.75rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: calc(1.275rem + 0.3vw);
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
h4 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
abbr[title],
|
||||||
|
abbr[data-bs-original-title] {
|
||||||
|
-webkit-text-decoration: underline dotted;
|
||||||
|
text-decoration: underline dotted;
|
||||||
|
cursor: help;
|
||||||
|
-webkit-text-decoration-skip-ink: none;
|
||||||
|
text-decoration-skip-ink: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
address {
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-style: normal;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
padding-right: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol,
|
||||||
|
ul,
|
||||||
|
dl {
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ol ol,
|
||||||
|
ul ul,
|
||||||
|
ol ul,
|
||||||
|
ul ol {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dt {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
|
||||||
|
mark {
|
||||||
|
padding: 0.2em;
|
||||||
|
background-color: #fcf8e3;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
position: relative;
|
||||||
|
font-size: 0.75em;
|
||||||
|
line-height: 0;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: #0d6efd;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
a:hover {
|
||||||
|
color: #0a58ca;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre,
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
samp {
|
||||||
|
font-family: var(--bs-font-monospace);
|
||||||
|
font-size: 1em;
|
||||||
|
direction: ltr ;
|
||||||
|
unicode-bidi: bidi-override;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre {
|
||||||
|
display: block;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
overflow: auto;
|
||||||
|
font-size: 0.875em;
|
||||||
|
}
|
||||||
|
pre code {
|
||||||
|
font-size: inherit;
|
||||||
|
color: inherit;
|
||||||
|
word-break: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
code {
|
||||||
|
font-size: 0.875em;
|
||||||
|
color: #d63384;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
a > code {
|
||||||
|
color: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
kbd {
|
||||||
|
padding: 0.2rem 0.4rem;
|
||||||
|
font-size: 0.875em;
|
||||||
|
color: #fff;
|
||||||
|
background-color: #212529;
|
||||||
|
border-radius: 0.2rem;
|
||||||
|
}
|
||||||
|
kbd kbd {
|
||||||
|
padding: 0;
|
||||||
|
font-size: 1em;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0 0 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
img,
|
||||||
|
svg {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
table {
|
||||||
|
caption-side: bottom;
|
||||||
|
border-collapse: collapse;
|
||||||
|
}
|
||||||
|
|
||||||
|
caption {
|
||||||
|
padding-top: 0.5rem;
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
color: #6c757d;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
th {
|
||||||
|
text-align: inherit;
|
||||||
|
text-align: -webkit-match-parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
thead,
|
||||||
|
tbody,
|
||||||
|
tfoot,
|
||||||
|
tr,
|
||||||
|
td,
|
||||||
|
th {
|
||||||
|
border-color: inherit;
|
||||||
|
border-style: solid;
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:focus:not(:focus-visible) {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
input,
|
||||||
|
button,
|
||||||
|
select,
|
||||||
|
optgroup,
|
||||||
|
textarea {
|
||||||
|
margin: 0;
|
||||||
|
font-family: inherit;
|
||||||
|
font-size: inherit;
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
[role=button] {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
select {
|
||||||
|
word-wrap: normal;
|
||||||
|
}
|
||||||
|
select:disabled {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
[list]::-webkit-calendar-picker-indicator {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
button,
|
||||||
|
[type=button],
|
||||||
|
[type=reset],
|
||||||
|
[type=submit] {
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
button:not(:disabled),
|
||||||
|
[type=button]:not(:disabled),
|
||||||
|
[type=reset]:not(:disabled),
|
||||||
|
[type=submit]:not(:disabled) {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
legend {
|
||||||
|
float: right;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-size: calc(1.275rem + 0.3vw);
|
||||||
|
line-height: inherit;
|
||||||
|
}
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
legend {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
legend + * {
|
||||||
|
clear: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-datetime-edit-fields-wrapper,
|
||||||
|
::-webkit-datetime-edit-text,
|
||||||
|
::-webkit-datetime-edit-minute,
|
||||||
|
::-webkit-datetime-edit-hour-field,
|
||||||
|
::-webkit-datetime-edit-day-field,
|
||||||
|
::-webkit-datetime-edit-month-field,
|
||||||
|
::-webkit-datetime-edit-year-field {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-inner-spin-button {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type=search] {
|
||||||
|
outline-offset: -2px;
|
||||||
|
-webkit-appearance: textfield;
|
||||||
|
}
|
||||||
|
|
||||||
|
[type="tel"],
|
||||||
|
[type="url"],
|
||||||
|
[type="email"],
|
||||||
|
[type="number"] {
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-color-swatch-wrapper {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
::file-selector-button {
|
||||||
|
font: inherit;
|
||||||
|
}
|
||||||
|
|
||||||
|
::-webkit-file-upload-button {
|
||||||
|
font: inherit;
|
||||||
|
-webkit-appearance: button;
|
||||||
|
}
|
||||||
|
|
||||||
|
output {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
iframe {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
summary {
|
||||||
|
display: list-item;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
progress {
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
/*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
|
||||||
@@ -1,18 +1,28 @@
|
|||||||
/* Style concernant la confirmation de suppression d'un alias virtuel */
|
/* Style concernant la confirmation de suppression d'un alias virtuel */
|
||||||
.confirmation-suppression {
|
.confirmation-suppression {
|
||||||
display: none;
|
display: none;
|
||||||
color: #e23026;
|
color: #fff;
|
||||||
|
text-align: center;
|
||||||
|
text-decoration: none;
|
||||||
|
background-color: #dc3545;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.confirmation-suppression:hover {
|
||||||
|
color: #fff;
|
||||||
|
background-color: #bb2d3b;
|
||||||
|
border-color: #b02a37;
|
||||||
|
}
|
||||||
|
|
||||||
.input-checkbox-supprimer-valeur:checked ~ .confirmation-suppression {
|
.input-checkbox-supprimer-valeur:checked ~ .confirmation-suppression {
|
||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-label-supprimer-valeur {
|
/*.input-label-supprimer-valeur {
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
background: #e23026;
|
background: #e23026;
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
.visuellement-cache {
|
.visuellement-cache {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
.champ-interrupteur {
|
||||||
|
display: flex;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.champ-interrupteur input {
|
||||||
|
position: absolute !important;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
height: 1px;
|
||||||
|
width: 1px;
|
||||||
|
border: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.champ-interrupteur label {
|
||||||
|
background-color: #e4e4e4;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||||
|
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3), 0 1px rgba(255, 255, 255, 0.1);
|
||||||
|
transition: all 0.1s ease-in-out;
|
||||||
|
width: 38px;
|
||||||
|
height: 34px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.champ-interrupteur label:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.champ-interrupteur input:checked + .interrupteur-allumer {
|
||||||
|
background-color: #0d6efd;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.champ-interrupteur input:checked + .interrupteur-eteint {
|
||||||
|
background-color: #dc3545;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.champ-interrupteur label:first-of-type {
|
||||||
|
border-radius: 4px 0 0 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.champ-interrupteur label:last-of-type {
|
||||||
|
border-radius: 0 4px 4px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.champ-interrupteur.disabled {
|
||||||
|
pointer-events: none;
|
||||||
|
opacity: .65;
|
||||||
|
}
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
body {
|
||||||
|
background-color: #eee;
|
||||||
|
margin-bottom: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contenu_auth {
|
||||||
|
max-width: 380px;
|
||||||
|
margin: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
#contenu_auth #envoyer {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#logo-accueil {
|
||||||
|
text-align: center;
|
||||||
|
margin: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#logo-accueil img {
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#logo-accueil h1 {
|
||||||
|
color: #FFF;
|
||||||
|
font-size: 40pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.alert img {
|
||||||
|
height: 1.5em;
|
||||||
|
margin-right: 0.3em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.alert {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bouton-flotant {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 20px;
|
||||||
|
right: 20px;
|
||||||
|
background-color: #0d6efd;
|
||||||
|
color: white;
|
||||||
|
border-radius: 50%;
|
||||||
|
width: 60px;
|
||||||
|
height: 60px;
|
||||||
|
border: 2px solid #0d6efd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contour-pastille {
|
||||||
|
margin-top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.interieur-pastille {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.titre-pastille {
|
||||||
|
width: calc(100% - 122px);
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 4px;
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bouton-ajout{
|
||||||
|
padding: .375rem .475rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.alert {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.interieur-pastille-bleu {
|
||||||
|
background-color: #cfe2ff;
|
||||||
|
}
|
||||||
@@ -7,21 +7,21 @@
|
|||||||
**/
|
**/
|
||||||
function filtreValeurs() {
|
function filtreValeurs() {
|
||||||
// Déclaration des variables
|
// Déclaration des variables
|
||||||
var input, filter, ul, li, a, i, txtValue;
|
var input, filter, divgroupe, divunitaire, a, i, txtValue;
|
||||||
input = document.getElementById('nom_pour_filtre');
|
input = document.getElementById('nom_pour_filtre');
|
||||||
filter = input.value.toUpperCase();
|
filter = input.value.toUpperCase();
|
||||||
ul = document.getElementById("liste_pour_filtre");
|
divgroupe = document.getElementById("liste_pour_filtre");
|
||||||
li = ul.getElementsByTagName('li');
|
divunitaire = divgroupe.getElementsByClassName('col-md-6');
|
||||||
|
|
||||||
// Pour chaque "<li>", comparer le contenu (actualisé à chaque frappe) du "<input>" "nom_alias" avec le texte du "<p>" qu'il contient
|
// Pour chaque "divunitaire", comparer le contenu (actualisé à chaque frappe) du "<input>" "nom_alias" avec le texte du "<p>" qu'il contient
|
||||||
// Si le contenu du champ de texte est vide, n'en masquer aucun. Si le motif correspond, masquer les autres
|
// Si le contenu du champ de texte est vide, n'en masquer aucun. Si le motif correspond, masquer les autres
|
||||||
for (i = 0; i < li.length; i++) {
|
for (i = 0; i < divunitaire.length; i++) {
|
||||||
a = li[i].getElementsByTagName("p")[0];
|
a = divunitaire[i].getElementsByTagName("span")[0];
|
||||||
txtValue = a.textContent || a.innerText;
|
txtValue = a.textContent || a.innerText;
|
||||||
if (txtValue.toUpperCase().indexOf(filter) > -1) {
|
if (txtValue.toUpperCase().indexOf(filter) > -1) {
|
||||||
li[i].style.display = "";
|
divunitaire[i].style.display = "";
|
||||||
} else {
|
} else {
|
||||||
li[i].style.display = "none";
|
divunitaire[i].style.display = "none";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#664d03" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-triangle"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
|
||||||
|
After Width: | Height: | Size: 419 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#842029" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-triangle"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path><line x1="12" y1="9" x2="12" y2="13"></line><line x1="12" y1="17" x2="12.01" y2="17"></line></svg>
|
||||||
|
After Width: | Height: | Size: 419 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#0f5132" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-check-circle"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"></path><polyline points="22 4 12 14.01 9 11.01"></polyline></svg>
|
||||||
|
After Width: | Height: | Size: 323 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-corner-down-right"><polyline points="15 10 20 15 15 20"></polyline><path d="M4 4v7a4 4 0 0 0 4 4h12"></path></svg>
|
||||||
|
After Width: | Height: | Size: 318 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#084298" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-info"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12.01" y2="8"></line></svg>
|
||||||
|
After Width: | Height: | Size: 342 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg>
|
||||||
|
After Width: | Height: | Size: 371 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-mail"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path><polyline points="22,6 12,13 2,6"></polyline></svg>
|
||||||
|
After Width: | Height: | Size: 354 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
|
||||||
|
After Width: | Height: | Size: 296 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-save"><path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"></path><polyline points="17 21 17 13 7 13 7 21"></polyline><polyline points="7 3 7 8 15 8"></polyline></svg>
|
||||||
|
After Width: | Height: | Size: 384 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-send"><line x1="22" y1="2" x2="11" y2="13"></line><polygon points="22 2 15 22 11 13 2 9 22 2"></polygon></svg>
|
||||||
|
After Width: | Height: | Size: 309 B |
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#FFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-trash-2"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg>
|
||||||
|
After Width: | Height: | Size: 440 B |
@@ -1,37 +1,60 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Page importé intégrant le menu de navigation dans la page d'administration centrale.
|
* Page importé intégrant le menu de navigation dans la page d'administration centrale.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
echo <<<_HEREDOC_
|
if (isset($_GET['page']) && !empty($_GET['page'])) {
|
||||||
<div>
|
?>
|
||||||
<table>
|
|
||||||
<tr>
|
<nav class="navbar navbar-expand-lg navbar-dark" style="background-color: #343a40;">
|
||||||
<td><a href="/pages/gestion/administration.php?page=accueil">Courtail</a></td>
|
<div class="container-fluid">
|
||||||
<td><a href="/pages/gestion/administration.php?page=alias">Alias</a></td>
|
<a class="navbar-brand" href="/pages/gestion/administration.php?page=accueil">Courtail</a>
|
||||||
_HEREDOC_;
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
if (testPrivileges()=="administrateur") {
|
<span class="navbar-toggler-icon"></span>
|
||||||
echo <<<_HEREDOC_
|
</button>
|
||||||
<td><a href="/pages/gestion/administration.php?page=domaines">Domaines</a></td>
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
<td><a href="/pages/gestion/administration.php?page=listes_noires">Listes noires</a></td>
|
<ul class="navbar-nav">
|
||||||
_HEREDOC_;
|
<li class="nav-item">
|
||||||
|
<a class="nav-link <?php if ($_GET['page'] == 'accueil' || $_GET['page'] == 'alias') {echo 'active';} ?>" href="/pages/gestion/administration.php?page=alias">Alias</a>
|
||||||
|
</li>
|
||||||
|
<?php if (testPrivileges()=="administrateur") { ?>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link <?php if ($_GET['page'] == 'domaines') {echo 'active';} ?>" href="/pages/gestion/administration.php?page=domaines">Domaines</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle" href="/pages/gestion/administration.php?page=listes_noires&sousPage=destinataires" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
Listes noires
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu" aria-labelledby="navbarDropdown">
|
||||||
|
<li><a class="dropdown-item" href="/pages/gestion/administration.php?page=listes_noires&sousPage=destinataires">Destinataires</a></li>
|
||||||
|
<li><a class="dropdown-item" href="/pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs">Expéditeurs</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<?php } ?>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link <?php if ($_GET['page'] == 'parametres') {echo 'active';} ?>" href="/pages/gestion/administration.php?page=parametres">Paramètres</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="/services/traitements/utilisateurs/deconnexion.php">Déconnexion</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<?php
|
||||||
}
|
}
|
||||||
echo <<<_HEREDOC_
|
|
||||||
<td><a href="/pages/gestion/administration.php?page=parametres">Paramètres</a></td>
|
|
||||||
<td><a href="/services/traitements/utilisateurs/deconnexion.php">Déconnexion</a></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
_HEREDOC_;
|
|
||||||
|
|
||||||
|
/*if (isset($_GET['message']) && !empty($_GET['message'])) {
|
||||||
if (isset($_GET['message']) && !empty($_GET['message'])) {
|
|
||||||
switch ($_GET['message']) {
|
switch ($_GET['message']) {
|
||||||
case "bienvenue":
|
case "bienvenue":
|
||||||
echo "<p class=\"messages_retour_ko\">Bienvenue ".$_SESSION['nom_utilisateur'].". Vous êtes authentifié en tant qu'".$_SESSION['privilege_utilisateur'].".</p>";
|
echo "<div class=\"alert alert-success\" role=\"alert\">Bienvenue ".$_SESSION['nom_utilisateur'].". Vous êtes authentifié en tant qu'".$_SESSION['privilege_utilisateur'].".</div>";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -2,9 +2,12 @@
|
|||||||
<html lang="fr">
|
<html lang="fr">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>Courtail - Portail des courriels</title>
|
<title>Courtail - Portail des courriels</title>
|
||||||
<link href="/fichiers/css/bootstrap.css" rel="stylesheet">
|
<link href="/fichiers/css/bootstrap.min.css" rel="stylesheet">
|
||||||
<link href="/fichiers/css/confirmation.css" rel="stylesheet">
|
<link href="/fichiers/css/confirmation.css" rel="stylesheet">
|
||||||
|
<link href="/fichiers/css/personalisation.css" rel="stylesheet">
|
||||||
|
<link href="/fichiers/css/interrupteurs.css" rel="stylesheet">
|
||||||
<link rel="icon" href="/fichiers/images/favicon.ico" />
|
<link rel="icon" href="/fichiers/images/favicon.ico" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
@@ -1,3 +1,3 @@
|
|||||||
<script src="/fichiers/js/bootstrap.js"></script>
|
<script src="/fichiers/js/bootstrap.bundle.min.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
-- Alias (ne doivent pas apparaître)
|
|
||||||
INSERT INTO postfix_alias (alias,destination,active) VALUES ("toto","test1",1);
|
|
||||||
INSERT INTO postfix_alias (alias,destination,active) VALUES ("tata","test2",0);
|
|
||||||
INSERT INTO postfix_alias (alias,destination,active) VALUES ("titi","test3",1);
|
|
||||||
|
|
||||||
-- Alias virtuels
|
|
||||||
INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES ("toto@toto.fr","comptable@toto.fr",1);
|
|
||||||
INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES ("toto@toto.fr","medecin@toto.fr",0);
|
|
||||||
INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES ("toto@toto.fr","supermacher@toto.fr",1);
|
|
||||||
INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES ("tata@toto.fr","fleuriste@toto.fr",0);
|
|
||||||
INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES ("tata@toto.fr","coiffeur@toto.fr",0);
|
|
||||||
INSERT INTO postfix_alias_virtuels (courriel,destination,active) VALUES ("titi@toto.fr","promos@toto.fr",1);
|
|
||||||
|
|
||||||
-- Domaines secondaires
|
|
||||||
INSERT INTO postfix_domaines (domaine,active,defaut) VALUES ("toto.fr",1,1);
|
|
||||||
INSERT INTO postfix_domaines (domaine,active) VALUES ("tata.fr",1);
|
|
||||||
INSERT INTO postfix_domaines (domaine,active) VALUES ("titi.fr",0);
|
|
||||||
|
|
||||||
-- Listes noires destinataires
|
|
||||||
INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES ("root@mail.exemple.fr","REJECT",1);
|
|
||||||
INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES ("git@mail.exemple.fr","REJECT",1);
|
|
||||||
INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES ("liste@mail.exemple.fr","REJECT",1);
|
|
||||||
|
|
||||||
-- Listes noires expéditeurs
|
|
||||||
INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES ("tata@toto.fr",554,"Parle à ma main, ma tête est malade.",0);
|
|
||||||
INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES ("bob@titi.fr",554,"Parle à ma main, ma tête est malade.",1);
|
|
||||||
INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES ("roland@tata.fr",554,"Parle à ma main, ma tête est malade.",1);
|
|
||||||
|
|
||||||
-- Listes utilisateurs
|
|
||||||
INSERT INTO postfix_utilisateurs (utilisateur,mot_de_passe,nom_complet,uid,gid,privilege,active) VALUES ("toto","toto","Alphonse Pastacaisse",5000,5000,"administrateur",1);
|
|
||||||
INSERT INTO postfix_utilisateurs (utilisateur,mot_de_passe,nom_complet,uid,gid,privilege, active) VALUES ("tata", "tata", "Jonathan Quesquiestjaune", 5000, 5000, "utilisateur", 1);
|
|
||||||
@@ -2,11 +2,15 @@
|
|||||||
|
|
||||||
chemin_script=$(dirname "$0")
|
chemin_script=$(dirname "$0")
|
||||||
|
|
||||||
mkdir -p /etc/postfix/db
|
mkdir -p /etc/postfix/bdd
|
||||||
rm -f /etc/postfix/db/postfix.sqlite
|
rm -f /etc/postfix/bdd/postfix.sqlite
|
||||||
|
|
||||||
# Création des tables
|
# Création des tables
|
||||||
sqlite3 /etc/postfix/db/postfix.sqlite < "${chemin_script}"/postfix.sql
|
echo "CREATION TABLES"
|
||||||
|
sqlite3 /etc/postfix/bdd/postfix.sqlite < "${chemin_script}"/postfix_tables.sql
|
||||||
|
|
||||||
# Création des données
|
# Création des données
|
||||||
sqlite3 /etc/postfix/db/postfix.sqlite < "${chemin_script}"/données.sql
|
echo "CREATION DONNÉES"
|
||||||
|
sqlite3 /etc/postfix/bdd/postfix.sqlite < "${chemin_script}"/postfix_données.sql
|
||||||
|
|
||||||
|
chown -R www-data: /etc/postfix/bdd
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
-- Alias (ne doivent pas apparaître)
|
||||||
|
INSERT INTO postfix_alias (alias,destination,active) VALUES ("toto","test1",1);
|
||||||
|
INSERT INTO postfix_alias (alias,destination,active) VALUES ("tata","test2",0);
|
||||||
|
INSERT INTO postfix_alias (alias,destination,active) VALUES ("titi","test3",1);
|
||||||
|
|
||||||
|
-- Alias virtuels
|
||||||
|
INSERT INTO postfix_alias_virtuels (destination,courriel,active) VALUES ("toto@exemple.fr","comptable@exemple.fr",1);
|
||||||
|
INSERT INTO postfix_alias_virtuels (destination,courriel,active) VALUES ("toto@exemple.fr","medecin@exemple.fr",0);
|
||||||
|
INSERT INTO postfix_alias_virtuels (destination,courriel,active) VALUES ("toto@exemple.fr","supermacher@exemple.fr",1);
|
||||||
|
INSERT INTO postfix_alias_virtuels (destination,courriel,active) VALUES ("tata@exemple.fr","fleuriste@exemple.fr",0);
|
||||||
|
INSERT INTO postfix_alias_virtuels (destination,courriel,active) VALUES ("tata@exemple.fr","coiffeur@exemple.fr",0);
|
||||||
|
INSERT INTO postfix_alias_virtuels (destination,courriel,active) VALUES ("titi@exemple.fr","promos@exemple.fr",1);
|
||||||
|
|
||||||
|
-- Domaines secondaires
|
||||||
|
INSERT INTO postfix_domaines (domaine,active,defaut) VALUES ("toto.fr",1,0);
|
||||||
|
INSERT INTO postfix_domaines (domaine,active,defaut) VALUES ("tata.fr",1,0);
|
||||||
|
INSERT INTO postfix_domaines (domaine,active,defaut) VALUES ("titi.fr",0,0);
|
||||||
|
|
||||||
|
-- Listes noires destinataires
|
||||||
|
INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES ("root@mail.exemple.fr","REJECT",1);
|
||||||
|
INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES ("git@mail.exemple.fr","REJECT",1);
|
||||||
|
INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES ("liste@mail.exemple.fr","REJECT",1);
|
||||||
|
|
||||||
|
-- Listes noires expéditeurs
|
||||||
|
INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES ("tata@exemple.fr",554,"Parle à ma main, ma tête est malade.",0);
|
||||||
|
INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES ("bob@titi.fr",554,"Parle à ma main, ma tête est malade.",1);
|
||||||
|
INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES ("roland@tata.fr",554,"Parle à ma main, ma tête est malade.",1);
|
||||||
|
|
||||||
|
-- Listes utilisateurs
|
||||||
|
INSERT INTO postfix_utilisateurs (utilisateur,mot_de_passe,nom_complet,rep_perso,uid,gid,privilege,active) VALUES ("toto@exemple.fr","{SHA512-CRYPT}$6$xWfisyC6fLawFcBr$zLm4hfRfs6Pn0RKArnyWcgliBy6lpnRUkDHfHMkvskShfLiv4pRIU6XC5ry0ysd.DeKhoAiZUfnNdmwIai2k50","Toto
|
||||||
|
Dupont","exemple.fr/toto/",3000,3000,"administrateur",1);
|
||||||
|
INSERT INTO postfix_utilisateurs (utilisateur,mot_de_passe,nom_complet,rep_perso,uid,gid,privilege,prefixe,active) VALUES ("tata@exemple.fr","{SHA512-CRYPT}$6$xWfisyC6fLawFcBr$zLm4hfRfs6Pn0RKArnyWcgliBy6lpnRUkDHfHMkvskShfLiv4pRIU6XC5ry0ysd.DeKhoAiZUfnNdmwIai2k50","Toto
|
||||||
|
Dupont","exemple.fr/tata/",3000,3000,"utilisateur","ta.",1)
|
||||||
@@ -6,14 +6,14 @@ CREATE TABLE IF NOT EXISTS postfix_alias (
|
|||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS postfix_alias_virtuels (
|
CREATE TABLE IF NOT EXISTS postfix_alias_virtuels (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
courriel TEXT NOT NULL,
|
courriel TEXT NOT NULL UNIQUE,
|
||||||
destination TEXT NOT NULL,
|
destination TEXT NOT NULL,
|
||||||
active INTEGER
|
active INTEGER
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS postfix_domaines (
|
CREATE TABLE IF NOT EXISTS postfix_domaines (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
domaine TEXT NOT NULL UNIQUE,
|
domaine TEXT NOT NULL UNIQUE,
|
||||||
defaut INTEGER UNIQUE,
|
defaut BOOLEAN NOT NULL CHECK (defaut IN (0, 1)),
|
||||||
active INTEGER
|
active INTEGER
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS postfix_liste_noire_destinataires (
|
CREATE TABLE IF NOT EXISTS postfix_liste_noire_destinataires (
|
||||||
@@ -29,13 +29,15 @@ CREATE TABLE IF NOT EXISTS postfix_liste_noire_expediteurs (
|
|||||||
message TEXT NOT NULL,
|
message TEXT NOT NULL,
|
||||||
active INTEGER
|
active INTEGER
|
||||||
);
|
);
|
||||||
CREATE TABLE IF NOT EXISTS postfix_utilisateurs (
|
CREATE TABLE postfix_utilisateurs (
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
utilisateur TEXT NOT NULL UNIQUE,
|
utilisateur TEXT NOT NULL UNIQUE,
|
||||||
mot_de_passe TEXT NOT NULL,
|
mot_de_passe TEXT NOT NULL,
|
||||||
nom_complet TEXT,
|
nom_complet TEXT,
|
||||||
|
rep_perso TEXT NOT NULL,
|
||||||
uid INTEGER NOT NULL,
|
uid INTEGER NOT NULL,
|
||||||
gid INTEGER NOT NULL,
|
gid INTEGER NOT NULL,
|
||||||
privilege TEXT NOT NULL,
|
privilege TEXT NOT NULL,
|
||||||
|
prefixe TEXT,
|
||||||
active INTEGER
|
active INTEGER
|
||||||
);
|
);
|
||||||
@@ -6,10 +6,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
session_start();
|
session_start();
|
||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
||||||
testPrivileges();
|
testPrivileges();
|
||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php");
|
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php");
|
||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/inclusions/barre_menu.php");
|
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/barre_menu.php");
|
||||||
|
|
||||||
require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/messages/messages.php");
|
require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/messages/messages.php");
|
||||||
|
|
||||||
@@ -22,6 +22,11 @@ if (isset($_GET['erreur']) && !empty($_GET['erreur'])) {
|
|||||||
elseif (isset($_GET['succes']) && !empty($_GET['succes'])) {
|
elseif (isset($_GET['succes']) && !empty($_GET['succes'])) {
|
||||||
retourneMessage('succes',$_GET['succes']);
|
retourneMessage('succes',$_GET['succes']);
|
||||||
}
|
}
|
||||||
|
elseif (isset($_GET['message']) && !empty($_GET['message'])) {
|
||||||
|
retourneMessage('messages',$_GET['message']);
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "<div class=\"container-fluid\">";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permet d'importer les fonctions de la page demandée par l'utilisateur sur le portail d'administration.
|
* Permet d'importer les fonctions de la page demandée par l'utilisateur sur le portail d'administration.
|
||||||
@@ -53,6 +58,8 @@ else {
|
|||||||
echo "<h1>Cette page n'existe pas.</h1>";
|
echo "<h1>Cette page n'existe pas.</h1>";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
echo "</div>";
|
||||||
|
|
||||||
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/pied.php");
|
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/pied.php");
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -6,7 +6,7 @@
|
|||||||
* Elle ajoute à cette redirection un temps d'attente pour limiter la fréquence des tentatives ainsi qu'une variable dans l'URL permettant l'affichage d'un message d'explication sur la redirection.
|
* Elle ajoute à cette redirection un temps d'attente pour limiter la fréquence des tentatives ainsi qu'une variable dans l'URL permettant l'affichage d'un message d'explication sur la redirection.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
header ("Refresh: 5;URL=/pages/visiteurs/formulaire_accueil.php?erreur=1");
|
header ("Refresh: 5;URL=/pages/visiteurs/formulaire_accueil.php?erreur=17");
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
||||||
@@ -24,7 +24,7 @@ header ("Refresh: 5;URL=/pages/visiteurs/formulaire_accueil.php?erreur=1");
|
|||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
font-size: 40px;
|
font-size: 40px;
|
||||||
color: #FFF;
|
color: #FFF;
|
||||||
background-color: #1F527D;
|
background-color: #343a40;
|
||||||
text-align: center; }
|
text-align: center; }
|
||||||
|
|
||||||
.chargements{
|
.chargements{
|
||||||
|
|||||||
@@ -1,48 +1,56 @@
|
|||||||
<!-- Page d'accueil du portail.
|
<?php
|
||||||
-- Impose une authentification du visiteur pour continuer.
|
|
||||||
-- Redirige les tentative d'identification pour traitement et test de légitimité.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<div id="contenu" class="contenu">
|
/**
|
||||||
<div id="contenu_auth">
|
* Page d'accueil du portail.
|
||||||
</br>
|
* Impose une authentification du visiteur pour continuer.
|
||||||
<table id="authentification">
|
* Redirige les tentative d'identification pour traitement et test de légitimité.
|
||||||
<form method="post" action="/services/traitements/utilisateurs/identification.php">
|
*/
|
||||||
<tr>
|
|
||||||
<td><label for="identifiant">Votre nom d'utilisateur :</label><br/></td>
|
|
||||||
<td><input type="email" name="identifiant" id="identifiant" required/></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><label for="mdp">Votre mot de passe :</label><br/></td>
|
|
||||||
<td><input type="password" name="mdp" id="mdp" required/></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td><input class="envoyer" type="submit" value="envoyer"/></td>
|
|
||||||
</tr>
|
|
||||||
</form>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<?php
|
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/entete.php");
|
||||||
|
require_once($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/messages/messages.php");
|
||||||
|
|
||||||
if (isset($_GET['erreur']) && !empty($_GET['erreur'])){
|
?>
|
||||||
switch ($_GET['erreur']) {
|
|
||||||
case 1:
|
<div id="contenu" class="contenu container">
|
||||||
echo "<p class=\"messages_retour_ko\">Identifiant ou mot de passe incorrecte.</p>";
|
<div id="logo-accueil" class="logo">
|
||||||
break;
|
<img src="/fichiers/svg/send.svg" alt="courriel">
|
||||||
case 2:
|
<h1>Courtail</h1>
|
||||||
echo "<p class=\"messages_retour_ko\">Vous n'avez pas les privilèges nécessaires.</p>";
|
</div>
|
||||||
break;
|
<div class="card" id="contenu_auth">
|
||||||
}
|
<div class="card-body">
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Affichage d'une bannière d'état sur l'action précedemment effectuée.
|
||||||
|
*/
|
||||||
|
if (isset($_GET['erreur']) && !empty($_GET['erreur'])) {
|
||||||
|
retourneMessage('erreurs',$_GET['erreur']);
|
||||||
}
|
}
|
||||||
elseif (isset($_GET['succes']) && !empty($_GET['succes'])){
|
elseif (isset($_GET['succes']) && !empty($_GET['succes'])) {
|
||||||
switch ($_GET['succes']) {
|
retourneMessage('succes',$_GET['succes']);
|
||||||
case 1:
|
|
||||||
echo "<p class=\"messages_retour_ok\">Vous avez bien été déconnecté.</p>";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
<form method="post" action="/services/traitements/utilisateurs/identification.php">
|
||||||
|
<div class="form-floating mb-3 mt-3">
|
||||||
|
<input type="email" name="identifiant" class="form-control" id="identifiant" placeholder="nom@example.fr" required/>
|
||||||
|
<label for="identifiant">Votre nom d'utilisateur</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-floating mb-3">
|
||||||
|
<input type="password" name="mdp" class="form-control" id="mdp" placeholder="Mot de passe" required/>
|
||||||
|
<label for="mdp">Votre mot de passe</label>
|
||||||
|
</div>
|
||||||
|
<button id="envoyer" type="submit" class="btn btn-primary">envoyer</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const body = document.querySelector('body');
|
||||||
|
body.style.backgroundColor = '#343a40';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
require_once($_SERVER["DOCUMENT_ROOT"]."/inclusions/pied.php");
|
||||||
|
?>
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ function retournePrefixeUtilisateurPostfix($pdo) {
|
|||||||
function listeAliasVirtuelsPostfix($pdo) {
|
function listeAliasVirtuelsPostfix($pdo) {
|
||||||
try {
|
try {
|
||||||
// Filtre des alias virtuels de l'utilisateur courant
|
// Filtre des alias virtuels de l'utilisateur courant
|
||||||
$req = 'SELECT * FROM postfix_alias_virtuels WHERE destination=:destination';
|
$req = 'SELECT * FROM postfix_alias_virtuels WHERE destination=:destination ORDER BY courriel ASC';
|
||||||
$sql=$pdo->prepare($req);
|
$sql=$pdo->prepare($req);
|
||||||
$sql->bindValue(':destination',$_SESSION['pseudo_utilisateur']);
|
$sql->bindValue(':destination',$_SESSION['pseudo_utilisateur']);
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
@@ -55,7 +55,7 @@ function ajoutAliasVirtuelsPostfix($pdo,$nom_alias_virtuel,$choix_domaine_alias_
|
|||||||
|
|
||||||
$sql=$pdo->prepare($req);
|
$sql=$pdo->prepare($req);
|
||||||
$sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']);
|
$sql->bindValue(':courriel',$_SESSION['pseudo_utilisateur']);
|
||||||
$sql->bindValue(':alias_virtuel',substr(htmlspecialchars(retournePrefixeUtilisateurPostfix($pdo).$nom_alias_virtuel."@".$choix_domaine_alias_virtuel),0,49));
|
$sql->bindValue(':alias_virtuel',substr(htmlspecialchars(retournePrefixeUtilisateurPostfix($pdo).$nom_alias_virtuel."@".$choix_domaine_alias_virtuel),0,100));
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
|
|
||||||
if ($sql->rowCount() == 1){
|
if ($sql->rowCount() == 1){
|
||||||
|
|||||||
@@ -34,8 +34,17 @@ function retourneDomaineDefautPostfix($pdo) {
|
|||||||
$sql=$pdo->prepare($req);
|
$sql=$pdo->prepare($req);
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
|
|
||||||
$domaine_defaut = $sql->fetchAll();
|
$result = $sql ->fetchAll(PDO::FETCH_ASSOC);
|
||||||
return $domaine_defaut[0]['domaine'];
|
$comptage = count($result);
|
||||||
|
|
||||||
|
if($comptage == 1){
|
||||||
|
$domaine_defaut = $result;
|
||||||
|
return $domaine_defaut[0]['domaine'];;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$domaine_defaut = "";
|
||||||
|
return $domaine_defaut;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (\Exception $e) {
|
catch (\Exception $e) {
|
||||||
die ("Erreur de requête de selection des domaines pour \"$base\" : ".$e->getMessage());
|
die ("Erreur de requête de selection des domaines pour \"$base\" : ".$e->getMessage());
|
||||||
@@ -88,7 +97,7 @@ function ajoutDomainePostfix($pdo,$nom_domaine) {
|
|||||||
$req='INSERT INTO postfix_domaines (domaine,defaut,active) VALUES (:domaine,0,1)';
|
$req='INSERT INTO postfix_domaines (domaine,defaut,active) VALUES (:domaine,0,1)';
|
||||||
|
|
||||||
$sql=$pdo->prepare($req);
|
$sql=$pdo->prepare($req);
|
||||||
$sql->bindValue(':domaine',substr(htmlspecialchars($nom_domaine),0,49));
|
$sql->bindValue(':domaine',substr(htmlspecialchars($nom_domaine),0,100));
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
|
|
||||||
if ($sql->rowCount() == 1){
|
if ($sql->rowCount() == 1){
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ function ajoutEntreeListeNoireDstPostfix($pdo,$courriel_entree_liste_noire_dst,$
|
|||||||
// Insertion de l'entrée de liste noire de destinataires renseignée par l'administrateur
|
// Insertion de l'entrée de liste noire de destinataires renseignée par l'administrateur
|
||||||
$req='INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES (:courriel,:action,1)';
|
$req='INSERT INTO postfix_liste_noire_destinataires (courriel,action,active) VALUES (:courriel,:action,1)';
|
||||||
$sql=$pdo->prepare($req);
|
$sql=$pdo->prepare($req);
|
||||||
$sql->bindValue(':courriel',substr(htmlspecialchars($courriel_entree_liste_noire_dst),0,49));
|
$sql->bindValue(':courriel',substr(htmlspecialchars($courriel_entree_liste_noire_dst),0,100));
|
||||||
$sql->bindValue(':action',$action_entree_liste_noire_dst);
|
$sql->bindValue(':action',$action_entree_liste_noire_dst);
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ function ajoutEntreeListeNoireExpPostfix($pdo,$courriel_entree_liste_noire_exp,$
|
|||||||
// Insertion de l'entrée de liste noire d'expéditeurs renseignée par l'administrateur
|
// Insertion de l'entrée de liste noire d'expéditeurs renseignée par l'administrateur
|
||||||
$req='INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES (:courriel,:code_retour,"Votre message a été rejeté par le serveur car votre adresse est en liste noire.",1)';
|
$req='INSERT INTO postfix_liste_noire_expediteurs (courriel,code_retour,message,active) VALUES (:courriel,:code_retour,"Votre message a été rejeté par le serveur car votre adresse est en liste noire.",1)';
|
||||||
$sql=$pdo->prepare($req);
|
$sql=$pdo->prepare($req);
|
||||||
$sql->bindValue(':courriel',substr(htmlspecialchars($courriel_entree_liste_noire_exp),0,49));
|
$sql->bindValue(':courriel',substr(htmlspecialchars($courriel_entree_liste_noire_exp),0,100));
|
||||||
$sql->bindValue(':code_retour',$code_retour_entree_liste_noire_exp);
|
$sql->bindValue(':code_retour',$code_retour_entree_liste_noire_exp);
|
||||||
$sql->execute();
|
$sql->execute();
|
||||||
|
|
||||||
|
|||||||
@@ -4,43 +4,67 @@
|
|||||||
* Fonction affichant les messages de retour des traitements site lorsqu'elle est interrogée.
|
* Fonction affichant les messages de retour des traitements site lorsqu'elle est interrogée.
|
||||||
*/
|
*/
|
||||||
function retourneMessage($type_message,$num_message) {
|
function retourneMessage($type_message,$num_message) {
|
||||||
$liste_messages = array (
|
if ($type_message=="succes" || $type_message=="erreurs" || $type_message=="messages") {
|
||||||
"succes" => array(
|
if (isset($_SESSION) && !empty($_SESSION['pseudo_utilisateur']) || !empty($_SESSION['nom_utilisateur']) || !empty($_SESSION['privilege_utilisateur'])) {
|
||||||
1 => "<p class=\"message_succes\">Succès : alias virtuel créé avec succès.</p>",
|
$pseudo_utilisateur=$_SESSION['pseudo_utilisateur'];
|
||||||
2 => "<p class=\"message_succes\">Succès : alias virtuel modifiés avec succès.</p>",
|
$nom_utilisateur=$_SESSION['nom_utilisateur'];
|
||||||
3 => "<p class=\"message_succes\">Succès : alias virtuel supprimé avec succès.</p>",
|
$privilege_utilisateur=$_SESSION['privilege_utilisateur'];
|
||||||
4 => "<p class=\"message_succes\">Succès : utilisateur changé en ".$_SESSION['pseudo_utilisateur']." avec succès.</p>",
|
}
|
||||||
5 => "<p class=\"message_succes\">Succès : domaine créé avec succès.</p>",
|
else {
|
||||||
6 => "<p class=\"message_succes\">Succès : domaine modifiés avec succès.</p>",
|
$pseudo_utilisateur="visiteur";
|
||||||
7 => "<p class=\"message_succes\">Succès : domaine supprimé avec succès.</p>",
|
$nom_utilisateur="visiteur";
|
||||||
8 => "<p class=\"message_succes\">Succès : domaine défini par défaut avec succès.</p>",
|
$privilege_utilisateur="visiteur";
|
||||||
9 => "<p class=\"message_succes\">Succès : l'entrée de liste noire destiataires a été créée avec succès.</p>",
|
}
|
||||||
10 => "<p class=\"message_succes\">Succès : l'état de l'entrée de liste noire destiataires a été modifié avec succès.</p>",
|
$liste_messages = array (
|
||||||
11 => "<p class=\"message_succes\">Succès : l'entrée de liste noire destinataires a été supprimée avec succès.</p>",
|
"succes" => array(
|
||||||
12 => "<p class=\"message_succes\">Succès : l'entrée de liste noire expéditeurs a été créée avec succès.</p>",
|
1 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Alias virtuel créé avec succès.</div>",
|
||||||
13 => "<p class=\"message_succes\">Succès : l'état de l'entrée de liste noire expéditeurs a été modifié avec succès.</p>",
|
2 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Alias virtuel modifiés avec succès.</div>",
|
||||||
14 => "<p class=\"message_succes\">Succès : l'entrée de liste noire expéditeurs a été supprimée avec succès.</p>"),
|
3 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Alias virtuel supprimé avec succès.</div>",
|
||||||
"erreurs" => array(
|
4 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Utilisateur changé en ".$pseudo_utilisateur." avec succès.</div>",
|
||||||
|
5 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine créé avec succès.</div>",
|
||||||
|
6 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine modifiés avec succès.</div>",
|
||||||
|
7 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine supprimé avec succès.</div>",
|
||||||
|
8 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Domaine défini par défaut avec succès.</div>",
|
||||||
|
9 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire destiataires a été créée avec succès.</div>",
|
||||||
|
10 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'état de l'entrée de liste noire destiataires a été modifié avec succès.</div>",
|
||||||
|
11 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire destinataires a été supprimée avec succès.</div>",
|
||||||
|
12 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire expéditeurs a été créée avec succès.</div>",
|
||||||
|
13 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'état de l'entrée de liste noire expéditeurs a été modifié avec succès.</div>",
|
||||||
|
14 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> L'entrée de liste noire expéditeurs a été supprimée avec succès.</div>",
|
||||||
|
15 => "<div class=\"alert alert-success\" role=\"alert\"><img src=\"/fichiers/svg/check-circle.svg\"/> Vous avez bien été déconnecté.</div>"),
|
||||||
|
"erreurs" => array(
|
||||||
|
1 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun alias virtuel supprimé.</div>",
|
||||||
|
2 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun alias virtuel créé car une donnée est erronée ou manquante.</div>",
|
||||||
|
3 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'alias virtuel est déjà existant.</div>",
|
||||||
|
4 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Code d'erreur générique (HY000) signifiant probablement que la base SQLite n'est pas accessible en écriture. Il faut que la base et le répertoire <i>bdd</i> appartiennent à <i>www-data</i>.</div>",
|
||||||
|
5 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun domaine supprimé.</div>",
|
||||||
|
6 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Aucun domaine créé car une donnée est erronée ou manquante.</div>",
|
||||||
|
7 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Le domaine est déjà existant.</div>",
|
||||||
|
8 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Le domaine par défaut n'a pas été modifié.</div>",
|
||||||
|
9 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'entrée de liste noire destinataires n'a pas été ajouté car une donnée est erronée ou manquante.</div>",
|
||||||
|
10 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'état de l'entrée de liste noire destinataires n'a pas été modifié.</div>",
|
||||||
|
11 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'entrée de liste noire destinataires n'a pas été supprimée.</div>",
|
||||||
|
12 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'entrée de liste noire destinataires n'a pas été ajouté car elle est déjà existante.</div>",
|
||||||
|
13 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'entrée de liste noire expéditeurs n'a pas été ajouté car une donnée est erronée ou manquante.</div>",
|
||||||
|
14 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'état de l'entrée de liste noire expéditeurs n'a pas été modifié.</div>",
|
||||||
|
15 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'entrée de liste noire expéditeurs n'a pas été supprimée.</div>",
|
||||||
|
16 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> L'entrée de liste noire expéditeurs n'a pas été ajouté car elle est déjà existante.</div>",
|
||||||
|
17 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Identifiant ou mot de passe incorrecte.</div>",
|
||||||
|
18 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Vous n'avez pas les privilèges nécessaires.</div>",
|
||||||
|
19 => "<div class=\"alert alert-danger\" role=\"alert\"><img src=\"/fichiers/svg/alert-triangle.svg\"/> Erreur non gérée.</div>"),
|
||||||
|
"messages" => array(
|
||||||
|
"bienvenue" => "<div class=\"alert alert-primary\" role=\"alert\"><img src=\"/fichiers/svg/info.svg\"/> Bienvenue ".$nom_utilisateur.". Vous êtes authentifié en tant qu'".$privilege_utilisateur.".</div>")
|
||||||
|
);
|
||||||
|
|
||||||
1 => "<p class=\"message_erreur\">Erreur : aucun alias virtuel supprimé.</p>",
|
$num_message=htmlspecialchars($num_message);
|
||||||
2 => "<p class=\"message_erreur\">Erreur : aucun alias virtuel créé car une donnée est erronée ou manquante.</p>",
|
|
||||||
3 => "<p class=\"message_erreur\">Erreur : L'alias virtuel est déjà existant.</p>",
|
|
||||||
4 => "<p class=\"message_erreur\">Erreur : Code d'erreur générique (HY000) signifiant probablement que la base SQLite n'est pas accessible en écriture. Il faut que la base et le répertoire <i>bdd</i> appartiennent à <i>www-data</i>.</p>",
|
|
||||||
5 => "<p class=\"message_erreur\">Erreur : aucun domaine supprimé.</p>",
|
|
||||||
6 => "<p class=\"message_erreur\">Erreur : aucun domaine créé car une donnée est erronée ou manquante.</p>",
|
|
||||||
7 => "<p class=\"message_erreur\">Erreur : le domaine est déjà existant.</p>",
|
|
||||||
8 => "<p class=\"message_erreur\">Erreur : le domaine par défaut n'a pas été modifié.</p>",
|
|
||||||
9 => "<p class=\"message_erreur\">Erreur : l'entrée de liste noire destinataires n'a pas été ajouté car une donnée est erronée ou manquante.</p>",
|
|
||||||
10 => "<p class=\"message_erreur\">Erreur : l'état de l'entrée de liste noire destinataires n'a pas été modifié.</p>",
|
|
||||||
11 => "<p class=\"message_erreur\">Erreur : l'entrée de liste noire destinataires n'a pas été supprimée.</p>",
|
|
||||||
12 => "<p class=\"message_erreur\">Erreur : l'entrée de liste noire destinataires n'a pas été ajouté car elle est déjà existante.</p>",
|
|
||||||
13 => "<p class=\"message_erreur\">Erreur : l'entrée de liste noire expéditeurs n'a pas été ajouté car une donnée est erronée ou manquante.</p>",
|
|
||||||
14 => "<p class=\"message_erreur\">Erreur : l'état de l'entrée de liste noire expéditeurs n'a pas été modifié.</p>",
|
|
||||||
15 => "<p class=\"message_erreur\">Erreur : l'entrée de liste noire expéditeurs n'a pas été supprimée.</p>",
|
|
||||||
16 => "<p class=\"message_erreur\">Erreur : l'entrée de liste noire expéditeurs n'a pas été ajouté car elle est déjà existante.</p>")
|
|
||||||
);
|
|
||||||
|
|
||||||
echo $liste_messages[$type_message][$num_message];
|
if (isset($liste_messages[$type_message][$num_message])) {
|
||||||
|
echo $liste_messages[$type_message][$num_message];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo $liste_messages['erreurs']['19'];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
@@ -18,7 +18,7 @@ function testPrivileges(){
|
|||||||
return "utilisateur";
|
return "utilisateur";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=2");
|
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,99 +17,137 @@ $liste_alias_virtuels = listeAliasVirtuelsPostfix($pdo);
|
|||||||
*/
|
*/
|
||||||
if (testPrivileges()=="administrateur") {
|
if (testPrivileges()=="administrateur") {
|
||||||
echo <<<_HEREDOC_
|
echo <<<_HEREDOC_
|
||||||
<div>
|
<div class="row">
|
||||||
<form id="form_choix_utilisateur" action="/services/traitements/utilisateurs/changeUtilisateur.php" method="post">
|
<div class="col-12 col-md-6">
|
||||||
<div>
|
<div class="card mt-4">
|
||||||
<h1>Choix de l'adresse</h1>
|
<div class="card-body">
|
||||||
<select name="choix_utilisateur" onchange="autoSoumission(this);">
|
<h5 class="card-title">Choix de l'adresse</h5>
|
||||||
|
<form id="form_choix_utilisateur" action="/services/traitements/utilisateurs/changeUtilisateur.php" method="post">
|
||||||
|
<select class="form-select" name="choix_utilisateur" onchange="autoSoumission(this);">
|
||||||
_HEREDOC_;
|
_HEREDOC_;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remplis un menu déroulant permettant le choix de l'utilisateur par l'administrateur.
|
* Remplis un menu déroulant permettant le choix de l'utilisateur par l'administrateur.
|
||||||
* Ce choix permettra de modifier les alias virtuels y étant rattachés.
|
* Ce choix permettra de modifier les alias virtuels y étant rattachés.
|
||||||
* La valeur par défaut du menu est positionnée sur le compte administrateur actuellement connecté.
|
* La valeur par défaut du menu est positionnée sur le compte administrateur actuellement connecté.
|
||||||
*/
|
*/
|
||||||
foreach ($liste_utilisateurs as $utilisateur_bdd => $utilisateur) {
|
foreach ($liste_utilisateurs as $utilisateur_bdd => $utilisateur) {
|
||||||
if ($utilisateur['utilisateur']==$_SESSION['pseudo_utilisateur']) {
|
if ($utilisateur['utilisateur']==$_SESSION['pseudo_utilisateur']) {
|
||||||
echo "<option value=\"".$utilisateur['utilisateur']."\" selected>".$utilisateur['utilisateur']."</option>\n";
|
echo "<option value=\"".$utilisateur['utilisateur']."\" selected>".$utilisateur['utilisateur']."</option>\n";
|
||||||
}
|
}
|
||||||
elseif ($_SESSION['privilege_utilisateur']=="administrateur") {
|
elseif ($_SESSION['privilege_utilisateur']=="administrateur") {
|
||||||
echo "<option value=\"".$utilisateur['utilisateur']."\">".$utilisateur['utilisateur']."</option>\n";
|
echo "<option value=\"".$utilisateur['utilisateur']."\">".$utilisateur['utilisateur']."</option>\n";
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo <<<_HEREDOC_
|
||||||
|
</select>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
_HEREDOC_;
|
||||||
}
|
}
|
||||||
|
|
||||||
echo <<<_HEREDOC_
|
?>
|
||||||
</select>
|
|
||||||
|
<div class="col-12 col-md-6">
|
||||||
|
<div class="card mt-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">Ajouter un alias virtuel</h5>
|
||||||
|
<form action="/services/traitements/alias_virtuels/ajoutAliasVirtuels.php" method="post">
|
||||||
|
<div class="input-group">
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ajout d'un alias virtuel.
|
||||||
|
*/
|
||||||
|
$prefixe_utilisateur=retournePrefixeUtilisateurPostfix($pdo);
|
||||||
|
if (!empty($prefixe_utilisateur)) {
|
||||||
|
echo "<span class=\"input-group-text\">$prefixe_utilisateur</span>";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
<input type="text" class="form-control" id="nom_pour_filtre" name="nom_alias_virtuel" placeholder="alias" onkeyup="filtreValeurs();" required>
|
||||||
|
<span class="input-group-text">@</span>
|
||||||
|
<select class="form-select" name="choix_domaine_alias_virtuel">
|
||||||
|
<?php
|
||||||
|
|
||||||
|
try {
|
||||||
|
foreach ($liste_domaines as $domaine_bdd => $domaine) {
|
||||||
|
echo "<option value=\"".$domaine['domaine']."\">".$domaine['domaine']."</option>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (\Exception $e) {
|
||||||
|
die ("Erreur de requête de selection du domaine pour \"$base\" : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
</select>
|
||||||
|
<!--<select name="choix_domaine_alias" onchange='document.getElementById("domaine_alias").innerHTML = this.options[this.selectedIndex].text'>
|
||||||
|
<option value=\"".$domaine['domaine']."\">".$domaine['domaine']."</option>
|
||||||
|
</select>
|
||||||
|
<p id="domaine_alias"><?php //echo $liste_domaines[0]["domaine"]; ?></p>-->
|
||||||
|
<button class="btn btn-primary bouton-ajout" type="submit"><img src="/fichiers/svg/plus.svg"/></button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
_HEREDOC_;
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
<div class="card mt-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">Alias de <?php echo $_SESSION['pseudo_utilisateur']; ?></h5>
|
||||||
|
<form class="" action="/services/traitements/alias_virtuels/editEtatAliasVirtuels.php" method="post">
|
||||||
|
<div class="row" id="liste_pour_filtre">
|
||||||
|
<?php
|
||||||
|
|
||||||
<div>
|
/**
|
||||||
<h1>Ajouter un alias virtuel</h1>
|
* Liste des alias virtuels.
|
||||||
<form action="/services/traitements/alias_virtuels/ajoutAliasVirtuels.php" method="post">
|
*/
|
||||||
<?php
|
try {
|
||||||
|
foreach ($liste_alias_virtuels as $alias_virtuels_cles => $alias_virtuels_valeurs) {
|
||||||
/**
|
if (isset($alias_virtuels_valeurs['active']) && $alias_virtuels_valeurs['active']=="1") {
|
||||||
* Ajout d'un alias virtuel.
|
$etat_interrupteur_allumer="checked";
|
||||||
*/
|
$etat_interrupteur_eteint="";
|
||||||
$prefixe_utilisateur=retournePrefixeUtilisateurPostfix($pdo);
|
} else {
|
||||||
if (!empty($prefixe_utilisateur)) {
|
$etat_interrupteur_eteint="checked";
|
||||||
echo "<span>$prefixe_utilisateur</span>";
|
$etat_interrupteur_allumer="";
|
||||||
}
|
}
|
||||||
?>
|
echo <<<_HEREDOC_
|
||||||
<input type="text" id="nom_pour_filtre" name="nom_alias_virtuel" placeholder="alias*" onkeyup="filtreValeurs();" required>
|
<div class="col-md-6 col-xl-4">
|
||||||
<span>@</span>
|
<div class="card contour-pastille">
|
||||||
<select name="choix_domaine_alias_virtuel">
|
<div class="d-flex interieur-pastille">
|
||||||
<?php
|
<div class="champ-interrupteur">
|
||||||
try {
|
<input type="radio" name="{$alias_virtuels_valeurs['id']}" id="allumer{$alias_virtuels_valeurs['id']}" value="1" {$etat_interrupteur_allumer}>
|
||||||
foreach ($liste_domaines as $domaine_bdd => $domaine) {
|
<label for="allumer{$alias_virtuels_valeurs['id']}" class="interrupteur-allumer"></label>
|
||||||
echo "<option value=\"".$domaine['domaine']."\">".$domaine['domaine']."</option>\n";
|
<input type="radio" name="{$alias_virtuels_valeurs['id']}" id="eteint{$alias_virtuels_valeurs['id']}" value="0" {$etat_interrupteur_eteint}>
|
||||||
|
<label for="eteint{$alias_virtuels_valeurs['id']}" class="interrupteur-eteint"></label>
|
||||||
|
</div>
|
||||||
|
<div class="titre-pastille">
|
||||||
|
<span>{$alias_virtuels_valeurs['courriel']}</span>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="input-label-supprimer-valeur btn btn-danger btn-sm" for="supprimer-valeur-{$alias_virtuels_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<input type="checkbox" class="input-checkbox-supprimer-valeur visuellement-cache" id="supprimer-valeur-{$alias_virtuels_valeurs['id']}">
|
||||||
|
<a class="confirmation-suppression card-footer" href="/services/traitements/alias_virtuels/supprAliasVirtuels.php?supprAliasVirtuel={$alias_virtuels_valeurs['id']}">Confirmer la suppression</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
_HEREDOC_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
catch (\Exception $e) {
|
||||||
catch (\Exception $e) {
|
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
|
||||||
die ("Erreur de requête de selection du domaine pour \"$base\" : ".$e->getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
</select>
|
|
||||||
<!--<select name="choix_domaine_alias" onchange='document.getElementById("domaine_alias").innerHTML = this.options[this.selectedIndex].text'>
|
|
||||||
<option value=\"".$domaine['domaine']."\">".$domaine['domaine']."</option>
|
|
||||||
</select>
|
|
||||||
<p id="domaine_alias"><?php //echo $liste_domaines[0]["domaine"]; ?></p>-->
|
|
||||||
<p>vers <?php echo $_SESSION['pseudo_utilisateur'] ?></p>
|
|
||||||
<input type="submit" value="Ajouter">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<h1>Alias de <?php echo $_SESSION['pseudo_utilisateur']; ?></h1>
|
|
||||||
<form class="" action="/services/traitements/alias_virtuels/editEtatAliasVirtuels.php" method="post">
|
|
||||||
<ul id="liste_pour_filtre">
|
|
||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Liste des alias virtuels.
|
|
||||||
*/
|
|
||||||
try {
|
|
||||||
foreach ($liste_alias_virtuels as $alias_virtuels_cles => $alias_virtuels_valeurs) {
|
|
||||||
echo "<li><input type=\"radio\" name=\"".$alias_virtuels_valeurs['id']."\" value=\"1\"";
|
|
||||||
if (isset($alias_virtuels_valeurs['active']) && !empty($alias_virtuels_valeurs['active']) && $alias_virtuels_valeurs['active']=="1") echo " checked";
|
|
||||||
echo "><input type=\"radio\" name=\"".$alias_virtuels_valeurs['id']."\" value=\"0\"";
|
|
||||||
if (isset($alias_virtuels_valeurs['active']) && $alias_virtuels_valeurs['active']=="0") echo " checked";
|
|
||||||
echo "><p>".$alias_virtuels_valeurs['courriel']."</p><label class=\"input-label-supprimer-valeur\" for=\"supprimer-valeur-".$alias_virtuels_valeurs['id']."\">Supprimer</label><input type=\"checkbox\" class=\"input-checkbox-supprimer-valeur visuellement-cache\" id=\"supprimer-valeur-".$alias_virtuels_valeurs['id']."\"><a class=\"confirmation-suppression\" href=\"/services/traitements/alias_virtuels/supprAliasVirtuels.php?supprAliasVirtuel=".$alias_virtuels_valeurs['id']."\">Confirmer la suppression</a></li>\n";
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
catch (\Exception $e) {
|
|
||||||
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
||||||
</ul>
|
|
||||||
<input type="submit" value="Appliquer">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<script src="/fichiers/js/filtre.js"></script>
|
|
||||||
|
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<button class="bouton-flotant" type="submit"><img src="/fichiers/svg/save.svg"/></button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src="/fichiers/js/filtre.js"></script>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
||||||
|
|
||||||
if (testPrivileges()!="administrateur") {
|
if (testPrivileges()!="administrateur") {
|
||||||
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=2");
|
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -16,85 +16,122 @@ $liste_domaines = listeDomainesPostfix($pdo);
|
|||||||
|
|
||||||
?>
|
?>
|
||||||
<!-- Affichage et changement du domaine par défaut -->
|
<!-- Affichage et changement du domaine par défaut -->
|
||||||
<div>
|
<div class="row">
|
||||||
<h1>Domaine par défaut</h1>
|
<div class="col-12 col-md-6">
|
||||||
<p>Changer le domaine par défaut (actuellement
|
<div class="card mt-4">
|
||||||
<?php
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">Domaine par défaut</h5>
|
||||||
|
<?php
|
||||||
|
|
||||||
$domaine_defaut = retourneDomaineDefautPostfix($pdo);
|
$domaine_defaut = retourneDomaineDefautPostfix($pdo);
|
||||||
if (!empty($domaine_defaut)) {
|
if (empty($domaine_defaut)) {
|
||||||
echo "<b>$domaine_defaut</b>";
|
echo <<<_HEREDOC_
|
||||||
}
|
<div class="alert alert-warning mb-2" role="alert"><img src="/fichiers/svg/alert-triangle-warning.svg"/>
|
||||||
else {
|
Aucun domaine n'est défini par défaut. Ce paramètre permet de pré-selectionner le domaine utilisé par Postfix lors des créations d'alias virtuels.
|
||||||
echo "Attention : aucun domaine n'est défini par défaut. Ce paramètre permet de pré-selectionner le domaine utilisé par Postfix lors des créations d'alias virtuels";
|
</div>
|
||||||
}
|
_HEREDOC_;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
) :</p>
|
<form action="/services/traitements/domaines/changeDomaineDefaut.php" method="post">
|
||||||
<form action="/services/traitements/domaines/changeDomaineDefaut.php" method="post">
|
<div class="input-group">
|
||||||
<select name="choix_domaine_defaut">
|
<select class="form-select" name="choix_domaine_defaut">
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
// Génération de la liste des domaines existants
|
// Génération de la liste des domaines existants
|
||||||
try {
|
try {
|
||||||
foreach ($liste_domaines as $domaine_cles => $domaine_valeurs) {
|
foreach ($liste_domaines as $domaine_cles => $domaine_valeurs) {
|
||||||
echo "<option value=\"".$domaine_valeurs['domaine']."\">".$domaine_valeurs['domaine']."</option>\n";
|
echo "<option value=\"".$domaine_valeurs['domaine']."\">".$domaine_valeurs['domaine']."</option>\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (\Exception $e) {
|
catch (\Exception $e) {
|
||||||
die ("Erreur de requête de selection du domaine pour \"$base\" : ".$e->getMessage());
|
die ("Erreur de requête de selection du domaine pour \"$base\" : ".$e->getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
<!-- Définition du domaine sélectionné comme étant par défaut -->
|
<!-- Définition du domaine sélectionné comme étant par défaut -->
|
||||||
<input type="submit" value="Définir par défaut">
|
<button class="btn btn-primary" type="submit">Définir par défaut</button>
|
||||||
</form>
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-md-6">
|
||||||
|
<div class="card mt-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">Ajouter un domaine</h5>
|
||||||
|
<form action="/services/traitements/domaines/ajoutDomaines.php" method="post">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" class="form-control" id="nom_pour_filtre" name="nom_domaine" onkeyup="filtreValeurs();" placeholder="domaine.tld" required/>
|
||||||
|
<button class="btn btn-primary bouton-ajout" type="submit"><img src="/fichiers/svg/plus.svg"/></button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
|
||||||
<h1>Ajouter un domaine</h1>
|
|
||||||
<form action="/services/traitements/domaines/ajoutDomaines.php" method="post">
|
|
||||||
<input type="text" id="nom_pour_filtre" name="nom_domaine" placeholder="domaine.tld*" onkeyup="filtreValeurs();" required>
|
|
||||||
<input type="submit" value="Ajouter">
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<h1>Domaines du serveur de messagerie</h1>
|
<div class="card mt-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h5 class="card-title">Domaines du serveur de messagerie</h5>
|
||||||
|
<form class="" action="/services/traitements/domaines/editEtatDomaines.php" method="post">
|
||||||
|
<div class="row" id="liste_pour_filtre">
|
||||||
|
<?php
|
||||||
|
|
||||||
<form class="" action="/services/traitements/domaines/editEtatDomaines.php" method="post">
|
/**
|
||||||
<ul id="liste_pour_filtre">
|
* Liste des domaines.
|
||||||
<?php
|
*/
|
||||||
|
try {
|
||||||
/**
|
foreach ($liste_domaines as $liste_domaines_cles => $liste_domaines_valeurs) {
|
||||||
* Liste des domaines.
|
if (isset($liste_domaines_valeurs['active']) && $liste_domaines_valeurs['active']=="1") {
|
||||||
*/
|
$etat_interrupteur_allumer="checked";
|
||||||
try {
|
$etat_interrupteur_eteint="";
|
||||||
foreach ($liste_domaines as $liste_domaines_cles => $liste_domaines_valeurs) {
|
} else {
|
||||||
echo "<li>";
|
$etat_interrupteur_eteint="checked";
|
||||||
if (isset($liste_domaines_valeurs['defaut']) && $liste_domaines_valeurs['defaut']!="1") {
|
$etat_interrupteur_allumer="";
|
||||||
echo "<input type=\"radio\" name=\"".$liste_domaines_valeurs['id']."\" value=\"1\"";
|
}
|
||||||
if (isset($liste_domaines_valeurs['active']) && !empty($liste_domaines_valeurs['active']) && $liste_domaines_valeurs['active']=="1") echo " checked";
|
if (isset($liste_domaines_valeurs['defaut']) && $liste_domaines_valeurs['defaut']=="1") {
|
||||||
echo "><input type=\"radio\" name=\"".$liste_domaines_valeurs['id']."\" value=\"0\"";
|
$etat_bouton="disabled";
|
||||||
if (isset($liste_domaines_valeurs['active']) && $liste_domaines_valeurs['active']=="0") echo " checked";
|
$bordure_pastille="border-primary interieur-pastille-bleu";
|
||||||
echo ">";
|
$post_texte=" <span class=\"text-primary\">(défaut)</span>";
|
||||||
}
|
} else {
|
||||||
echo "<p>".$liste_domaines_valeurs['domaine']."</p>";
|
$etat_bouton="";
|
||||||
if (isset($liste_domaines_valeurs['defaut']) && $liste_domaines_valeurs['defaut']!="1") {
|
$bordure_pastille="";
|
||||||
echo "<label class=\"input-label-supprimer-valeur\" for=\"supprimer-valeur-".$liste_domaines_valeurs['id']."\">Supprimer</label><input type=\"checkbox\" class=\"input-checkbox-supprimer-valeur visuellement-cache\" id=\"supprimer-valeur-".$liste_domaines_valeurs['id']."\"><a class=\"confirmation-suppression\" href=\"/services/traitements/domaines/supprDomaines.php?supprDomaine=".$liste_domaines_valeurs['id']."\">Confirmer la suppression</a></li>\n";
|
$post_texte="";
|
||||||
}
|
}
|
||||||
else {
|
echo <<<_HEREDOC_
|
||||||
echo "<p>Domaine en lecture seule tant que définit par défaut</p>";
|
<div class="col-md-6 col-xl-4">
|
||||||
}
|
<div class="card contour-pastille {$bordure_pastille}">
|
||||||
|
<div class="d-flex interieur-pastille">
|
||||||
}
|
<div class="champ-interrupteur {$etat_bouton}">
|
||||||
}
|
<input type="radio" name="{$liste_domaines_valeurs['id']}" id="allumer{$liste_domaines_valeurs['id']}" value="1" {$etat_interrupteur_allumer}>
|
||||||
catch (\Exception $e) {
|
<label for="allumer{$liste_domaines_valeurs['id']}" class="interrupteur-allumer"></label>
|
||||||
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
|
<input type="radio" name="{$liste_domaines_valeurs['id']}" id="eteint{$liste_domaines_valeurs['id']}" value="0" {$etat_interrupteur_eteint}>
|
||||||
}
|
<label for="eteint{$liste_domaines_valeurs['id']}" class="interrupteur-eteint"></label>
|
||||||
|
</div>
|
||||||
?>
|
<div class="titre-pastille">
|
||||||
</ul>
|
<span>{$liste_domaines_valeurs['domaine']}{$post_texte}</span>
|
||||||
<input type="submit" value="Appliquer">
|
</div>
|
||||||
</form>
|
<div>
|
||||||
|
<label class="input-label-supprimer-valeur btn btn-danger btn-sm {$etat_bouton}" for="supprimer-valeur-{$liste_domaines_valeurs['id']}"><img src="/fichiers/svg/trash-2.svg"></label>
|
||||||
<script src="/fichiers/js/filtre.js"></script>
|
</div>
|
||||||
|
</div>
|
||||||
|
<input type="checkbox" class="input-checkbox-supprimer-valeur visuellement-cache" id="supprimer-valeur-{$liste_domaines_valeurs['id']}">
|
||||||
|
<a class="confirmation-suppression card-footer" href="/services/traitements/domaines/supprDomaines.php?supprDomaine={$liste_domaines_valeurs['id']}">Confirmer la suppression</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
_HEREDOC_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (\Exception $e) {
|
||||||
|
die ("Erreur de requête de selection utilisateurs pour \"$base\" : ".$e->getMessage());
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<button class="bouton-flotant" type="submit"><img src="/fichiers/svg/save.svg"/></button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script src="/fichiers/js/filtre.js"></script>
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -7,7 +8,7 @@
|
|||||||
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
require_once ($_SERVER["DOCUMENT_ROOT"]."/services/fonctions/sessions/privileges.php");
|
||||||
|
|
||||||
if (testPrivileges()!="administrateur") {
|
if (testPrivileges()!="administrateur") {
|
||||||
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=2");
|
header("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -19,26 +20,25 @@ $liste_entrees_liste_noires_exp=listeEntreeListeNoireExpPostfix($pdo);
|
|||||||
* Permet d'inclure la page d'administration des listes noires déstinataires ou expéditeurs dédiée.
|
* Permet d'inclure la page d'administration des listes noires déstinataires ou expéditeurs dédiée.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
echo <<<_heredoc_
|
|
||||||
<div>
|
|
||||||
<h1>Choisissez un type de liste noire à éditer :</h1>
|
|
||||||
<a href="/pages/gestion/administration.php?page=listes_noires&sousPage=destinataires">Destinataires</a>
|
|
||||||
<a href="/pages/gestion/administration.php?page=listes_noires&sousPage=expediteurs">Expéditeurs</a>
|
|
||||||
_heredoc_;
|
|
||||||
|
|
||||||
if (isset($_GET['sousPage']) && !empty($_GET['sousPage'])) {
|
if (isset($_GET['sousPage']) && !empty($_GET['sousPage'])) {
|
||||||
switch ($_GET['sousPage']) {
|
switch ($_GET['sousPage']) {
|
||||||
case 'destinataires':
|
case 'destinataires':
|
||||||
echo <<<_HEREDOC_
|
echo <<<_HEREDOC_
|
||||||
<h1>Ajouter une entrée dans la liste noire des destinataires</h1>
|
<div class="card mt-4">
|
||||||
<form action="/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php" method="post">
|
<div class="card-body">
|
||||||
<input type="text" id="nom_pour_filtre" name="courriel_entree_liste_noire_dst" placeholder="utilisateur@domaine.tld*" onkeyup="filtreValeurs();" required>
|
<h5 class="card-title">Ajouter une entrée dans la liste noire des destinataires</h5>
|
||||||
<select name="choix_action_entree_liste_noire_dst">
|
<form action="/services/traitements/liste_noire_dst/ajoutEntreeListeNoireDst.php" method="post">
|
||||||
<option value="REJECT">REJECT</option>
|
<div class="input-group">
|
||||||
<option value="DEFER">DEFER</option>
|
<input type="text" class="form-control" id="nom_pour_filtre" name="courriel_entree_liste_noire_dst" placeholder="utilisateur@domaine.tld" onkeyup="filtreValeurs();" required>
|
||||||
</select>
|
<select class="form-select" name="choix_action_entree_liste_noire_dst">
|
||||||
<input type="submit" value="Ajouter">
|
<option value="REJECT">REJECT</option>
|
||||||
</form>
|
<option value="DEFER">DEFER</option>
|
||||||
|
</select>
|
||||||
|
<button class="btn btn-primary bouton-ajout" type="submit"><img src="/fichiers/svg/plus.svg"/></button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h1>Entrées de la liste noire des destinataires du serveur de messagerie</h1>
|
<h1>Entrées de la liste noire des destinataires du serveur de messagerie</h1>
|
||||||
|
|
||||||
@@ -68,14 +68,20 @@ _HEREDOC_;
|
|||||||
break;
|
break;
|
||||||
case 'expediteurs':
|
case 'expediteurs':
|
||||||
echo <<<_HEREDOC_
|
echo <<<_HEREDOC_
|
||||||
<h1>Ajouter une entrée dans la liste noire des expéditeurs</h1>
|
<div class="card mt-4">
|
||||||
<form action="/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php" method="post">
|
<div class="card-body">
|
||||||
<input type="text" id="nom_pour_filtre" name="courriel_entree_liste_noire_exp" placeholder="utilisateur@domaine.tld*" onkeyup="filtreValeurs();" required>
|
<h5 class="card-title">Ajouter une entrée dans la liste noire des expéditeurs</h5>
|
||||||
<select name="choix_code_retour_entree_liste_noire_exp">
|
<form action="/services/traitements/liste_noire_exp/ajoutEntreeListeNoireExp.php" method="post">
|
||||||
<option value="554">REJECT</option>
|
<div class="input-group">
|
||||||
</select>
|
<input type="text" class="form-control" id="nom_pour_filtre" name="courriel_entree_liste_noire_exp" placeholder="utilisateur@domaine.tld" onkeyup="filtreValeurs();" required>
|
||||||
<input type="submit" value="Ajouter">
|
<select class="form-select" name="choix_code_retour_entree_liste_noire_exp">
|
||||||
</form>
|
<option value="554">REJECT</option>
|
||||||
|
</select>
|
||||||
|
<button class="btn btn-primary bouton-ajout" type="submit"><img src="/fichiers/svg/plus.svg"/></button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<h1>Entrées de la liste noire des expéditeurs du serveur de messagerie</h1>
|
<h1>Entrées de la liste noire des expéditeurs du serveur de messagerie</h1>
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ if (testPrivileges()=="administrateur" && isset($_POST['choix_utilisateur']) &&
|
|||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
header ("Location: /pages/visiteurs/formulaire_accueil.php?erreur=2");
|
header ("Location: /pages/visiteurs/formulaire_accueil.php?erreur=18");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,6 @@
|
|||||||
// Destruction de la session
|
// Destruction de la session
|
||||||
session_destroy ();
|
session_destroy ();
|
||||||
// Redirection de l'utilisateur vers la page d'authentifiaction
|
// Redirection de l'utilisateur vers la page d'authentifiaction
|
||||||
header('location: /pages/visiteurs/formulaire_accueil.php?succes=1');
|
header('location: /pages/visiteurs/formulaire_accueil.php?succes=15');
|
||||||
|
|
||||||
?>
|
?>
|
||||||