* fix reset tor, delete http redirect, show message for tor http, update release notes

* potentially fix doubel req to registries

* change language arund LAN and root ca

* link locally instead of docs
This commit is contained in:
Matt Hill
2023-07-18 12:38:52 -06:00
committed by GitHub
parent 3cd9e17e3f
commit 11c21b5259
13 changed files with 41 additions and 49 deletions

View File

@@ -155,7 +155,6 @@ export class EmbassyPage {
await this.navCtrl.navigateForward(`/loading`) await this.navCtrl.navigateForward(`/loading`)
} catch (e: any) { } catch (e: any) {
this.errorToastService.present(e) this.errorToastService.present(e)
console.error(e)
} finally { } finally {
loader.dismiss() loader.dismiss()
} }

View File

@@ -39,14 +39,6 @@ export class AppComponent implements OnDestroy {
) {} ) {}
async ngOnInit() { async ngOnInit() {
if (location.hostname !== 'localhost' && location.protocol === 'http:') {
// see if site is available securely
const res = await fetch(window.location.href.replace(/^http:/, 'https:'))
if (res && res.status === 200) {
// redirect
window.location.protocol = 'https:'
}
}
this.patch this.patch
.watch$('ui', 'name') .watch$('ui', 'name')
.subscribe(name => this.titleService.setTitle(name || 'StartOS')) .subscribe(name => this.titleService.setTitle(name || 'StartOS'))

View File

@@ -40,13 +40,13 @@ const ICONS = [
'file-tray-stacked-outline', 'file-tray-stacked-outline',
'finger-print-outline', 'finger-print-outline',
'flash-outline', 'flash-outline',
'flask-outline',
'flash-off-outline', 'flash-off-outline',
'folder-open-outline', 'folder-open-outline',
'globe-outline', 'globe-outline',
'grid-outline', 'grid-outline',
'help-circle-outline', 'help-circle-outline',
'hammer-outline', 'hammer-outline',
'home-outline',
'information-circle-outline', 'information-circle-outline',
'key-outline', 'key-outline',
'list-outline', 'list-outline',
@@ -74,6 +74,7 @@ const ICONS = [
'remove-circle-outline', 'remove-circle-outline',
'remove-outline', 'remove-outline',
'repeat-outline', 'repeat-outline',
'ribbon-outline',
'rocket-outline', 'rocket-outline',
'save-outline', 'save-outline',
'settings-outline', 'settings-outline',

View File

@@ -46,11 +46,11 @@ export class WidgetListComponent {
qp: { back: 'true' }, qp: { back: 'true' },
}, },
{ {
title: 'Secure LAN', title: 'Root CA',
icon: 'home-outline', icon: 'ribbon-outline',
color: 'var(--alt-orange)', color: 'var(--alt-orange)',
description: `Download and trust your server's certificate`, description: `Download and trust your server's root certificate authority`,
link: '/system/lan', link: '/system/root-ca',
}, },
{ {
title: 'Create Backup', title: 'Create Backup',

View File

@@ -26,12 +26,12 @@
</p> </p>
<h6>Highlights</h6> <h6>Highlights</h6>
<ul class="spaced-list"> <ul class="spaced-list">
<li>Enhanced performance for page load times</li> <li>Https over Tor for faster UI loading times</li>
<li>Improved progress reporting for data transfer to new data drives</li> <li>Change password through UI</li>
<li>Enabled use of IP address for local network backups</li> <li>Use IP address for Network Folder backups</li>
<li>Added change password flow to the UI</li> <li>
<li>Disabled LUKS for new Raspberry Pi setups</li> Multiple bug fixes, performance enhancements, and other small features
<li>Fixed miscellaneous bugs</li> </li>
</ul> </ul>
<h2>Previous Releases</h2> <h2>Previous Releases</h2>

View File

@@ -52,21 +52,17 @@
<ion-row class="ion-align-items-center"> <ion-row class="ion-align-items-center">
<ion-col class="ion-text-center"> <ion-col class="ion-text-center">
<h2> <h2>
<ion-text color="warning"> <ion-text color="warning">Http detected</ion-text>
You are using an unencrypted http connection
</ion-text>
</h2> </h2>
<p class="ion-padding-bottom"> <p class="ion-padding-bottom">
Click the button below to switch to https. Your browser may warn Your connection is insecure.
you that the page is insecure. You can safely bypass this
warning. It will go away after you
<a <a
[routerLink]="['/system', 'lan']" [routerLink]="['/system', 'root-ca']"
style="color: var(--ion-color-dark)" style="color: var(--ion-color-dark)"
> >
download and trust your server's certificate Download and trust your server's Root CA
</a> </a>
. , then switch to https.
</p> </p>
<ion-button (click)="launchHttps()"> <ion-button (click)="launchHttps()">
Open https Open https

View File

@@ -43,9 +43,6 @@ export class ExperimentalFeaturesPage {
label: 'Wipe state', label: 'Wipe state',
type: 'checkbox', type: 'checkbox',
value: 'wipe', value: 'wipe',
handler: val => {
console.error(val)
},
}, },
], ],
buttons: [ buttons: [
@@ -56,8 +53,7 @@ export class ExperimentalFeaturesPage {
{ {
text: 'Reset', text: 'Reset',
handler: (value: string[]) => { handler: (value: string[]) => {
console.error(value) this.resetTor(value.some(v => v === 'wipe'))
this.resetTor(value.some(v => 'wipe'))
}, },
cssClass: 'enter-click', cssClass: 'enter-click',
}, },

View File

@@ -1,6 +1,6 @@
<ion-header> <ion-header>
<ion-toolbar> <ion-toolbar>
<ion-title>Secure LAN</ion-title> <ion-title>Trust Root CA</ion-title>
<ion-buttons slot="start"> <ion-buttons slot="start">
<ion-back-button defaultHref="system"></ion-back-button> <ion-back-button defaultHref="system"></ion-back-button>
</ion-buttons> </ion-buttons>
@@ -13,7 +13,7 @@
<ion-item class="ion-padding-bottom"> <ion-item class="ion-padding-bottom">
<ion-label> <ion-label>
<h2> <h2>
For a secure local connection, For a secure local connection and faster Tor experience,
<a <a
href="https://docs.start9.com/latest/user-manual/connecting/connecting-lan" href="https://docs.start9.com/latest/user-manual/connecting/connecting-lan"
target="_blank" target="_blank"
@@ -29,7 +29,7 @@
<ion-item button (click)="installCert()" [disabled]="!(crtName$ | async)"> <ion-item button (click)="installCert()" [disabled]="!(crtName$ | async)">
<ion-icon slot="start" name="download-outline" size="large"></ion-icon> <ion-icon slot="start" name="download-outline" size="large"></ion-icon>
<ion-label> <ion-label>
<h1>Download Certificate</h1> <h1>Download Root CA</h1>
</ion-label> </ion-label>
</ion-item> </ion-item>
</ion-item-group> </ion-item-group>

View File

@@ -17,7 +17,7 @@ const routes: Routes = [
), ),
}, },
{ {
path: 'lan', path: 'root-ca',
loadChildren: () => import('./lan/lan.module').then(m => m.LANPageModule), loadChildren: () => import('./lan/lan.module').then(m => m.LANPageModule),
}, },
{ {

View File

@@ -15,15 +15,20 @@
<!-- loaded --> <!-- loaded -->
<ion-item-group *ngIf="server$ | async as server; else loading"> <ion-item-group *ngIf="server$ | async as server; else loading">
<ion-item *ngIf="!secure" color="warning"> <ion-item *ngIf="!secure || isTorHttp" color="warning">
<ion-icon slot="start" name="warning-outline"></ion-icon> <ion-icon slot="start" name="warning-outline"></ion-icon>
<ion-label> <ion-label>
<h2 style="font-weight: bold">You are using unencrypted http</h2> <h2 style="font-weight: bold">Http detected</h2>
<p style="font-weight: 600"> <p style="font-weight: 600">
Click the button on the right to switch to https. Your browser may {{ isTorHttp ? 'Tor is faster over https.' : 'Your connection is
warn you that the page is insecure. You can safely bypass this insecure.' }}
warning. It will go away after you download and trust your server's <a
certificate [routerLink]="['/system', 'root-ca']"
style="color: var(--ion-color-light)"
>
Download and trust your server's Root CA
</a>
, then switch to https.
</p> </p>
</ion-label> </ion-label>
<ion-button slot="end" color="light" (click)="launchHttps()"> <ion-button slot="end" color="light" (click)="launchHttps()">

View File

@@ -42,6 +42,8 @@ export class ServerShowPage {
readonly showDiskRepair$ = this.ClientStorageService.showDiskRepair$ readonly showDiskRepair$ = this.ClientStorageService.showDiskRepair$
readonly secure = this.config.isSecure() readonly secure = this.config.isSecure()
readonly isTorHttp =
this.config.isTor() && this.document.location.protocol === 'http:'
constructor( constructor(
private readonly alertCtrl: AlertController, private readonly alertCtrl: AlertController,
@@ -499,11 +501,11 @@ export class ServerShowPage {
disabled$: of(false), disabled$: of(false),
}, },
{ {
title: 'LAN', title: 'Root CA',
description: `Download and trust your server's certificate for a secure local connection`, description: `Download and trust your server's root certificate authority`,
icon: 'home-outline', icon: 'ribbon-outline',
action: () => action: () =>
this.navCtrl.navigateForward(['lan'], { relativeTo: this.route }), this.navCtrl.navigateForward(['root-ca'], { relativeTo: this.route }),
detail: true, detail: true,
disabled$: of(false), disabled$: of(false),
}, },

View File

@@ -280,6 +280,7 @@ export class MarketplaceService implements AbstractMarketplaceService {
> = {}, > = {},
): Observable<MarketplacePkg[]> { ): Observable<MarketplacePkg[]> {
return this.patch.watch$('server-info', 'eos-version-compat').pipe( return this.patch.watch$('server-info', 'eos-version-compat').pipe(
take(1),
switchMap(versionCompat => { switchMap(versionCompat => {
const qp: RR.GetMarketplacePackagesReq = { const qp: RR.GetMarketplacePackagesReq = {
...params, ...params,

View File

@@ -4,7 +4,7 @@
export const environment = { export const environment = {
production: false, production: false,
useServiceWorker: true, useServiceWorker: false,
} }
/* /*