Merge pull request #458 from Hinton/feature/hide-passwords
Add support for hidden password
This commit is contained in:
commit
5ea459a347
2
jslib
2
jslib
|
@ -1 +1 @@
|
|||
Subproject commit 212a2e3745e6e0e2b3057ed308c47daf6aeefbc8
|
||||
Subproject commit 2b6657a293e7be107271ad080c64ccd3f005afb7
|
|
@ -28,9 +28,9 @@
|
|||
<label for="loginPassword">{{'password' | i18n}}</label>
|
||||
<input id="loginPassword" class="monospaced"
|
||||
type="{{showPassword ? 'text' : 'password'}}" name="Login.Password"
|
||||
[(ngModel)]="cipher.login.password">
|
||||
[(ngModel)]="cipher.login.password" [disabled]="!cipher.viewPassword">
|
||||
</div>
|
||||
<div class="action-buttons">
|
||||
<div class="action-buttons" *ngIf=cipher.viewPassword>
|
||||
<button type="button" #checkPasswordBtn class="row-btn btn" appBlurClick
|
||||
appA11yTitle="{{'checkPassword' | i18n}}" (click)="checkPassword()"
|
||||
[appApiAction]="checkPasswordPromise" [disabled]="checkPasswordBtn.loading">
|
||||
|
@ -52,8 +52,8 @@
|
|||
</div>
|
||||
<div class="box-content-row" appBoxRow>
|
||||
<label for="loginTotp">{{'authenticatorKeyTotp' | i18n}}</label>
|
||||
<input id="loginTotp" type="text" name="Login.Totp" class="monospaced"
|
||||
[(ngModel)]="cipher.login.totp">
|
||||
<input id="loginTotp" type="{{cipher.viewPassword ? 'text' : 'password'}}" name="Login.Totp"
|
||||
class="monospaced" [(ngModel)]="cipher.login.totp" [disabled]="!cipher.viewPassword">
|
||||
</div>
|
||||
</div>
|
||||
<!-- Card -->
|
||||
|
@ -281,12 +281,14 @@
|
|||
*ngIf="f.type === fieldType.Text" placeholder="{{'value' | i18n}}">
|
||||
<input id="fieldValue{{i}}" type="{{f.showValue ? 'text' : 'password'}}"
|
||||
name="Field.Value{{i}}" [(ngModel)]="f.value" class="monospaced"
|
||||
*ngIf="f.type === fieldType.Hidden" placeholder="{{'value' | i18n}}">
|
||||
*ngIf="f.type === fieldType.Hidden" placeholder="{{'value' | i18n}}"
|
||||
[disabled]="!cipher.viewPassword && !f.newField">
|
||||
</div>
|
||||
<input id="fieldValue{{i}}" name="Field.Value{{i}}" type="checkbox" [(ngModel)]="f.value"
|
||||
*ngIf="f.type === fieldType.Boolean" appTrueFalseValue trueValue="true"
|
||||
falseValue="false">
|
||||
<div class="action-buttons" *ngIf="f.type === fieldType.Hidden">
|
||||
<div class="action-buttons"
|
||||
*ngIf="f.type === fieldType.Hidden && (cipher.viewPassword || f.newField)">
|
||||
<a class="row-btn" href="#" appStopClick appBlurClick role="button"
|
||||
appA11yTitle="{{'toggleVisibility' | i18n}}" (click)="toggleFieldValue(f)">
|
||||
<i class="fa fa-lg" aria-hidden="true"
|
||||
|
|
|
@ -166,7 +166,7 @@ export class VaultComponent implements OnInit, OnDestroy {
|
|||
const pComponent = this.addEditComponent == null ? this.viewComponent : this.addEditComponent;
|
||||
const pCipher = pComponent != null ? pComponent.cipher : null;
|
||||
if (this.cipherId != null && pCipher != null && pCipher.id === this.cipherId &&
|
||||
pCipher.login != null && pCipher.login.password != null) {
|
||||
pCipher.login != null && pCipher.login.password != null && pCipher.viewPassword) {
|
||||
this.copyValue(pCipher.login.password, 'password');
|
||||
}
|
||||
break;
|
||||
|
@ -299,7 +299,7 @@ export class VaultComponent implements OnInit, OnDestroy {
|
|||
click: () => this.copyValue(cipher.login.username, 'username'),
|
||||
}));
|
||||
}
|
||||
if (cipher.login.password != null) {
|
||||
if (cipher.login.password != null && cipher.viewPassword) {
|
||||
menu.append(new remote.MenuItem({
|
||||
label: this.i18nService.t('copyPassword'),
|
||||
click: () => {
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
<div [hidden]="!showPassword" class="monospaced password-wrapper" appSelectCopy
|
||||
[innerHTML]="cipher.login.password | colorPassword"></div>
|
||||
</div>
|
||||
<div class="action-buttons">
|
||||
<div class="action-buttons" *ngIf=cipher.viewPassword>
|
||||
<button type="button" #checkPasswordBtn class="row-btn btn" appBlurClick
|
||||
appA11yTitle="{{'checkPassword' | i18n}}" (click)="checkPassword()"
|
||||
[appApiAction]="checkPasswordPromise" [disabled]="checkPasswordBtn.loading">
|
||||
|
@ -221,12 +221,13 @@
|
|||
</div>
|
||||
<div class="action-buttons">
|
||||
<a class="row-btn" href="#" appStopClick appA11yTitle="{{'toggleVisibility' | i18n}}"
|
||||
*ngIf="field.type === fieldType.Hidden" (click)="toggleFieldValue(field)" role="button">
|
||||
*ngIf="field.type === fieldType.Hidden && cipher.viewPassword"
|
||||
(click)="toggleFieldValue(field)" role="button">
|
||||
<i class="fa fa-lg" aria-hidden="true"
|
||||
[ngClass]="{'fa-eye': !field.showValue, 'fa-eye-slash': field.showValue}"></i>
|
||||
</a>
|
||||
<a class="row-btn" href="#" appStopClick appA11yTitle="{{'copyValue' | i18n}}"
|
||||
*ngIf="field.value && field.type !== fieldType.Boolean"
|
||||
*ngIf="field.value && field.type !== fieldType.Boolean && !(field.type === fieldType.Hidden && !cipher.viewPassword)"
|
||||
(click)="copy(field.value, 'value', field.type === fieldType.Hidden ? 'H_Field' : 'Field')"
|
||||
role="button">
|
||||
<i class="fa fa-lg fa-clipboard" aria-hidden="true"></i>
|
||||
|
|
Loading…
Reference in New Issue