diff --git a/jams-common/src/main/java/net/jami/jams/common/objects/user/UserProfile.java b/jams-common/src/main/java/net/jami/jams/common/objects/user/UserProfile.java index 08c6b08999aff5a765c21d840299fdd8ebcdf47e..4161dcf4553b05193a5a499107430ab629337257 100644 --- a/jams-common/src/main/java/net/jami/jams/common/objects/user/UserProfile.java +++ b/jams-common/src/main/java/net/jami/jams/common/objects/user/UserProfile.java @@ -85,14 +85,6 @@ public class UserProfile implements DatabaseObject { this.mobileNumber = rs.getString("mobileNumber"); } - public String getJamiId(){ - return jamiId; - } - - public void setJamiId(User user){ - jamiId = user.getJamiId(); - } - @JsonIgnore //Ignore this if we pass through JSON iterator. public String getAsVCard(){ diff --git a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js index 3c1f94a6fe608626b776fd61b78350d97e8b04bd..728cf99602496a8d48149d628b9c41f0db1c47f2 100644 --- a/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js +++ b/jams-react-client/src/views/UserProfile/EditCreateUserProfile.js @@ -241,7 +241,8 @@ export default function EditCreateUserProfile(props) { 'faxNumber': faxNumber, 'phoneNumber': phoneNumber, 'phoneNumberExtension': extension, - 'mobileNumber': mobileNumber + 'mobileNumber': mobileNumber, + 'jamiId': "" } axios(configApiCall(api_path_post_create_user + "?username="+ data.username, 'POST', null, null)).then((response) => { @@ -335,7 +336,7 @@ export default function EditCreateUserProfile(props) { <DialogTitle id="alert-dialog-title">{"Temporary password"}</DialogTitle> <DialogContent> <DialogContentText id="alert-dialog-description"> - New user successfully created. Here is the one time password: <strong>{temporaryPassword}</strong> ? + New user successfully created. Here is the one time password: <strong>{temporaryPassword}</strong> </DialogContentText> </DialogContent> <DialogActions> diff --git a/jams-server/pom.xml b/jams-server/pom.xml index bc4202db0216e41c2ef3cf538dd72bfa58ec8c9d..1734c7098642680e9654349ab8357a4d2e8c4661 100644 --- a/jams-server/pom.xml +++ b/jams-server/pom.xml @@ -84,6 +84,11 @@ <artifactId>httpclient</artifactId> <version>4.5.10</version> </dependency> + <dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20190722</version> + </dependency> </dependencies> <build> diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java index 3ccddf07ed28db2b3c85edc987082723093afb06..27c8fa74feb7373a089b25510fe01f751f79072c 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/admin/directory/DirectoryEntryServlet.java @@ -37,9 +37,11 @@ import net.jami.jams.common.dao.StatementElement; import net.jami.jams.common.dao.StatementList; import net.jami.jams.common.objects.user.AccessLevel; import net.jami.jams.common.objects.user.UserProfile; +import org.json.JSONObject; import java.io.IOException; import java.util.HashMap; +import java.util.Scanner; import static net.jami.jams.server.Server.userAuthenticationModule; import static net.jami.jams.server.Server.dataStore; @@ -50,10 +52,26 @@ public class DirectoryEntryServlet extends HttpServlet { @Override @ScopedServletMethod(securityGroups = {AccessLevel.ADMIN}) - protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { + protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { //Create a user profile. String realm = "LOCAL"; - UserProfile userProfile = JsonIterator.deserialize(req.getInputStream().readAllBytes(), UserProfile.class); + Scanner s = new Scanner(req.getInputStream()).useDelimiter("\\A"); + String result = s.hasNext() ? s.next() : ""; + final JSONObject obj = new JSONObject(result); + + UserProfile userProfile = new UserProfile(); + userProfile.setUsername(obj.get("username").toString()); + userProfile.setFirstName(obj.get("firstName").toString()); + userProfile.setLastName(obj.get("lastName").toString()); + userProfile.setEmail(obj.get("email").toString()); + userProfile.setProfilePicture(obj.get("profilePicture").toString()); + userProfile.setOrganization(obj.get("organization").toString()); + userProfile.setPhoneNumber(obj.get("phoneNumber").toString()); + userProfile.setPhoneNumberExtension(obj.get("phoneNumberExtension").toString()); + userProfile.setFaxNumber(obj.get("faxNumber").toString()); + userProfile.setMobileNumber(obj.get("mobileNumber").toString()); + userProfile.setJamiId(obj.get("jamiId").toString()); + userAuthenticationModule.getAuthSources().get(new AuthModuleKey(realm, AuthenticationSourceType.LOCAL)) .setUserProfile(userProfile); resp.setStatus(200); diff --git a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java index e3639ef437031c8a299dd829f084f1aea9f67495..b8e0d0ce54568014996fd7c3cc601b9052b8b08b 100644 --- a/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java +++ b/jams-server/src/main/java/net/jami/jams/server/servlets/api/auth/directory/SearchDirectoryServlet.java @@ -78,7 +78,7 @@ public class SearchDirectoryServlet extends HttpServlet { user.setAccessLevel(AccessLevel.USER); userAuthenticationModule.createUser(user.getUserType(), user.getRealm(), nameServer, user); } else { - profile.setJamiId(results.get(0)); + profile.setJamiId(results.get(0).getJamiId()); } } userProfiles.add(profile);