1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-23 03:33:54 +00:00

user canAccessPremium checks

This commit is contained in:
Kyle Spearrin
2018-08-28 23:17:58 -04:00
parent 1873ce41b6
commit 41ff511165
9 changed files with 25 additions and 38 deletions

View File

@@ -80,7 +80,7 @@
<div class="col-6 form-group totp d-flex align-items-end" [ngClass]="{'low': totpLow}">
<div *ngIf="!cipher.login.totp || !totpCode">
<img src="../../images/totp-countdown.png" title="{{'verificationCodeTotp' | i18n}}" class="ml-2">
<a href="#" appStopClick class="badge badge-primary ml-3" (click)="premiumRequired()" *ngIf="!organization && !cipher.organizationId && !isPremium">
<a href="#" appStopClick class="badge badge-primary ml-3" (click)="premiumRequired()" *ngIf="!organization && !cipher.organizationId && !canAccessPremium">
{{'premium' | i18n}}
</a>
<a href="#" appStopClick class="badge badge-primary ml-3" (click)="upgradeOrganization()" *ngIf="(organization && !organization.useTotp) || (cipher.organizationId && !cipher.organizationUseTotp)">

View File

@@ -16,8 +16,8 @@ import { MessagingService } from 'jslib/abstractions/messaging.service';
import { PasswordGenerationService } from 'jslib/abstractions/passwordGeneration.service';
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
import { StateService } from 'jslib/abstractions/state.service';
import { TokenService } from 'jslib/abstractions/token.service';
import { TotpService } from 'jslib/abstractions/totp.service';
import { UserService } from 'jslib/abstractions/user.service';
import { AddEditComponent as BaseAddEditComponent } from 'jslib/angular/components/add-edit.component';
import { LoginUriView } from 'jslib/models/view/loginUriView';
@@ -27,7 +27,7 @@ import { LoginUriView } from 'jslib/models/view/loginUriView';
templateUrl: 'add-edit.component.html',
})
export class AddEditComponent extends BaseAddEditComponent implements OnInit {
isPremium: boolean;
canAccessPremium: boolean;
totpCode: string;
totpCodeFormatted: string;
totpDash: number;
@@ -43,7 +43,7 @@ export class AddEditComponent extends BaseAddEditComponent implements OnInit {
i18nService: I18nService, platformUtilsService: PlatformUtilsService,
analytics: Angulartics2, toasterService: ToasterService,
auditService: AuditService, stateService: StateService,
protected tokenService: TokenService, protected totpService: TotpService,
protected userService: UserService, protected totpService: TotpService,
protected passwordGenerationService: PasswordGenerationService, protected messagingService: MessagingService) {
super(cipherService, folderService, i18nService, platformUtilsService, analytics,
toasterService, auditService, stateService);
@@ -55,9 +55,9 @@ export class AddEditComponent extends BaseAddEditComponent implements OnInit {
this.hasPasswordHistory = this.cipher.hasPasswordHistory;
this.cleanUp();
this.isPremium = this.tokenService.getPremium();
this.canAccessPremium = await this.userService.canAccessPremium();
if (this.cipher.type === CipherType.Login && this.cipher.login.totp &&
(this.cipher.organizationUseTotp || this.isPremium)) {
(this.cipher.organizationUseTotp || this.canAccessPremium)) {
await this.totpUpdateCode();
const interval = this.totpService.getTimeInterval(this.cipher.login.totp);
await this.totpTick(interval);
@@ -102,8 +102,7 @@ export class AddEditComponent extends BaseAddEditComponent implements OnInit {
}
async premiumRequired() {
const premium = await this.tokenService.getPremium();
if (!premium) {
if (!this.canAccessPremium) {
this.messagingService.send('premiumRequired');
return;
}

View File

@@ -90,7 +90,7 @@ export class VaultComponent implements OnInit, OnDestroy {
this.showBrowserOutdated = window.navigator.userAgent.indexOf('MSIE') !== -1;
const hasEncKey = await this.cryptoService.hasEncKey();
this.showUpdateKey = !hasEncKey;
const isPremium = await this.tokenService.getPremium();
const canAccessPremium = await this.userService.canAccessPremium();
this.route.queryParams.subscribe(async (params) => {
await this.syncService.fullSync(false);
@@ -116,8 +116,8 @@ export class VaultComponent implements OnInit, OnDestroy {
this.organizationsComponent.load(),
]);
this.showPremiumCallout = !this.showVerifyEmail && !isPremium &&
!this.platformUtilsService.isSelfHost() && !(await this.inOrgWithPremium());
this.showPremiumCallout = !this.showVerifyEmail && !canAccessPremium &&
!this.platformUtilsService.isSelfHost();
if (params == null) {
this.groupingsComponent.selectedAll = true;
@@ -475,14 +475,4 @@ export class VaultComponent implements OnInit, OnDestroy {
const url = this.router.createUrlTree(['vault'], { queryParams: queryParams }).toString();
this.location.go(url);
}
private async inOrgWithPremium() {
const orgs = await this.userService.getAllOrganizations();
for (let i = 0; i < orgs.length; i++) {
if (orgs[i].usersGetPremium) {
return true;
}
}
return false;
}
}