feat: check passwordpolicy on login (#477)

* fix: password complexity policy

* feat: check password policy

* feat: check password policy

* fix: password policy on password change

* fix: remove double policy check

* feat: check pw policy on register

* feat: check pw policy on init

* fix: hover on secondary buttons

* fix: use data set instead of hidden inputs

* fix: disabled button

* fix: en login

* fix: read policy

* feat: check if org exists

* multiple checks

* feat: validate all forms

* fix: check all forms

* fix: remove unused err

Co-authored-by: Livio Amstutz <livio.a@gmail.com>
This commit is contained in:
Fabi
2020-07-16 14:26:08 +02:00
committed by GitHub
parent c34f6b1074
commit 2a3ecc0c6a
36 changed files with 3262 additions and 2662 deletions

View File

@@ -2,6 +2,11 @@ Password:
Title: Passwort
Description: Gib deine Benutzerdaten ein.
Password: Passwort
MinLength: Mindestlänge
HasUppercase: Grossbuchstaben
HasLowercase: Kleinbuchstaben
HasNumber: Nummer
HasSymbol: Symbol
Login:
Title: Anmeldung
@@ -66,6 +71,7 @@ PasswordChange:
Description: Ändere dein Password in dem du dein altes und dann dein neuen Passwort eingibst.
OldPassword: Altes Passwort
NewPassword: Neues Passwort
NewPasswordConfirmation: Passwort Bestätigung
PasswordChangeDone:
Title: Passwort ändern

View File

@@ -15,6 +15,11 @@ Password:
Title: Password
Description: Enter your logindata.
Password: Password
MinLength: Minimumlength
HasUppercase: Uppercase letter
HasLowercase: Lowercase letter
HasNumber: Number
HasSymbol: Symbol
MfaVerify:
Title: Verify Multificator
@@ -66,6 +71,7 @@ PasswordChange:
Description: Change your password. Enter your old and new password.
OldPassword: Old Password
NewPassword: New Password
NewPasswordConfirmation: Passwort confirmation
PasswordChangeDone:
Title: Change Password

View File

@@ -0,0 +1,14 @@
function CheckChangePwPolicy() {
let policyElement = document.getElementById("change-new-password")
let pwNew = policyElement.value;
let pwNewConfirmation = document.getElementById("change-password-confirmation").value;
if (ComplexityPolicyCheck(policyElement, pwNew) === false) {
return false;
}
return pwNew == pwNewConfirmation;
}
let button = document.getElementById("change-password--button");
disableSubmit(CheckChangePwPolicy, button);

View File

@@ -0,0 +1,3 @@
let button = document.getElementById("submit-button");
disableSubmit(undefined, button);

View File

@@ -0,0 +1,29 @@
function disableSubmit(checks, button) {
console.log("GUGUS");
let form = document.getElementsByTagName('form')[0];
let inputs = form.getElementsByTagName('input');
for (i = 0; i < inputs.length; i++) {
inputs[i].addEventListener('input', function () {
if (checks != undefined) {
if (checks() === false) {
button.disabled = true;
return
}
}
if (checkRequired(form, inputs) === false) {
button.disabled = true;
return
}
button.disabled = false;
});
}
}
function checkRequired(form, inputs) {
for (i = 0; i < inputs.length; i++) {
if (inputs[i].required && inputs[i].value == '') {
return false
}
}
return true;
}

View File

@@ -0,0 +1,14 @@
function CheckInitPwPolicy() {
let policyElement = document.getElementById("password");
let pwNew = policyElement.value;
let pwNewConfirmation = document.getElementById("passwordconfirm").value;
if (ComplexityPolicyCheck(policyElement, pwNew) === false) {
return false;
}
return pwNew == pwNewConfirmation;
}
let button = document.getElementById("init-button");
disableSubmit(CheckInitPwPolicy, button);

View File

@@ -0,0 +1,68 @@
function ComplexityPolicyCheck(policyElement, pwNew) {
let minLength = policyElement.dataset.minlength;
let upperRegex = policyElement.dataset.hasUppercase;
let lowerRegex = policyElement.dataset.hasLowercase;
let numberRegex = policyElement.dataset.hasNumber;
let symbolRegex = policyElement.dataset.hasSymbol;
let valid = true;
let minlengthelem = document.getElementById('minlength')
if (pwNew.length >= minLength) {
ValidPolicy(minlengthelem);
valid = true;
} else {
InvalidPolicy(minlengthelem);
valid = false;
}
let upper = document.getElementById('uppercase')
if (upperRegex !== "") {
if (RegExp(upperRegex).test(pwNew)) {
ValidPolicy(upper);
valid = true;
} else {
InvalidPolicy(upper);
valid = false;
}
}
let lower = document.getElementById('lowercase')
if (lowerRegex !== "") {
if (RegExp(lowerRegex).test(pwNew)) {
ValidPolicy(lower);
valid = true;
} else {
InvalidPolicy(lower);
valid = false;
}
}
let number = document.getElementById('number')
if (numberRegex != "") {
if (RegExp(numberRegex).test(pwNew)) {
ValidPolicy(number);
valid = true;
} else {
InvalidPolicy(number);
valid = false;
}
}
let symbol = document.getElementById('symbol')
if (symbolRegex != "") {
if (RegExp(symbolRegex).test(pwNew)) {
ValidPolicy(symbol)
valid = true;
} else {
InvalidPolicy(symbol);
valid = false;
}
}
return valid;
}
function ValidPolicy(element) {
element.classList.remove('invalid')
element.getElementsByTagName('i')[0].innerText = 'check';
}
function InvalidPolicy(element) {
element.classList.add('invalid')
element.getElementsByTagName('i')[0].innerText = 'clear';
}

View File

@@ -0,0 +1,14 @@
function CheckRegisterPwPolicy() {
let policyElement = document.getElementById("register-password");
let pwNew = policyElement.value;
let pwNewConfirmation = document.getElementById("register-password-confirmation").value;
if (ComplexityPolicyCheck(policyElement, pwNew) === false) {
return false;
}
return pwNew == pwNewConfirmation;
}
let button = document.getElementById("register-button");
disableSubmit(CheckRegisterPwPolicy, button);

View File

@@ -144,6 +144,7 @@ button {
}
button:hover {
background-color: #f60075;
color: #282828;
border: 2px solid #f60075;
}
button.primary {
@@ -154,6 +155,14 @@ button.primary {
button.primary:hover {
background-color: #f60075;
}
button:disabled {
background-color: #505050;
border: 2px solid #505050;
}
button:disabled:hover {
background-color: #505050;
border: 2px solid #505050;
}
input:not([type=radio]), select {
background-color: #252525;
@@ -300,6 +309,28 @@ form button.other-user > div:nth-of-type(2) {
margin: 15px;
font-size: 1.4rem;
}
form ul#passwordcomplexity {
display: flex;
flex-wrap: wrap;
padding: 0;
list-style: none;
}
form ul#passwordcomplexity li {
flex: 1 0 50%;
display: block;
font-weight: 300;
font-size: 12px;
line-height: 12px;
}
form ul#passwordcomplexity li i {
height: 26px;
padding-right: 10px;
vertical-align: middle;
color: #0DF279;
}
form ul#passwordcomplexity li.invalid i {
color: #F20D6B;
}
#copy-secret {
visibility: hidden;

View File

@@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/caos/variables.scss","../../scss/variables.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCMW;EDLX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCDc;EDEd,OCDQ;EDER;EACA;EACA;;;AAMJ;EACI,OCXQ;EDYR,aClBS;EDmBT;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OCxCW;EDyCX;EACA;;AAEA;EACI,OC5CY;;;ADgDpB;EACI,kBCpDc;EDqDd,OCnDW;EDoDX;EACA;EACA;EACA;EACA,QErEU;EFsEV;EACA;EACA;;AACA;EACI,kBC5DY;ED6DZ;;AAGJ;EACI,kBClEO;EDmEP,OCpEI;EDqEJ;;AACA;EACI,kBCrEQ;;;AD0EpB;EACI,kBElEmB;EFmEnB,OC9EQ;ED+ER,QE3FU;EF4FV;EACA;EACA;;;AAIA;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI,OEnGK;EFoGL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OCtII;EDuIJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBEnIW;;AFsIf;EACI;;AAIR;EACI;;AAIA;EACI;EACA;EEhKV;;AACA;EF6JM;IE5JJ;IACA;;;AFkKQ;EErKV;;AACA;EFoKU;IEnKR;IACA;;;AFuKI;EACI;EACA;EACA;EACA;EACA,cElKO;EFmKP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OE9LP;;AFqML;EACI;;AAEJ;EACI;EACA;EACA;EACA;EExNV;;AACA;EFmNM;IElNJ;IACA;;;AF0NQ;EACI;EACA;EE/Nd;;AACA;EF4NU;IE3NR;IACA;;;AFiOI;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MCjPI;;ADoPR;EACI,MCtPU;;;AD2Pd;EACI;EACA;;;AAIR;EAEQ;EAEJ;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA","file":"dark.css"}
{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/caos/variables.scss","../../scss/variables.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCMW;EDLX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCDc;EDEd,OCDQ;EDER;EACA;EACA;;;AAMJ;EACI,OCXQ;EDYR,aClBS;EDmBT;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OCxCW;EDyCX;EACA;;AAEA;EACI,OC5CY;;;ADgDpB;EACI,kBCpDc;EDqDd,OCnDW;EDoDX;EACA;EACA;EACA;EACA,QErEU;EFsEV;EACA;EACA;;AACA;EACI,kBC5DY;ED6DZ,OChEU;EDiEV;;AAGJ;EACI,kBCnEO;EDoEP,OCrEI;EDsEJ;;AACA;EACI,kBCtEQ;;AD0EhB;EACI,kBEnEW;EFoEX;;AAEA;EACI,kBEvEO;EFwEP;;;AAKZ;EACI,kBE7EmB;EF8EnB,OCzFQ;ED0FR,QEtGU;EFuGV;EACA;EACA;;;AAIA;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI,OE9GK;EF+GL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OCjJI;EDkJJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBE9IW;;AFiJf;EACI;;AAIR;EACI;;AAIA;EACI;EACA;EE3KV;;AACA;EFwKM;IEvKJ;IACA;;;AF6KQ;EEhLV;;AACA;EF+KU;IE9KR;IACA;;;AFkLI;EACI;EACA;EACA;EACA;EACA,cE7KO;EF8KP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OEzMP;;AFgNL;EACI;;AAEJ;EACI;EACA;EACA;EACA;EEnOV;;AACA;EF8NM;IE7NJ;IACA;;;AFqOQ;EACI;EACA;EE1Od;;AACA;EFuOU;IEtOR;IACA;;;AF4OI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OEnPN;;AFwPE;EACI,OE1PL;;;AFgQX;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MCxRI;;AD2RR;EACI,MC7RU;;;ADkSd;EACI;EACA;;;AAIR;EAEQ;EAEJ;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA","file":"dark.css"}

View File

@@ -144,6 +144,7 @@ button {
}
button:hover {
background-color: #f60075;
color: #282828;
border: 2px solid #f60075;
}
button.primary {
@@ -154,6 +155,14 @@ button.primary {
button.primary:hover {
background-color: #f60075;
}
button:disabled {
background-color: #505050;
border: 2px solid #505050;
}
button:disabled:hover {
background-color: #505050;
border: 2px solid #505050;
}
input:not([type=radio]), select {
background-color: #252525;
@@ -300,6 +309,28 @@ form button.other-user > div:nth-of-type(2) {
margin: 15px;
font-size: 1.4rem;
}
form ul#passwordcomplexity {
display: flex;
flex-wrap: wrap;
padding: 0;
list-style: none;
}
form ul#passwordcomplexity li {
flex: 1 0 50%;
display: block;
font-weight: 300;
font-size: 12px;
line-height: 12px;
}
form ul#passwordcomplexity li i {
height: 26px;
padding-right: 10px;
vertical-align: middle;
color: #0DF279;
}
form ul#passwordcomplexity li.invalid i {
color: #F20D6B;
}
#copy-secret {
visibility: hidden;

View File

@@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/caos/variables.scss","../../scss/variables.scss","../../scss/light.scss"],"names":[],"mappings":"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","file":"light.css"}
{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/caos/variables.scss","../../scss/variables.scss","../../scss/light.scss"],"names":[],"mappings":"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","file":"light.css"}

View File

@@ -78,6 +78,7 @@ button {
outline: none;
&:hover {
background-color: $primaryColorHover;
color: $backgroundColor;
border: 2px solid $primaryColorHover;
}
@@ -89,6 +90,16 @@ button {
background-color: $primaryColorHover;
}
}
&:disabled {
background-color: $inputBorderColor;
border: 2px solid $inputBorderColor;
&:hover {
background-color: $inputBorderColor;
border: 2px solid $inputBorderColor;
}
}
}
input:not([type='radio']), select {
@@ -245,6 +256,34 @@ form {
font-size: 1.4rem;
}
}
ul#passwordcomplexity {
display: flex;
flex-wrap: wrap;
padding: 0;
list-style: none;
li {
flex: 1 0 50%;
display: block;
font-weight: 300;
font-size: 12px;
line-height: 12px;
i {
height: 26px;
padding-right: 10px;
vertical-align: middle;
color: $okColor;
}
}
li.invalid {
i {
color: $nokColor;
}
}
}
}
#copy-secret {

View File

@@ -30,6 +30,8 @@ $inputBackgroundColor: #252525;
$buttonBackgroundColorHover: $inputBackgroundColor;
$profileImgDark: "/resources/images/icon-user-dark";
$otherUserImgDark: "/resources/images/icon-newuser-dark";
$nokColor: #F20D6B;
$okColor: #0DF279;
// ----- LIGHT-THEME --------

View File

@@ -145,6 +145,7 @@ button {
}
button:hover {
background-color: #5b8fd3;
color: #282828;
border: 2px solid #5b8fd3;
}
button.primary {
@@ -155,6 +156,14 @@ button.primary {
button.primary:hover {
background-color: #5b8fd3;
}
button:disabled {
background-color: #505050;
border: 2px solid #505050;
}
button:disabled:hover {
background-color: #505050;
border: 2px solid #505050;
}
input:not([type=radio]), select {
background-color: #252525;
@@ -301,6 +310,28 @@ form button.other-user > div:nth-of-type(2) {
margin: 15px;
font-size: 1.4rem;
}
form ul#passwordcomplexity {
display: flex;
flex-wrap: wrap;
padding: 0;
list-style: none;
}
form ul#passwordcomplexity li {
flex: 1 0 50%;
display: block;
font-weight: 300;
font-size: 12px;
line-height: 12px;
}
form ul#passwordcomplexity li i {
height: 26px;
padding-right: 10px;
vertical-align: middle;
color: #0DF279;
}
form ul#passwordcomplexity li.invalid i {
color: #F20D6B;
}
#copy-secret {
visibility: hidden;

View File

@@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/variables.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCHW;EDIX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCKc;EDJd,OCKQ;EDJR;EACA;EACA;EAEI;;;AAIR;EACI,OCLQ;EDMR,aC3BS;ED4BT;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OClCW;EDmCX;EACA;;AAEA;EACI,OCtCY;;;AD0CpB;EACI,kBC9Cc;ED+Cd,OC7CW;ED8CX;EACA;EACA;EACA;EACA,QCrEU;EDsEV;EACA;EACA;;AACA;EACI,kBCtDY;EDuDZ;;AAGJ;EACI,kBC5DO;ED6DP,OC9DI;ED+DJ;;AACA;EACI,kBC/DQ;;;ADoEpB;EACI,kBClEmB;EDmEnB,OCxEQ;EDyER,QC3FU;ED4FV;EACA;EACA;;;AAIA;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI,OCnGK;EDoGL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OChII;EDiIJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBCnIW;;ADsIf;EACI;;AAIR;EACI;;AAIA;EACI;EACA;EChKV;;AACA;ED6JM;IC5JJ;IACA;;;ADkKQ;ECrKV;;AACA;EDoKU;ICnKR;IACA;;;ADuKI;EACI;EACA;EACA;EACA;EACA,cClKO;EDmKP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OC9LP;;ADqML;EACI;;AAEJ;EACI;EACA;EACA;EACA;ECxNV;;AACA;EDmNM;IClNJ;IACA;;;AD0NQ;EACI;EACA;EC/Nd;;AACA;ED4NU;IC3NR;IACA;;;ADiOI;EACI;EACA;;;AAKZ;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MC3OI;;AD8OR;EACI,MChPU;;;ADqPd;EACI;EACA;;;AAIR;EAII;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA","file":"dark.css"}
{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/variables.scss"],"names":[],"mappings":"AACA;EACI;EACA;;AAIJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;;AAIJ;EACI;EACA;EACA;EACA;AAA6D;EAC7D;;AC5EJ;EACI;EACA,aCHW;EDIX;EACA;;;AAGJ;EACI;;;AAGJ;EACI;EACA;EACA;EACA,kBCKc;EDJd,OCKQ;EDJR;EACA;EACA;EAEI;;;AAIR;EACI,OCLQ;EDMR,aC3BS;ED4BT;EACA;;;AAGJ;EACI;;;AAGJ;EACI;;AAEA;EACI;EACA;EACA;EACA;EACA;;;AAIR;EACI;EACA;EACA;EACA;;;AAGJ;EACI,OClCW;EDmCX;EACA;;AAEA;EACI,OCtCY;;;AD0CpB;EACI,kBC9Cc;ED+Cd,OC7CW;ED8CX;EACA;EACA;EACA;EACA,QCrEU;EDsEV;EACA;EACA;;AACA;EACI,kBCtDY;EDuDZ,OC1DU;ED2DV;;AAGJ;EACI,kBC7DO;ED8DP,OC/DI;EDgEJ;;AACA;EACI,kBChEQ;;ADoEhB;EACI,kBCnEW;EDoEX;;AAEA;EACI,kBCvEO;EDwEP;;;AAKZ;EACI,kBC7EmB;ED8EnB,OCnFQ;EDoFR,QCtGU;EDuGV;EACA;EACA;;;AAIA;EACI;EACA;;AAGJ;EACI;;AAEA;EACI;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAIR;EACI,OC9GK;ED+GL;EACA;EACA;;AAEA;EACI;EACA;;AAIR;EACI;;AAEA;EACI;;AAGJ;EACI;;AAIR;EACI;EACA;EACA,OC3II;ED4IJ;EACA;EACA;EACA;;AAEA;EACI;EACA,kBC9IW;;ADiJf;EACI;;AAIR;EACI;;AAIA;EACI;EACA;EC3KV;;AACA;EDwKM;ICvKJ;IACA;;;AD6KQ;EChLV;;AACA;ED+KU;IC9KR;IACA;;;ADkLI;EACI;EACA;EACA;EACA;EACA,cC7KO;ED8KP;EACA;EACA;EACA;EACA;;AAEA;EACI;;AAGJ;EACI;;AAKR;EACI;;AAEA;EACI;;AAEA;EACI;;AAEJ;EACI,OCzMP;;ADgNL;EACI;;AAEJ;EACI;EACA;EACA;EACA;ECnOV;;AACA;ED8NM;IC7NJ;IACA;;;ADqOQ;EACI;EACA;EC1Od;;AACA;EDuOU;ICtOR;IACA;;;AD4OI;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA,OCnPN;;ADwPE;EACI,OC1PL;;;ADgQX;EACI;EACA;;;AAGJ;EACI;;AAEA;EACI,MClRI;;ADqRR;EACI,MCvRU;;;AD4Rd;EACI;EACA;;;AAIR;EAII;EACA;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;AAAkB;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;AACA;EACA;AAEA;EACA;AAEA;EACA","file":"dark.css"}

View File

@@ -145,6 +145,7 @@ button {
}
button:hover {
background-color: #5b8fd3;
color: #282828;
border: 2px solid #5b8fd3;
}
button.primary {
@@ -155,6 +156,14 @@ button.primary {
button.primary:hover {
background-color: #5b8fd3;
}
button:disabled {
background-color: #505050;
border: 2px solid #505050;
}
button:disabled:hover {
background-color: #505050;
border: 2px solid #505050;
}
input:not([type=radio]), select {
background-color: #252525;
@@ -301,6 +310,28 @@ form button.other-user > div:nth-of-type(2) {
margin: 15px;
font-size: 1.4rem;
}
form ul#passwordcomplexity {
display: flex;
flex-wrap: wrap;
padding: 0;
list-style: none;
}
form ul#passwordcomplexity li {
flex: 1 0 50%;
display: block;
font-weight: 300;
font-size: 12px;
line-height: 12px;
}
form ul#passwordcomplexity li i {
height: 26px;
padding-right: 10px;
vertical-align: middle;
color: #0DF279;
}
form ul#passwordcomplexity li.invalid i {
color: #F20D6B;
}
#copy-secret {
visibility: hidden;

View File

@@ -1 +1 @@
{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/variables.scss","../../scss/light.scss"],"names":[],"mappings":"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","file":"light.css"}
{"version":3,"sourceRoot":"","sources":["../../scss/fonts.scss","../../scss/main.scss","../../scss/variables.scss","../../scss/light.scss"],"names":[],"mappings":"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","file":"light.css"}

View File

@@ -1,6 +1,5 @@
{{template "main-top" .}}
<h1>{{t "PasswordChange.Title"}}</h1>
<p>{{t "PasswordChange.Description"}}</p>
@@ -12,23 +11,43 @@
<div class="fields">
<div class="field">
<label class="label" for="old_password">{{t "PasswordChange.OldPassword"}}</label>
<input class="input" type="password" id="old_password" name="old_password" autocomplete="current-password" autofocus required>
<label class="label" for="change-old-password">{{t "PasswordChange.OldPassword"}}</label>
<input class="input" type="password" id="change-old-password" name="change-old-password" autocomplete="current-password" autofocus required>
</div>
<div class="field">
<label class="label" for="new_password">{{t "PasswordChange.NewPassword"}}</label>
<input class="input" type="password" id="new-password" name="new_password" autocomplete="new-password" required>
<label class="label" for="change-new-password">{{t "PasswordChange.NewPassword"}}</label>
<input data-minlength="{{ .MinLength }}"
data-has-uppercase="{{ .HasUppercase }}"
data-has-lowercase="{{ .HasLowercase }}"
data-has-number="{{ .HasNumber }}"
data-has-symbol="{{ .HasSymbol }}"
class="input"
type="password"
id="change-new-password"
name="change-new-password"
autocomplete="new-password"
required>
{{ .PasswordPolicyDescription }}
</div>
<div class="field">
<label class="label" for="change-password-confirmation">{{t "PasswordChange.NewPasswordConfirmation"}}</label>
<input class="input" type="password" id="change-password-confirmation" name="change-password-confirmation" autocomplete="new-password" required>
</div>
</div>
{{ template "error-message" .}}
<div class="actions">
<button type="submit" name="resend" value="false" class="primary right" >{{t "Actions.Next"}}</buttontype="submit">
<button type="submit" id="change-password-button" name="resend" value="false" class="primary right" disabled>{{t "Actions.Next"}}</buttontype="submit">
</div>
</form>
<script src="{{ resourceUrl "scripts/form_submit.js" }}"></script>
<script src="{{ resourceUrl "scripts/password_policy_check.js" }}"></script>
<script src="{{ resourceUrl "scripts/change_password_check.js" }}"></script>
{{template "main-bottom" .}}

View File

@@ -18,22 +18,42 @@
</div>
<div class="field">
<label class="label" for="password">{{t "InitPassword.NewPassword"}}</label>
<input class="input" type="password" id="password" name="password" autocomplete="new-password" autofocus required>
<input data-minlength="{{ .MinLength }}"
data-has-uppercase="{{ .HasUppercase }}"
data-has-lowercase="{{ .HasLowercase }}"
data-has-number="{{ .HasNumber }}"
data-has-symbol="{{ .HasSymbol }}"
class="input"
type="password"
id="password"
name="password"
autocomplete="new-password"
autofocus required>
{{ .PasswordPolicyDescription }}
</div>
<div class="field">
<label class="label" for="passwordconfirm">{{t "InitPassword.NewPasswordConfirm"}}</label>
<input class="input" type="password" id="passwordconfirm" name="passwordconfirm" autocomplete="new-password" autofocus required>
<input class="input"
type="password"
id="passwordconfirm"
name="passwordconfirm"
autocomplete="new-password"
autofocus required>
</div>
</div>
{{ template "error-message" .}}
<div class="actions">
<button type="submit" name="resend" value="false" class="primary right" >{{t "Actions.Next"}}</button>
<button type="submit" id="init-button" name="resend" value="false" class="primary right" >{{t "Actions.Next"}}</button>
<button type="submit" name="resend" value="true" class="secondary right" formnovalidate>{{t "Actions.Resend" }}</button>
</div>
</form>
<script src="{{ resourceUrl "scripts/form_submit.js" }}"></script>
<script src="{{ resourceUrl "scripts/password_policy_check.js" }}"></script>
<script src="{{ resourceUrl "scripts/init_password_check.js" }}"></script>
{{template "main-bottom" .}}

View File

@@ -20,7 +20,18 @@
{{ if not .PasswordSet }}
<div class="field">
<label class="label" for="password">{{t "InitUser.NewPassword"}}</label>
<input class="input" type="password" id="password" name="password" autocomplete="new-password" autofocus required>
<input data-minlength="{{ .MinLength }}"
data-has-uppercase="{{ .HasUppercase }}"
data-has-lowercase="{{ .HasLowercase }}"
data-has-number="{{ .HasNumber }}"
data-has-symbol="{{ .HasSymbol }}"
class="input"
type="password"
id="password"
name="password"
autocomplete="new-password"
autofocus required>
{{ .PasswordPolicyDescription }}
</div>
<div class="field">
<label class="label" for="passwordconfirm">{{t "InitUser.NewPasswordConfirm"}}</label>
@@ -32,11 +43,21 @@
{{ template "error-message" .}}
<div class="actions">
<button type="submit" name="resend" value="false" class="primary right" >{{t "Actions.Next"}}</button>
<button type="submit"
id="init-button"
name="resend"
value="false"
class="primary right"
{{ if not .PasswordSet }} disabled {{ end }}>{{t "Actions.Next"}}</button>
<button type="submit" name="resend" value="true" class="secondary right" formnovalidate>{{t "Actions.Resend" }}</button>
</div>
</form>
{{ if not .PasswordSet }}
<script src="{{ resourceUrl "scripts/form_submit.js" }}"></script>
<script src="{{ resourceUrl "scripts/password_policy_check.js" }}"></script>
<script src="{{ resourceUrl "scripts/init_password_check.js" }}"></script>
{{ end }}
{{template "main-bottom" .}}

View File

@@ -20,11 +20,14 @@
{{template "error-message" .}}
<div class="actions">
<button class="primary right" type="submit">{{t "Actions.Next"}}</button>
<button class="primary right" id="submit-button" type="submit" disabled>{{t "Actions.Next"}}</button>
<button class="secondary right" name="register" value="true" formnovalidate>{{t "Actions.Register"}}</button>
</div>
</form>
<script src="{{ resourceUrl "scripts/form_submit.js" }}"></script>
<script src="{{ resourceUrl "scripts/default_form_validation.js" }}"></script>
{{template "main-bottom" .}}

View File

@@ -21,13 +21,14 @@
{{ template "error-message" .}}
<div class="actions">
<button type="submit" name="resend" value="false" class="primary right" >{{t "Actions.Next"}}</button>
<button type="submit" id="submit-button" name="resend" value="false" class="primary right" disabled>{{t "Actions.Next"}}</button>
{{ if .UserID }}
<button type="submit" name="resend" value="true" class="secondary right" formnovalidate>{{t "Actions.Resend"}}</button>
{{ end }}
</div>
</form>
<script src="{{ resourceUrl "scripts/form_submit.js" }}"></script>
<script src="{{ resourceUrl "scripts/default_form_validation.js" }}"></script>
{{template "main-bottom" .}}

View File

@@ -34,11 +34,13 @@
{{end}}
<div class="actions">
<button class="primary right" type="submit">{{t "Actions.Next"}}</button>
<button class="primary right" id="submit-button" type="submit" disabled>{{t "Actions.Next"}}</button>
</div>
</form>
<script src="{{ resourceUrl "scripts/copy_to_clipboard.js" }}"></script>
<script src="{{ resourceUrl "scripts/form_submit.js" }}"></script>
<script src="{{ resourceUrl "scripts/default_form_validation.js" }}"></script>
{{template "main-bottom" .}}

View File

@@ -21,10 +21,11 @@
{{ template "error-message" .}}
<div class="actions">
<button class="primary right" type="submit">{{t "Actions.Next"}}</button>
<button class="primary right" id="submit-button" type="submit" disabled>{{t "Actions.Next"}}</button>
</div>
</form>
<script src="{{ resourceUrl "scripts/form_submit.js" }}"></script>
<script src="{{ resourceUrl "scripts/default_form_validation.js" }}"></script>
{{template "main-bottom" .}}

View File

@@ -20,7 +20,7 @@
{{template "error-message" .}}
<div class="actions">
<button class="primary right" type="submit">{{t "Actions.Next"}}</button>
<button id="submit-button" class="primary right" type="submit" disabled>{{t "Actions.Next"}}</button>
<a href="{{ loginNameChangeUrl .AuthReqID }}">
<button class="secondary" type="button">{{t "Actions.Back"}}</button>
</a>
@@ -30,6 +30,7 @@
</div>
</form>
<script src="{{ resourceUrl "scripts/form_submit.js" }}"></script>
<script src="{{ resourceUrl "scripts/default_form_validation.js" }}"></script>
{{template "main-bottom" .}}

View File

@@ -43,21 +43,31 @@
</select>
</div>
<div class="field">
<label class="label" for="password">{{t "Registration.Password"}}</label>
<input class="input" type="password" id="password" name="password" autocomplete="new-password" required>
<label class="label" for="register-password">{{t "Registration.Password"}}</label>
<input data-minlength="{{ .MinLength }}"
data-has-uppercase="{{ .HasUppercase }}"
data-has-lowercase="{{ .HasLowercase }}"
data-has-number="{{ .HasNumber }}"
data-has-symbol="{{ .HasSymbol }}"
class="input" type="password" id="register-password" name="register-password" autocomplete="new-password" required>
{{ .PasswordPolicyDescription }}
</div>
<div class="field">
<label class="label" for="password2">{{t "Registration.Password2"}}</label>
<input class="input" type="password" id="password2" name="password2" autocomplete="new-password" required>
<label class="label" for="register-password-confirmation">{{t "Registration.Password2"}}</label>
<input class="input" type="password" id="register-password-confirmation" name="register-password-confirmation" autocomplete="new-password" required>
</div>
</div>
{{template "error-message" .}}
<div class="actions">
<button class="primary right" type="submit">{{t "Actions.Next"}}</button>
<button class="primary right" id="register-button" type="submit" disabled>{{t "Actions.Next"}}</button>
</div>
</form>
<script src="{{ resourceUrl "scripts/form_submit.js" }}"></script>
<script src="{{ resourceUrl "scripts/password_policy_check.js" }}"></script>
<script src="{{ resourceUrl "scripts/register_check.js" }}"></script>
{{template "main-bottom" .}}