Browse Source

Improve onboarding for iOS

pull/1035/head
Thomas 3 years ago
parent
commit
79c3093c72
  1. 14
      apps/client/src/app/services/data.service.ts
  2. 14
      apps/client/src/main.ts
  3. 22
      libs/common/src/lib/permissions.ts

14
apps/client/src/app/services/data.service.ts

@ -32,7 +32,7 @@ import {
PortfolioSummary,
User
} from '@ghostfolio/common/interfaces';
import { permissions } from '@ghostfolio/common/permissions';
import { filterGlobalPermissions } from '@ghostfolio/common/permissions';
import { DateRange } from '@ghostfolio/common/types';
import { DataSource, Order as OrderModel } from '@prisma/client';
import { parseISO } from 'date-fns';
@ -115,12 +115,14 @@ export class DataService {
public fetchInfo(): InfoItem {
const info = cloneDeep((window as any).info);
const utmSource = <'ios' | 'trusted-web-activity'>(
window.localStorage.getItem('utm_source')
);
if (window.localStorage.getItem('utm_source') === 'trusted-web-activity') {
info.globalPermissions = info.globalPermissions.filter(
(permission) => permission !== permissions.enableSubscription
);
}
info.globalPermissions = filterGlobalPermissions(
info.globalPermissions,
utmSource
);
return info;
}

14
apps/client/src/main.ts

@ -3,7 +3,7 @@ import { LOCALE_ID } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { locale } from '@ghostfolio/common/config';
import { InfoItem } from '@ghostfolio/common/interfaces';
import { permissions } from '@ghostfolio/common/permissions';
import { filterGlobalPermissions } from '@ghostfolio/common/permissions';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
@ -11,12 +11,14 @@ import { environment } from './environments/environment';
(async () => {
const response = await fetch('/api/v1/info');
const info: InfoItem = await response.json();
const utmSource = <'ios' | 'trusted-web-activity'>(
window.localStorage.getItem('utm_source')
);
if (window.localStorage.getItem('utm_source') === 'trusted-web-activity') {
info.globalPermissions = info.globalPermissions.filter(
(permission) => permission !== permissions.enableSubscription
);
}
info.globalPermissions = filterGlobalPermissions(
info.globalPermissions,
utmSource
);
(window as any).info = info;

22
libs/common/src/lib/permissions.ts

@ -73,6 +73,28 @@ export function getPermissions(aRole: Role): string[] {
}
}
export function filterGlobalPermissions(
aGlobalPermissions: string[],
aUtmSource: 'ios' | 'trusted-web-activity'
) {
const globalPermissions = aGlobalPermissions;
if (aUtmSource === 'ios') {
return globalPermissions.filter((permission) => {
return (
permission !== permissions.enableSocialLogin &&
permission !== permissions.enableSubscription
);
});
} else if (aUtmSource === 'trusted-web-activity') {
return globalPermissions.filter((permission) => {
return permission !== permissions.enableSubscription;
});
}
return globalPermissions;
}
export function hasPermission(
aPermissions: string[] = [],
aPermission: string

Loading…
Cancel
Save