From 869e7901bac43cb596ec5b16f659d7b69b6b92b7 Mon Sep 17 00:00:00 2001
From: Larbi Gharib <larbi.gharib@savoirfairelinux.com>
Date: Thu, 17 Sep 2020 16:52:12 -0400
Subject: [PATCH] Public in calls option

Change-Id: Ic54daeeb89df2cb2c315520801656e5637a29be6
---
 .../responses/DeviceRegistrationResponse.java |  8 ++-----
 .../jams/common/objects/user/PolicyData.java  |  4 +---
 .../Blueprint/EditBlueprintConfiguration.js   |  8 +++----
 .../Blueprint/EditBlueprintPermissions.js     | 24 +++++++------------
 .../api/auth/device/DeviceServlet.java        | 14 +++--------
 5 files changed, 18 insertions(+), 40 deletions(-)

diff --git a/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java b/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java
index 5a87dfbe..3f525d41 100644
--- a/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java
+++ b/jams-common/src/main/java/net/jami/jams/common/objects/responses/DeviceRegistrationResponse.java
@@ -41,8 +41,7 @@ public class DeviceRegistrationResponse {
     private String receiptSignature;
     private String userPhoto;
     //Backward compatibility fix so all the fields are included here.
-    private Boolean allowCertFromHistory;
-    private Boolean allowCertFromTrusted;
+    private Boolean publicInCalls;
     private Boolean proxyEnabled;
     private String  dhtProxyListUrl;
     private String  proxyServer;
@@ -53,7 +52,6 @@ public class DeviceRegistrationResponse {
     private String  turnServerPassword;
     private Boolean videoEnabled;
     private Boolean turnEnabled;
-    private Boolean allowCertFromContact;
     private Boolean accountDiscovery;
     private Boolean peerDiscovery;
     private Boolean upnpEnabled;
@@ -71,8 +69,7 @@ public class DeviceRegistrationResponse {
 
     public void setPolicyData(String policyData){
         PolicyData policy = JsonIterator.deserialize(policyData,PolicyData.class);
-        this.allowCertFromHistory = policy.getAllowCertFromHistory();
-        this.allowCertFromTrusted = policy.getAllowCertFromTrusted();
+        this.publicInCalls = policy.getPublicInCalls();
         this.proxyEnabled = policy.getProxyEnabled();
         this.dhtProxyListUrl = policy.getDhtProxyListUrl();
         this.proxyServer = policy.getProxyServer();
@@ -83,7 +80,6 @@ public class DeviceRegistrationResponse {
         this.turnServerPassword = policy.getTurnServerPassword();
         this.videoEnabled = policy.getVideoEnabled();
         this.turnEnabled = policy.getTurnEnabled();
-        this.allowCertFromContact = policy.getAllowCertFromContact();
         this.accountDiscovery = policy.getAccountDiscovery();
         this.peerDiscovery = policy.getPeerDiscovery();
         this.upnpEnabled = policy.getUpnpEnabled();
diff --git a/jams-common/src/main/java/net/jami/jams/common/objects/user/PolicyData.java b/jams-common/src/main/java/net/jami/jams/common/objects/user/PolicyData.java
index 3256faeb..523e2605 100644
--- a/jams-common/src/main/java/net/jami/jams/common/objects/user/PolicyData.java
+++ b/jams-common/src/main/java/net/jami/jams/common/objects/user/PolicyData.java
@@ -7,8 +7,7 @@ import lombok.Setter;
 @Setter
 public class PolicyData {
 
-    private Boolean allowCertFromHistory;
-    private Boolean allowCertFromTrusted;
+    private Boolean publicInCalls;
     private Boolean proxyEnabled;
     private String  dhtProxyListUrl;
     private String proxyServer;
@@ -19,7 +18,6 @@ public class PolicyData {
     private String turnServerPassword;
     private Boolean videoEnabled;
     private Boolean turnEnabled;
-    private Boolean allowCertFromContact;
     private Boolean accountDiscovery;
     private Boolean peerDiscovery;
     private Boolean upnpEnabled;
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js b/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
index 6a329f7d..4042b2be 100644
--- a/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
+++ b/jams-react-client/src/views/Blueprint/EditBlueprintConfiguration.js
@@ -171,7 +171,7 @@ export default function EditBlueprintConfiguration(props) {
   const history = useHistory();
 
   const [videoEnabled, setVideoEnabled] = React.useState(true);
-  const [allowCertFromContact, setAllowCertFromContact] = React.useState(true);
+  const [publicInCalls, setPublicInCalls] = React.useState(true);
   const [autoAnswer, setAutoAnswer] = React.useState(false);
   const [peerDiscovery, setPeerDiscovery] = React.useState(true);
   const [rendezVous, setRendezVous] = React.useState(false);
@@ -209,7 +209,7 @@ export default function EditBlueprintConfiguration(props) {
       .then((response) => {
         let policyData = JSON.parse(response.data.policyData);
         setVideoEnabled(policyData["videoEnabled"]);
-        setAllowCertFromContact(policyData["allowCertFromContact"]);
+        setPublicInCalls(policyData["publicInCalls"]);
         setAutoAnswer(policyData["autoAnswer"]);
         setPeerDiscovery(policyData["peerDiscovery"]);
         setRendezVous(policyData["rendezVous"]);
@@ -252,9 +252,7 @@ export default function EditBlueprintConfiguration(props) {
   const handleUpdateConfiguration = (field, value, selectedOptions = []) => {
     let data = {
       videoEnabled: videoEnabled,
-      allowCertFromContact: allowCertFromContact,
-      allowCertFromHistory: allowCertFromContact,
-      allowCertFromTrusted: allowCertFromContact,
+      publicInCalls: publicInCalls,
       autoAnswer: autoAnswer,
       peerDiscovery: peerDiscovery,
       accountDiscovery: peerDiscovery,
diff --git a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
index aee1dc89..6785bc6a 100644
--- a/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
+++ b/jams-react-client/src/views/Blueprint/EditBlueprintPermissions.js
@@ -94,7 +94,7 @@ export default function EditBlueprintPermissions(props) {
   const history = useHistory();
 
   const [videoEnabled, setVideoEnabled] = React.useState(true);
-  const [allowCertFromContact, setAllowCertFromContact] = React.useState(true);
+  const [publicInCalls, setPublicInCalls] = React.useState(true);
   const [autoAnswer, setAutoAnswer] = React.useState(false);
   const [peerDiscovery, setPeerDiscovery] = React.useState(true);
   const [rendezVous, setRendezVous] = React.useState(false);
@@ -124,7 +124,7 @@ export default function EditBlueprintPermissions(props) {
       .then((response) => {
         let policyData = JSON.parse(response.data.policyData);
         setVideoEnabled(policyData["videoEnabled"]);
-        setAllowCertFromContact(policyData["allowCertFromContact"]);
+        setPublicInCalls(policyData["publicInCalls"]);
         setAutoAnswer(policyData["autoAnswer"]);
         setPeerDiscovery(policyData["peerDiscovery"]);
         setRendezVous(policyData["rendezVous"]);
@@ -151,9 +151,7 @@ export default function EditBlueprintPermissions(props) {
   const handleUpdatePermissions = (field, value) => {
     let data = {
       videoEnabled: videoEnabled,
-      allowCertFromContact: allowCertFromContact,
-      allowCertFromHistory: allowCertFromContact,
-      allowCertFromTrusted: allowCertFromContact,
+      publicInCalls: publicInCalls,
       autoAnswer: autoAnswer,
       peerDiscovery: peerDiscovery,
       accountDiscovery: peerDiscovery,
@@ -169,11 +167,7 @@ export default function EditBlueprintPermissions(props) {
       dhtProxyListUrl: dhtProxyListUrl,
     };
 
-    if (field === "allowCertFromContact") {
-      data.allowCertFromContact = value;
-      data.allowCertFromHistory = value;
-      data.allowCertFromTrusted = value;
-    } else if (field === "peerDiscovery") {
+    if (field === "peerDiscovery") {
       data.peerDiscovery = value;
       data.accountDiscovery = value;
       data.accountPublish = value;
@@ -270,19 +264,19 @@ export default function EditBlueprintPermissions(props) {
                       <FormControlLabel
                         control={
                           <Checkbox
-                            checked={allowCertFromContact}
+                            checked={publicInCalls}
                             color="primary"
                             onChange={(e) => {
-                              setAllowCertFromContact(e.target.checked);
+                              setPublicInCalls(e.target.checked);
                               handleUpdatePermissions(
-                                "allowCertFromContact",
+                                "publicInCalls",
                                 e.target.checked
                               );
                             }}
-                            name="allowCertFromContact"
+                            name="publicInCalls"
                           />
                         }
-                        label="Allow incomming calls from unknown contacts"
+                        label="Allow incoming calls from unknown contacts"
                       />
                     </FormGroup>
                     <FormGroup row>
diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java
index f05bd2f5..7c4b6c0f 100644
--- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java
+++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/device/DeviceServlet.java
@@ -130,17 +130,9 @@ public class DeviceServlet extends HttpServlet {
                 obj.remove("videoEnabled");
             }
 
-            if (obj.get("allowCertFromContact") != null) {
-                obj.add("Account.allowCertFromContact", obj.get("allowCertFromContact"));
-                obj.remove("allowCertFromContact");
-            }
-            if (obj.get("allowCertFromHistory") != null) {
-                obj.add("Account.allowCertFromHistory", obj.get("allowCertFromHistory"));
-                obj.remove("allowCertFromHistory");
-            }
-            if (obj.get("allowCertFromTrusted") != null) {
-                obj.add("Account.allowCertFromTrusted", obj.get("allowCertFromTrusted"));
-                obj.remove("allowCertFromTrusted");
+            if (obj.get("publicInCalls") != null) {
+                obj.add("DHT.PublicInCalls", obj.get("publicInCalls"));
+                obj.remove("publicInCalls");
             }
 
             if (obj.get("autoAnswer") != null) {
-- 
GitLab