code: protected boolean canUpdateModifiedParents(ModeledAuthenticatedUser user,
              String identifier, ModelType model) throws GuacamoleException {
  
          // If user is an administrator, no need to check
          if (user.getUser().isAdministrator())
              return true;
          
          // Verify that we have permission to modify any modified parents
          Collection<String> modifiedParents = getModifiedParents(user, identifier, model);
          if (!modifiedParents.isEmpty()) {
  
              ObjectPermissionSet permissionSet = getParentEffectivePermissionSet(user);
              Collection<String> updateableParents = permissionSet.getAccessibleObjects(
                  Collections.singleton(ObjectPermission.Type.UPDATE),
                  modifiedParents
              );
  
              return updateableParents.size() == modifiedParents.size();
              
          }
  
          return true;
  
      }
docs: Returns whether the given user has permission to modify the parents
  affected by the modifications made to the given model object.
  
  @param user
  The user who changed the model object.
  
  @param identifier
  The identifier of the object that has been modified, if it exists.
  If the object is being created, this will be null.
  
  @param model
  The model that has been modified, if any. If the object is being
  deleted, this will be null.
  
  @return
  true if the user has update permission for all modified parents,
  false otherwise.
  
  @throws GuacamoleException
  If an error occurs while determining which parents are affected.