James Moger
2012-10-29 8bc725871269aa47f8ef6db086a4cfedc75ef140
src/com/gitblit/wicket/pages/EditRepositoryPage.java
@@ -54,9 +54,8 @@
import com.gitblit.GitBlit;
import com.gitblit.GitBlitException;
import com.gitblit.Keys;
import com.gitblit.models.RegistrantAccessPermission;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.TeamAccessPermission;
import com.gitblit.models.UserAccessPermission;
import com.gitblit.models.UserModel;
import com.gitblit.utils.ArrayUtils;
import com.gitblit.utils.StringUtils;
@@ -64,8 +63,7 @@
import com.gitblit.wicket.StringChoiceRenderer;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.panels.BulletListPanel;
import com.gitblit.wicket.panels.TeamPermissionsPanel;
import com.gitblit.wicket.panels.UserPermissionsPanel;
import com.gitblit.wicket.panels.RegistrantPermissionsPanel;
public class EditRepositoryPage extends RootSubPage {
@@ -117,14 +115,15 @@
      List<String> indexedBranches = new ArrayList<String>();
      List<String> federationSets = new ArrayList<String>();
      final List<UserAccessPermission> repositoryUsers = new ArrayList<UserAccessPermission>();
      final List<TeamAccessPermission> repositoryTeams = new ArrayList<TeamAccessPermission>();
      final List<RegistrantAccessPermission> repositoryUsers = new ArrayList<RegistrantAccessPermission>();
      final List<RegistrantAccessPermission> repositoryTeams = new ArrayList<RegistrantAccessPermission>();
      List<String> preReceiveScripts = new ArrayList<String>();
      List<String> postReceiveScripts = new ArrayList<String>();
      GitBlitWebSession session = GitBlitWebSession.get();
      final UserModel user = session.getUser() == null ? UserModel.ANONYMOUS : session.getUser();
      final boolean allowEditName = isCreate || isAdmin || repositoryModel.isUsersPersonalRepository(user.username);
      if (isCreate) {
         if (user.canAdmin()) {
            super.setupPage(getString("gb.newRepository"), "");
@@ -146,8 +145,10 @@
      final String oldName = repositoryModel.name;
      UserPermissionsPanel usersPalette = new UserPermissionsPanel("users", repositoryUsers, getAccessPermissions());
      TeamPermissionsPanel teamsPalette = new TeamPermissionsPanel("teams", repositoryTeams, getAccessPermissions());
      RegistrantPermissionsPanel usersPalette = new RegistrantPermissionsPanel("users",
            GitBlit.self().getAllUsernames(), repositoryUsers, getAccessPermissions());
      RegistrantPermissionsPanel teamsPalette = new RegistrantPermissionsPanel("teams",
            GitBlit.self().getAllTeamnames(), repositoryTeams, getAccessPermissions());
      // indexed local branches palette
      List<String> allLocalBranches = new ArrayList<String>();
@@ -253,7 +254,7 @@
                  return;
               }
               
               if (user.canCreate() && !user.canAdmin()) {
               if (user.canCreate() && !user.canAdmin() && allowEditName) {
                  // ensure repository name begins with the user's path
                  if (!repositoryModel.name.startsWith(user.getPersonalPath())) {
                     error(MessageFormat.format(getString("gb.illegalPersonalRepositoryLocation"),
@@ -360,7 +361,7 @@
      form.add(new SimpleAttributeModifier("autocomplete", "off"));
      // field names reflective match RepositoryModel fields
      form.add(new TextField<String>("name").setEnabled(isCreate || isAdmin || repositoryModel.isUsersPersonalRepository(user.username)));
      form.add(new TextField<String>("name").setEnabled(allowEditName));
      form.add(new TextField<String>("description"));
      form.add(new DropDownChoice<String>("owner", GitBlit.self().getAllUsernames())
            .setEnabled(GitBlitWebSession.get().canAdmin()));
@@ -378,6 +379,10 @@
      }
      form.add(new DropDownChoice<String>("HEAD", availableRefs).setEnabled(availableRefs.size() > 0));
      List<String> gcPeriods = Arrays.asList("1 day", "2 days", "3 days", "4 days", "5 days", "7 days", "10 days", "14 days");
      form.add(new DropDownChoice<String>("gcPeriod", gcPeriods));
      form.add(new TextField<String>("gcThreshold"));
      // federation strategies - remove ORIGIN choice if this repository has
      // no origin.
      List<FederationStrategy> federationStrategies = new ArrayList<FederationStrategy>(