From 871ea2592a9798aa078b19ba37cd6a87990e1712 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 08 Sep 2014 18:06:46 -0400 Subject: [PATCH] Merge branch 'ticket/174' into develop --- src/main/java/com/gitblit/wicket/pages/NewTicketPage.java | 45 +++++++++++++++++++++++++++------------------ 1 files changed, 27 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/NewTicketPage.java b/src/main/java/com/gitblit/wicket/pages/NewTicketPage.java index 961590a..21a2af1 100644 --- a/src/main/java/com/gitblit/wicket/pages/NewTicketPage.java +++ b/src/main/java/com/gitblit/wicket/pages/NewTicketPage.java @@ -19,6 +19,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Set; +import java.util.TreeSet; import org.apache.wicket.PageParameters; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -35,6 +37,7 @@ import com.gitblit.Constants; import com.gitblit.Constants.AccessPermission; +import com.gitblit.Constants.AuthorizationControl; import com.gitblit.models.RegistrantAccessPermission; import com.gitblit.models.TicketModel; import com.gitblit.models.TicketModel.Change; @@ -46,6 +49,8 @@ import com.gitblit.tickets.TicketResponsible; import com.gitblit.utils.StringUtils; import com.gitblit.wicket.GitBlitWebSession; +import com.gitblit.wicket.SafeTextModel; +import com.gitblit.wicket.SafeTextModel.Mode; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.panels.MarkdownTextArea; @@ -87,8 +92,8 @@ } typeModel = Model.of(TicketModel.Type.defaultType); - titleModel = Model.of(); - topicModel = Model.of(); + titleModel = SafeTextModel.none(); + topicModel = SafeTextModel.none(); mergeToModel = Model.of(Repository.shortenRefName(getRepositoryModel().mergeTo)); responsibleModel = Model.of(); milestoneModel = Model.of(); @@ -103,7 +108,7 @@ form.add(new TextField<String>("title", titleModel)); form.add(new TextField<String>("topic", topicModel)); - final IModel<String> markdownPreviewModel = new Model<String>(); + final SafeTextModel markdownPreviewModel = new SafeTextModel(Mode.none); descriptionPreview = new Label("descriptionPreview", markdownPreviewModel); descriptionPreview.setEscapeModelStrings(false); descriptionPreview.setOutputMarkupId(true); @@ -115,23 +120,27 @@ if (currentUser.canAdmin(null, getRepositoryModel())) { // responsible - List<TicketResponsible> responsibles = new ArrayList<TicketResponsible>(); - if (UserModel.ANONYMOUS.canPush(getRepositoryModel())) { - // anonymous push allowed - for (UserModel user : app().users().getAllUsers()) { - if (!user.disabled) { - responsibles.add(new TicketResponsible(user)); + Set<String> userlist = new TreeSet<String>(); + + if (UserModel.ANONYMOUS.canPush(getRepositoryModel()) + || AuthorizationControl.AUTHENTICATED == getRepositoryModel().authorizationControl) { + // authorization is ANONYMOUS or AUTHENTICATED (i.e. all users can be set responsible) + userlist.addAll(app().users().getAllUsernames()); + } else { + // authorization is by NAMED users (users with PUSH permission can be set responsible) + for (RegistrantAccessPermission rp : app().repositories().getUserAccessPermissions(getRepositoryModel())) { + if (rp.permission.atLeast(AccessPermission.PUSH)) { + userlist.add(rp.registrant); } } - } else { - // authenticated push - for (RegistrantAccessPermission rp : app().repositories().getUserAccessPermissions(getRepositoryModel())) { - if (rp.permission.atLeast(AccessPermission.PUSH) && !rp.isTeam()) { - UserModel user = app().users().getUserModel(rp.registrant); - if (user != null && !user.disabled) { - responsibles.add(new TicketResponsible(user)); - } - } + } + + List<TicketResponsible> responsibles = new ArrayList<TicketResponsible>(); + for (String username : userlist) { + UserModel user = app().users().getUserModel(username); + if (user != null && !user.disabled) { + TicketResponsible responsible = new TicketResponsible(user); + responsibles.add(responsible); } } Collections.sort(responsibles); -- Gitblit v1.9.1