public void updateUser(GeoServerUser user) throws IOException, PasswordPolicyException { if (helper.userMap.containsKey(user.getUsername()) == false) { throw new IllegalArgumentException( "The user " + user.getUsername() + " does not exist"); } preparePassword(user); helper.userMap.put(user.getUsername(), user); removeUserFromPropertyMap(user); addUserToPropertyMap(user); setModified(true); }
public void clear() throws IOException { clearMaps(); setModified(true); }
public void load() throws IOException { deserialize(); }
public void disAssociateUserFromGroup(GeoServerUser user, GeoServerUserGroup group) throws IOException { checkUser(user); checkGroup(group); boolean changed = false; SortedSet<GeoServerUser> users = helper.group_userMap.get(group); if (users != null) { changed |= users.remove(user); if (users.isEmpty()) { helper.group_userMap.remove(group); } } SortedSet<GeoServerUserGroup> groups = helper.user_groupMap.get(user); if (groups != null) { changed |= groups.remove(group); if (groups.isEmpty()) helper.user_groupMap.remove(user); } if (changed) { setModified(true); } }
public boolean removeUser(GeoServerUser user) throws IOException { Collection<GeoServerUserGroup> groups = helper.user_groupMap.get(user); if (groups != null) { Collection<GeoServerUserGroup> toBeRemoved = new ArrayList<GeoServerUserGroup>(); toBeRemoved.addAll(groups); for (GeoServerUserGroup group : toBeRemoved) { disAssociateUserFromGroup(user, group); } } boolean retValue = helper.userMap.remove(user.getUsername()) != null; if (retValue) { setModified(true); removeUserFromPropertyMap(user); } return retValue; }
public void addUser(GeoServerUser user) throws IOException, PasswordPolicyException { if (helper.userMap.containsKey(user.getUsername())) throw new IllegalArgumentException( "The user " + user.getUsername() + " already exists"); preparePassword(user); helper.userMap.put(user.getUsername(), user); addUserToPropertyMap(user); setModified(true); }
public boolean removeGroup(GeoServerUserGroup group) throws IOException { Collection<GeoServerUser> users = helper.group_userMap.get(group); if (users != null) { Collection<GeoServerUser> toBeRemoved = new ArrayList<GeoServerUser>(); toBeRemoved.addAll(users); for (GeoServerUser user : toBeRemoved) { disAssociateUserFromGroup(user, group); } } boolean retval = helper.groupMap.remove(group.getGroupname()) != null; if (retval) { setModified(true); } return retval; }
@Override public void clear() throws IOException { ensureLock(); super.clear(); }
@Override public void addGroup(GeoServerUserGroup group) throws IOException { ensureLock(); super.addGroup(group); }
@Override public void disAssociateUserFromGroup(GeoServerUser user, GeoServerUserGroup group) throws IOException { ensureLock(); super.disAssociateUserFromGroup(user, group); }
@Override public void addUser(GeoServerUser user) throws IOException, PasswordPolicyException { ensureLock(); super.addUser(user); }
@Override public void associateUserToGroup(GeoServerUser user, GeoServerUserGroup group) throws IOException { ensureLock(); super.associateUserToGroup(user, group); }
public void associateUserToGroup(GeoServerUser user, GeoServerUserGroup group) throws IOException { checkUser(user); checkGroup(group); boolean changed = false; SortedSet<GeoServerUser> users = helper.group_userMap.get(group); if (users == null) { users = new TreeSet<GeoServerUser>(); helper.group_userMap.put(group, users); } if (users.contains(user) == false) { users.add(user); changed = true; } SortedSet<GeoServerUserGroup> groups = helper.user_groupMap.get(user); if (groups == null) { groups = new TreeSet<GeoServerUserGroup>(); helper.user_groupMap.put(user, groups); } if (groups.contains(group) == false) { groups.add(group); changed = true; } if (changed) { setModified(true); } }
/** Make a deep copy (using serialization) from the service to the store. */ @SuppressWarnings("unchecked") protected void deserialize() throws IOException { // deepcopy from service, using serialization ByteArrayOutputStream out = new ByteArrayOutputStream(); ObjectOutputStream oout = new ObjectOutputStream(out); oout.writeObject(service.helper.userMap); oout.writeObject(service.helper.groupMap); oout.writeObject(service.helper.user_groupMap); oout.writeObject(service.helper.group_userMap); oout.writeObject(service.helper.propertyMap); byte[] bytes = out.toByteArray(); oout.close(); clearMaps(); ByteArrayInputStream in = new ByteArrayInputStream(bytes); ObjectInputStream oin = new ObjectInputStream(in); try { helper.userMap = (TreeMap<String, GeoServerUser>) oin.readObject(); helper.groupMap = (TreeMap<String, GeoServerUserGroup>) oin.readObject(); helper.user_groupMap = (TreeMap<GeoServerUser, SortedSet<GeoServerUserGroup>>) oin.readObject(); helper.group_userMap = (TreeMap<GeoServerUserGroup, SortedSet<GeoServerUser>>) oin.readObject(); helper.propertyMap = (TreeMap<String, SortedSet<GeoServerUser>>) oin.readObject(); } catch (ClassNotFoundException e) { throw new IOException(e); } setModified(false); }
@Override protected void deserialize() throws IOException { super.deserialize(); releaseLock(); }