From 3e44b65e329c199f95488f9429c1a20362c70b4d Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 22 Oct 2012 08:55:44 -0400 Subject: [PATCH] Ensure illegal repository names are rejected in create-on-push --- src/com/gitblit/wicket/pages/EditRepositoryPage.java | 52 ++++++++++++++++++---------------------------------- 1 files changed, 18 insertions(+), 34 deletions(-) diff --git a/src/com/gitblit/wicket/pages/EditRepositoryPage.java b/src/com/gitblit/wicket/pages/EditRepositoryPage.java index 8176c28..200a50e 100644 --- a/src/com/gitblit/wicket/pages/EditRepositoryPage.java +++ b/src/com/gitblit/wicket/pages/EditRepositoryPage.java @@ -54,6 +54,7 @@ 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.UserModel; import com.gitblit.utils.ArrayUtils; @@ -62,6 +63,7 @@ import com.gitblit.wicket.StringChoiceRenderer; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.panels.BulletListPanel; +import com.gitblit.wicket.panels.RegistrantPermissionsPanel; public class EditRepositoryPage extends RootSubPage { @@ -94,6 +96,7 @@ } setupPage(model); + setStatelessHint(false); } public EditRepositoryPage(PageParameters params) { @@ -103,6 +106,7 @@ String name = WicketUtils.getRepositoryName(params); RepositoryModel model = GitBlit.self().getRepositoryModel(name); setupPage(model); + setStatelessHint(false); } protected void setupPage(final RepositoryModel repositoryModel) { @@ -111,8 +115,8 @@ List<String> indexedBranches = new ArrayList<String>(); List<String> federationSets = new ArrayList<String>(); - List<String> repositoryUsers = new ArrayList<String>(); - List<String> repositoryTeams = new ArrayList<String>(); + 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>(); @@ -128,8 +132,8 @@ } else { super.setupPage(getString("gb.edit"), repositoryModel.name); if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) { - repositoryUsers.addAll(GitBlit.self().getRepositoryUsers(repositoryModel)); - repositoryTeams.addAll(GitBlit.self().getRepositoryTeams(repositoryModel)); + repositoryUsers.addAll(GitBlit.self().getUserAccessPermissions(repositoryModel)); + repositoryTeams.addAll(GitBlit.self().getTeamAccessPermissions(repositoryModel)); Collections.sort(repositoryUsers); } federationSets.addAll(repositoryModel.federationSets); @@ -139,15 +143,11 @@ } final String oldName = repositoryModel.name; - // users palette - final Palette<String> usersPalette = new Palette<String>("users", new ListModel<String>( - repositoryUsers), new CollectionModel<String>(GitBlit.self().getAllUsernames()), - new StringChoiceRenderer(), 10, false); - // teams palette - final Palette<String> teamsPalette = new Palette<String>("teams", new ListModel<String>( - repositoryTeams), new CollectionModel<String>(GitBlit.self().getAllTeamnames()), - new StringChoiceRenderer(), 8, false); + 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>(); @@ -342,28 +342,10 @@ // save the repository GitBlit.self().updateRepositoryModel(oldName, repositoryModel, isCreate); - // repository access + // repository access permissions if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) { - // save the user access list - Iterator<String> users = usersPalette.getSelectedChoices(); - List<String> repositoryUsers = new ArrayList<String>(); - while (users.hasNext()) { - repositoryUsers.add(users.next()); - } - // ensure the owner is added to the user list - if (repositoryModel.owner != null - && !repositoryUsers.contains(repositoryModel.owner)) { - repositoryUsers.add(repositoryModel.owner); - } - GitBlit.self().setRepositoryUsers(repositoryModel, repositoryUsers); - - // save the team access list - Iterator<String> teams = teamsPalette.getSelectedChoices(); - List<String> repositoryTeams = new ArrayList<String>(); - while (teams.hasNext()) { - repositoryTeams.add(teams.next()); - } - GitBlit.self().setRepositoryTeams(repositoryModel, repositoryTeams); + GitBlit.self().setUserAccessPermissions(repositoryModel, repositoryUsers); + GitBlit.self().setTeamAccessPermissions(repositoryModel, repositoryTeams); } } catch (GitBlitException e) { error(e.getMessage()); @@ -406,7 +388,7 @@ form.add(new DropDownChoice<FederationStrategy>("federationStrategy", federationStrategies, new FederationTypeRenderer())); form.add(new CheckBox("useTickets")); - form.add(new CheckBox("useDocs")); + form.add(new CheckBox("useDocs")); form.add(new CheckBox("showRemoteBranches")); form.add(new CheckBox("showReadme")); form.add(new CheckBox("skipSizeCalculation")); @@ -423,6 +405,8 @@ group.add(allowNamed); form.add(group); + form.add(new CheckBox("verifyCommitter")); + form.add(usersPalette); form.add(teamsPalette); form.add(federationSetsPalette); -- Gitblit v1.9.1