From e26d9338ddc5f0f0440947e60013a57b82043783 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 30 Oct 2012 17:01:57 -0400 Subject: [PATCH] Refactor GC period into an integer for simpler translations --- src/com/gitblit/wicket/pages/EditUserPage.java | 30 +++++++++++++++++++----------- 1 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/com/gitblit/wicket/pages/EditUserPage.java b/src/com/gitblit/wicket/pages/EditUserPage.java index 3fc1eab..19d297b 100644 --- a/src/com/gitblit/wicket/pages/EditUserPage.java +++ b/src/com/gitblit/wicket/pages/EditUserPage.java @@ -34,12 +34,12 @@ import org.apache.wicket.model.util.CollectionModel; import org.apache.wicket.model.util.ListModel; -import com.gitblit.Constants.AccessRestrictionType; import com.gitblit.GitBlit; import com.gitblit.GitBlitException; import com.gitblit.Keys; +import com.gitblit.Constants.PermissionType; +import com.gitblit.Constants.RegistrantType; import com.gitblit.models.RegistrantAccessPermission; -import com.gitblit.models.RepositoryModel; import com.gitblit.models.TeamModel; import com.gitblit.models.UserModel; import com.gitblit.utils.StringUtils; @@ -63,6 +63,7 @@ isCreate = true; setupPage(new UserModel("")); setStatelessHint(false); + setOutputMarkupId(true); } public EditUserPage(PageParameters params) { @@ -73,6 +74,7 @@ UserModel model = GitBlit.self().getUserModel(name); setupPage(model); setStatelessHint(false); + setOutputMarkupId(true); } protected void setupPage(final UserModel userModel) { @@ -86,14 +88,8 @@ StringUtils.isEmpty(userModel.password) ? "" : userModel.password); CompoundPropertyModel<UserModel> model = new CompoundPropertyModel<UserModel>(userModel); - List<String> repos = new ArrayList<String>(); - for (String repo : GitBlit.self().getRepositoryList()) { - RepositoryModel repositoryModel = GitBlit.self().getRepositoryModel(repo); - if (repositoryModel.accessRestriction.exceeds(AccessRestrictionType.NONE)) { - repos.add(repo); - } - } - StringUtils.sortRepositorynames(repos); + // build list of projects including all repositories wildcards + List<String> repos = getAccessRestrictedRepositoryList(true, userModel); List<String> userTeams = new ArrayList<String>(); for (TeamModel team : userModel.teams) { @@ -103,6 +99,18 @@ final String oldName = userModel.username; final List<RegistrantAccessPermission> permissions = userModel.getRepositoryPermissions(); + for (RegistrantAccessPermission permission : permissions) { + if (permission.isEditable && PermissionType.EXPLICIT.equals(permission.permissionType)) { + // Ensure this is NOT an owner permission - which is non-editable + // We don't know this from within the usermodel, ownership is a + // property of a repository. + boolean isOwner = GitBlit.self().getRepositoryModel(permission.registrant).isOwner(oldName); + if (isOwner) { + permission.permissionType = PermissionType.OWNER; + permission.isEditable = false; + } + } + } final Palette<String> teams = new Palette<String>("teams", new ListModel<String>( new ArrayList<String>(userTeams)), new CollectionModel<String>(GitBlit.self() @@ -236,7 +244,7 @@ form.add(new CheckBox("canFork")); form.add(new CheckBox("canCreate")); form.add(new CheckBox("excludeFromFederation")); - form.add(new RegistrantPermissionsPanel("repositories", repos, permissions, getAccessPermissions())); + form.add(new RegistrantPermissionsPanel("repositories", RegistrantType.REPOSITORY, repos, permissions, getAccessPermissions())); form.add(teams.setEnabled(editTeams)); form.add(new Button("save")); -- Gitblit v1.9.1