java/code/src/com/redhat/rhn/domain/channel/Channel.hbm.xml | 1
+
java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java | 7
++++---
java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java | 2
+-
java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java | 2
+-
java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java | 6
+++---
5 files changed, 10 insertions(+), 8 deletions(-)
New commits:
commit 30178fd40213afb5c2932443926960fc6f6746dd
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Thu Aug 20 12:37:31 2009 -0400
fix duplicate base channels listed in the "Parent Channel" dropdown
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 a4eb296..02ea23e 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
@@ -166,6 +166,7 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
WHERE c.id = uc.channel_id
AND c.id = c_1_.id (+)
AND uc.org_id = :org_id
+ AND 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" />
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 661de9d..18e3ae6 100644
--- a/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/channel/ChannelFactory.java
@@ -808,12 +808,13 @@ public class ChannelFactory extends HibernateFactory {
/**
* List all accessible base channels for an org
- * @param org the org doing the searching
+ * @param user logged in user.
* @return list of custom channels
*/
- public static List<Channel> listAllBaseChannels(Org org) {
+ public static List<Channel> listAllBaseChannels(User user) {
Map params = new HashMap();
- params.put("org_id", org.getId());
+ params.put("org_id", user.getOrg().getId());
+ params.put("user_id", user.getId());
return singleton.listObjectsByNamedQuery(
"Channel.findAllBaseChannels", params);
}
diff --git a/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
b/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
index fe901d9..61b5a95 100644
--- a/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
+++ b/java/code/src/com/redhat/rhn/domain/channel/test/ChannelFactoryTest.java
@@ -338,7 +338,7 @@ public class ChannelFactoryTest extends RhnBaseTestCase {
// do NOT use createBaseChannel here because that will create a Red Hat
// base channel NOT a user owned base channel.
Channel base = createTestChannel(user);
- List<Channel> channels =
ChannelFactory.listAllBaseChannels(user.getOrg());
+ List<Channel> channels = ChannelFactory.listAllBaseChannels(user);
List<Channel> rhbases = ChannelFactory.listRedHatBaseChannels();
int rbsize = 0;
for (Iterator itr = rhbases.iterator(); itr.hasNext();) {
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java
b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java
index bbf9c34..1cbe356 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java
@@ -633,7 +633,7 @@ public class EditChannelAction extends RhnAction implements Listable
{
// populate parent base channels
List baseChannels = new ArrayList();
List<Channel> bases = ChannelManager.findAllBaseChannelsForOrg(
- loggedInUser.getOrg());
+ loggedInUser);
LocalizationService ls = LocalizationService.getInstance();
addOption(baseChannels, ls.getMessage("generic.jsp.none"),
"");
diff --git a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
index 3b41e54..48ab715 100644
--- a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
+++ b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
@@ -2387,11 +2387,11 @@ public class ChannelManager extends BaseManager {
/**
* List base channels (including Red Hat channels) for a given org.
- * @param o Org to list base channels for.
+ * @param u User to list base channels for.
* @return List of Channels
*/
- public static List<Channel> findAllBaseChannelsForOrg(Org o) {
- return ChannelFactory.listAllBaseChannels(o);
+ public static List<Channel> findAllBaseChannelsForOrg(User u) {
+ return ChannelFactory.listAllBaseChannels(u);
}
/**
Show replies by date