Browse Source

Warn user before overwriting keys

Carsten Porth 5 years ago
parent
commit
350f7c8dc4
2 changed files with 32 additions and 4 deletions
  1. 1 1
      app/src/pages/settings/settings.html
  2. 31 3
      app/src/pages/settings/settings.ts

+ 1 - 1
app/src/pages/settings/settings.html

@@ -34,5 +34,5 @@
     </ion-card-content>
   </ion-card>
 
-  <button ion-button block (click)="save()">Save</button>
+  <button ion-button block (click)="save()">Save settings</button>
 </ion-content>

+ 31 - 3
app/src/pages/settings/settings.ts

@@ -2,7 +2,8 @@ import { Component } from "@angular/core";
 import {
   NavController,
   ToastController,
-  LoadingController
+  LoadingController,
+  AlertController
 } from "ionic-angular";
 import { Storage } from "@ionic/storage";
 import { CryptoProvider } from "../../providers/crypto/crypto";
@@ -23,7 +24,8 @@ export class SettingsPage {
     private cryptoUtils: CryptoProvider,
     private storage: Storage,
     private loadingCtrl: LoadingController,
-    private sharing: SocialSharing
+    private sharing: SocialSharing,
+    private alertCtrl: AlertController
   ) {
     this.loadValuesFromStorage();
   }
@@ -34,7 +36,33 @@ export class SettingsPage {
     this.keywords = await this.storage.get("keywords");
   }
 
-  async generateKeys() {
+  generateKeys() {
+    if (this.publicKey.length || this.privateKey.length) {
+      const alert = this.alertCtrl.create({
+        title: "Are you sure?",
+        subTitle:
+          "You already have keys entered. Do you want to overwrite them?",
+        buttons: [
+          {
+            text: "No",
+            role: "cancel"
+          },
+          {
+            text: "Yes",
+            handler: () => {
+              this.startKeyGeneration();
+            }
+          }
+        ]
+      });
+
+      alert.present();
+    } else {
+      this.startKeyGeneration();
+    }
+  }
+
+  private async startKeyGeneration() {
     const keys = await this.cryptoUtils.generateRsaKeys();
 
     this.publicKey = await this.cryptoUtils.extractPublicKey(keys);