java/code/src/com/redhat/rhn/domain/channel/Channel.hbm.xml
| 6 ++++--
java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackageMenuAction.java
| 4 +++-
2 files changed, 7 insertions(+), 3 deletions(-)
New commits:
commit 7f8a6467f3d94afef52cf6aa3b1bd203ea68209c
Author: Shannon Hughes <shughes(a)redhat.com>
Date: Tue Aug 4 11:04:20 2009 -0400
514800 - added logic to check for channel managers per cid
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 f243950..22e796e 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
@@ -185,7 +185,8 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
rhnChannelCloned c_1_
WHERE c.id = :cid
AND c.id = c_1_.id (+)
- AND rhn_channel.user_role_check(c.id, :userId, 'subscribe') =
1]]>
+ AND (rhn_channel.user_role_check(c.id, :userId, 'subscribe') = 1
OR
+ rhn_channel.user_role_check(c.id, :userId, 'manage') = 1)
]]>
<return alias="c"
class="com.redhat.rhn.domain.channel.Channel" />
</sql-query>
@@ -195,7 +196,8 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
rhnChannelCloned c_1_
WHERE c.label = :label
AND c.id = c_1_.id (+)
- AND rhn_channel.user_role_check(c.id, :userId, 'subscribe') =
1]]>
+ AND (rhn_channel.user_role_check(c.id, :userId, 'subscribe') = 1
OR
+ rhn_channel.user_role_check(c.id, :userId, 'manage') = 1)
]]>
<return alias="c"
class="com.redhat.rhn.domain.channel.Channel" />
</sql-query>
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackageMenuAction.java
b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackageMenuAction.java
index 54d782d..0fd20cf 100644
---
a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackageMenuAction.java
+++
b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/ChannelPackageMenuAction.java
@@ -21,6 +21,7 @@ import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.RhnAction;
import com.redhat.rhn.frontend.xmlrpc.PermissionCheckFailureException;
+import com.redhat.rhn.manager.user.UserManager;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
@@ -48,7 +49,8 @@ public class ChannelPackageMenuAction extends RhnAction {
Channel chan = ChannelFactory.lookupByIdAndUser(cid, user);
ChannelFactory.lookupByLabelAndUser(chan.getLabel(), user);
- if (!user.hasRole(RoleFactory.CHANNEL_ADMIN)) {
+ if (!user.hasRole(RoleFactory.CHANNEL_ADMIN) &&
+ !UserManager.verifyChannelAdmin(user, chan)) {
throw new PermissionCheckFailureException(RoleFactory.CHANNEL_ADMIN);
}
Show replies by date