mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2026-10-23 09:43:22 +00:00
Various fixes, update u2flib
This commit is contained in:
1 parent
4cb8596ff0
commit
f582f0f01b
20 files changed
+759
-78
No files matched your search
@@ -55,12 +55,11 @@ body.modal-open {
|
|||||||
overflow: inherit;
|
overflow: inherit;
|
||||||
padding-right: inherit !important;
|
padding-right: inherit !important;
|
||||||
}
|
}
|
||||||
.mailcow-alert-box {
|
#mailcow-alert {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 8px;
|
bottom: 8px;
|
||||||
right: 25px;
|
right: 25px;
|
||||||
min-width: 300px;
|
min-width: 350px;
|
||||||
max-width: 350px;
|
max-width: 550px;
|
||||||
z-index: 2000;
|
z-index: 2000;
|
||||||
display: none;
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,650 @@
|
|||||||
|
.noty_layout_mixin, #noty_layout__top, #noty_layout__topLeft, #noty_layout__topCenter, #noty_layout__topRight, #noty_layout__bottom, #noty_layout__bottomLeft, #noty_layout__bottomCenter, #noty_layout__bottomRight, #noty_layout__center, #noty_layout__centerLeft, #noty_layout__centerRight {
|
||||||
|
position: fixed;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
z-index: 9999999;
|
||||||
|
-webkit-transform: translateZ(0) scale(1, 1);
|
||||||
|
transform: translateZ(0) scale(1, 1);
|
||||||
|
-webkit-backface-visibility: hidden;
|
||||||
|
backface-visibility: hidden;
|
||||||
|
-webkit-font-smoothing: subpixel-antialiased;
|
||||||
|
filter: blur(0);
|
||||||
|
-webkit-filter: blur(0);
|
||||||
|
max-width: 90%; }
|
||||||
|
|
||||||
|
#noty_layout__top {
|
||||||
|
top: 0;
|
||||||
|
left: 5%;
|
||||||
|
width: 90%; }
|
||||||
|
|
||||||
|
#noty_layout__topLeft {
|
||||||
|
top: 20px;
|
||||||
|
left: 20px;
|
||||||
|
width: 325px; }
|
||||||
|
|
||||||
|
#noty_layout__topCenter {
|
||||||
|
top: 5%;
|
||||||
|
left: 50%;
|
||||||
|
width: 325px;
|
||||||
|
-webkit-transform: translate(-webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);
|
||||||
|
transform: translate(calc(-50% - .5px)) translateZ(0) scale(1, 1); }
|
||||||
|
|
||||||
|
#noty_layout__topRight {
|
||||||
|
top: 20px;
|
||||||
|
right: 20px;
|
||||||
|
width: 325px; }
|
||||||
|
|
||||||
|
#noty_layout__bottom {
|
||||||
|
bottom: 0;
|
||||||
|
left: 5%;
|
||||||
|
width: 90%; }
|
||||||
|
|
||||||
|
#noty_layout__bottomLeft {
|
||||||
|
bottom: 20px;
|
||||||
|
left: 20px;
|
||||||
|
width: 325px; }
|
||||||
|
|
||||||
|
#noty_layout__bottomCenter {
|
||||||
|
bottom: 5%;
|
||||||
|
left: 50%;
|
||||||
|
width: 325px;
|
||||||
|
-webkit-transform: translate(-webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);
|
||||||
|
transform: translate(calc(-50% - .5px)) translateZ(0) scale(1, 1); }
|
||||||
|
|
||||||
|
#noty_layout__bottomRight {
|
||||||
|
bottom: 20px;
|
||||||
|
right: 20px;
|
||||||
|
width: 325px; }
|
||||||
|
|
||||||
|
#noty_layout__center {
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 325px;
|
||||||
|
-webkit-transform: translate(-webkit-calc(-50% - .5px), -webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);
|
||||||
|
transform: translate(calc(-50% - .5px), calc(-50% - .5px)) translateZ(0) scale(1, 1); }
|
||||||
|
|
||||||
|
#noty_layout__centerLeft {
|
||||||
|
top: 50%;
|
||||||
|
left: 20px;
|
||||||
|
width: 325px;
|
||||||
|
-webkit-transform: translate(0, -webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);
|
||||||
|
transform: translate(0, calc(-50% - .5px)) translateZ(0) scale(1, 1); }
|
||||||
|
|
||||||
|
#noty_layout__centerRight {
|
||||||
|
top: 50%;
|
||||||
|
right: 20px;
|
||||||
|
width: 325px;
|
||||||
|
-webkit-transform: translate(0, -webkit-calc(-50% - .5px)) translateZ(0) scale(1, 1);
|
||||||
|
transform: translate(0, calc(-50% - .5px)) translateZ(0) scale(1, 1); }
|
||||||
|
|
||||||
|
.noty_progressbar {
|
||||||
|
display: none; }
|
||||||
|
|
||||||
|
.noty_has_timeout .noty_progressbar {
|
||||||
|
display: block;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
height: 3px;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #646464;
|
||||||
|
opacity: 0.2;
|
||||||
|
filter: alpha(opacity=10); }
|
||||||
|
|
||||||
|
.noty_bar {
|
||||||
|
-webkit-backface-visibility: hidden;
|
||||||
|
-webkit-transform: translate(0, 0) translateZ(0) scale(1, 1);
|
||||||
|
-ms-transform: translate(0, 0) scale(1, 1);
|
||||||
|
transform: translate(0, 0) scale(1, 1);
|
||||||
|
-webkit-font-smoothing: subpixel-antialiased;
|
||||||
|
overflow: hidden; }
|
||||||
|
|
||||||
|
.noty_effects_open {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-transform: translate(50%);
|
||||||
|
-ms-transform: translate(50%);
|
||||||
|
transform: translate(50%);
|
||||||
|
-webkit-animation: noty_anim_in 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
||||||
|
animation: noty_anim_in 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
||||||
|
-webkit-animation-fill-mode: forwards;
|
||||||
|
animation-fill-mode: forwards; }
|
||||||
|
|
||||||
|
.noty_effects_close {
|
||||||
|
-webkit-animation: noty_anim_out 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
||||||
|
animation: noty_anim_out 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
||||||
|
-webkit-animation-fill-mode: forwards;
|
||||||
|
animation-fill-mode: forwards; }
|
||||||
|
|
||||||
|
.noty_fix_effects_height {
|
||||||
|
-webkit-animation: noty_anim_height 75ms ease-out;
|
||||||
|
animation: noty_anim_height 75ms ease-out; }
|
||||||
|
|
||||||
|
.noty_close_with_click {
|
||||||
|
cursor: pointer; }
|
||||||
|
|
||||||
|
.noty_close_button {
|
||||||
|
position: absolute;
|
||||||
|
top: 2px;
|
||||||
|
right: 2px;
|
||||||
|
font-weight: bold;
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 20px;
|
||||||
|
background-color: rgba(0, 0, 0, 0.05);
|
||||||
|
border-radius: 2px;
|
||||||
|
cursor: pointer;
|
||||||
|
-webkit-transition: all .2s ease-out;
|
||||||
|
transition: all .2s ease-out; }
|
||||||
|
|
||||||
|
.noty_close_button:hover {
|
||||||
|
background-color: rgba(0, 0, 0, 0.1); }
|
||||||
|
|
||||||
|
.noty_modal {
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #000;
|
||||||
|
z-index: 10000;
|
||||||
|
opacity: .3;
|
||||||
|
left: 0;
|
||||||
|
top: 0; }
|
||||||
|
|
||||||
|
.noty_modal.noty_modal_open {
|
||||||
|
opacity: 0;
|
||||||
|
-webkit-animation: noty_modal_in .3s ease-out;
|
||||||
|
animation: noty_modal_in .3s ease-out; }
|
||||||
|
|
||||||
|
.noty_modal.noty_modal_close {
|
||||||
|
-webkit-animation: noty_modal_out .3s ease-out;
|
||||||
|
animation: noty_modal_out .3s ease-out;
|
||||||
|
-webkit-animation-fill-mode: forwards;
|
||||||
|
animation-fill-mode: forwards; }
|
||||||
|
|
||||||
|
@-webkit-keyframes noty_modal_in {
|
||||||
|
100% {
|
||||||
|
opacity: .3; } }
|
||||||
|
|
||||||
|
@keyframes noty_modal_in {
|
||||||
|
100% {
|
||||||
|
opacity: .3; } }
|
||||||
|
|
||||||
|
@-webkit-keyframes noty_modal_out {
|
||||||
|
100% {
|
||||||
|
opacity: 0; } }
|
||||||
|
|
||||||
|
@keyframes noty_modal_out {
|
||||||
|
100% {
|
||||||
|
opacity: 0; } }
|
||||||
|
|
||||||
|
@keyframes noty_modal_out {
|
||||||
|
100% {
|
||||||
|
opacity: 0; } }
|
||||||
|
|
||||||
|
@-webkit-keyframes noty_anim_in {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translate(0);
|
||||||
|
transform: translate(0);
|
||||||
|
opacity: 1; } }
|
||||||
|
|
||||||
|
@keyframes noty_anim_in {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translate(0);
|
||||||
|
transform: translate(0);
|
||||||
|
opacity: 1; } }
|
||||||
|
|
||||||
|
@-webkit-keyframes noty_anim_out {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translate(50%);
|
||||||
|
transform: translate(50%);
|
||||||
|
opacity: 0; } }
|
||||||
|
|
||||||
|
@keyframes noty_anim_out {
|
||||||
|
100% {
|
||||||
|
-webkit-transform: translate(50%);
|
||||||
|
transform: translate(50%);
|
||||||
|
opacity: 0; } }
|
||||||
|
|
||||||
|
@-webkit-keyframes noty_anim_height {
|
||||||
|
100% {
|
||||||
|
height: 0; } }
|
||||||
|
|
||||||
|
@keyframes noty_anim_height {
|
||||||
|
100% {
|
||||||
|
height: 0; } }
|
||||||
|
|
||||||
|
.noty_theme__relax.noty_bar {
|
||||||
|
margin: 4px 0;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative; }
|
||||||
|
.noty_theme__relax.noty_bar .noty_body {
|
||||||
|
padding: 10px; }
|
||||||
|
.noty_theme__relax.noty_bar .noty_buttons {
|
||||||
|
border-top: 1px solid #e7e7e7;
|
||||||
|
padding: 5px 10px; }
|
||||||
|
|
||||||
|
.noty_theme__relax.noty_type__alert,
|
||||||
|
.noty_theme__relax.noty_type__notification {
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid #dedede;
|
||||||
|
color: #444; }
|
||||||
|
|
||||||
|
.noty_theme__relax.noty_type__warning {
|
||||||
|
background-color: #FFEAA8;
|
||||||
|
border: 1px solid #FFC237;
|
||||||
|
color: #826200; }
|
||||||
|
.noty_theme__relax.noty_type__warning .noty_buttons {
|
||||||
|
border-color: #dfaa30; }
|
||||||
|
|
||||||
|
.noty_theme__relax.noty_type__error {
|
||||||
|
background-color: #FF8181;
|
||||||
|
border: 1px solid #e25353;
|
||||||
|
color: #FFF; }
|
||||||
|
.noty_theme__relax.noty_type__error .noty_buttons {
|
||||||
|
border-color: darkred; }
|
||||||
|
|
||||||
|
.noty_theme__relax.noty_type__info,
|
||||||
|
.noty_theme__relax.noty_type__information {
|
||||||
|
background-color: #78C5E7;
|
||||||
|
border: 1px solid #3badd6;
|
||||||
|
color: #FFF; }
|
||||||
|
.noty_theme__relax.noty_type__info .noty_buttons,
|
||||||
|
.noty_theme__relax.noty_type__information .noty_buttons {
|
||||||
|
border-color: #0B90C4; }
|
||||||
|
|
||||||
|
.noty_theme__relax.noty_type__success {
|
||||||
|
background-color: #BCF5BC;
|
||||||
|
border: 1px solid #7cdd77;
|
||||||
|
color: darkgreen; }
|
||||||
|
.noty_theme__relax.noty_type__success .noty_buttons {
|
||||||
|
border-color: #50C24E; }
|
||||||
|
|
||||||
|
.noty_theme__metroui.noty_bar {
|
||||||
|
margin: 4px 0;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
box-shadow: rgba(0, 0, 0, 0.298039) 0 0 5px 0; }
|
||||||
|
.noty_theme__metroui.noty_bar .noty_progressbar {
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
height: 3px;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #000;
|
||||||
|
opacity: 0.2;
|
||||||
|
filter: alpha(opacity=20); }
|
||||||
|
.noty_theme__metroui.noty_bar .noty_body {
|
||||||
|
padding: 1.25em;
|
||||||
|
font-size: 14px; }
|
||||||
|
.noty_theme__metroui.noty_bar .noty_buttons {
|
||||||
|
padding: 0 10px .5em 10px; }
|
||||||
|
|
||||||
|
.noty_theme__metroui.noty_type__alert,
|
||||||
|
.noty_theme__metroui.noty_type__notification {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #1d1d1d; }
|
||||||
|
|
||||||
|
.noty_theme__metroui.noty_type__warning {
|
||||||
|
background-color: #FA6800;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__metroui.noty_type__error {
|
||||||
|
background-color: #CE352C;
|
||||||
|
color: #FFF; }
|
||||||
|
|
||||||
|
.noty_theme__metroui.noty_type__info,
|
||||||
|
.noty_theme__metroui.noty_type__information {
|
||||||
|
background-color: #1BA1E2;
|
||||||
|
color: #FFF; }
|
||||||
|
|
||||||
|
.noty_theme__metroui.noty_type__success {
|
||||||
|
background-color: #60A917;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__mint.noty_bar {
|
||||||
|
margin: 4px 0;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative; }
|
||||||
|
.noty_theme__mint.noty_bar .noty_body {
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 14px; }
|
||||||
|
.noty_theme__mint.noty_bar .noty_buttons {
|
||||||
|
padding: 10px; }
|
||||||
|
|
||||||
|
.noty_theme__mint.noty_type__alert,
|
||||||
|
.noty_theme__mint.noty_type__notification {
|
||||||
|
background-color: #fff;
|
||||||
|
border-bottom: 1px solid #D1D1D1;
|
||||||
|
color: #2F2F2F; }
|
||||||
|
|
||||||
|
.noty_theme__mint.noty_type__warning {
|
||||||
|
background-color: #FFAE42;
|
||||||
|
border-bottom: 1px solid #E89F3C;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__mint.noty_type__error {
|
||||||
|
background-color: #DE636F;
|
||||||
|
border-bottom: 1px solid #CA5A65;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__mint.noty_type__info,
|
||||||
|
.noty_theme__mint.noty_type__information {
|
||||||
|
background-color: #7F7EFF;
|
||||||
|
border-bottom: 1px solid #7473E8;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__mint.noty_type__success {
|
||||||
|
background-color: #AFC765;
|
||||||
|
border-bottom: 1px solid #A0B55C;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__sunset.noty_bar {
|
||||||
|
margin: 4px 0;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative; }
|
||||||
|
.noty_theme__sunset.noty_bar .noty_body {
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); }
|
||||||
|
.noty_theme__sunset.noty_bar .noty_buttons {
|
||||||
|
padding: 10px; }
|
||||||
|
|
||||||
|
.noty_theme__sunset.noty_type__alert,
|
||||||
|
.noty_theme__sunset.noty_type__notification {
|
||||||
|
background-color: #073B4C;
|
||||||
|
color: #fff; }
|
||||||
|
.noty_theme__sunset.noty_type__alert .noty_progressbar,
|
||||||
|
.noty_theme__sunset.noty_type__notification .noty_progressbar {
|
||||||
|
background-color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__sunset.noty_type__warning {
|
||||||
|
background-color: #FFD166;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__sunset.noty_type__error {
|
||||||
|
background-color: #EF476F;
|
||||||
|
color: #fff; }
|
||||||
|
.noty_theme__sunset.noty_type__error .noty_progressbar {
|
||||||
|
opacity: .4; }
|
||||||
|
|
||||||
|
.noty_theme__sunset.noty_type__info,
|
||||||
|
.noty_theme__sunset.noty_type__information {
|
||||||
|
background-color: #118AB2;
|
||||||
|
color: #fff; }
|
||||||
|
.noty_theme__sunset.noty_type__info .noty_progressbar,
|
||||||
|
.noty_theme__sunset.noty_type__information .noty_progressbar {
|
||||||
|
opacity: .6; }
|
||||||
|
|
||||||
|
.noty_theme__sunset.noty_type__success {
|
||||||
|
background-color: #06D6A0;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v3.noty_bar {
|
||||||
|
margin: 4px 0;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: 4px; }
|
||||||
|
.noty_theme__bootstrap-v3.noty_bar .noty_body {
|
||||||
|
padding: 15px; }
|
||||||
|
.noty_theme__bootstrap-v3.noty_bar .noty_buttons {
|
||||||
|
padding: 10px; }
|
||||||
|
.noty_theme__bootstrap-v3.noty_bar .noty_close_button {
|
||||||
|
font-size: 21px;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1;
|
||||||
|
color: #000;
|
||||||
|
text-shadow: 0 1px 0 #fff;
|
||||||
|
filter: alpha(opacity=20);
|
||||||
|
opacity: .2;
|
||||||
|
background: transparent; }
|
||||||
|
.noty_theme__bootstrap-v3.noty_bar .noty_close_button:hover {
|
||||||
|
background: transparent;
|
||||||
|
text-decoration: none;
|
||||||
|
cursor: pointer;
|
||||||
|
filter: alpha(opacity=50);
|
||||||
|
opacity: .5; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v3.noty_type__alert,
|
||||||
|
.noty_theme__bootstrap-v3.noty_type__notification {
|
||||||
|
background-color: #fff;
|
||||||
|
color: inherit; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v3.noty_type__warning {
|
||||||
|
background-color: #fcf8e3;
|
||||||
|
color: #8a6d3b;
|
||||||
|
border-color: #faebcc; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v3.noty_type__error {
|
||||||
|
background-color: #f2dede;
|
||||||
|
color: #a94442;
|
||||||
|
border-color: #ebccd1; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v3.noty_type__info,
|
||||||
|
.noty_theme__bootstrap-v3.noty_type__information {
|
||||||
|
background-color: #d9edf7;
|
||||||
|
color: #31708f;
|
||||||
|
border-color: #bce8f1; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v3.noty_type__success {
|
||||||
|
background-color: #dff0d8;
|
||||||
|
color: #3c763d;
|
||||||
|
border-color: #d6e9c6; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v4.noty_bar {
|
||||||
|
margin: 4px 0;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
border-radius: .25rem; }
|
||||||
|
.noty_theme__bootstrap-v4.noty_bar .noty_body {
|
||||||
|
padding: .75rem 1.25rem; }
|
||||||
|
.noty_theme__bootstrap-v4.noty_bar .noty_buttons {
|
||||||
|
padding: 10px; }
|
||||||
|
.noty_theme__bootstrap-v4.noty_bar .noty_close_button {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-weight: 700;
|
||||||
|
line-height: 1;
|
||||||
|
color: #000;
|
||||||
|
text-shadow: 0 1px 0 #fff;
|
||||||
|
filter: alpha(opacity=20);
|
||||||
|
opacity: .5;
|
||||||
|
background: transparent; }
|
||||||
|
.noty_theme__bootstrap-v4.noty_bar .noty_close_button:hover {
|
||||||
|
background: transparent;
|
||||||
|
text-decoration: none;
|
||||||
|
cursor: pointer;
|
||||||
|
filter: alpha(opacity=50);
|
||||||
|
opacity: .75; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v4.noty_type__alert,
|
||||||
|
.noty_theme__bootstrap-v4.noty_type__notification {
|
||||||
|
background-color: #fff;
|
||||||
|
color: inherit; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v4.noty_type__warning {
|
||||||
|
background-color: #fcf8e3;
|
||||||
|
color: #8a6d3b;
|
||||||
|
border-color: #faebcc; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v4.noty_type__error {
|
||||||
|
background-color: #f2dede;
|
||||||
|
color: #a94442;
|
||||||
|
border-color: #ebccd1; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v4.noty_type__info,
|
||||||
|
.noty_theme__bootstrap-v4.noty_type__information {
|
||||||
|
background-color: #d9edf7;
|
||||||
|
color: #31708f;
|
||||||
|
border-color: #bce8f1; }
|
||||||
|
|
||||||
|
.noty_theme__bootstrap-v4.noty_type__success {
|
||||||
|
background-color: #dff0d8;
|
||||||
|
color: #3c763d;
|
||||||
|
border-color: #d6e9c6; }
|
||||||
|
|
||||||
|
.noty_theme__semanticui.noty_bar {
|
||||||
|
margin: 4px 0;
|
||||||
|
overflow: hidden;
|
||||||
|
position: relative;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
font-size: 1em;
|
||||||
|
border-radius: .28571429rem;
|
||||||
|
box-shadow: 0 0 0 1px rgba(34, 36, 38, 0.22) inset, 0 0 0 0 transparent; }
|
||||||
|
.noty_theme__semanticui.noty_bar .noty_body {
|
||||||
|
padding: 1em 1.5em;
|
||||||
|
line-height: 1.4285em; }
|
||||||
|
.noty_theme__semanticui.noty_bar .noty_buttons {
|
||||||
|
padding: 10px; }
|
||||||
|
|
||||||
|
.noty_theme__semanticui.noty_type__alert,
|
||||||
|
.noty_theme__semanticui.noty_type__notification {
|
||||||
|
background-color: #f8f8f9;
|
||||||
|
color: rgba(0, 0, 0, 0.87); }
|
||||||
|
|
||||||
|
.noty_theme__semanticui.noty_type__warning {
|
||||||
|
background-color: #fffaf3;
|
||||||
|
color: #573a08;
|
||||||
|
box-shadow: 0 0 0 1px #c9ba9b inset, 0 0 0 0 transparent; }
|
||||||
|
|
||||||
|
.noty_theme__semanticui.noty_type__error {
|
||||||
|
background-color: #fff6f6;
|
||||||
|
color: #9f3a38;
|
||||||
|
box-shadow: 0 0 0 1px #e0b4b4 inset, 0 0 0 0 transparent; }
|
||||||
|
|
||||||
|
.noty_theme__semanticui.noty_type__info,
|
||||||
|
.noty_theme__semanticui.noty_type__information {
|
||||||
|
background-color: #f8ffff;
|
||||||
|
color: #276f86;
|
||||||
|
box-shadow: 0 0 0 1px #a9d5de inset, 0 0 0 0 transparent; }
|
||||||
|
|
||||||
|
.noty_theme__semanticui.noty_type__success {
|
||||||
|
background-color: #fcfff5;
|
||||||
|
color: #2c662d;
|
||||||
|
box-shadow: 0 0 0 1px #a3c293 inset, 0 0 0 0 transparent; }
|
||||||
|
|
||||||
|
.noty_theme__nest.noty_bar {
|
||||||
|
margin: 0 0 15px 0;
|
||||||
|
overflow: hidden;
|
||||||
|
border-radius: 2px;
|
||||||
|
position: relative;
|
||||||
|
box-shadow: rgba(0, 0, 0, 0.098039) 5px 4px 10px 0; }
|
||||||
|
.noty_theme__nest.noty_bar .noty_body {
|
||||||
|
padding: 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1); }
|
||||||
|
.noty_theme__nest.noty_bar .noty_buttons {
|
||||||
|
padding: 10px; }
|
||||||
|
|
||||||
|
.noty_layout .noty_theme__nest.noty_bar {
|
||||||
|
z-index: 5; }
|
||||||
|
|
||||||
|
.noty_layout .noty_theme__nest.noty_bar:nth-child(2) {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-right: -4px;
|
||||||
|
margin-left: 4px;
|
||||||
|
z-index: 4;
|
||||||
|
width: 100%; }
|
||||||
|
|
||||||
|
.noty_layout .noty_theme__nest.noty_bar:nth-child(3) {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-right: -8px;
|
||||||
|
margin-left: 8px;
|
||||||
|
z-index: 3;
|
||||||
|
width: 100%; }
|
||||||
|
|
||||||
|
.noty_layout .noty_theme__nest.noty_bar:nth-child(4) {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
margin-top: 12px;
|
||||||
|
margin-right: -12px;
|
||||||
|
margin-left: 12px;
|
||||||
|
z-index: 2;
|
||||||
|
width: 100%; }
|
||||||
|
|
||||||
|
.noty_layout .noty_theme__nest.noty_bar:nth-child(5) {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
margin-top: 16px;
|
||||||
|
margin-right: -16px;
|
||||||
|
margin-left: 16px;
|
||||||
|
z-index: 1;
|
||||||
|
width: 100%; }
|
||||||
|
|
||||||
|
.noty_layout .noty_theme__nest.noty_bar:nth-child(n+6) {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-right: -20px;
|
||||||
|
margin-left: 20px;
|
||||||
|
z-index: -1;
|
||||||
|
width: 100%; }
|
||||||
|
|
||||||
|
#noty_layout__bottomLeft .noty_theme__nest.noty_bar:nth-child(2),
|
||||||
|
#noty_layout__topLeft .noty_theme__nest.noty_bar:nth-child(2) {
|
||||||
|
margin-top: 4px;
|
||||||
|
margin-left: -4px;
|
||||||
|
margin-right: 4px; }
|
||||||
|
|
||||||
|
#noty_layout__bottomLeft .noty_theme__nest.noty_bar:nth-child(3),
|
||||||
|
#noty_layout__topLeft .noty_theme__nest.noty_bar:nth-child(3) {
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-left: -8px;
|
||||||
|
margin-right: 8px; }
|
||||||
|
|
||||||
|
#noty_layout__bottomLeft .noty_theme__nest.noty_bar:nth-child(4),
|
||||||
|
#noty_layout__topLeft .noty_theme__nest.noty_bar:nth-child(4) {
|
||||||
|
margin-top: 12px;
|
||||||
|
margin-left: -12px;
|
||||||
|
margin-right: 12px; }
|
||||||
|
|
||||||
|
#noty_layout__bottomLeft .noty_theme__nest.noty_bar:nth-child(5),
|
||||||
|
#noty_layout__topLeft .noty_theme__nest.noty_bar:nth-child(5) {
|
||||||
|
margin-top: 16px;
|
||||||
|
margin-left: -16px;
|
||||||
|
margin-right: 16px; }
|
||||||
|
|
||||||
|
#noty_layout__bottomLeft .noty_theme__nest.noty_bar:nth-child(n+6),
|
||||||
|
#noty_layout__topLeft .noty_theme__nest.noty_bar:nth-child(n+6) {
|
||||||
|
margin-top: 20px;
|
||||||
|
margin-left: -20px;
|
||||||
|
margin-right: 20px; }
|
||||||
|
|
||||||
|
.noty_theme__nest.noty_type__alert,
|
||||||
|
.noty_theme__nest.noty_type__notification {
|
||||||
|
background-color: #073B4C;
|
||||||
|
color: #fff; }
|
||||||
|
.noty_theme__nest.noty_type__alert .noty_progressbar,
|
||||||
|
.noty_theme__nest.noty_type__notification .noty_progressbar {
|
||||||
|
background-color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__nest.noty_type__warning {
|
||||||
|
background-color: #FFD166;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
.noty_theme__nest.noty_type__error {
|
||||||
|
background-color: #EF476F;
|
||||||
|
color: #fff; }
|
||||||
|
.noty_theme__nest.noty_type__error .noty_progressbar {
|
||||||
|
opacity: .4; }
|
||||||
|
|
||||||
|
.noty_theme__nest.noty_type__info,
|
||||||
|
.noty_theme__nest.noty_type__information {
|
||||||
|
background-color: #118AB2;
|
||||||
|
color: #fff; }
|
||||||
|
.noty_theme__nest.noty_type__info .noty_progressbar,
|
||||||
|
.noty_theme__nest.noty_type__information .noty_progressbar {
|
||||||
|
opacity: .6; }
|
||||||
|
|
||||||
|
.noty_theme__nest.noty_type__success {
|
||||||
|
background-color: #06D6A0;
|
||||||
|
color: #fff; }
|
||||||
|
|
||||||
|
/*# sourceMappingURL=noty.css.map*/
|
||||||
@@ -59,9 +59,7 @@ $(document).ready(function() {
|
|||||||
$('#mailcow-alert-text').text(message);
|
$('#mailcow-alert-text').text(message);
|
||||||
}
|
}
|
||||||
// PHP error handler
|
// PHP error handler
|
||||||
<?php if (isset($_SESSION['return'])): ?>
|
|
||||||
mailcow_alert_box("<?=$_SESSION['return']['type'];?>", "<?=$_SESSION['return']['msg'];?>");
|
|
||||||
<?php endif; unset($_SESSION['return']); ?>
|
|
||||||
|
|
||||||
// Confirm TFA modal
|
// Confirm TFA modal
|
||||||
<?php if (isset($_SESSION['pending_tfa_method'])):?>
|
<?php if (isset($_SESSION['pending_tfa_method'])):?>
|
||||||
@@ -230,10 +228,25 @@ $(document).ready(function() {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<div class="mailcow-alert-box alert" role="alert">
|
|
||||||
<a href="#" class="close" data-dismiss="alert"> ×</a>
|
<div class="container">
|
||||||
<span id="mailcow-alert-text"></span>
|
<div id="mailcow-alert" class="alert" role="alert">
|
||||||
|
<a href="#" class="close" data-dismiss="alert"> ×</a>
|
||||||
|
<span id="mailcow-alert-text"></span>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
<?php // Notifications ?>
|
||||||
|
<script>
|
||||||
|
function mailcow_alert_box(msg, type) {
|
||||||
|
document.getElementById('mailcow-alert').style.display = 'visible';
|
||||||
|
document.getElementById('mailcow-alert-text').innerHTML = msg;
|
||||||
|
document.getElementById("mailcow-alert").className = "alert alert-" + type;
|
||||||
|
}
|
||||||
|
<?php if (isset($_SESSION['return'])): ?>
|
||||||
|
mailcow_alert_box("<?=$_SESSION['return']['msg'];?>", "<?=$_SESSION['return']['type'];?>");
|
||||||
|
<?php endif; unset($_SESSION['return']); ?>
|
||||||
|
</script>
|
||||||
</html>
|
</html>
|
||||||
<?php $stmt = null; $pdo = null; ?>
|
<?php $stmt = null; $pdo = null; ?>
|
||||||
@@ -2552,6 +2552,7 @@ function mailbox_add_domain($postarray) {
|
|||||||
// relay_all_recipients int
|
// relay_all_recipients int
|
||||||
// backupmx int
|
// backupmx int
|
||||||
global $pdo;
|
global $pdo;
|
||||||
|
global $redis;
|
||||||
global $lang;
|
global $lang;
|
||||||
if ($_SESSION['mailcow_cc_role'] != "admin") {
|
if ($_SESSION['mailcow_cc_role'] != "admin") {
|
||||||
$_SESSION['return'] = array(
|
$_SESSION['return'] = array(
|
||||||
@@ -5177,6 +5178,7 @@ function add_forwarding_host($postarray) {
|
|||||||
else {
|
else {
|
||||||
$hosts = get_outgoing_hosts_best_guess($host);
|
$hosts = get_outgoing_hosts_best_guess($host);
|
||||||
}
|
}
|
||||||
|
print_r($hosts);
|
||||||
if (empty($hosts)) {
|
if (empty($hosts)) {
|
||||||
$_SESSION['return'] = array(
|
$_SESSION['return'] = array(
|
||||||
'type' => 'danger',
|
'type' => 'danger',
|
||||||
|
|||||||
Generated
+11
-7
@@ -40,7 +40,7 @@
|
|||||||
"owasp",
|
"owasp",
|
||||||
"security"
|
"security"
|
||||||
],
|
],
|
||||||
"time": "2017-04-12 05:47:07"
|
"time": "2017-04-12T05:47:07+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "robthree/twofactorauth",
|
"name": "robthree/twofactorauth",
|
||||||
@@ -95,20 +95,24 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "yubico/u2flib-server",
|
"name": "yubico/u2flib-server",
|
||||||
"version": "1.0.0",
|
"version": "1.0.1",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Yubico/php-u2flib-server.git",
|
"url": "https://github.com/Yubico/php-u2flib-server.git",
|
||||||
"reference": "407eb21da24150aad30bcd8cc0ee72963eac5e9d"
|
"reference": "dc318c80b59e62921c210f31b014def26ceebbab"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Yubico/php-u2flib-server/zipball/407eb21da24150aad30bcd8cc0ee72963eac5e9d",
|
"url": "https://api.github.com/repos/Yubico/php-u2flib-server/zipball/dc318c80b59e62921c210f31b014def26ceebbab",
|
||||||
"reference": "407eb21da24150aad30bcd8cc0ee72963eac5e9d",
|
"reference": "dc318c80b59e62921c210f31b014def26ceebbab",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"ext-openssl": "*"
|
"ext-openssl": "*",
|
||||||
|
"php": ">=5.6"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~5.7"
|
||||||
},
|
},
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
@@ -122,7 +126,7 @@
|
|||||||
],
|
],
|
||||||
"description": "Library for U2F implementation",
|
"description": "Library for U2F implementation",
|
||||||
"homepage": "https://developers.yubico.com/php-u2flib-server",
|
"homepage": "https://developers.yubico.com/php-u2flib-server",
|
||||||
"time": "2016-02-19T09:47:51+00:00"
|
"time": "2017-05-09T07:33:58+00:00"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"packages-dev": [],
|
"packages-dev": [],
|
||||||
|
|||||||
+37
-33
@@ -52,39 +52,6 @@
|
|||||||
"tfa"
|
"tfa"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"name": "yubico/u2flib-server",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"version_normalized": "1.0.0.0",
|
|
||||||
"source": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Yubico/php-u2flib-server.git",
|
|
||||||
"reference": "407eb21da24150aad30bcd8cc0ee72963eac5e9d"
|
|
||||||
},
|
|
||||||
"dist": {
|
|
||||||
"type": "zip",
|
|
||||||
"url": "https://api.github.com/repos/Yubico/php-u2flib-server/zipball/407eb21da24150aad30bcd8cc0ee72963eac5e9d",
|
|
||||||
"reference": "407eb21da24150aad30bcd8cc0ee72963eac5e9d",
|
|
||||||
"shasum": ""
|
|
||||||
},
|
|
||||||
"require": {
|
|
||||||
"ext-openssl": "*"
|
|
||||||
},
|
|
||||||
"time": "2016-02-19T09:47:51+00:00",
|
|
||||||
"type": "library",
|
|
||||||
"installation-source": "dist",
|
|
||||||
"autoload": {
|
|
||||||
"classmap": [
|
|
||||||
"src/"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"notification-url": "https://packagist.org/downloads/",
|
|
||||||
"license": [
|
|
||||||
"BSD-2-Clause"
|
|
||||||
],
|
|
||||||
"description": "Library for U2F implementation",
|
|
||||||
"homepage": "https://developers.yubico.com/php-u2flib-server"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "owasp/csrf-protector-php",
|
"name": "owasp/csrf-protector-php",
|
||||||
"version": "dev-master",
|
"version": "dev-master",
|
||||||
@@ -122,5 +89,42 @@
|
|||||||
"owasp",
|
"owasp",
|
||||||
"security"
|
"security"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "yubico/u2flib-server",
|
||||||
|
"version": "1.0.1",
|
||||||
|
"version_normalized": "1.0.1.0",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Yubico/php-u2flib-server.git",
|
||||||
|
"reference": "dc318c80b59e62921c210f31b014def26ceebbab"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/Yubico/php-u2flib-server/zipball/dc318c80b59e62921c210f31b014def26ceebbab",
|
||||||
|
"reference": "dc318c80b59e62921c210f31b014def26ceebbab",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"require": {
|
||||||
|
"ext-openssl": "*",
|
||||||
|
"php": ">=5.6"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~5.7"
|
||||||
|
},
|
||||||
|
"time": "2017-05-09T07:33:58+00:00",
|
||||||
|
"type": "library",
|
||||||
|
"installation-source": "dist",
|
||||||
|
"autoload": {
|
||||||
|
"classmap": [
|
||||||
|
"src/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"BSD-2-Clause"
|
||||||
|
],
|
||||||
|
"description": "Library for U2F implementation",
|
||||||
|
"homepage": "https://developers.yubico.com/php-u2flib-server"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
+10
-8
@@ -1,19 +1,21 @@
|
|||||||
language: php
|
language: php
|
||||||
sudo: false
|
sudo: false
|
||||||
php:
|
php:
|
||||||
- 5.3
|
|
||||||
- 5.4
|
|
||||||
- 5.5
|
|
||||||
- 5.6
|
|
||||||
- 7.0
|
- 7.0
|
||||||
|
- 7.1
|
||||||
- hhvm
|
- hhvm
|
||||||
- hhvm-nightly
|
|
||||||
after_success:
|
|
||||||
- test -z $COVERALLS || (composer require satooshi/php-coveralls && vendor/bin/coveralls -v)
|
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- php: 5.6
|
- php: 5.6
|
||||||
env: COVERALLS=true
|
env: COVERALLS=true
|
||||||
allow_failures:
|
allow_failures:
|
||||||
- php: hhvm
|
- php: hhvm
|
||||||
- php: hhvm-nightly
|
|
||||||
|
before_script:
|
||||||
|
- composer install
|
||||||
|
|
||||||
|
script:
|
||||||
|
- ./vendor/phpunit/phpunit/phpunit -c phpunit.xml
|
||||||
|
|
||||||
|
after_success:
|
||||||
|
- test -z $COVERALLS || (composer require satooshi/php-coveralls && vendor/bin/coveralls -v)
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
php-u2flib-server NEWS -- History of user-visible changes.
|
php-u2flib-server NEWS -- History of user-visible changes.
|
||||||
|
|
||||||
|
* Version 1.0.1 (released 2017-05-09)
|
||||||
|
** Move examples to phps so they don't execute by default
|
||||||
|
** Use common challenge for multiple registrations
|
||||||
|
|
||||||
* Version 1.0.0 (released 2016-02-19)
|
* Version 1.0.0 (released 2016-02-19)
|
||||||
** Give an early error on openssl < 1.0
|
** Give an early error on openssl < 1.0
|
||||||
** Support devices with initial counter 0
|
** Support devices with initial counter 0
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ destination: apidocs
|
|||||||
source:
|
source:
|
||||||
- src/u2flib_server
|
- src/u2flib_server
|
||||||
|
|
||||||
exclude: "*/tests/*"
|
exclude:
|
||||||
|
- "*/tests/*"
|
||||||
|
|
||||||
groups: none
|
groups: none
|
||||||
|
|
||||||
|
|||||||
@@ -4,10 +4,13 @@
|
|||||||
"homepage":"https://developers.yubico.com/php-u2flib-server",
|
"homepage":"https://developers.yubico.com/php-u2flib-server",
|
||||||
"license":"BSD-2-Clause",
|
"license":"BSD-2-Clause",
|
||||||
"require": {
|
"require": {
|
||||||
"ext-openssl":"*"
|
"ext-openssl":"*",
|
||||||
|
"php": ">=5.6"
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"classmap": ["src/"]
|
"classmap": ["src/"]
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpunit/phpunit": "~5.7"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -32,7 +32,7 @@ mkdir -p $releasedir
|
|||||||
git archive $VERSION --format=tar | tar -xC $releasedir
|
git archive $VERSION --format=tar | tar -xC $releasedir
|
||||||
git2cl > $releasedir/ChangeLog
|
git2cl > $releasedir/ChangeLog
|
||||||
cd $releasedir
|
cd $releasedir
|
||||||
apigen
|
apigen generate
|
||||||
cd -
|
cd -
|
||||||
tar -cz --directory=$tmpdir --file=${releasename}.tar.gz $releasename
|
tar -cz --directory=$tmpdir --file=${releasename}.tar.gz $releasename
|
||||||
gpg --detach-sign --default-key $PGP_KEYID ${releasename}.tar.gz
|
gpg --detach-sign --default-key $PGP_KEYID ${releasename}.tar.gz
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,7 +1,7 @@
|
|||||||
<phpunit
|
<phpunit
|
||||||
colors="true">
|
colors="true">
|
||||||
<testsuite name="tests">
|
<testsuite name="tests">
|
||||||
<directory suffix="test.php">.</directory>
|
<directory suffix="test.php">tests</directory>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
<logging>
|
<logging>
|
||||||
<log type="coverage-clover" target="build/logs/clover.xml"/>
|
<log type="coverage-clover" target="build/logs/clover.xml"/>
|
||||||
|
|||||||
@@ -222,6 +222,7 @@ class U2F
|
|||||||
public function getAuthenticateData(array $registrations)
|
public function getAuthenticateData(array $registrations)
|
||||||
{
|
{
|
||||||
$sigs = array();
|
$sigs = array();
|
||||||
|
$challenge = $this->createChallenge();
|
||||||
foreach ($registrations as $reg) {
|
foreach ($registrations as $reg) {
|
||||||
if( !is_object( $reg ) ) {
|
if( !is_object( $reg ) ) {
|
||||||
throw new \InvalidArgumentException('$registrations of getAuthenticateData() method only accepts array of object.');
|
throw new \InvalidArgumentException('$registrations of getAuthenticateData() method only accepts array of object.');
|
||||||
@@ -230,7 +231,7 @@ class U2F
|
|||||||
$sig = new SignRequest();
|
$sig = new SignRequest();
|
||||||
$sig->appId = $this->appId;
|
$sig->appId = $this->appId;
|
||||||
$sig->keyHandle = $reg->keyHandle;
|
$sig->keyHandle = $reg->keyHandle;
|
||||||
$sig->challenge = $this->createChallenge();
|
$sig->challenge = $challenge;
|
||||||
$sigs[] = $sig;
|
$sigs[] = $sig;
|
||||||
}
|
}
|
||||||
return $sigs;
|
return $sigs;
|
||||||
|
|||||||
@@ -16,18 +16,6 @@ require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/lib/vendor/autoload.php';
|
|||||||
$u2f = new u2flib_server\U2F('https://' . $_SERVER['HTTP_HOST']);
|
$u2f = new u2flib_server\U2F('https://' . $_SERVER['HTTP_HOST']);
|
||||||
$tfa = new RobThree\Auth\TwoFactorAuth('mailcow UI');
|
$tfa = new RobThree\Auth\TwoFactorAuth('mailcow UI');
|
||||||
|
|
||||||
// OWASP CSRF Protector
|
|
||||||
$csrfProtector = new csrfProtector;
|
|
||||||
class mailcowCsrfProtector extends csrfprotector {
|
|
||||||
public static function logCSRFattack() {
|
|
||||||
$_SESSION['return'] = array(
|
|
||||||
'type' => 'warning',
|
|
||||||
'msg' => 'CSRF violation, please try again.'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mailcowCsrfProtector::init();
|
|
||||||
|
|
||||||
// Redis
|
// Redis
|
||||||
$redis = new Redis();
|
$redis = new Redis();
|
||||||
$redis->connect('redis-mailcow', 6379);
|
$redis->connect('redis-mailcow', 6379);
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ $(document).ready(function() {
|
|||||||
$(document).on('click', '#toggle_multi_select_all', function(e) {
|
$(document).on('click', '#toggle_multi_select_all', function(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var all_checkboxes = $("input[data-form-id=" + $(this).attr("data-form-id") + "]");
|
var all_checkboxes = $("input[data-form-id=" + $(this).attr("data-form-id") + "]");
|
||||||
all_checkboxes.prop("checked", !closests_checkboxes.prop("checked")).change();
|
all_checkboxes.prop("checked", !all_checkboxes.prop("checked")).change();
|
||||||
});
|
});
|
||||||
|
|
||||||
// Draw domain admin table
|
// Draw domain admin table
|
||||||
@@ -170,7 +170,7 @@ $(document).ready(function() {
|
|||||||
url: '/api/v1/delete/dkim',
|
url: '/api/v1/delete/dkim',
|
||||||
jsonp: false,
|
jsonp: false,
|
||||||
complete: function (data) {
|
complete: function (data) {
|
||||||
window.location.href = window.location.href;
|
mailcow_alert_box("warn", "asd");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
|
|||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
(function(e){typeof define=="function"&&define.amd?define(["jquery"],e):typeof module=="object"&&module.exports?module.exports=function(t,n){return n===undefined&&(typeof window!="undefined"?n=require("jquery"):n=require("jquery")(t)),e(n),n}:e(jQuery)})(function(e){function A(t,n,i){typeof i=="string"&&(i={className:i}),this.options=E(w,e.isPlainObject(i)?i:{}),this.loadHTML(),this.wrapper=e(h.html),this.options.clickToHide&&this.wrapper.addClass(r+"-hidable"),this.wrapper.data(r,this),this.arrow=this.wrapper.find("."+r+"-arrow"),this.container=this.wrapper.find("."+r+"-container"),this.container.append(this.userContainer),t&&t.length&&(this.elementType=t.attr("type"),this.originalElement=t,this.elem=N(t),this.elem.data(r,this),this.elem.before(this.wrapper)),this.container.hide(),this.run(n)}var t=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(t in this&&this[t]===e)return t;return-1},n="notify",r=n+"js",i=n+"!blank",s={t:"top",m:"middle",b:"bottom",l:"left",c:"center",r:"right"},o=["l","c","r"],u=["t","m","b"],a=["t","b","l","r"],f={t:"b",m:null,b:"t",l:"r",c:null,r:"l"},l=function(t){var n;return n=[],e.each(t.split(/\W+/),function(e,t){var r;r=t.toLowerCase().charAt(0);if(s[r])return n.push(r)}),n},c={},h={name:"core",html:'<div class="'+r+'-wrapper">\n <div class="'+r+'-arrow"></div>\n <div class="'+r+'-container"></div>\n</div>',css:"."+r+"-corner {\n position: fixed;\n margin: 5px;\n z-index: 1050;\n}\n\n."+r+"-corner ."+r+"-wrapper,\n."+r+"-corner ."+r+"-container {\n position: relative;\n display: block;\n height: inherit;\n width: inherit;\n margin: 3px;\n}\n\n."+r+"-wrapper {\n z-index: 1;\n position: absolute;\n display: inline-block;\n height: 0;\n width: 0;\n}\n\n."+r+"-container {\n display: none;\n z-index: 1;\n position: absolute;\n}\n\n."+r+"-hidable {\n cursor: pointer;\n}\n\n[data-notify-text],[data-notify-html] {\n position: relative;\n}\n\n."+r+"-arrow {\n position: absolute;\n z-index: 2;\n width: 0;\n height: 0;\n}"},p={"border-radius":["-webkit-","-moz-"]},d=function(e){return c[e]},v=function(e){if(!e)throw"Missing Style name";c[e]&&delete c[e]},m=function(t,i){if(!t)throw"Missing Style name";if(!i)throw"Missing Style definition";if(!i.html)throw"Missing Style HTML";var s=c[t];s&&s.cssElem&&(window.console&&console.warn(n+": overwriting style '"+t+"'"),c[t].cssElem.remove()),i.name=t,c[t]=i;var o="";i.classes&&e.each(i.classes,function(t,n){return o+="."+r+"-"+i.name+"-"+t+" {\n",e.each(n,function(t,n){return p[t]&&e.each(p[t],function(e,r){return o+=" "+r+t+": "+n+";\n"}),o+=" "+t+": "+n+";\n"}),o+="}\n"}),i.css&&(o+="/* styles for "+i.name+" */\n"+i.css),o&&(i.cssElem=g(o),i.cssElem.attr("id","notify-"+i.name));var u={},a=e(i.html);y("html",a,u),y("text",a,u),i.fields=u},g=function(t){var n,r,i;r=x("style"),r.attr("type","text/css"),e("head").append(r);try{r.html(t)}catch(s){r[0].styleSheet.cssText=t}return r},y=function(t,n,r){var s;return t!=="html"&&(t="text"),s="data-notify-"+t,b(n,"["+s+"]").each(function(){var n;n=e(this).attr(s),n||(n=i),r[n]=t})},b=function(e,t){return e.is(t)?e:e.find(t)},w={clickToHide:!0,autoHide:!0,autoHideDelay:5e3,arrowShow:!0,arrowSize:5,breakNewLines:!0,elementPosition:"bottom",globalPosition:"top right",style:"bootstrap",className:"error",showAnimation:"slideDown",showDuration:400,hideAnimation:"slideUp",hideDuration:200,gap:5},E=function(t,n){var r;return r=function(){},r.prototype=t,e.extend(!0,new r,n)},S=function(t){return e.extend(w,t)},x=function(t){return e("<"+t+"></"+t+">")},T={},N=function(t){var n;return t.is("[type=radio]")&&(n=t.parents("form:first").find("[type=radio]").filter(function(n,r){return e(r).attr("name")===t.attr("name")}),t=n.first()),t},C=function(e,t,n){var r,i;if(typeof n=="string")n=parseInt(n,10);else if(typeof n!="number")return;if(isNaN(n))return;return r=s[f[t.charAt(0)]],i=t,e[r]!==undefined&&(t=s[r.charAt(0)],n=-n),e[t]===undefined?e[t]=n:e[t]+=n,null},k=function(e,t,n){if(e==="l"||e==="t")return 0;if(e==="c"||e==="m")return n/2-t/2;if(e==="r"||e==="b")return n-t;throw"Invalid alignment"},L=function(e){return L.e=L.e||x("div"),L.e.text(e).html()};A.prototype.loadHTML=function(){var t;t=this.getStyle(),this.userContainer=e(t.html),this.userFields=t.fields},A.prototype.show=function(e,t){var n,r,i,s,o;r=function(n){return function(){!e&&!n.elem&&n.destroy();if(t)return t()}}(this),o=this.container.parent().parents(":hidden").length>0,i=this.container.add(this.arrow),n=[];if(o&&e)s="show";else if(o&&!e)s="hide";else if(!o&&e)s=this.options.showAnimation,n.push(this.options.showDuration);else{if(!!o||!!e)return r();s=this.options.hideAnimation,n.push(this.options.hideDuration)}return n.push(r),i[s].apply(i,n)},A.prototype.setGlobalPosition=function(){var t=this.getPosition(),n=t[0],i=t[1],o=s[n],u=s[i],a=n+"|"+i,f=T[a];if(!f||!document.body.contains(f[0])){f=T[a]=x("div");var l={};l[o]=0,u==="middle"?l.top="45%":u==="center"?l.left="45%":l[u]=0,f.css(l).addClass(r+"-corner"),e("body").append(f)}retuLine truncated
|
||||||
Vendored
+9
@@ -0,0 +1,9 @@
|
|||||||
|
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("Noty",[],e):"object"==typeof exports?exports.Noty=e():t.Noty=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return t[o].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=6)}([function(t,e,n){"use strict";function o(t,e,n){var o=void 0;if(!n){for(o in e)if(e.hasOwnProperty(o)&&e[o]===t)return!0}else for(o in e)if(e.hasOwnProperty(o)&&e[o]===t)return!0;return!1}function i(t){t=t||window.event,void 0!==t.stopPropagation?t.stopPropagation():t.cancelBubble=!0}function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",e="noty_"+t+"_";return e+="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(t){var e=16*Math.random()|0;return("x"===t?e:3&e|8).toString(16)})}function s(t){var e=t.offsetHeight,n=window.getComputedStyle(t);return e+=parseInt(n.marginTop)+parseInt(n.marginBottom)}function u(t,e,n){var o=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e=e.split(" ");for(var i=0;i<e.length;i++)document.addEventListener?t.addEventListener(e[i],n,o):document.attachEvent&&t.attachEvent("on"+e[i],n)}function a(t,e){return("string"==typeof t?t:f(t)).indexOf(" "+e+" ")>=0}function c(t,e){var n=f(t),o=n+e;a(n,e)||(t.className=o.substring(1))}function l(t,e){var n=f(t),o=void 0;a(t,e)&&(o=n.replace(" "+e+" "," "),t.className=o.substring(1,o.length-1))}function d(t){t.parentNode&&t.parentNode.removeChild(t)}function f(t){return(" "+(t&&t.className||"")+" ").replace(/\s+/gi," ")}function h(){function t(){b.PageHidden=document[s],o()}function e(){b.PageHidden=!0,o()}function n(){b.PageHidden=!1,o()}function o(){b.PageHidden?i():r()}function i(){setTimeout(function(){Object.keys(b.Store).forEach(function(t){b.Store.hasOwnProperty(t)&&b.Store[t].options.visibilityControl&&b.Store[t].stop()})},100)}function r(){setTimeout(function(){Object.keys(b.Store).forEach(function(t){b.Store.hasOwnProperty(t)&&b.Store[t].options.visibilityControl&&b.Store[t].resume()}),b.queueRenderAll()},100)}var s=void 0,a=void 0;void 0!==document.hidden?(s="hidden",a="visibilitychange"):void 0!==document.msHidden?(s="msHidden",a="msvisibilitychange"):void 0!==document.webkitHidden&&(s="webkitHidden",a="webkitvisibilitychange"),u(document,a,t),u(window,"blur",e),u(window,"focus",n)}function p(t){if(t.hasSound){var e=document.createElement("audio");t.options.sounds.sources.forEach(function(t){var n=document.createElement("source");n.src=t,n.type="audio/"+m(t),e.appendChild(n)}),t.barDom?t.barDom.appendChild(e):document.querySelector("body").appendChild(e),e.volume=t.options.sounds.volume,t.soundPlayed||(e.play(),t.soundPlayed=!0),e.onended=function(){d(e)}}}function m(t){return t.match(/\.([^.]+)$/)[1]}Object.defineProperty(e,"__esModule",{value:!0}),e.css=e.deepExtend=e.animationEndEvents=void 0;var v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};e.inArray=o,e.stopPropagation=i,e.generateID=r,e.outerHeight=s,e.addListener=u,e.hasClass=a,e.addClass=c,e.removeClass=l,e.remove=d,e.classList=f,e.visibilityChangeFlow=h,e.createAudioElements=p;var y=n(1),b=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}(y);e.animationEndEvents="webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",e.deepExtend=function t(e){e=e||{};for(var n=1;n<arguments.length;n++){var o=arguments[n];if(o)for(var i in o)o.hasOwnProperty(i)&&(Array.isArray(o[i])?e[i]=o[i]:"object"===v(o[i])&&null!==o[i]?e[i]=t(e[i],o[i]):e[i]=o[i])}return e},e.css=function(){function t(t){return t.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()})}function e(t){var e=document.body.style;if(t in e)return t;for(var n=i.length,o=t.charAt(0).toUpperCase()+t.slice(1),r=void 0;n--;)if((r=i[n]+o)in e)return r;return t}function n(n){return n=t(n),r[n]||(r[n]=e(n))}function o(t,e,o){e=n(e),t.style[e]=o}var i=["Webkit","O","Moz","ms"],r={};return function(t,e){var n=arguments,i=void 0,r=void 0;if(2===n.length)for(i in e)e.hasOwnProperty(i)&&void 0!==(r=e[i])&&e.hasOwnProperty(i)&&o(t,i,r);else o(t,n[1],n[2])}}()},function(t,e,n){"use strict";function o(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"global",e=0,n=x;return E.hasOwnProperty(t)&&(n=E[t].maxVisible,Object.keys(P).forEach(function(n){P[n].options.queue!==t||P[n].cloLine truncated
|
||||||
|
* @overview es6-promise - a tiny implementation of Promises/A+.
|
||||||
|
* @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
|
||||||
|
* @license Licensed under MIT license
|
||||||
|
* See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
|
||||||
|
* @version 4.1.0
|
||||||
|
*/
|
||||||
|
!function(e,n){t.exports=n()}(0,function(){"use strict";function t(t){return"function"==typeof t||"object"==typeof t&&null!==t}function i(t){return"function"==typeof t}function r(t){z=t}function s(t){U=t}function u(){return void 0!==R?function(){R(c)}:a()}function a(){var t=setTimeout;return function(){return t(c,1)}}function c(){for(var t=0;t<Q;t+=2){(0,X[t])(X[t+1]),X[t]=void 0,X[t+1]=void 0}Q=0}function l(t,e){var n=arguments,o=this,i=new this.constructor(f);void 0===i[tt]&&A(i);var r=o._state;return r?function(){var t=n[r-1];U(function(){return P(r,i,t,o._result)})}():C(o,i,t,e),i}function d(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(f);return g(n,t),n}function f(){}function h(){return new TypeError("You cannot resolve a promise with itself")}function p(){return new TypeError("A promises callback cannot return that same promise.")}function m(t){try{return t.then}catch(t){return it.error=t,it}}function v(t,e,n,o){try{t.call(e,n,o)}catch(t){return t}}function y(t,e,n){U(function(t){var o=!1,i=v(n,e,function(n){o||(o=!0,e!==n?g(t,n):k(t,n))},function(e){o||(o=!0,S(t,e))},"Settle: "+(t._label||" unknown promise"));!o&&i&&(o=!0,S(t,i))},t)}function b(t,e){e._state===nt?k(t,e._result):e._state===ot?S(t,e._result):C(e,void 0,function(e){return g(t,e)},function(e){return S(t,e)})}function w(t,e,n){e.constructor===t.constructor&&n===l&&e.constructor.resolve===d?b(t,e):n===it?(S(t,it.error),it.error=null):void 0===n?k(t,e):i(n)?y(t,e,n):k(t,e)}function g(e,n){e===n?S(e,h()):t(n)?w(e,n,m(n)):k(e,n)}function _(t){t._onerror&&t._onerror(t._result),D(t)}function k(t,e){t._state===et&&(t._result=e,t._state=nt,0!==t._subscribers.length&&U(D,t))}function S(t,e){t._state===et&&(t._state=ot,t._result=e,U(_,t))}function C(t,e,n,o){var i=t._subscribers,r=i.length;t._onerror=null,i[r]=e,i[r+nt]=n,i[r+ot]=o,0===r&&t._state&&U(D,t)}function D(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var o=void 0,i=void 0,r=t._result,s=0;s<e.length;s+=3)o=e[s],i=e[s+n],o?P(n,o,i,r):i(r);t._subscribers.length=0}}function x(){this.error=null}function E(t,e){try{return t(e)}catch(t){return rt.error=t,rt}}function P(t,e,n,o){var r=i(n),s=void 0,u=void 0,a=void 0,c=void 0;if(r){if(s=E(n,o),s===rt?(c=!0,u=s.error,s.error=null):a=!0,e===s)return void S(e,p())}else s=o,a=!0;e._state!==et||(r&&a?g(e,s):c?S(e,u):t===nt?k(e,s):t===ot&&S(e,s))}function T(t,e){try{e(function(e){g(t,e)},function(e){S(t,e)})}catch(e){S(t,e)}}function O(){return st++}function A(t){t[tt]=st++,t._state=void 0,t._result=void 0,t._subscribers=[]}function M(t,e){this._instanceConstructor=t,this.promise=new t(f),this.promise[tt]||A(this.promise),I(e)?(this._input=e,this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?k(this.promise,this._result):(this.length=this.length||0,this._enumerate(),0===this._remaining&&k(this.promise,this._result))):S(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function j(t){return new M(this,t).promise}function N(t){var e=this;return new e(I(t)?function(n,o){for(var i=t.length,r=0;r<i;r++)e.resolve(t[r]).then(n,o)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function H(t){var e=this,n=new e(f);return S(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function W(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function V(t){this[tt]=O(),this._result=this._state=void 0,this._subscribers=[],f!==t&&("function"!=typeof t&&L(),this instanceof V?T(this,t):W())}function B(){var t=void 0;if(void 0!==o)t=o;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(t){throw new Error("polyfill failed because global object is unavailable in this environment")}var e=t.Promise;if(e){var n=null;try{n=Object.prototype.toString.call(e.resolve())}catch(t){}if("[object Promise]"===n&&!e.cast)return}t.Promise=V}var F=void 0;F=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var I=F,Q=0,R=void 0,z=void 0,U=function(t,e){X[Q]=t,X[Q+1]=e,2===(Q+=2)&&(z?z(c):Z())},Y="undefined"!=typeof window?window:void 0,K=Y||{},G=K.MutationObserver||K.WebKitMutationObserver,$="undefined"==typeof self&&void 0!==e&&"[object process]"==={}.toString.call(e),J="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,X=new Array(1e3),Z=void 0;Z=$?function(){return function(){return e.nextTick(c)}}():G?function(){var t=0,e=new G(c),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}():J?function(){var t=new MessageChannel;return t.port1.onmessage=c,function(){return t.port2.postMessage(0)}}():void 0===Y?function(){try{var t=n(9);return R=t.runOnLoop||t.runOnContext,u()}catch(t){return a()}}()Line truncated
|
||||||
|
//# sourceMappingURL=noty.min.js.map
|
||||||
Reference in new issue
Block a user