java/code/src/com/redhat/rhn/common/security/acl/Access.java | 18 +++++++++++
java/code/webapp/WEB-INF/struts-config.xml | 2 -
2 files changed, 19 insertions(+), 1 deletion(-)
New commits:
commit 5b7a7abf57f7e19674358d6537e21a7b017642bd
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Aug 12 17:08:14 2011 +0200
729975 - do not allow to edit Red Hat errata
diff --git a/java/code/src/com/redhat/rhn/common/security/acl/Access.java
b/java/code/src/com/redhat/rhn/common/security/acl/Access.java
index b51326a..4523dd1 100644
--- a/java/code/src/com/redhat/rhn/common/security/acl/Access.java
+++ b/java/code/src/com/redhat/rhn/common/security/acl/Access.java
@@ -20,6 +20,8 @@ import com.redhat.rhn.common.db.datasource.ModeFactory;
import com.redhat.rhn.common.db.datasource.SelectMode;
import com.redhat.rhn.domain.channel.Channel;
import com.redhat.rhn.domain.channel.ChannelFactory;
+import com.redhat.rhn.domain.errata.Errata;
+import com.redhat.rhn.domain.errata.ErrataFactory;
import
com.redhat.rhn.domain.org.Org;
import com.redhat.rhn.domain.org.OrgFactory;
import com.redhat.rhn.domain.rhnpackage.PackageEvr;
@@ -424,6 +426,22 @@ public class Access extends BaseHandler implements AclHandler {
return c.isProtected();
}
+ /**
+ * See if the erratum isn't a Red Hat erratum
+ * @param ctx Our current context, containing the erratum
+ * @param params nevim, dal
+ * @return whether the erratum isn't a Red Hat erratum
+ */
+ public boolean aclErrataEditable(Object ctx, String[] params) {
+ Map map = (Map)ctx;
+ Long eid = getAsLong(map.get("eid"));
+ Errata e = ErrataFactory.lookupById(eid);
+ if (e == null || e.getOrg() == null) {
+ return false;
+ }
+ return true;
+ }
+
/*
* These were taken out 06/16/2005 and should be implemented and put back in
* as we need them.
diff --git a/java/code/webapp/WEB-INF/struts-config.xml
b/java/code/webapp/WEB-INF/struts-config.xml
index 56c6d9b..e8e5853 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -2242,7 +2242,7 @@
type="com.redhat.rhn.frontend.action.errata.EditAction"
parameter="dispatch"
className="com.redhat.rhn.frontend.struts.RhnActionMapping">
- <set-property property="acls"
value="user_role(channel_admin)"/>
+ <set-property property="acls" value="user_role(channel_admin);
errata_editable()"/>
<set-property property="postRequiredIfSubmitted"
value="true" />
<forward name="published"
path="/errata/manage/SelectChannels.do"
redirect="true"/>