java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
| 1
java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java
| 2 -
java/code/src/com/redhat/rhn/frontend/action/kickstart/ssm/SsmKickstartableSystemsAction.java
| 8 ++++
java/code/src/com/redhat/rhn/manager/kickstart/KickstartManager.java
| 18 +++++++++
java/code/webapp/WEB-INF/pages/kickstart/ssm/kickstartablesystems.jsp
| 16 ++------
java/code/webapp/WEB-INF/struts-config.xml
| 20 +++++++++-
6 files changed, 49 insertions(+), 16 deletions(-)
New commits:
commit f5ae83825e7e896759a0f87082778497aa1a0580
Author: Partha Aji <paji(a)redhat.com>
Date: Wed Jul 1 13:17:37 2009 -0400
Code to disable KS by ip range if no iprange is defined
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
index 107de4d..2ce6af8 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
@@ -52,7 +52,6 @@ SELECT S.id,
ORDER BY UPPER(NVL(S.NAME, '(none)')), S.ID
</query>
<elaborator name="system_overview" />
- <elaborator name="entitlements"/>
</mode>
diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java
b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java
index f0fe369..2cedb69 100644
--- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartFactory.java
@@ -455,7 +455,7 @@ public class KickstartFactory extends HibernateFactory {
* @param org who owns the Kickstart Range
* @return List of Kickstart Ip Ranges if found
*/
- public static List lookupRangeByOrg(Org org) {
+ public static List<KickstartIpRange> lookupRangeByOrg(Org org) {
Session session = null;
session = HibernateFactory.getSession();
return session.getNamedQuery("KickstartIpRange.lookupByOrg")
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/kickstart/ssm/SsmKickstartableSystemsAction.java
b/java/code/src/com/redhat/rhn/frontend/action/kickstart/ssm/SsmKickstartableSystemsAction.java
index 349122e..2971acb 100644
---
a/java/code/src/com/redhat/rhn/frontend/action/kickstart/ssm/SsmKickstartableSystemsAction.java
+++
b/java/code/src/com/redhat/rhn/frontend/action/kickstart/ssm/SsmKickstartableSystemsAction.java
@@ -14,6 +14,7 @@
*/
package com.redhat.rhn.frontend.action.kickstart.ssm;
+import com.redhat.rhn.domain.kickstart.KickstartIpRange;
import com.redhat.rhn.domain.kickstart.KickstartableTree;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.struts.RequestContext;
@@ -41,6 +42,7 @@ import javax.servlet.http.HttpServletResponse;
public class SsmKickstartableSystemsAction extends RhnAction implements Listable {
private static final String DISTROS = "distros";
private static final String DISTRO = "distro";
+ private static final String DISABLE_RANGES = "disableRanges";
/**
* ${@inheritDoc}
*/
@@ -56,6 +58,12 @@ public class SsmKickstartableSystemsAction extends RhnAction implements
Listable
request.setAttribute(DISTROS, trees);
request.setAttribute(DISTRO, trees.get(0).getId());
}
+
+ List <KickstartIpRange> range = KickstartManager.getInstance().
+ listIpRanges(context.getLoggedInUser());
+ if (range.isEmpty()) {
+ request.setAttribute(DISABLE_RANGES, Boolean.TRUE);
+ }
return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
}
diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartManager.java
b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartManager.java
index 8a0f0da..b7893cb 100644
--- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartManager.java
+++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartManager.java
@@ -18,16 +18,21 @@ import com.redhat.rhn.common.conf.Config;
import com.redhat.rhn.common.db.datasource.DataResult;
import com.redhat.rhn.common.db.datasource.ModeFactory;
import com.redhat.rhn.common.db.datasource.SelectMode;
+import com.redhat.rhn.common.security.PermissionException;
import com.redhat.rhn.common.util.download.DownloadException;
import com.redhat.rhn.common.util.download.DownloadUtils;
import com.redhat.rhn.common.validator.ValidatorException;
import com.redhat.rhn.domain.kickstart.KickstartData;
+import com.redhat.rhn.domain.kickstart.KickstartFactory;
+import com.redhat.rhn.domain.kickstart.KickstartIpRange;
+import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.SystemOverview;
import com.redhat.rhn.manager.BaseManager;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
/**
@@ -104,4 +109,17 @@ public class KickstartManager extends BaseManager {
params.put("user_id", user.getId());
return makeDataResult(params, Collections.EMPTY_MAP, null, m);
}
+
+ /**
+ * returns a list of IP ranges accessible to the
+ * user
+ * @param user the current user needed for org information
+ * @return the the list of ip ranges accessible to the user.
+ */
+ public List<KickstartIpRange> listIpRanges(User user) {
+ if (!user.hasRole(RoleFactory.CONFIG_ADMIN)) {
+ throw new PermissionException(RoleFactory.CONFIG_ADMIN);
+ }
+ return KickstartFactory.lookupRangeByOrg(user.getOrg());
+ }
}
diff --git a/java/code/webapp/WEB-INF/pages/kickstart/ssm/kickstartablesystems.jsp
b/java/code/webapp/WEB-INF/pages/kickstart/ssm/kickstartablesystems.jsp
index ca8fdd6..9144772 100644
--- a/java/code/webapp/WEB-INF/pages/kickstart/ssm/kickstartablesystems.jsp
+++ b/java/code/webapp/WEB-INF/pages/kickstart/ssm/kickstartablesystems.jsp
@@ -38,18 +38,10 @@
<!-- Base Channel Column -->
<rl:column sortable="false"
bound="false"
- headerkey="systemlist.jsp.channel" >
+ headerkey="systemlist.jsp.channel"
+ styleclass="last-column" >
<%@ include
file="/WEB-INF/pages/common/fragments/channel/channel_list_fragment.jspf" %>
</rl:column>
-
- <!-- Entitlement Column -->
- <rl:column sortable="false"
- bound="false"
- headerkey="systemlist.jsp.entitlement"
- styleclass="last-column center"
- headerclass="thin-column">
- <c:out value="${current.entitlementLevel}"
escapeXml="false"/>
- </rl:column>
</rl:list>
<h2><bean:message
key="ssm.kickstartable-systems.jsp.systems"/></h2>
<p><bean:message
key="ssm.kickstartable-systems.jsp.systems.summary"/></p>
@@ -85,8 +77,8 @@
</rhn:tooltip>
<br /><br />
<input type="radio" name="scheduleManual"
value="false" id="ipId"
- onclick="form.distroId.disabled = true;"
- <c:if test="${empty distros or param.scheduleManual
=='false'}">checked="checked" </c:if> />
+ onclick="form.distroId.disabled = true;" <c:if test="${empty
distros or not empty disableRanges}">disabled="true"</c:if>
+ <c:if test="${param.scheduleManual
=='false'}">checked="checked" </c:if> />
<strong><bean:message
key="ssm.kickstartable-systems.jsp.ip-summary"/></strong>
<br/>
<rhn:tooltip>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml
b/java/code/webapp/WEB-INF/struts-config.xml
index c48ec5e..d0013ff 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -4612,13 +4612,29 @@
<set-property property="acls"
value="org_entitlement(rhn_provisioning); user_role(config_admin)"/>
<forward name="default"
path="/WEB-INF/pages/kickstart/ssm/kickstartablesystems.jsp"/>
+ <forward name="scheduleByIp"
+ path="/ssm/kickstart/ScheduleByIp.do"/>
+ <forward name="scheduleByProfile"
+ path="/ssm/kickstart/ScheduleByProfile.do"/>
+ </action>
+ <action path="/ssm/kickstart/ScheduleByProfile"
+ scope="request"
+ input="/WEB-INF/pages/kickstart/ssm/schedule.jsp"
+
type="com.redhat.rhn.frontend.action.kickstart.ssm.SsmKSScheduleAction"
+ parameter="profile"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping">
+ <set-property property="acls"
value="org_entitlement(rhn_provisioning); user_role(config_admin)"/>
+ <forward name="default"
+ path="/WEB-INF/pages/kickstart/ssm/schedule.jsp"/>
<forward name="success"
- path="/ssm/kickstart/Schedule.do"/>
+ path="/ssm/kickstart/KickstartableSystems.do"/>
</action>
- <action path="/ssm/kickstart/Schedule"
+
+ <action path="/ssm/kickstart/ScheduleByIp"
scope="request"
input="/WEB-INF/pages/kickstart/ssm/schedule.jsp"
type="com.redhat.rhn.frontend.action.kickstart.ssm.SsmKSScheduleAction"
+ parameter="ip"
className="com.redhat.rhn.frontend.struts.RhnActionMapping">
<set-property property="acls"
value="org_entitlement(rhn_provisioning); user_role(config_admin)"/>
<forward name="default"
Show replies by date