1
0
mirror of https://github.com/bitwarden/web synced 2025-12-15 07:43:16 +00:00

Compare commits

..

3 Commits

Author SHA1 Message Date
github-actions[bot]
78a7181fe5 Bumped version to 2.28.1 (#1629)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
(cherry picked from commit f586359610)
2022-04-28 12:03:21 -07:00
Matt Gibson
2914fc2dd5 [PS-301] Load OssModule from BitwardenLicense (#1626)
(cherry picked from commit 96641cf195)
2022-04-28 08:41:48 -04:00
github-actions[bot]
3a248bc838 Bumped version to 2.28.0 (#1603)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
(cherry picked from commit 8304104a7a)
2022-04-19 14:25:06 -07:00
10 changed files with 10 additions and 123 deletions

View File

@@ -8,6 +8,7 @@ import { InfiniteScrollModule } from "ngx-infinite-scroll";
import { JslibModule } from "jslib-angular/jslib.module";
import { OssRoutingModule } from "src/app/oss-routing.module";
import { OssModule } from "src/app/oss.module";
import { ServicesModule } from "src/app/services/services.module";
import { WildcardRoutingModule } from "src/app/wildcard-routing.module";
@@ -19,6 +20,7 @@ import { MaximumVaultTimeoutPolicyComponent } from "./policies/maximum-vault-tim
@NgModule({
imports: [
OssModule,
JslibModule,
BrowserAnimationsModule,
FormsModule,

2
jslib

Submodule jslib updated: dc7efa4970...e595c0548e

7
package-lock.json generated
View File

@@ -1,12 +1,12 @@
{
"name": "@bitwarden/web-vault",
"version": "2.27.0",
"version": "2.28.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@bitwarden/web-vault",
"version": "2.27.0",
"version": "2.28.1",
"hasInstallScript": true,
"license": "GPL-3.0",
"dependencies": {
@@ -87,7 +87,7 @@
}
},
"jslib/angular": {
"name": "@bitwarden/jslib-angular",
"name": "@bitwarden/jslib-common",
"version": "0.0.0",
"license": "GPL-3.0",
"dependencies": {
@@ -113,7 +113,6 @@
}
},
"jslib/common": {
"name": "@bitwarden/jslib-common",
"version": "0.0.0",
"license": "GPL-3.0",
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "@bitwarden/web-vault",
"version": "2.27.0",
"version": "2.28.1",
"license": "GPL-3.0",
"repository": "https://github.com/bitwarden/web",
"scripts": {

View File

@@ -171,7 +171,6 @@ import { EmergencyAccessViewComponent } from "./settings/emergency-access-view.c
import { EmergencyAccessComponent } from "./settings/emergency-access.component";
import { EmergencyAddEditComponent } from "./settings/emergency-add-edit.component";
import { LinkSsoComponent } from "./settings/link-sso.component";
import { MasterPasswordEnrollmentComponent } from "./settings/master-password-enrollment.component";
import { OptionsComponent } from "./settings/options.component";
import { OrganizationPlansComponent } from "./settings/organization-plans.component";
import { OrganizationsComponent } from "./settings/organizations.component";
@@ -336,7 +335,6 @@ registerLocaleData(localeZhTw, "zh-TW");
LockComponent,
LoginComponent,
MasterPasswordPolicyComponent,
MasterPasswordEnrollmentComponent,
NavbarComponent,
NestedCheckboxComponent,
OptionsComponent,

View File

@@ -1,39 +0,0 @@
<div class="modal fade" role="dialog" aria-modal="true" aria-labelledby="passwordEnrollment">
<div class="modal-dialog modal-dialog-scrollable" role="document">
<form
class="modal-content"
#form
(ngSubmit)="submit()"
[appApiAction]="formPromise"
ngNativeValidate
>
<div class="modal-header">
<h2 class="modal-title" id="passwordEnrollmentTitle">
{{ passwordEnrollmentTitle | i18n }}
</h2>
<button
type="button"
class="close"
data-dismiss="modal"
appA11yTitle="{{ 'close' | i18n }}"
>
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<p>{{ passwordEnrollmentDescription | i18n }}</p>
<app-verify-master-password [(ngModel)]="masterPassword" ngDefaultControl name="secret">
</app-verify-master-password>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary btn-submit">
<i class="fa fa-paper-plane" title="{{ 'loading' | i18n }}" aria-hidden="true"></i>
<span>{{ "submit" | i18n }}</span>
</button>
<button type="button" class="btn btn-outline-secondary" data-dismiss="modal">
{{ "close" | i18n }}
</button>
</div>
</form>
</div>
</div>

View File

@@ -1,37 +0,0 @@
import { Component, EventEmitter, Output } from "@angular/core";
import { LogService } from "jslib-common/abstractions/log.service";
import { UserVerificationService } from "jslib-common/abstractions/userVerification.service";
import { SecretVerificationRequest } from "jslib-common/models/request/secretVerificationRequest";
import { Verification } from "jslib-common/types/verification";
@Component({
selector: "master-password-enrollment",
templateUrl: "master-password-enrollment.component.html",
})
export class MasterPasswordEnrollmentComponent {
masterPassword: Verification;
formPromise: Promise<void | SecretVerificationRequest>;
passwordEnrollmentTitle: string;
passwordEnrollmentDescription: string;
@Output()
requestBuilt = new EventEmitter<SecretVerificationRequest>();
constructor(
private userVerificationService: UserVerificationService,
private logService: LogService
) {}
async submit() {
try {
this.formPromise = this.userVerificationService
.buildRequest(this.masterPassword)
.then((request) => this.requestBuilt.emit(request));
return await this.formPromise;
} catch (e) {
this.logService.error(e);
}
}
}

View File

@@ -153,4 +153,3 @@
</table>
</ng-container>
</ng-container>
<ng-template #confirmMasterPassword></ng-template>

View File

@@ -1,6 +1,5 @@
import { Component, Input, OnInit, ViewChild, ViewContainerRef } from "@angular/core";
import { Component, Input, OnInit } from "@angular/core";
import { ModalService } from "jslib-angular/services/modal.service";
import { ApiService } from "jslib-common/abstractions/api.service";
import { CryptoService } from "jslib-common/abstractions/crypto.service";
import { I18nService } from "jslib-common/abstractions/i18n.service";
@@ -15,16 +14,12 @@ import { Organization } from "jslib-common/models/domain/organization";
import { Policy } from "jslib-common/models/domain/policy";
import { OrganizationUserResetPasswordEnrollmentRequest } from "jslib-common/models/request/organizationUserResetPasswordEnrollmentRequest";
import { MasterPasswordEnrollmentComponent } from "./master-password-enrollment.component";
@Component({
selector: "app-organizations",
templateUrl: "organizations.component.html",
})
export class OrganizationsComponent implements OnInit {
@Input() vault = false;
@ViewChild("confirmMasterPassword", { read: ViewContainerRef, static: true })
confirmMasterPasswordModalRef: ViewContainerRef;
organizations: Organization[];
policies: Policy[];
@@ -39,8 +34,7 @@ export class OrganizationsComponent implements OnInit {
private syncService: SyncService,
private cryptoService: CryptoService,
private policyService: PolicyService,
private logService: LogService,
private modalService: ModalService
private logService: LogService
) {}
async ngOnInit() {
@@ -163,14 +157,11 @@ export class OrganizationsComponent implements OnInit {
// Create request and execute enrollment
const request = new OrganizationUserResetPasswordEnrollmentRequest();
request.resetPasswordKey = keyString;
request.masterPasswordHash = await this.getMasterPassword();
const res = this.apiService.putOrganizationUserResetPasswordEnrollment(
return this.apiService.putOrganizationUserResetPasswordEnrollment(
org.id,
org.userId,
request
);
return res;
})
.then(() => {
return this.syncService.fullSync(true);
@@ -179,7 +170,6 @@ export class OrganizationsComponent implements OnInit {
// Withdrawal
const request = new OrganizationUserResetPasswordEnrollmentRequest();
request.resetPasswordKey = keyString;
request.masterPasswordHash = await this.getMasterPassword();
this.actionPromise = this.apiService
.putOrganizationUserResetPasswordEnrollment(org.id, org.userId, request)
.then(() => {
@@ -195,23 +185,4 @@ export class OrganizationsComponent implements OnInit {
this.logService.error(e);
}
}
private async getMasterPassword(): Promise<string> {
return new Promise((resolve, reject) => {
(async () => {
const [modal] = await this.modalService.openViewRef(
MasterPasswordEnrollmentComponent,
this.confirmMasterPasswordModalRef,
(comp) => {
comp.passwordEnrollmentTitle = "passwordResetEnrollment";
comp.passwordEnrollmentDescription = "passwordResetEnrollmentDescription";
comp.requestBuilt.subscribe((val) => {
modal.close();
resolve(val.masterPasswordHash);
});
}
);
})();
});
}
}

View File

@@ -4876,11 +4876,5 @@
},
"service": {
"message": "Service"
},
"passwordResetEnrollment" : {
"message": "Password Reset Enrollment"
},
"passwordResetEnrollmentDescription": {
"message": "Enter your master password so we can enroll you in password reset"
}
}