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@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"/>
spacewalk-commits@lists.fedorahosted.org