Joel Johnson
2015-06-22 a3e480e28aa25dbbe341b10cfeb3fb1cfa625d18
src/main/java/com/gitblit/manager/GitblitManager.java
@@ -51,8 +51,10 @@
import com.gitblit.Constants.AccessPermission;
import com.gitblit.Constants.FederationRequest;
import com.gitblit.Constants.FederationToken;
import com.gitblit.Constants.Role;
import com.gitblit.GitBlitException;
import com.gitblit.IStoredSettings;
import com.gitblit.extensions.RepositoryLifeCycleListener;
import com.gitblit.models.FederationModel;
import com.gitblit.models.FederationProposal;
import com.gitblit.models.FederationSet;
@@ -79,14 +81,15 @@
import com.gitblit.utils.JsonUtils;
import com.gitblit.utils.ObjectCache;
import com.gitblit.utils.StringUtils;
import com.gitblit.utils.XssFilter;
import com.google.gson.Gson;
import com.google.gson.JsonIOException;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Singleton;
import com.google.inject.Provider;
import com.google.inject.Singleton;
/**
 * GitblitManager is an aggregate interface delegate.  It implements all the manager
@@ -223,6 +226,13 @@
      RepositoryModel cloneModel = repository.cloneAs(cloneName);
      // owner has REWIND/RW+ permissions
      cloneModel.addOwner(user.username);
      // ensure initial access restriction of the fork
      // is not lower than the source repository  (issue-495/ticket-167)
      if (repository.accessRestriction.exceeds(cloneModel.accessRestriction)) {
         cloneModel.accessRestriction = repository.accessRestriction;
      }
      repositoryManager.updateRepositoryModel(cloneName, cloneModel, false);
      // add the owner of the source repository to the clone's access list
@@ -267,6 +277,16 @@
      // add this clone to the cached model
      repositoryManager.addToCachedRepositoryList(cloneModel);
      if (pluginManager != null) {
         for (RepositoryLifeCycleListener listener : pluginManager.getExtensions(RepositoryLifeCycleListener.class)) {
            try {
               listener.onFork(repository, cloneModel);
            } catch (Throwable t) {
               logger.error(String.format("failed to call plugin onFork %s", repository.name), t);
            }
         }
      }
      return cloneModel;
   }
@@ -431,7 +451,7 @@
         // Read bundled Gitblit properties to extract setting descriptions.
         // This copy is pristine and only used for populating the setting
         // models map.
         InputStream is = GitblitManager.class.getResourceAsStream("/reference.properties");
         InputStream is = GitblitManager.class.getResourceAsStream("/defaults.properties");
         BufferedReader propertiesReader = new BufferedReader(new InputStreamReader(is));
         StringBuilder description = new StringBuilder();
         SettingModel setting = new SettingModel();
@@ -476,9 +496,9 @@
         }
         propertiesReader.close();
      } catch (NullPointerException e) {
         logger.error("Failed to find resource copy of gitblit.properties");
         logger.error("Failed to find classpath resource 'defaults.properties'");
      } catch (IOException e) {
         logger.error("Failed to load resource copy of gitblit.properties");
         logger.error("Failed to load classpath resource 'defaults.properties'");
      }
   }
@@ -584,6 +604,11 @@
      return runtimeManager.getInjector();
   }
   @Override
   public XssFilter getXssFilter() {
      return runtimeManager.getXssFilter();
   }
   /*
    * NOTIFICATION MANAGER
    */
@@ -637,6 +662,11 @@
   }
   @Override
   public UserModel authenticate(String username) {
      return authenticationManager.authenticate(username);
   }
   @Override
   public UserModel authenticate(HttpServletRequest httpRequest, boolean requiresCertificate) {
      UserModel user = authenticationManager.authenticate(httpRequest, requiresCertificate);
      if (user == null) {
@@ -651,13 +681,25 @@
   }
   @Override
   @Deprecated
   public void setCookie(HttpServletResponse response, UserModel user) {
      authenticationManager.setCookie(response, user);
   }
   @Override
   public void setCookie(HttpServletRequest request, HttpServletResponse response, UserModel user) {
      authenticationManager.setCookie(request, response, user);
   }
   @Override
   @Deprecated
   public void logout(HttpServletResponse response, UserModel user) {
      authenticationManager.logout(response, user);
   }
   @Override
   public void logout(HttpServletRequest request, HttpServletResponse response, UserModel user) {
      authenticationManager.logout(request, response, user);
   }
   @Override
@@ -683,6 +725,16 @@
   @Override
   public boolean supportsTeamMembershipChanges(TeamModel team) {
      return authenticationManager.supportsTeamMembershipChanges(team);
   }
   @Override
   public boolean supportsRoleChanges(UserModel user, Role role) {
      return authenticationManager.supportsRoleChanges(user, role);
   }
   @Override
   public boolean supportsRoleChanges(TeamModel team, Role role) {
      return authenticationManager.supportsRoleChanges(team, role);
   }
   /*
@@ -906,6 +958,11 @@
   }
   @Override
   public List<RepositoryModel> getRepositoryModels() {
      return repositoryManager.getRepositoryModels();
   }
   @Override
   public List<RepositoryModel> getRepositoryModels(UserModel user) {
      return repositoryManager.getRepositoryModels(user);
   }