java/code/src/com/redhat/rhn/domain/channel/Channel.hbm.xml | 9 +++++++ java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java | 12 ++++++++++ java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyDetailsAction.java | 2 - 3 files changed, 22 insertions(+), 1 deletion(-)
New commits: commit 76511a940d5d90337736067b0cc709314eb76879 Author: Tomas Lestach tlestach@redhat.com Date: Mon Sep 3 17:33:08 2012 +0200
853444 - list only subscribable base channels for actiovation key associations
diff --git a/java/code/src/com/redhat/rhn/domain/channel/Channel.hbm.xml b/java/code/src/com/redhat/rhn/domain/channel/Channel.hbm.xml index e7afcda..7fabf8d 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/Channel.hbm.xml +++ b/java/code/src/com/redhat/rhn/domain/channel/Channel.hbm.xml @@ -161,6 +161,15 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" order by C.name]]> <return alias="c" class="com.redhat.rhn.domain.channel.Channel" /> </sql-query> + <sql-query name="Channel.findSubscribableBaseChannels"> + <![CDATA[SELECT {c.*} + FROM rhnUserChannel uc JOIN rhnChannel {c} ON c.id = uc.channel_id + LEFT OUTER JOIN rhnChannelCloned c_1_ ON c.id = c_1_.id + WHERE uc.user_id = :user_id + AND uc.role = 'subscribe' + AND c.parent_channel is null]]> + <return alias="c" class="com.redhat.rhn.domain.channel.Channel" /> + </sql-query> <sql-query name="Channel.findAllBaseChannels"> <![CDATA[SELECT {c.*} FROM rhnUserChannel uc, diff --git a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java index 5982bca..c2d02b6 100644 --- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java +++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java @@ -937,6 +937,18 @@ public class ChannelFactory extends HibernateFactory { * @param user logged in user. * @return list of custom channels */ + public static List<Channel> listSubscribableBaseChannels(User user) { + Map params = new HashMap(); + params.put("user_id", user.getId()); + return singleton.listObjectsByNamedQuery( + "Channel.findSubscribableBaseChannels", params); + } + + /** + * List all accessible base channels for an org + * @param user logged in user. + * @return list of custom channels + */ public static List<Channel> listAllBaseChannels(User user) { Map params = new HashMap(); params.put("org_id", user.getOrg().getId()); diff --git a/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyDetailsAction.java b/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyDetailsAction.java index 7ced127..517709d 100644 --- a/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyDetailsAction.java +++ b/java/code/src/com/redhat/rhn/frontend/action/token/ActivationKeyDetailsAction.java @@ -279,7 +279,7 @@ public class ActivationKeyDetailsAction extends RhnAction { List<LabelValueBean> channelWidgets = new LinkedList<LabelValueBean>(); channelWidgets.add(lvl10n("activation-key.jsp.rh-default", String.valueOf(DEFAULT_CHANNEL_ID))); - List<Channel> rhChannels = ChannelFactory.listRedHatBaseChannels(); + List<Channel> rhChannels = ChannelFactory.listSubscribableBaseChannels(user); for (Channel channel : rhChannels) { channelWidgets.add(lv(channel.getName(), String.valueOf(channel.getId()))); }
spacewalk-commits@lists.fedorahosted.org