Skip to content
Snippets Groups Projects
Commit 017ac52c authored by William Enright's avatar William Enright
Browse files

Fixed group memberships on user creation set incorrectly, fixed user update returning NPE

Change-Id: I66e9a124ae73bbd86946a65cd81f7f4870f0e3da
parent 37f438ba
No related branches found
No related tags found
No related merge requests found
......@@ -129,7 +129,7 @@ public class DataStore implements AuthenticationSource {
update.addStatement(new StatementElement("phoneNumberExtension","=",userProfile.getPhoneNumberExtension(),""));
update.addStatement(new StatementElement("faxNumber","=",userProfile.getFaxNumber(),""));
update.addStatement(new StatementElement("mobileNumber","=",userProfile.getMobileNumber(),""));
if (userProfile.getGroupMemberships() != null) {
if (userProfile.getGroupMemberships() != null && !userProfile.getGroupMemberships().isEmpty()) {
String groups = "";
for (String s: userProfile.getGroupMemberships()) {
if (groups.equals(""))
......@@ -138,7 +138,10 @@ public class DataStore implements AuthenticationSource {
groups = groups.concat("," + s);
}
update.addStatement(new StatementElement("groupMemberships","=", groups ,""));
}
} else
update.addStatement(new StatementElement("groupMemberships","=", "" ,""));
return userProfileDao.updateObject(update, null);
}
......
......@@ -89,7 +89,9 @@ public class UserProfile implements DatabaseObject {
this.phoneNumberExtension = rs.getString("phoneNumberExtension");
this.faxNumber = rs.getString("faxNumber");
this.mobileNumber = rs.getString("mobileNumber");
this.groupMemberships = Arrays.asList(JsonIterator.deserialize(rs.getString("groupMemberships"),String[].class));
String groupMemberships = rs.getString("groupMemberships");
String[] groups = groupMemberships.split(",");
this.groupMemberships = Arrays.asList(groups);
}
@JsonIgnore
......@@ -131,9 +133,10 @@ public class UserProfile implements DatabaseObject {
ps.setString(8, phoneNumberExtension);
ps.setString(9, faxNumber);
ps.setString(10, mobileNumber);
if (groupMemberships == null)
groupMemberships = new ArrayList<>();
ps.setString(11, JsonStream.serialize(groupMemberships));
if (!groupMemberships.isEmpty())
ps.setString(11, JsonStream.serialize(groupMemberships));
else
ps.setString(11, "");
return ps;
}
......
......@@ -30,6 +30,7 @@ import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import net.jami.jams.common.annotations.ScopedServletMethod;
import net.jami.jams.common.authentication.AuthenticationSourceType;
import net.jami.jams.common.authmodule.AuthModuleKey;
......@@ -40,13 +41,14 @@ import net.jami.jams.common.objects.user.UserProfile;
import org.json.JSONObject;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
import static net.jami.jams.server.Server.userAuthenticationModule;
import static net.jami.jams.server.Server.dataStore;
@Slf4j
@WebServlet("/api/admin/directory/entry")
public class DirectoryEntryServlet extends HttpServlet {
......@@ -71,6 +73,7 @@ public class DirectoryEntryServlet extends HttpServlet {
userProfile.setFaxNumber(obj.get("faxNumber").toString());
userProfile.setMobileNumber(obj.get("mobileNumber").toString());
userProfile.setJamiId(obj.get("jamiId").toString());
userProfile.setGroupMemberships(new ArrayList<>());
userAuthenticationModule.getAuthSources().get(new AuthModuleKey(realm, AuthenticationSourceType.LOCAL))
.setUserProfile(userProfile);
......@@ -97,7 +100,9 @@ public class DirectoryEntryServlet extends HttpServlet {
resp.setStatus(200);
else resp.sendError(500,"could not update the users's profile information");
}
catch(Exception e){}
catch(Exception e){
System.out.println(e);
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment