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 87ebdaad40f61c4a9b58d1da12b58a9fbc4c8591..aa0f9bb4e23d011b815ff1a6f2a2590da97fe7d1 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 @@ -38,6 +38,7 @@ public class DeviceRegistrationResponse { private String deviceReceipt; private String receiptSignature; private String userPhoto; + private String policy; public void setCertificateChain(X509Certificate[] certificateChain){ StringBuilder stringBuilder = new StringBuilder(); diff --git a/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java b/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java index 56aaed6a293eb5e7324870a634a761a6ec10ba0c..0b1ce55a6d813e897d50d4faca1e4f6bba0e1bc3 100644 --- a/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java +++ b/jams-server/src/main/java/net/jami/jams/server/core/workflows/RegisterDeviceFlow.java @@ -29,6 +29,8 @@ import net.jami.jams.common.dao.StatementList; import net.jami.jams.common.objects.devices.Device; import net.jami.jams.common.objects.requests.DeviceRegistrationRequest; import net.jami.jams.common.objects.responses.DeviceRegistrationResponse; +import net.jami.jams.common.objects.user.Group; +import net.jami.jams.common.objects.user.Policy; import net.jami.jams.common.objects.user.User; import net.jami.jams.common.objects.user.UserProfile; import net.jami.jams.dht.DeviceReceiptGenerator; @@ -67,6 +69,13 @@ public class RegisterDeviceFlow { dataStore.getDeviceDao().storeObject(device); //Now we build this response out. DeviceRegistrationResponse response = new DeviceRegistrationResponse(); + userProfile.getGroupMemberships().forEach(e -> { + StatementElement st = new StatementElement("name", "=", e, ""); + StatementList statementList1 = new StatementList(); + statementList1.addStatement(st); + Policy policy = dataStore.getPolicyDao().getObjects(statementList1).get(0); + response.setPolicy(policy.getPolicyData()); + }); //We need to set the device receipt.... String[] devReceipt = DeviceReceiptGenerator.generateReceipt(user.getPrivateKey(), user.getCertificate().getPublicKey(), device.getCertificate().getPublicKey(), user.getEthAddress());