public void clear() throws IOException { clearMaps(); 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; }
/** 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); }
public void addGroup(GeoServerUserGroup group) throws IOException { if (helper.groupMap.containsKey(group.getGroupname())) throw new IllegalArgumentException( "The group " + group.getGroupname() + " already exists"); else { helper.groupMap.put(group.getGroupname(), group); setModified(true); } }
public void updateGroup(GeoServerUserGroup group) throws IOException { if (helper.groupMap.containsKey(group.getGroupname())) { helper.groupMap.put(group.getGroupname(), group); setModified(true); } else throw new IllegalArgumentException( "The group " + group.getGroupname() + " does not exist"); }
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 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); } }
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 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 store() throws IOException { if (isModified()) { LOGGER.info("Start storing user/groups for service named " + getName()); // prevent concurrent write from store and // read from service synchronized (service) { serialize(); } setModified(false); LOGGER.info("Storing user/groups successful for service named " + getName()); service.load(); // service must reload } else { LOGGER.info("Storing unnecessary, no change for user and groups"); } }