java/code
by mkollar
java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp | 64 --------------
1 file changed, 1 insertion(+), 63 deletions(-)
New commits:
commit 53e664e7dde69f1587fa614aa547cb4fd2b8548e
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Wed Feb 5 16:30:46 2014 +0100
Reuse code
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
index b715fae..fcbcf97 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
@@ -26,69 +26,7 @@
<rl:listset name="errataListSet" legend="errata">
<rhn:csrf />
<rhn:submitted />
- <rl:list name="errataList" styleclass="list"
- emptykey="erratalist.jsp.norelevanterrata" alphabarcolumn="advisorySynopsis">
- <rl:decorator name="ElaborationDecorator"/>
- <rl:decorator name="PageSizeDecorator"/>
- <rl:decorator name="SelectableDecorator"/>
-
- <rl:selectablecolumn value="${current.id}" selected="${current.selected}"
- disabled="${not current.selectable}" styleclass="first-column"/>
-
- <rl:column headerkey="erratalist.jsp.type" styleclass="text-align: center;" bound="false">
- <c:if test="${current.securityAdvisory}">
- <rhn:icon type="errata-security" />
- </c:if>
- <c:if test="${current.bugFix}">
- <rhn:icon type="errata-bugfix" />
- </c:if>
- <c:if test="${current.productEnhancement}">
- <rhn:icon type="errata-enhance" />
- </c:if>
- </rl:column>
-
- <rl:column headerkey="erratalist.jsp.advisory" bound="false" sortattr="advisoryName" sortable="true">
- <a href="/rhn/errata/details/Details.do?eid=${current.id}">${current.advisoryName}</a>
- </rl:column>
-
- <rl:column headerkey="erratalist.jsp.synopsis" bound="false" sortattr="advisorySynopsis"
- sortable="true" filterattr="advisorySynopsis">
- ${current.advisorySynopsis}
- </rl:column>
-
- <rl:column headerkey="errata.jsp.status" bound="false" sortattr="currentStatusAndActionId[0]" sortable="true">
- <c:if test="${not empty current.status}">
- <c:if test="${current.currentStatusAndActionId[0] == 'Queued'}">
- <a href="/rhn/schedule/ActionDetails.do?aid=${current.currentStatusAndActionId[1]}">
- <bean:message key="affectedsystems.jsp.pending"/>
- </a>
- </c:if>
- <c:if test="${current.currentStatusAndActionId[0] == 'Failed'}">
- <a href="/network/systems/details/history/event.pxt?sid=${param.sid}&hid=${current.currentStatusAndActionId[1]}">
- <bean:message key="actions.jsp.failed"/>
- </a>
- </c:if>
- <c:if test="${current.currentStatusAndActionId[0] == 'Picked Up'}">
- <a href="/network/systems/details/history/event.pxt?sid=${param.sid}&hid=${current.currentStatusAndActionId[1]}">
- <bean:message key="actions.jsp.pickedup"/>
- </a>
- </c:if>
- </c:if>
- <c:if test="${empty current.status}">
- <bean:message key="affectedsystems.jsp.none"/>
- </c:if>
- </rl:column>
-
- <rl:column headerkey="errata.jsp.affected" bound="false" sortattr="affectedSystemCount" sortable="true">
- <a href="/rhn/systems/ssm/ErrataSystemsAffected.do?eid=${current.id}">${current.affectedSystemCount}</a>
- </rl:column>
-
- <rl:column headerkey="erratalist.jsp.updated" bound="false" sortattr="updateDateObj"
- sortable="true" defaultsort="desc" styleclass="last-column">
- ${current.updateDate}
- </rl:column>
-
- </rl:list>
+<%@ include file="/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf" %>
<div class="text-right">
<hr />
10 years, 2 months
Changes to 'refs/tags/spacewalk-java-2.1.145-1'
by Michael Mraka
Tag 'spacewalk-java-2.1.145-1' created by Michael Mraka <michael.mraka(a)redhat.com> at 2014-02-05 15:41 +0000
Tagging package [spacewalk-java] version [2.1.145-1] in directory [java/].
Changes since spacewalk-java-2.1.144-1:
Matej Kollar (4):
Generification of Listable
Use generified Listable
Use generified Listable
Generalized code so it can be used both with and without selectable column
Michael Mraka (12):
moved labels back
removed colons to unify page with other tabs
moved labels back
unify cobbler page with other tabs
password meter needs pwstrength-bootstrap
required field marker used to be red
fixed create probe page aligning
fixed detail probe page alignment
fixed suite / detail probe page alignment
fixed org configuration page alignment
fixed entitlement orgs page layout
Automatic commit of package [spacewalk-java] release [2.1.145-1].
Tomas Kasparek (4):
de-uglify system - software channels page
add style for displaying buttons on right
Revert "add style for displaying buttons on right"
use already defined class
---
branding/css/spacewalk-fixes.less | 8
branding/css/spacewalk-theme.less | 6
branding/spacewalk-branding.spec | 1
java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListConfirmAction.java | 5
java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java | 5
java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java | 7
java/code/src/com/redhat/rhn/frontend/taglibs/list/helper/Listable.java | 5
java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp | 36 +--
java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp | 8
java/code/webapp/WEB-INF/pages/admin/config/general.jsp | 54 ++---
java/code/webapp/WEB-INF/pages/admin/monitoring/config/probe-edit.jsp | 8
java/code/webapp/WEB-INF/pages/admin/multiorg/configuration.jsp | 50 ++--
java/code/webapp/WEB-INF/pages/admin/multiorg/entitlementorgs.jsp | 12 -
java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf | 8
java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf | 14 -
java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf | 104 +++++-----
java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp | 2
java/code/webapp/WEB-INF/pages/systems/probes/details.jsp | 16 -
java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp | 27 --
java/spacewalk-java.spec | 7
rel-eng/packages/spacewalk-java | 2
21 files changed, 218 insertions(+), 167 deletions(-)
---
10 years, 2 months
java/spacewalk-java.spec rel-eng/packages
by Michael Mraka
java/spacewalk-java.spec | 7 ++++++-
rel-eng/packages/spacewalk-java | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
New commits:
commit c03e3eef649e2925c0717771cbf5ab2c778dcc44
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 16:41:08 2014 +0100
Automatic commit of package [spacewalk-java] release [2.1.145-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 5553af4..b5b8d19 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.144
+Version: 2.1.145
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,11 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Wed Feb 05 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.145-1
+- page layout fixes
+- Generalized code so it can be used both with and without selectable column
+- Generification of Listable
+
* Tue Feb 04 2014 Stephen Herr <sherr(a)redhat.com> 2.1.144-1
- 1061425 - Improve package search performance
- 1061425 - query performance improvement for package search
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index fd3a36a..893333a 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.144-1 java/
+2.1.145-1 java/
10 years, 2 months
3 commits - java/code
by Michael Mraka
java/code/webapp/WEB-INF/pages/admin/monitoring/config/probe-edit.jsp | 8 +
java/code/webapp/WEB-INF/pages/admin/multiorg/configuration.jsp | 50 ++++++----
java/code/webapp/WEB-INF/pages/admin/multiorg/entitlementorgs.jsp | 12 +-
3 files changed, 41 insertions(+), 29 deletions(-)
New commits:
commit b04e871eefdf54c4c2cefaa0f53ce1dee045852e
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 16:24:36 2014 +0100
fixed entitlement orgs page layout
diff --git a/java/code/webapp/WEB-INF/pages/admin/multiorg/entitlementorgs.jsp b/java/code/webapp/WEB-INF/pages/admin/multiorg/entitlementorgs.jsp
index ab5ffad..fb7e45f 100644
--- a/java/code/webapp/WEB-INF/pages/admin/multiorg/entitlementorgs.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/multiorg/entitlementorgs.jsp
@@ -61,12 +61,12 @@
sortable="false"
headerkey="entitlementorgs.proposed_total">
<div class="row">
- <div class="col-lg-1">
+ <div class="col-lg-6">
<div class="input-group">
- <span class="input-group-btn">
- <html:text property="newCount_${current.orgid}" size="5" value="${current.total}"
+ <html:text property="newCount_${current.orgid}" size="5" value="${current.total}"
styleClass="form-control"
onkeydown="return blockEnter(event)" />
+ <span class="input-group-btn">
<html:submit styleClass="btn btn-info" onclick="this.form.orgClicked.value = '${current.orgid}'">
<bean:message key="entitlementorgs.update"/>
</html:submit>
@@ -99,7 +99,7 @@
<bean:message key="entitlementorgs.total_allocated"/>:
</label>
<div class="col-lg-6">
- <div class="well well-sm">
+ <div class="text">
${maxEnt}
</div>
<span class="help-block">
@@ -112,7 +112,7 @@
<bean:message key="entitlementorgs.total_inuse"/>:
</label>
<div class="col-lg-6">
- <div class="well well-sm">
+ <div class="text">
${curEnt}
</div>
</div>
@@ -122,7 +122,7 @@
<bean:message key="entitlementorgs.total_orguse"/>:
</label>
<div class="col-lg-6">
- <div class="well well-sm">
+ <div class="text">
<bean:message key="entitlementorgs.total_orgusedata"
arg0="${alloc}" arg1="${orgsnum}" arg2="${ratio}"/>
</div>
commit c08684eeba33bf67f4b394481e99c227c28d21a0
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 15:33:12 2014 +0100
fixed org configuration page alignment
diff --git a/java/code/webapp/WEB-INF/pages/admin/multiorg/configuration.jsp b/java/code/webapp/WEB-INF/pages/admin/multiorg/configuration.jsp
index ade2c98..d8a1ce4 100644
--- a/java/code/webapp/WEB-INF/pages/admin/multiorg/configuration.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/multiorg/configuration.jsp
@@ -60,20 +60,25 @@ function modifyUploadCheckbox(checkbox) {
<rhn:submitted/>
<input type="hidden" name="oid" value="${param.oid}"/>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label>
+ <label class="col-lg-3 control-label">
+ <bean:message key="org-config.staging-content.jsp"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<input type="checkbox" name="staging_content_enabled"
value="enabled" id="staging_content_enabled"
<c:if test = "${org.orgConfig.stagingContentEnabled}">
checked="checked"
</c:if>/>
- <bean:message key="org-config.staging-content.jsp"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label>
+ <label class="col-lg-3 control-label">
+ <bean:message key="org-config.crash-reporting.jsp"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<input type="checkbox"
name="crash_reporting_enabled"
value="enabled"
@@ -82,13 +87,15 @@ function modifyUploadCheckbox(checkbox) {
<c:if test = "${org.orgConfig.crashReportingEnabled}">
checked="checked"
</c:if>/>
- <bean:message key="org-config.crash-reporting.jsp"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label>
+ <label class="col-lg-3 control-label">
+ <bean:message key="org-config.crashfile-upload.jsp"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<input type="checkbox"
name="crashfile_upload_enabled"
value="enabled"
@@ -99,8 +106,7 @@ function modifyUploadCheckbox(checkbox) {
<c:if test = "${org.orgConfig.crashfileUploadEnabled}">
checked="checked"
</c:if>/>
- <bean:message key="org-config.crashfile-upload.jsp"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
@@ -116,8 +122,11 @@ function modifyUploadCheckbox(checkbox) {
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label>
+ <label class="col-lg-3 control-label">
+ <bean:message key="org-config.scapfile-upload.jsp"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<input type="checkbox"
name="scapfile_upload_enabled"
value="enabled"
@@ -125,8 +134,7 @@ function modifyUploadCheckbox(checkbox) {
<c:if test = "${org.orgConfig.scapfileUploadEnabled}">
checked="checked"
</c:if>/>
- <bean:message key="org-config.scapfile-upload.jsp"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
@@ -142,8 +150,11 @@ function modifyUploadCheckbox(checkbox) {
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label>
+ <label class="col-lg-3 control-label">
+ <bean:message key="org-config.scap-retention"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<input type="checkbox"
name="scap_retention_set"
value="on"
@@ -152,8 +163,7 @@ function modifyUploadCheckbox(checkbox) {
<c:if test = "${org.orgConfig.scapRetentionPeriodDays != null}">
checked="checked"
</c:if>/>
- <bean:message key="org-config.scap-retention"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
commit a77a50d4f88d7576619eccf15199615bf2c5e295
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 15:22:24 2014 +0100
fixed suite / detail probe page alignment
diff --git a/java/code/webapp/WEB-INF/pages/admin/monitoring/config/probe-edit.jsp b/java/code/webapp/WEB-INF/pages/admin/monitoring/config/probe-edit.jsp
index 0366746..4457f45 100644
--- a/java/code/webapp/WEB-INF/pages/admin/monitoring/config/probe-edit.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/monitoring/config/probe-edit.jsp
@@ -39,14 +39,14 @@
<label class="col-lg-3 control-label">
<bean:message key="probeedit.jsp.probecommand" />
</label>
- <div class="col-lg-6">${probe.command.description}</div>
+ <div class="col-lg-6 text">${probe.command.description}</div>
</div>
<c:if test='${not empty probe.command.systemRequirements}'>
<div class="form-group">
<label class="col-lg-3 control-label">
<bean:message key="probeedit.jsp.commandrequirements" />
</label>
- <div class="col-lg-6">
+ <div class="col-lg-6 text">
<bean:message key="${probe.command.systemRequirements}"/>
</div>
</div>
@@ -56,7 +56,7 @@
<label class="col-lg-3 control-label">
<bean:message key="probeedit.jsp.versionsupport" />
</label>
- <div class="col-lg-6">${probe.command.versionSupport}</div>
+ <div class="col-lg-6 text">${probe.command.versionSupport}</div>
</div>
</c:if>
<div class="form-group">
@@ -76,9 +76,11 @@
<bean:message key="probeedit.jsp.notification" />
</label>
<div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox onclick="refreshNotifFields()"
property="notification"
styleId="notification"/>
+ </div>
</div>
</div>
<div class="form-group">
10 years, 2 months
java/code
by mkollar
java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf | 104 +++++-----
java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp | 2
2 files changed, 57 insertions(+), 49 deletions(-)
New commits:
commit 9fde26e397ae2131c20f73b9884fe9bc4f11d3fd
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Wed Feb 5 16:22:09 2014 +0100
Generalized code so it can be used both with and without selectable column
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf b/java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf
index 460b1b0..0217b07 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf
@@ -6,60 +6,66 @@
<rl:list name="errataList" styleclass="list"
emptykey="erratalist.jsp.norelevanterrata" alphabarcolumn="advisorySynopsis">
- <rl:decorator name="ElaborationDecorator"/>
- <rl:decorator name="PageSizeDecorator"/>
+ <rl:decorator name="ElaborationDecorator" />
+ <rl:decorator name="PageSizeDecorator" />
- <rl:column headerkey="erratalist.jsp.type" styleclass="text-align: center;" bound="false">
- <c:if test="${current.securityAdvisory}">
- <rhn:icon type="errata-security" />
- </c:if>
- <c:if test="${current.bugFix}">
- <rhn:icon type="errata-bugfix" />
- </c:if>
- <c:if test="${current.productEnhancement}">
- <rhn:icon type="errata-enhance" />
- </c:if>
- </rl:column>
+ <c:if test="${empty notSelectable}">
+ <rl:decorator name="SelectableDecorator" />
+ <rl:selectablecolumn value="${current.id}" selected="${current.selected}"
+ disabled="${not current.selectable}" styleclass="first-column" />
+ </c:if>
- <rl:column headerkey="erratalist.jsp.advisory" bound="false" sortattr="advisoryName" sortable="true">
- <a href="/rhn/errata/details/Details.do?eid=${current.id}">${current.advisoryName}</a>
- </rl:column>
+ <rl:column headerkey="erratalist.jsp.type" styleclass="text-align: center;" bound="false">
+ <c:if test="${current.securityAdvisory}">
+ <rhn:icon type="errata-security" />
+ </c:if>
+ <c:if test="${current.bugFix}">
+ <rhn:icon type="errata-bugfix" />
+ </c:if>
+ <c:if test="${current.productEnhancement}">
+ <rhn:icon type="errata-enhance" />
+ </c:if>
+ </rl:column>
- <rl:column headerkey="erratalist.jsp.synopsis" bound="false" sortattr="advisorySynopsis"
- sortable="true" filterattr="advisorySynopsis">
- ${current.advisorySynopsis}
- </rl:column>
+ <rl:column headerkey="erratalist.jsp.advisory" bound="false" sortattr="advisoryName" sortable="true">
+ <a href="/rhn/errata/details/Details.do?eid=${current.id}">${current.advisoryName}</a>
+ </rl:column>
- <rl:column headerkey="errata.jsp.status" bound="false" sortattr="currentStatusAndActionId[0]" sortable="true">
- <c:if test="${not empty current.status}">
- <c:if test="${current.currentStatusAndActionId[0] == 'Queued'}">
- <a href="/rhn/schedule/ActionDetails.do?aid=${current.currentStatusAndActionId[1]}">
- <bean:message key="affectedsystems.jsp.pending"/>
- </a>
- </c:if>
- <c:if test="${current.currentStatusAndActionId[0] == 'Failed'}">
- <a href="/network/systems/details/history/event.pxt?sid=${param.sid}&hid=${current.currentStatusAndActionId[1]}">
- <bean:message key="actions.jsp.failed"/>
- </a>
- </c:if>
- <c:if test="${current.currentStatusAndActionId[0] == 'Picked Up'}">
- <a href="/network/systems/details/history/event.pxt?sid=${param.sid}&hid=${current.currentStatusAndActionId[1]}">
- <bean:message key="actions.jsp.pickedup"/>
- </a>
- </c:if>
- </c:if>
- <c:if test="${empty current.status}">
- <bean:message key="affectedsystems.jsp.none"/>
- </c:if>
- </rl:column>
+ <rl:column headerkey="erratalist.jsp.synopsis" bound="false" sortattr="advisorySynopsis"
+ sortable="true" filterattr="advisorySynopsis">
+ ${current.advisorySynopsis}
+ </rl:column>
- <rl:column headerkey="errata.jsp.affected" bound="false" sortattr="affectedSystemCount" sortable="true">
- <a href="/rhn/systems/ssm/ErrataSystemsAffected.do?eid=${current.id}">${current.affectedSystemCount}</a>
- </rl:column>
+ <rl:column headerkey="errata.jsp.status" bound="false" sortattr="currentStatusAndActionId[0]" sortable="true">
+ <c:if test="${not empty current.status}">
+ <c:if test="${current.currentStatusAndActionId[0] == 'Queued'}">
+ <a href="/rhn/schedule/ActionDetails.do?aid=${current.currentStatusAndActionId[1]}">
+ <bean:message key="affectedsystems.jsp.pending" />
+ </a>
+ </c:if>
+ <c:if test="${current.currentStatusAndActionId[0] == 'Failed'}">
+ <a href="/network/systems/details/history/event.pxt?sid=${param.sid}&hid=${current.currentStatusAndActionId[1]}">
+ <bean:message key="actions.jsp.failed" />
+ </a>
+ </c:if>
+ <c:if test="${current.currentStatusAndActionId[0] == 'Picked Up'}">
+ <a href="/network/systems/details/history/event.pxt?sid=${param.sid}&hid=${current.currentStatusAndActionId[1]}">
+ <bean:message key="actions.jsp.pickedup" />
+ </a>
+ </c:if>
+ </c:if>
+ <c:if test="${empty current.status}">
+ <bean:message key="affectedsystems.jsp.none" />
+ </c:if>
+ </rl:column>
- <rl:column headerkey="erratalist.jsp.updated" bound="false" sortattr="updateDateObj"
- sortable="true" defaultsort="desc" styleclass="last-column">
- ${current.updateDate}
- </rl:column>
+ <rl:column headerkey="errata.jsp.affected" bound="false" sortattr="affectedSystemCount" sortable="true">
+ <a href="/rhn/systems/ssm/ErrataSystemsAffected.do?eid=${current.id}">${current.affectedSystemCount}</a>
+ </rl:column>
+
+ <rl:column headerkey="erratalist.jsp.updated" bound="false" sortattr="updateDateObj"
+ sortable="true" defaultsort="desc" styleclass="last-column">
+ ${current.updateDate}
+ </rl:column>
</rl:list>
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp
index 5793e66..9fc24f7 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp
@@ -14,6 +14,8 @@
<rl:listset name="errataSet" legend="errata">
<rhn:csrf />
<rhn:submitted />
+
+<c:set var="notSelectable" value="True" />
<%@ include file="/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf" %>
<table class="details" align="center">
10 years, 2 months
Branch 'master-bootstrap-css-fixes' - 116 commits - backend/satellite_tools backend/spacewalk-backend.spec branding/css branding/spacewalk-branding.spec branding/templates client/rhel java/code java/spacewalk-java.spec rel-eng/comps rel-eng/packages schema/spacewalk spacewalk/setup utils/cloneByDate.py utils/spacewalk-clone-by-date utils/spacewalk-clone-by-date.sgml utils/spacewalk-utils.spec web/html web/spacewalk-web.spec
by Silvio Moioli
backend/satellite_tools/spacewalk-remove-channel | 87 ++-
backend/satellite_tools/spacewalk-remove-channel.sgml | 12
backend/spacewalk-backend.spec | 11
branding/css/spacewalk-fixes.less | 8
branding/css/spacewalk-tables.less | 43 +
branding/css/spacewalk-theme.less | 60 --
branding/spacewalk-branding.spec | 19
branding/templates/footer.pxt | 2
client/rhel/rhn-client-tools/data/Makefile | 2
client/rhel/yum-rhn-plugin/yum-rhn-plugin.spec | 6
java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml | 42 +
java/code/src/com/redhat/rhn/domain/common/SatConfigFactory.java | 35 +
java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml | 38 +
java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.java | 113 ++++
java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java | 62 ++
java/code/src/com/redhat/rhn/domain/rhnpackage/Package_satellite.hbm.xml | 2
java/code/src/com/redhat/rhn/frontend/action/LoginAction.java | 87 ---
java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java | 263 ++++++++++
java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java | 108 ----
java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java | 33 -
java/code/src/com/redhat/rhn/frontend/action/groups/BaseListAction.java | 8
java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtAuthRoleMappingAction.java | 61 ++
java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtAuthenticationAction.java | 18
java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDeleteAction.java | 58 ++
java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDetailAction.java | 164 ++++++
java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java | 147 -----
java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListConfirmAction.java | 123 ++++
java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataSystemsAffectedListAction.java | 65 ++
java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java | 138 +----
java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java | 116 ++++
java/code/src/com/redhat/rhn/frontend/action/systems/SystemListHelper.java | 57 --
java/code/src/com/redhat/rhn/frontend/action/user/UserActionHelper.java | 3
java/code/src/com/redhat/rhn/frontend/action/user/UserEditActionHelper.java | 26
java/code/src/com/redhat/rhn/frontend/action/user/UserEditSetupAction.java | 4
java/code/src/com/redhat/rhn/frontend/action/user/validation/userDetailsForm.xsd | 12
java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java | 2
java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigFileTag.java | 2
java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml | 29 -
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_bn_IN.xml | 2
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_de.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml | 107 +++-
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_es.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_fr.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_gu.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_hi.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_it.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ja.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ko.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pa.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pt_BR.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ru.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ta.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_CN.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_TW.xml | 4
java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml | 6
java/code/src/com/redhat/rhn/frontend/struts/RequestContext.java | 18
java/code/src/com/redhat/rhn/frontend/struts/SelectableLabelValueBean.java | 81 +++
java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java | 47 +
java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java | 22
java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTagBase.java | 6
java/code/src/com/redhat/rhn/frontend/taglibs/ToolbarTag.java | 23
java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java | 8
java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java | 23
java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java | 13
java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/ExpansionDecorator.java | 3
java/code/src/com/redhat/rhn/frontend/taglibs/list/helper/Listable.java | 5
java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java | 99 +++
java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java | 22
java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java | 14
java/code/src/com/redhat/rhn/manager/user/CreateUserCommand.java | 24
java/code/src/com/redhat/rhn/manager/user/UpdateUserCommand.java | 31 +
java/code/src/com/redhat/rhn/manager/user/UserManager.java | 2
java/code/webapp/WEB-INF/nav/admin_user.xml | 10
java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml | 2
java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp | 36 -
java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp | 8
java/code/webapp/WEB-INF/pages/admin/config/general.jsp | 54 +-
java/code/webapp/WEB-INF/pages/admin/config/monitoring.jsp | 10
java/code/webapp/WEB-INF/pages/admin/multiorg/extauth.jsp | 63 +-
java/code/webapp/WEB-INF/pages/admin/multiorg/extauthroles.jsp | 52 +
java/code/webapp/WEB-INF/pages/admin/multiorg/extgroup_delete.jsp | 54 ++
java/code/webapp/WEB-INF/pages/admin/multiorg/extgroup_detail.jsp | 122 ++++
java/code/webapp/WEB-INF/pages/common/fragments/activationkeys/details.jspf | 27 -
java/code/webapp/WEB-INF/pages/common/fragments/kickstart/ipranges.jspf | 43 -
java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf | 8
java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf | 14
java/code/webapp/WEB-INF/pages/common/fragments/systems/system_listdisplay.jspf | 4
java/code/webapp/WEB-INF/pages/common/fragments/user/edit_user_table_rows.jspf | 4
java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/first.jsp | 147 ++---
java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/second.jsp | 54 +-
java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/third.jsp | 50 +
java/code/webapp/WEB-INF/pages/ssm/ssmindex.jsp | 1
java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf | 65 ++
java/code/webapp/WEB-INF/pages/ssm/systems/misc/lock-unlock-system.jsp | 5
java/code/webapp/WEB-INF/pages/ssm/systems/misc/reboot-system-confirm.jsp | 34 +
java/code/webapp/WEB-INF/pages/ssm/systems/misc/reboot-system.jsp | 27 -
java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp | 37 +
java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-systems-affected.jsp | 22
java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp | 55 --
java/code/webapp/WEB-INF/pages/systems/details/packages/extra-packages-list.jsp | 3
java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jsp | 2
java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jspf | 2
java/code/webapp/WEB-INF/pages/systems/probes/details.jsp | 61 +-
java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp | 27 -
java/code/webapp/WEB-INF/struts-config.xml | 115 ++++
java/spacewalk-java.spec | 73 ++
rel-eng/comps/comps-spacewalk-server-fedora17.xml | 1
rel-eng/comps/comps-spacewalk-server-fedora18.xml | 1
rel-eng/comps/comps-spacewalk-server-fedora19.xml | 1
rel-eng/comps/comps-spacewalk-server-fedora20.xml | 1
rel-eng/comps/comps-spacewalk-server-rhel5.xml | 1
rel-eng/comps/comps-spacewalk-server-rhel6.xml | 1
rel-eng/packages/spacewalk-backend | 2
rel-eng/packages/spacewalk-branding | 2
rel-eng/packages/spacewalk-java | 2
rel-eng/packages/spacewalk-schema | 2
rel-eng/packages/spacewalk-setup | 2
rel-eng/packages/spacewalk-utils | 2
rel-eng/packages/spacewalk-web | 2
schema/spacewalk/common/data/rhnConfiguration.sql | 3
schema/spacewalk/oracle/triggers/rhnUserExtGroupMapping.sql | 3
schema/spacewalk/postgres/triggers/rhnUserExtGroupMapping.sql | 5
schema/spacewalk/spacewalk-schema.spec | 9
schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/042-rhnConfiguration-data.sql | 3
schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.oracle | 3
schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.postgresql | 5
schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/047-rhnPackageKey-f20.sql | 6
spacewalk/setup/bin/spacewalk-setup-tomcat | 7
spacewalk/setup/share/tomcat.1 | 2
spacewalk/setup/share/tomcat.java_opts.rhel5 | 1
spacewalk/setup/share/tomcat.java_opts.rhel6 | 1
spacewalk/setup/spacewalk-setup.spec | 14
utils/cloneByDate.py | 26
utils/spacewalk-clone-by-date | 4
utils/spacewalk-clone-by-date.sgml | 12
utils/spacewalk-utils.spec | 8
web/html/javascript/spacewalk-pwstrength-handler.js | 33 -
web/spacewalk-web.spec | 8
138 files changed, 3083 insertions(+), 1059 deletions(-)
New commits:
commit e6f14aa3961a636da4a86e8126d83f982377eba8
Merge: 07e7b54 dd2a83e
Author: Silvio Moioli <smoioli(a)suse.de>
Date: Wed Feb 5 16:07:53 2014 +0100
Merge branch 'master' into master-bootstrap-css-fixes
commit dd2a83ecf1ba8e980f29cbd0284ab161c3a2da0f
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 14:10:15 2014 +0100
fixed detail probe page alignment
diff --git a/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp b/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
index 5b62f7b..02829a1 100644
--- a/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
@@ -41,34 +41,34 @@
method="get">
<div class="form-group">
- <label class="col-lg-3 text-right">
+ <label class="col-lg-3 control-label">
<bean:message key="probedetails.jsp.probe" />
</label>
- <div class="col-lg-6">
+ <div class="col-lg-6 text">
${probe.description}
</div>
</div>
<div class="form-group">
- <label class="col-lg-3 text-right">
+ <label class="col-lg-3 control-label">
<bean:message key="probeedit.jsp.satclusterdesc" />
</label>
- <div class="col-lg-6">
+ <div class="col-lg-6 text">
${probe.satCluster.description}
</div>
</div>
<div class="form-group">
- <label class="col-lg-3 text-right">
+ <label class="col-lg-3 control-label">
<bean:message key="probedetails.jsp.status" />
</label>
- <div class="col-lg-6">
+ <div class="col-lg-6 text">
<span class=${status_class}>${status}</span>
</div>
</div>
<div class="form-group">
- <label class="col-lg-3 text-right">
+ <label class="col-lg-3 control-label">
<bean:message key="probedetails.jsp.last_update" />
</label>
- <div class="col-lg-6">
+ <div class="col-lg-6 text">
<fmt:formatDate value="${probe.state.lastCheck}" type="both" dateStyle="short" timeStyle="long"/>
</div>
</div>
commit aa18a436ec205731ab0f2f5be3b7145d0787280e
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 14:01:10 2014 +0100
fixed create probe page aligning
diff --git a/branding/css/spacewalk-fixes.less b/branding/css/spacewalk-fixes.less
index 5f2e885..d65e452 100644
--- a/branding/css/spacewalk-fixes.less
+++ b/branding/css/spacewalk-fixes.less
@@ -5,4 +5,10 @@
margin-right: 0;
margin-left: 0;
}
-}
\ No newline at end of file
+}
+
+.form-horizontal .text {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px;
+}
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf b/java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf
index 6197d99..c31b16f 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf
@@ -68,7 +68,9 @@ function refreshNotifFields() {
<bean:message key="probeedit.jsp.commandrequirements" />
</label>
<div class="col-lg-6">
+ <div class="text">
<bean:message key="${command.systemRequirements}"/>
+ </div>
</div>
</div>
</c:if>
@@ -78,7 +80,9 @@ function refreshNotifFields() {
<label class="col-lg-3 control-label">
<bean:message key="probeedit.jsp.versionsupport" />
</label>
- <div class="col-lg-6">${command.versionSupport}</div>
+ <div class="col-lg-6">
+ <div class="text">${command.versionSupport}</div>
+ </div>
</div>
</c:if>
@@ -96,7 +100,9 @@ function refreshNotifFields() {
<bean:message key="probeedit.jsp.notification" />
</label>
<div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox onclick="refreshNotifFields()" property="notification" styleId="notif"/>
+ </div>
</div>
</div>
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf b/java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf
index a63ebfc..eba0d79 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf
@@ -4,15 +4,21 @@
<div class="form-group">
<label class="col-lg-3 control-label">
<c:if test="${not empty field.label}">
- <bean:message key="${field.label}" />
- <c:if test="${field.mandatory}"><span class="required-form-field">*</span></c:if>:
+ <c:choose>
+ <c:when test="${field.mandatory}">
+ <rhn:required-field key="${field.label}"/>:
+ </c:when>
+ <c:otherwise>
+ <bean:message key="${field.label}" />
+ </c:otherwise>
+ </c:choose>
</c:if>
</label>
<c:choose>
<c:when test="${empty field.threshold}">
</c:when>
<c:otherwise>
- <div class="col-lg-2"><bean:message key="${field.threshold}"/></div>
+ <div class="col-lg-2 text"><bean:message key="${field.threshold}"/></div>
</c:otherwise>
</c:choose>
<c:choose>
@@ -37,7 +43,7 @@
</c:when>
</c:choose>
<c:if test="${not empty field.unit}">
- <label class="col-lg-2"><bean:message key="${field.unit}"/></label>
+ <span class="col-lg-2 text"><bean:message key="${field.unit}"/></span>
</c:if>
</div>
</c:forEach>
commit d1c932658a9bf85f8c3a0a9d1ecd88ac1a0b620b
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 14:00:08 2014 +0100
required field marker used to be red
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index 4935e58..82f2902 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -714,3 +714,9 @@ ul.nav.nav-tabs:last-child {
display: none;
}
+/* required field marker */
+.required-form-field {
+ font-weight: bold;
+ color: #c00;
+
+}
commit 3f34bb9d1d472a34237f1a64c1c53bc0a151a0e0
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 10:15:40 2014 +0100
password meter needs pwstrength-bootstrap
diff --git a/branding/spacewalk-branding.spec b/branding/spacewalk-branding.spec
index d3fab4d..c3f8ed6 100644
--- a/branding/spacewalk-branding.spec
+++ b/branding/spacewalk-branding.spec
@@ -27,6 +27,7 @@ Requires: httpd
Requires: bootstrap <= 3.0.0
Requires: font-awesome >= 4.0.0
Requires: roboto >= 1.2
+Requires: pwstrength-bootstrap
%description
Spacewalk specific branding, CSS, and images.
commit c09f0afc753435684362a88fc41d00272767e3d7
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 09:58:10 2014 +0100
unify cobbler page with other tabs
diff --git a/java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp b/java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp
index 7f13047..3b9b57f 100644
--- a/java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp
@@ -25,11 +25,11 @@
</div>
<div class="panel-body">
<form action="/rhn/admin/config/Cobbler.do" method="POST">
- <div class="row">
- <div class="col-md-2 text-right">
+ <div class="form-group">
+ <label class="col-lg-3 control-label">
<bean:message key="cobbler.jsp.sync"/>
- </div>
- <div class="col-md-10">
+ </label>
+ <div class="col-lg-6">
<input type="submit" class="btn btn-default" name="cobbler_sync" value="${rhn:localize('update')}" />
<rhn:csrf />
<rhn:submitted/>
commit 687420345840c74b5e366814d8040ecd749f7159
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 09:35:55 2014 +0100
moved labels back
diff --git a/java/code/webapp/WEB-INF/pages/admin/config/general.jsp b/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
index 2e23f29..b17f7d4 100644
--- a/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
@@ -90,35 +90,43 @@
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label for="ssl_available">
+ <label class="col-lg-3 control-label" for="web|ssl_available">
+ <bean:message key="general.jsp.defaultTo_ssl"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox property="web|ssl_available" styleId="ssl_available" />
- <bean:message key="general.jsp.defaultTo_ssl"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label for="solaris">
+ <label class="col-lg-3 control-label" for="web|enable_solaris_support">
+ <bean:message key="general.jsp.solaris"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox property="web|enable_solaris_support" styleId="solaris" />
- <bean:message key="general.jsp.solaris"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label for="disconnected">
+ <label class="col-lg-3 control-label" for="disconnected">
+ <bean:message key="general.jsp.disconnected"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox property="disconnected" styleId="disconnected" />
- <bean:message key="general.jsp.disconnected"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label for="is_monitoring_backend">
+ <label class="col-lg-3 control-label" for="web|is_monitoring_backend">
+ <bean:message key="general.jsp.monitoring_backend"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox property="web|is_monitoring_backend" styleId="is_monitoring_backend" />
- <bean:message key="general.jsp.monitoring_backend"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
commit aa3b948a2c6497617afb1dfc0fb7b39cf066b70a
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 09:47:02 2014 +0100
removed colons to unify page with other tabs
diff --git a/java/code/webapp/WEB-INF/pages/admin/config/general.jsp b/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
index 2532a86..2e23f29 100644
--- a/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
@@ -21,7 +21,7 @@
<rhn:csrf />
<div class="form-group">
<label for="admin_email" class="col-lg-3 control-label">
- <rhn:required-field key="general.jsp.admin_email"/>:
+ <rhn:required-field key="general.jsp.admin_email"/>
</label>
<div class="col-lg-6">
<html:text property="traceback_mail"
@@ -31,7 +31,7 @@
</div>
<div class="form-group">
<label for="hostname" class="col-lg-3 control-label">
- <rhn:required-field key="general.jsp.hostname"/>:
+ <rhn:required-field key="general.jsp.hostname"/>
</label>
<div class="col-lg-6">
<html:text property="server|jabber_server"
@@ -41,7 +41,7 @@
</div>
<div class="form-group">
<label for="proxy" class="col-lg-3 control-label">
- <bean:message key="general.jsp.proxy"/>:
+ <bean:message key="general.jsp.proxy"/>
</label>
<div class="col-lg-6">
<html:text property="server|satellite|http_proxy"
@@ -51,7 +51,7 @@
</div>
<div class="form-group">
<label for="proxy_user" class="col-lg-3 control-label">
- <bean:message key="general.jsp.proxy_username"/>:
+ <bean:message key="general.jsp.proxy_username"/>
</label>
<div class="col-lg-6">
<html:text property="server|satellite|http_proxy_username"
@@ -61,7 +61,7 @@
</div>
<div class="form-group">
<label for="proxy_password" class="col-lg-3 control-label">
- <bean:message key="general.jsp.proxy_password"/>:
+ <bean:message key="general.jsp.proxy_password"/>
</label>
<div class="col-lg-6">
<html:password property="server|satellite|http_proxy_password"
@@ -71,7 +71,7 @@
</div>
<div class="form-group">
<label for="proxy_password_confirm" class="col-lg-3 control-label">
- <bean:message key="general.jsp.proxy_password_confirm"/>:
+ <bean:message key="general.jsp.proxy_password_confirm"/>
</label>
<div class="col-lg-6">
<html:password property="server|satellite|http_proxy_password_confirm"
@@ -81,7 +81,7 @@
</div>
<div class="form-group">
<label for="mount_point" class="col-lg-3 control-label">
- <bean:message key="general.jsp.mount_point"/>:
+ <bean:message key="general.jsp.mount_point"/>
</label>
<div class="col-lg-6">
<html:text property="mount_point" size="32"
commit 67e36f40bc8fe9d3ba0c0e9843c663311d46d946
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 09:35:55 2014 +0100
moved labels back
diff --git a/java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp b/java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp
index da55096..78c1a9e 100644
--- a/java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp
@@ -21,7 +21,7 @@
<rhn:csrf />
<div class="form-group">
<label for="hostname" class="col-lg-3 control-label">
- <rhn:required-field key="bootstrap.jsp.hostname"/>:
+ <rhn:required-field key="bootstrap.jsp.hostname"/>
</label>
<div class="col-lg-6">
<html:text size="32" property="hostname" styleId="hostname" styleClass="form-control" />
@@ -29,49 +29,49 @@
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="ssl-cert">
- <rhn:required-field key="bootstrap.jsp.ssl-cert"/>:
+ <rhn:required-field key="bootstrap.jsp.ssl-cert"/>
</label>
<div class="col-lg-6">
<html:text size="32" property="ssl-cert" styleId="ssl-cert" styleClass="form-control" />
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label" for="ssl">
+ <bean:message key="bootstrap.jsp.ssl"/>
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <label>
<html:checkbox property="ssl" styleId="ssl" />
- <bean:message key="bootstrap.jsp.ssl"/>
- </label>
</div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label" for="gpg">
+ <bean:message key="bootstrap.jsp.gpg"/>
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <label>
<html:checkbox property="gpg" styleId="gpg" />
- <bean:message key="bootstrap.jsp.gpg"/>
- </label>
</div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label" for="allow-config-actions">
+ <bean:message key="bootstrap.jsp.allow-config-actions"/>
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <label>
<html:checkbox property="allow-config-actions" styleId="allow-config-actions"/>
- <bean:message key="bootstrap.jsp.allow-config-actions"/>
- </label>
</div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label" for="allow-remote-commands">
+ <bean:message key="bootstrap.jsp.allow-remote-commands"/>
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <label>
<html:checkbox property="allow-remote-commands" styleId="allow-remote-commands" />
- <bean:message key="bootstrap.jsp.allow-remote-commands"/>
- </label>
</div>
</div>
</div>
commit 39d33b026e6dec0b33fbe0204c62b66d6dcfc807
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Feb 5 14:48:59 2014 +0100
use already defined class
diff --git a/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp b/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
index 8c88288..ecbd3dd 100644
--- a/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
@@ -107,7 +107,7 @@
</c:if>
</c:if>
<div class="form-group">
- <html:submit property="dispatch" styleClass="form-horizontal float-right">
+ <html:submit property="dispatch" styleClass="form-horizontal pull-right">
<bean:message key="sdc.channels.edit.update_sub"/>
</html:submit>
</div>
@@ -165,7 +165,7 @@
<bean:message key="sdc.channels.edit.fastrackBetaWarning"/>
</span>
</div>
- <html:submit property="dispatch" styleClass="btn btn-success float-right">
+ <html:submit property="dispatch" styleClass="btn btn-success pull-right">
<bean:message key="sdc.channels.edit.confirm_update_base"/>
</html:submit>
</rhn:require>
commit 5850113adbd573077e4e2326d736176a9780b2f4
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Feb 5 14:47:58 2014 +0100
Revert "add style for displaying buttons on right"
This reverts commit d2e845fc14618436e22004f7561395fb781a2938.
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index fb9b21b..4935e58 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -714,6 +714,3 @@ ul.nav.nav-tabs:last-child {
display: none;
}
-.float-right {
- float: right;
-}
commit d2e845fc14618436e22004f7561395fb781a2938
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Feb 5 13:50:40 2014 +0100
add style for displaying buttons on right
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index 4935e58..fb9b21b 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -714,3 +714,6 @@ ul.nav.nav-tabs:last-child {
display: none;
}
+.float-right {
+ float: right;
+}
commit b8469267d50096d7d2133094024ee25ccc4894ba
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Feb 5 10:35:00 2014 +0100
de-uglify system - software channels page
diff --git a/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp b/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
index 8a981f1..8c88288 100644
--- a/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
@@ -18,19 +18,16 @@
<c:choose>
<c:when test="${system.baseChannel == null}">
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
<div class="alert alert-warning">
<bean:message key="sdc.channels.edit.nobasechannel"/>
</div>
- </div>
</div>
</c:when>
<c:otherwise>
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
<ul class="list-group">
<li class="list-group-item">
- <a class="btn btn-info" href="/rhn/channels/ChannelDetail.do?cid=${system.baseChannel.id}">${system.baseChannel.name}</a>
+ <a href="/rhn/channels/ChannelDetail.do?cid=${system.baseChannel.id}">${system.baseChannel.name}</a>
<ul>
<c:forEach items="${avail_child_channels}" var="channel">
<c:choose>
@@ -48,7 +45,7 @@
<c:if test="${not channel.subscribed}">
<input ${disabledChannel} name="child_channel" value="${channel.id}" type="checkbox" id="unchecked">
</c:if>
- <a class="btn btn-info" href="/rhn/channels/ChannelDetail.do?cid=${channel.id}">${channel.name}</a>
+ <a href="/rhn/channels/ChannelDetail.do?cid=${channel.id}">${channel.name}</a>
<c:if test="${system.virtualGuest}">
<c:if test="${not channel.freeForGuests}">
<span class="asterisk">* </span>
@@ -86,40 +83,33 @@
</ul>
</li>
</ul>
- </div>
</div>
</c:otherwise>
</c:choose>
<c:if test="${pageScope.display_asterisk}">
<c:if test="${not empty system.virtualInstance.hostSystem.id}">
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
- <span class="asterisk">* </span>
<span class="help-block">
+ <span class="asterisk">* </span>
<bean:message key="sdc.channels.edit.virtsubwarning"
arg0="${system.virtualInstance.hostSystem.id}"
arg1="${system.virtualInstance.hostSystem.name}"/>
</span>
- </div>
</div>
</c:if>
<c:if test="${empty system.virtualInstance.hostSystem.id}">
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
- <span class="asterisk">* </span>
<span class="help-block">
+ <span class="asterisk">* </span>
<bean:message key="sdc.channels.edit.virtsubwarning_nohost"/>
</span>
- </div>
</div>
</c:if>
</c:if>
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
- <html:submit property="dispatch" styleClass="form-horizontal">
+ <html:submit property="dispatch" styleClass="form-horizontal float-right">
<bean:message key="sdc.channels.edit.update_sub"/>
</html:submit>
- </div>
</div>
<rhn:require acl="not system_is_proxy(); not system_is_satellite()" mixins="com.redhat.rhn.common.security.acl.SystemAclHandler">
@@ -168,15 +158,16 @@
</optgroup>
</c:if>
</select>
+ </div>
+ </div>
+ <div class="form-group">
<span class="help-block">
<bean:message key="sdc.channels.edit.fastrackBetaWarning"/>
</span>
</div>
- <div class="col-md-offset-3 col-md-6">
- <html:submit property="dispatch" styleClass="btn btn-success">
+ <html:submit property="dispatch" styleClass="btn btn-success float-right">
<bean:message key="sdc.channels.edit.confirm_update_base"/>
</html:submit>
- </div>
</rhn:require>
</html:form>
</body>
commit 3275714f3c93b9aa0388e8859b62c390d589dde4
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Wed Feb 5 13:37:28 2014 +0100
Use generified Listable
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java
index 31b1722..ddc0a29 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java
@@ -43,7 +43,7 @@ import com.redhat.rhn.manager.system.SystemManager;
*/
public class RebootSystemAction
extends RhnListAction
- implements Listable {
+ implements Listable<SystemOverview> {
/** {@inheritDoc} */
@Override
@@ -87,8 +87,7 @@ public class RebootSystemAction
* @param context Request context.
* @return List of SystemOverview objects.
*/
- @SuppressWarnings("rawtypes")
- public List getResult(RequestContext context) {
+ public List<SystemOverview> getResult(RequestContext context) {
List<SystemOverview> systems = SystemManager.inSet(context.getCurrentUser(),
RhnSetDecl.SYSTEMS.getLabel());
for (SystemOverview systemOverview : systems) {
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java
index 141f74d..39bdb3e 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java
@@ -30,6 +30,7 @@ import com.redhat.rhn.common.localization.LocalizationService;
import com.redhat.rhn.common.messaging.MessageQueue;
import com.redhat.rhn.common.util.DatePicker;
import com.redhat.rhn.domain.rhnset.RhnSet;
+import com.redhat.rhn.frontend.dto.SystemOverview;
import com.redhat.rhn.frontend.events.SsmSystemRebootEvent;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.RhnAction;
@@ -43,7 +44,8 @@ import com.redhat.rhn.manager.system.SystemManager;
/**
* Confirm reboot of given systems
*/
-public class RebootSystemConfirmAction extends RhnAction implements Listable {
+public class RebootSystemConfirmAction extends RhnAction
+ implements Listable<SystemOverview> {
/** {@inheritDoc} */
@Override
@@ -107,8 +109,7 @@ public class RebootSystemConfirmAction extends RhnAction implements Listable {
}
/** {@inheritDoc} */
- @SuppressWarnings("rawtypes")
- public List getResult(RequestContext context) {
+ public List<SystemOverview> getResult(RequestContext context) {
return SystemManager.inSet(context.getCurrentUser(),
getSetDecl().getLabel());
}
commit 8b019bbcb7bcd4295b153127a3428e436fe9c8c8
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Wed Feb 5 11:46:24 2014 +0100
Use generified Listable
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListConfirmAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListConfirmAction.java
index 5c35fbb..09ed82f 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListConfirmAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListConfirmAction.java
@@ -32,6 +32,7 @@ import com.redhat.rhn.common.util.DatePicker;
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.action.SetLabels;
+import com.redhat.rhn.frontend.dto.ErrataOverview;
import com.redhat.rhn.frontend.dto.SystemOverview;
import com.redhat.rhn.frontend.events.SsmErrataEvent;
import com.redhat.rhn.frontend.struts.RequestContext;
@@ -48,7 +49,7 @@ import com.redhat.rhn.manager.system.SystemManager;
* Confirm application of errata to systems in SSM.
*/
public class ErrataListConfirmAction extends RhnAction implements
- Listable {
+ Listable<ErrataOverview> {
/** {@inheritDoc} */
@Override
public ActionForward execute(ActionMapping mapping,
@@ -115,7 +116,7 @@ public class ErrataListConfirmAction extends RhnAction implements
}
/** {@inheritDoc} */
- public List getResult(RequestContext context) {
+ public List<ErrataOverview> getResult(RequestContext context) {
return ErrataManager.lookupErrataListFromSet(context.getCurrentUser(),
getSetDecl().getLabel());
}
commit 553bfa5340ab374c45c34539196b5e3ed7e261c7
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Wed Feb 5 11:43:51 2014 +0100
Generification of Listable
* List is Generic
* We usually list type-uniform data anyway.
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/helper/Listable.java b/java/code/src/com/redhat/rhn/frontend/taglibs/list/helper/Listable.java
index ebee3da..7f3e8d3 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/helper/Listable.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/helper/Listable.java
@@ -26,8 +26,9 @@ import java.util.List;
* <p/>
* See the Spacewalk wiki for more information on how to work with ListTag 3.0.
* @version $Rev$
+ * @param <T> Type of objects to be listed.
*/
-public interface Listable {
+public interface Listable<T> {
/**
* Returns the data to display on the web page.
@@ -36,5 +37,5 @@ public interface Listable {
* @return a List of {@link com.redhat.rhn.frontend.struts.Selectable} or
* {@link com.redhat.rhn.domain.Identifiable} objects.
*/
- List getResult(RequestContext context);
+ List<T> getResult(RequestContext context);
}
commit 94b27cdaa25f50b863164c9db2159521d9b884c6
Author: Stephen Herr <sherr(a)redhat.com>
Date: Tue Feb 4 16:15:55 2014 -0500
Automatic commit of package [spacewalk-java] release [2.1.144-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 0660015..5553af4 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.143
+Version: 2.1.144
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,21 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Tue Feb 04 2014 Stephen Herr <sherr(a)redhat.com> 2.1.144-1
+- 1061425 - Improve package search performance
+- 1061425 - query performance improvement for package search
+- Fixed typo
+- Use prepared confirm page
+- Add confirmation page to ssm/ListPatches
+- Needed elaborable return of ErrataManager.lookupErrataListFromSet
+- Whitespace fix
+- Remove unnecessary code after extraction
+- Extracted "list systems in ssm related to errata" into separate action
+- Change misleading variable name
+- Extract actual handling of action into separate method
+- Use some idioms to improve code readability
+- Replace explicit iterator with enhanced for
+
* Tue Feb 04 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.143-1
- restored Monitoring Scout label
- removed unnecessary spacing and restored left side labels
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index 60eb858..fd3a36a 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.143-1 java/
+2.1.144-1 java/
commit 24ee3a62be4144e05b714eccd0f1e6b83dde9a56
Author: Stephen Herr <sherr(a)redhat.com>
Date: Tue Feb 4 16:15:44 2014 -0500
1061425 - Improve package search performance
diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java b/java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java
index 775bfa2..1a16714 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/channel/PackageSearchAction.java
@@ -44,8 +44,10 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -295,15 +297,10 @@ public class PackageSearchAction extends RhnAction {
private List<PackageOverview> removeDuplicateNames(List<PackageOverview> pkgs) {
List<PackageOverview> result = new ArrayList<PackageOverview>();
+ Set<String> addedNames = new HashSet<String>();
for (PackageOverview pkgOver : pkgs) {
- boolean addPkg = true;
- for (PackageOverview temp : result) {
- if (StringUtils.equals(temp.getPackageName(), pkgOver.getPackageName())) {
- addPkg = false;
- break;
- }
- }
- if (addPkg) {
+ if (!addedNames.contains(pkgOver.getPackageName())) {
+ addedNames.add(pkgOver.getPackageName());
result.add(pkgOver);
}
}
@@ -311,10 +308,10 @@ public class PackageSearchAction extends RhnAction {
}
/**
- * Since the search server does not carry channel information, we do any channel
- * filtering in the Java stack. This method will return a new list of packages that
- * containing packages that are present in the given channel; others returned from
- * the search will be removed.
+ * Since the search server does not carry channel information, we do any
+ * channel filtering in the Java stack. This method will return a new list
+ * containing packages that are present in the given channel; others
+ * returned from the search will be removed.
*
* @param user user making the request
* @param channelId channel against which the filter should be run
@@ -328,20 +325,16 @@ public class PackageSearchAction extends RhnAction {
Channel channel = ChannelManager.lookupByIdAndUser(channelId, user);
List<PackageDto> allPackagesList = ChannelManager.listAllPackages(channel);
- // Convert the package list into a map for quicker lookup
- Map<String, String> packageNamesMap =
- new HashMap<String, String>(allPackagesList.size());
-
+ // Convert the package list into a set for quicker lookup
+ Set<String> packageNameSet = new HashSet<String>();
for (PackageDto dto : allPackagesList) {
- String name = dto.getName();
- packageNamesMap.put(name, name);
+ packageNameSet.add(dto.getName());
}
// Iterate results and remove if not in the channel
List<PackageOverview> newResult = new ArrayList<PackageOverview>();
for (PackageOverview pkg : pkgs) {
- String packageName = pkg.getPackageName();
- if (packageNamesMap.get(packageName) != null) {
+ if (packageNameSet.contains(pkg.getPackageName())) {
newResult.add(pkg);
}
}
commit f480feb2469cdbb8d19c296db398dc5a98d6b18a
Author: Mark Huth <mhuth(a)redhat.com>
Date: Tue Feb 4 15:16:55 2014 -0500
1061425 - query performance improvement for package search
diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/Package_satellite.hbm.xml b/java/code/src/com/redhat/rhn/domain/rhnpackage/Package_satellite.hbm.xml
index 0f89165..1a4beb2 100644
--- a/java/code/src/com/redhat/rhn/domain/rhnpackage/Package_satellite.hbm.xml
+++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/Package_satellite.hbm.xml
@@ -215,8 +215,8 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
com.redhat.rhn.domain.channel.Channel as c,
com.redhat.rhn.domain.server.Server as s
where p.id IN (:pids)
+ and c IN elements (p.channels)
and c IN elements (s.channels)
- and p IN elements (c.packages)
]]>
</query>
commit fa2ec7a965e0ee73b993ccd1d92d0ce06ae23a15
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Tue Feb 4 16:39:30 2014 +0100
Fixed typo
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index c450751..3f5208c 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -5316,7 +5316,7 @@ value for this entitlement, excluding the default organization's consumption.</s
<source>The following errata apply to one or more of the systems in this group.</source>
</trans-unit>
<trans-unit id="systemgroup.errata-systems-affected.title">
- <source>Systems Addected By {0} - {1}</source>
+ <source>Systems Affected By {0} - {1}</source>
</trans-unit>
<trans-unit id="systemgroup.errata-systems-affected.summary">
<source>Below is a list of the systems in the {0} group which are affected by this erratum.</source>
commit 01ba4705a978a7d6a17edc30f7f057160e8e91ad
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Tue Feb 4 16:01:23 2014 +0100
Use prepared confirm page
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
index a671b32..89ea40a 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
@@ -15,25 +15,16 @@
package com.redhat.rhn.frontend.action.ssm;
-import com.redhat.rhn.common.localization.LocalizationService;
-import com.redhat.rhn.common.messaging.MessageQueue;
-import com.redhat.rhn.common.util.DatePicker;
import com.redhat.rhn.domain.rhnset.RhnSet;
-import com.redhat.rhn.domain.user.User;
-import com.redhat.rhn.frontend.action.SetLabels;
-import com.redhat.rhn.frontend.dto.SystemOverview;
-import com.redhat.rhn.frontend.events.SsmErrataEvent;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.RhnAction;
import com.redhat.rhn.frontend.struts.RhnHelper;
-import com.redhat.rhn.frontend.taglibs.list.helper.ListRhnSetHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListSessionSetHelper;
import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
import com.redhat.rhn.manager.errata.ErrataManager;
import com.redhat.rhn.manager.rhnset.RhnSetDecl;
-import com.redhat.rhn.manager.system.SystemManager;
+import com.redhat.rhn.manager.rhnset.RhnSetManager;
-import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -42,7 +33,6 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.DynaActionForm;
/**
*
@@ -69,65 +59,31 @@ public class ErrataListAction extends RhnAction implements Listable {
HttpServletResponse response)
throws Exception {
RequestContext requestContext = new RequestContext(request);
- DynaActionForm form = (DynaActionForm) actionForm;
- ListRhnSetHelper setHelper = this.bindDatasets(request);
+ ListSessionSetHelper helper = new ListSessionSetHelper(this, request);
+ helper.setListName(LIST_NAME);
+ helper.execute();
- if (setHelper.isDispatched()) {
- if (requestContext.wasDispatched("errata.jsp.apply")) {
- return handleConfirm(mapping, form, requestContext, setHelper, request);
- }
+ if (helper.isDispatched() && requestContext.wasDispatched("errata.jsp.apply")) {
+ return handleConfirm(mapping, requestContext, helper);
}
- getStrutsDelegate().prepopulateDatePicker(
- request, form, "date", DatePicker.YEAR_RANGE_POSITIVE);
- request.setAttribute("parentUrl", request.getRequestURI());
return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
}
private ActionForward handleConfirm(ActionMapping mapping,
- DynaActionForm form,
RequestContext context,
- ListRhnSetHelper helper,
- HttpServletRequest request) {
- User user = context.getLoggedInUser();
-
- List<SystemOverview> srv = SystemManager.inSet(user, SetLabels.SYSTEM_LIST);
- List<Long> serverIds = new ArrayList<Long>(srv.size());
- for (SystemOverview s : srv) {
- serverIds.add(s.getId());
+ ListSessionSetHelper helper) {
+ RhnSet set = getSetDecl().get(context.getCurrentUser());
+ set.clear();
+ for (String item : helper.getSet()) {
+ set.addElement(item);
}
-
- RhnSet erratas = helper.getSet();
- List<Long> errataIds = new ArrayList<Long>(erratas.size());
- errataIds.addAll(erratas.getElementValues());
-
- Date scheduleDate = this.getStrutsDelegate().readDatePicker(
- form, "date", DatePicker.YEAR_RANGE_POSITIVE);
-
- MessageQueue.publish(new SsmErrataEvent(
- user.getId(),
- scheduleDate,
- errataIds,
- serverIds)
- );
- createMessage(request, "ssm.errata.message.scheduled",
- new String[] {LocalizationService.getInstance().formatDate(
- scheduleDate, request.getLocale())});
+ RhnSetManager.store(set);
return mapping.findForward("confirm");
}
- private ListRhnSetHelper bindDatasets(HttpServletRequest request) {
- ListRhnSetHelper shlp = new ListRhnSetHelper(this,
- request, ErrataListAction.getSetDecl());
- shlp.setListName(LIST_NAME);
- shlp.setParentUrl(request.getRequestURI());
- shlp.execute();
-
- return shlp;
- }
-
/**
* @return Returns RhnSetDecl.ERRATA
*/
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
index 423f00c..b715fae 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
@@ -90,21 +90,6 @@
</rl:list>
- <div align="left">
- <!--
- <p><bean:message key="installconfirm.jsp.widgetsummary"/></p>
- -->
- <table class="details" align="center">
- <tr>
- <th><label for="radio_use_date_now"><bean:message key="scheduleremote.jsp.nosoonerthan"/></label></th>
- <td>
- <jsp:include page="/WEB-INF/pages/common/fragments/date-picker.jsp">
- <jsp:param name="widget" value="date"/>
- </jsp:include><br/>
- </td>
- </tr>
- </table>
- </div>
<div class="text-right">
<hr />
<html:submit property="dispatch">
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index 2fbb16e..f5da3e0 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -3667,7 +3667,8 @@
<forward name="default"
path="/WEB-INF/pages/ssm/systems/ssm-errata.jsp" />
<forward name="confirm"
- path="/WEB-INF/pages/ssm/ssmindex.jsp" />
+ path="/systems/ssm/ListPatchesConfirm.do"
+ redirect="true" />
</action>
<action path="/systems/ssm/ListPatchesConfirm"
commit d2cf00c137c7aa44be6bcf18c73b0827ef450004
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Tue Feb 4 15:41:22 2014 +0100
Add confirmation page to ssm/ListPatches
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListConfirmAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListConfirmAction.java
new file mode 100644
index 0000000..5c35fbb
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListConfirmAction.java
@@ -0,0 +1,122 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.action.ssm;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.DynaActionForm;
+
+import com.redhat.rhn.common.localization.LocalizationService;
+import com.redhat.rhn.common.messaging.MessageQueue;
+import com.redhat.rhn.common.util.DatePicker;
+import com.redhat.rhn.domain.rhnset.RhnSet;
+import com.redhat.rhn.domain.user.User;
+import com.redhat.rhn.frontend.action.SetLabels;
+import com.redhat.rhn.frontend.dto.SystemOverview;
+import com.redhat.rhn.frontend.events.SsmErrataEvent;
+import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.struts.RhnAction;
+import com.redhat.rhn.frontend.struts.RhnHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListRhnSetHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
+import com.redhat.rhn.manager.errata.ErrataManager;
+import com.redhat.rhn.manager.rhnset.RhnSetDecl;
+import com.redhat.rhn.manager.rhnset.RhnSetManager;
+import com.redhat.rhn.manager.system.SystemManager;
+
+/**
+ * Confirm application of errata to systems in SSM.
+ */
+public class ErrataListConfirmAction extends RhnAction implements
+ Listable {
+ /** {@inheritDoc} */
+ @Override
+ public ActionForward execute(ActionMapping mapping,
+ ActionForm formIn,
+ HttpServletRequest request,
+ HttpServletResponse response) {
+
+
+ ListRhnSetHelper helper = new ListRhnSetHelper(this, request, getSetDecl());
+ helper.setWillClearSet(false);
+ helper.setListName("errataList");
+ helper.execute();
+
+ if (helper.isDispatched()) {
+ return handleDispatch(mapping, (DynaActionForm) formIn, request);
+ }
+
+ getStrutsDelegate().prepopulateDatePicker(request,
+ (DynaActionForm) formIn, "date", DatePicker.YEAR_RANGE_POSITIVE);
+
+ return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
+ }
+
+ private ActionForward handleDispatch(
+ ActionMapping mapping,
+ DynaActionForm formIn,
+ HttpServletRequest request) {
+ RequestContext context = new RequestContext(request);
+ User user = context.getLoggedInUser();
+
+ Date earliest = getStrutsDelegate().readDatePicker(formIn,
+ "date", DatePicker.YEAR_RANGE_POSITIVE);
+
+ List<SystemOverview> systems = SystemManager.inSet(user, SetLabels.SYSTEM_LIST);
+ List<Long> serverIds = new ArrayList<Long>(systems.size());
+ for (SystemOverview s : systems) {
+ serverIds.add(s.getId());
+ }
+
+ RhnSet erratas = getSetDecl().get(context.getCurrentUser());
+ List<Long> errataIds = new ArrayList<Long>(erratas.size());
+ errataIds.addAll(erratas.getElementValues());
+
+ MessageQueue.publish(new SsmErrataEvent(
+ user.getId(),
+ earliest,
+ errataIds,
+ serverIds)
+ );
+
+ createMessage(request, "ssm.errata.message.scheduled",
+ new String[] {LocalizationService.getInstance().formatDate(
+ earliest, request.getLocale())});
+
+ RhnSet set = getSetDecl().get(context.getCurrentUser());
+ set.clear();
+ RhnSetManager.store(set);
+
+ return mapping.findForward("confirm");
+ }
+
+ protected RhnSetDecl getSetDecl() {
+ return RhnSetDecl.ERRATA;
+ }
+
+ /** {@inheritDoc} */
+ public List getResult(RequestContext context) {
+ return ErrataManager.lookupErrataListFromSet(context.getCurrentUser(),
+ getSetDecl().getLabel());
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index c42b1d1..c450751 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -15124,6 +15124,12 @@ any of these revisions. Are you sure you want to do this?</source>
<trans-unit id="ssm.errata-relevant-systems.summary">
<source>Below is a list of the systems in the system set manager which are affected by this erratum.</source>
</trans-unit>
+ <trans-unit id="ssm.errata-apply-confirm.title">
+ <source>Relevant Errata Confirm</source>
+ </trans-unit>
+ <trans-unit id="ssm.errata-apply-confirm.summary">
+ <source>The errata below will be applied to listed systems.</source>
+ </trans-unit>
</group>
<trans-unit id="ssm.operations.actionchaindetails.schedulesuccess">
<source>Action chain "{0}" has been successfully scheduled at "{1}".</source>
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf b/java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf
new file mode 100644
index 0000000..460b1b0
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf
@@ -0,0 +1,65 @@
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<%@taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
+<%@taglib uri="http://rhn.redhat.com/tags/list" prefix="rl" %>
+
+<rl:list name="errataList" styleclass="list"
+ emptykey="erratalist.jsp.norelevanterrata" alphabarcolumn="advisorySynopsis">
+ <rl:decorator name="ElaborationDecorator"/>
+ <rl:decorator name="PageSizeDecorator"/>
+
+ <rl:column headerkey="erratalist.jsp.type" styleclass="text-align: center;" bound="false">
+ <c:if test="${current.securityAdvisory}">
+ <rhn:icon type="errata-security" />
+ </c:if>
+ <c:if test="${current.bugFix}">
+ <rhn:icon type="errata-bugfix" />
+ </c:if>
+ <c:if test="${current.productEnhancement}">
+ <rhn:icon type="errata-enhance" />
+ </c:if>
+ </rl:column>
+
+ <rl:column headerkey="erratalist.jsp.advisory" bound="false" sortattr="advisoryName" sortable="true">
+ <a href="/rhn/errata/details/Details.do?eid=${current.id}">${current.advisoryName}</a>
+ </rl:column>
+
+ <rl:column headerkey="erratalist.jsp.synopsis" bound="false" sortattr="advisorySynopsis"
+ sortable="true" filterattr="advisorySynopsis">
+ ${current.advisorySynopsis}
+ </rl:column>
+
+ <rl:column headerkey="errata.jsp.status" bound="false" sortattr="currentStatusAndActionId[0]" sortable="true">
+ <c:if test="${not empty current.status}">
+ <c:if test="${current.currentStatusAndActionId[0] == 'Queued'}">
+ <a href="/rhn/schedule/ActionDetails.do?aid=${current.currentStatusAndActionId[1]}">
+ <bean:message key="affectedsystems.jsp.pending"/>
+ </a>
+ </c:if>
+ <c:if test="${current.currentStatusAndActionId[0] == 'Failed'}">
+ <a href="/network/systems/details/history/event.pxt?sid=${param.sid}&hid=${current.currentStatusAndActionId[1]}">
+ <bean:message key="actions.jsp.failed"/>
+ </a>
+ </c:if>
+ <c:if test="${current.currentStatusAndActionId[0] == 'Picked Up'}">
+ <a href="/network/systems/details/history/event.pxt?sid=${param.sid}&hid=${current.currentStatusAndActionId[1]}">
+ <bean:message key="actions.jsp.pickedup"/>
+ </a>
+ </c:if>
+ </c:if>
+ <c:if test="${empty current.status}">
+ <bean:message key="affectedsystems.jsp.none"/>
+ </c:if>
+ </rl:column>
+
+ <rl:column headerkey="errata.jsp.affected" bound="false" sortattr="affectedSystemCount" sortable="true">
+ <a href="/rhn/systems/ssm/ErrataSystemsAffected.do?eid=${current.id}">${current.affectedSystemCount}</a>
+ </rl:column>
+
+ <rl:column headerkey="erratalist.jsp.updated" bound="false" sortattr="updateDateObj"
+ sortable="true" defaultsort="desc" styleclass="last-column">
+ ${current.updateDate}
+ </rl:column>
+
+</rl:list>
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp
new file mode 100644
index 0000000..5793e66
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp
@@ -0,0 +1,37 @@
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<%@taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
+<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
+<%@taglib uri="http://rhn.redhat.com/tags/list" prefix="rl" %>
+
+<html>
+<body>
+ <%@ include file="/WEB-INF/pages/common/fragments/ssm/header.jspf" %>
+ <h2><bean:message key="ssm.errata-apply-confirm.title" /></h2>
+ <p class="page-summary"><bean:message key="ssm.errata-apply-confirm.summary" /></p>
+
+ <rl:listset name="errataSet" legend="errata">
+ <rhn:csrf />
+ <rhn:submitted />
+<%@ include file="/WEB-INF/pages/ssm/systems/errata-list-fragment.jspf" %>
+
+ <table class="details" align="center">
+ <tr>
+ <th><label for="radio_use_date_now"><bean:message key="scheduleremote.jsp.nosoonerthan" /></label></th>
+ <td>
+ <jsp:include page="/WEB-INF/pages/common/fragments/date-picker.jsp">
+ <jsp:param name="widget" value="date" />
+ </jsp:include>
+ </td>
+ </tr>
+ </table>
+ <div class="text-right">
+ <hr />
+ <html:submit property="dispatch">
+ <bean:message key="confirm.jsp.confirm" />
+ </html:submit>
+ </div>
+ </rl:listset>
+</body>
+</html>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index 57d0ff7..2fbb16e 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -3670,6 +3670,20 @@
path="/WEB-INF/pages/ssm/ssmindex.jsp" />
</action>
+ <action path="/systems/ssm/ListPatchesConfirm"
+ scope="request"
+ name="SSMPatchListForm"
+ input="/WEB-INF/pages/ssm/systems/ssm-errata.jsp"
+ type="com.redhat.rhn.frontend.action.ssm.ErrataListConfirmAction"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping">
+ <set-property property="postRequiredIfSubmitted" value="true" />
+ <forward name="default"
+ path="/WEB-INF/pages/ssm/systems/ssm-errata-confirm.jsp" />
+ <forward name="confirm"
+ path="/systems/ssm/ListPatches.do"
+ redirect="true" />
+ </action>
+
<action path="/systems/ssm/MigrateSystems"
scope="request"
input="/WEB-INF/pages/ssm/systems/ssmdeleteconfirm.jsp"
commit 94c27adb6a59bf5a6659e42a5e4693ddce266179
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Tue Feb 4 15:38:06 2014 +0100
Needed elaborable return of ErrataManager.lookupErrataListFromSet
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml
index f858e4c..30fdd66 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml
@@ -455,18 +455,19 @@ SELECT DISTINCT E.id , E.advisory_name AS advisory,
</mode>
<mode name="errata_list_in_set" class="com.redhat.rhn.frontend.dto.ErrataOverview">
-<query params="user_id, set" >
+ <query params="user_id, set" >
Select DISTINCT E.id , E.advisory_name AS advisory,
E.update_date AS UPDATE_DATE,
E.synopsis as ADVISORY_SYNOPSIS,
- E.advisory_type as ADVISORY_TYPE,
- E.advisory_name AS advisory
+ E.advisory_type as ADVISORY_TYPE,
+ E.advisory_name AS advisory
FROM rhnErrata E,
rhnSet ST
WHERE ST.user_id = :user_id
AND ST.label = :set
AND ST.element = E.id
-</query>
+ </query>
+ <elaborator name="errata_overview" />
</mode>
<mode name="in_sources_for_target_package_assoc" class="com.redhat.rhn.frontend.dto.ErrataOverview">
diff --git a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
index 61d2a2d..d8e554e 100644
--- a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
+++ b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
@@ -1139,7 +1139,7 @@ public class ErrataManager extends BaseManager {
/**
- * lookup errata that are in the set "errata_list"
+ * Lookup errata that are in the set
* @param user the user to search the set for
* @param setLabel the set label
* @return list of Errata Overview Objects
@@ -1149,9 +1149,11 @@ public class ErrataManager extends BaseManager {
Map params = new HashMap();
params.put("user_id", user.getId());
params.put("set", setLabel);
+ Map elabParams = new HashMap();
+ elabParams.put("user_id", user.getId());
SelectMode m = ModeFactory.getMode(
"Errata_queries", "errata_list_in_set");
- return m.execute(params);
+ return makeDataResult(params, elabParams, null, m);
}
commit 70321e31ca327c0a8a84666362b612863c39587c
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Mon Feb 3 20:38:39 2014 +0100
Whitespace fix
Often commited details
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index e968d3c..57d0ff7 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -3634,7 +3634,7 @@
path="/systems/ssm/misc/Index.do" redirect="true"/>
</action>
- <action path="/systems/ssm/ListSystems"
+ <action path="/systems/ssm/ListSystems"
scope="request"
input="/WEB-INF/pages/ssm/systems/list.jsp"
type="com.redhat.rhn.frontend.action.ssm.ListSystemsAction"
commit 307086be31106fab35702836225cd4db0bfb2d30
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Mon Feb 3 20:18:26 2014 +0100
Remove unnecessary code after extraction
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
index db8122a..a671b32 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
@@ -18,9 +18,7 @@ package com.redhat.rhn.frontend.action.ssm;
import com.redhat.rhn.common.localization.LocalizationService;
import com.redhat.rhn.common.messaging.MessageQueue;
import com.redhat.rhn.common.util.DatePicker;
-import com.redhat.rhn.domain.entitlement.Entitlement;
import com.redhat.rhn.domain.rhnset.RhnSet;
-import com.redhat.rhn.domain.server.Server;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.action.SetLabels;
import com.redhat.rhn.frontend.dto.SystemOverview;
@@ -29,7 +27,6 @@ import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.RhnAction;
import com.redhat.rhn.frontend.struts.RhnHelper;
import com.redhat.rhn.frontend.taglibs.list.helper.ListRhnSetHelper;
-import com.redhat.rhn.frontend.taglibs.list.helper.ListSessionSetHelper;
import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
import com.redhat.rhn.manager.errata.ErrataManager;
import com.redhat.rhn.manager.rhnset.RhnSetDecl;
@@ -37,7 +34,6 @@ import com.redhat.rhn.manager.system.SystemManager;
import java.util.ArrayList;
import java.util.Date;
-import java.util.HashMap;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -53,13 +49,7 @@ import org.apache.struts.action.DynaActionForm;
* @author bo
*/
public class ErrataListAction extends RhnAction implements Listable {
- //public static final String LIST_NAME = "errataList";
- public static final String SELECTOR = "type";
- public static final String RP_AFFECTED_SYSTEMS = "afs"; // Request param
- private static final String MULTIBIND = "_bind_." +
- ErrataListAction.class.getCanonicalName();
- private static final String MULTIBIND_SUMMARY = "summaryList";
- private static final String MULTIBIND_DETAILS = "detailsList";
+ public static final String LIST_NAME = "errataList";
/**
* Entry-point caller.
@@ -92,7 +82,6 @@ public class ErrataListAction extends RhnAction implements Listable {
getStrutsDelegate().prepopulateDatePicker(
request, form, "date", DatePicker.YEAR_RANGE_POSITIVE);
request.setAttribute("parentUrl", request.getRequestURI());
- request.setAttribute(SELECTOR, request.getParameter(SELECTOR));
return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
}
@@ -130,67 +119,24 @@ public class ErrataListAction extends RhnAction implements Listable {
}
private ListRhnSetHelper bindDatasets(HttpServletRequest request) {
- request.setAttribute(ErrataListAction.MULTIBIND,
- ErrataListAction.MULTIBIND_SUMMARY);
ListRhnSetHelper shlp = new ListRhnSetHelper(this,
- request, ErrataListAction.getSetDecl(0L));
- shlp.setListName((String) request.getAttribute(ErrataListAction.MULTIBIND));
+ request, ErrataListAction.getSetDecl());
+ shlp.setListName(LIST_NAME);
shlp.setParentUrl(request.getRequestURI());
shlp.execute();
- if (request.getParameter(ErrataListAction.RP_AFFECTED_SYSTEMS) != null) {
- request.setAttribute(ErrataListAction.MULTIBIND,
- ErrataListAction.MULTIBIND_DETAILS);
- ListSessionSetHelper h = new ListSessionSetHelper(this, request, new HashMap());
- h.setDataSetName((String) request.getAttribute(ErrataListAction.MULTIBIND));
- h.execute();
- }
-
return shlp;
}
-
/**
* @return Returns RhnSetDecl.ERRATA
*/
- static RhnSetDecl getSetDecl(Long sid) {
- return RhnSetDecl.ERRATA.createCustom(sid);
+ private static RhnSetDecl getSetDecl() {
+ return RhnSetDecl.ERRATA;
}
/** {@inheritDoc} */
public List getResult(RequestContext context) {
- List<SystemOverview> systems = null;
- if (context.getRequest().getAttribute(ErrataListAction.MULTIBIND)
- .equals(ErrataListAction.MULTIBIND_SUMMARY)) {
- systems = ErrataManager.relevantErrataToSystemSet(context.getLoggedInUser());
- }
- else if (context.getRequest().getAttribute(ErrataListAction.MULTIBIND)
- .equals(ErrataListAction.MULTIBIND_DETAILS)) {
- systems = ErrataManager.systemsAffectedInSet(
- context.getCurrentUser(),
- Long.parseLong(
- context.getRequest().getParameter(
- ErrataListAction.RP_AFFECTED_SYSTEMS)
- ), null
- );
- if (systems != null) {
- for (int i = 0; i < systems.size(); i++) {
- SystemOverview systemOverview = systems.get(i);
- Server server = SystemManager.lookupByIdAndUser(systemOverview.getId(),
- context.getLoggedInUser());
- systemOverview.setChannelId(server.getBaseChannel().getId());
- systemOverview.setChannelLabels(server.getBaseChannel().getName());
-
- List<String> entitlements = new ArrayList<String>();
- for (Entitlement e : server.getEntitlements()) {
- entitlements.add(e.getLabel());
- }
-
- systemOverview.setEntitlement(entitlements);
- }
- }
- }
-
- return systems;
+ return ErrataManager.relevantErrataToSystemSet(context.getLoggedInUser());
}
}
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
index 06725f5..423f00c 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
@@ -23,12 +23,10 @@
<h2><bean:message key="ssm.patches.list.header" /></h2>
<p><bean:message key="ssm.patches.list.summary" /></p>
- <c:choose>
- <c:when test="${empty param.afs}">
<rl:listset name="errataListSet" legend="errata">
<rhn:csrf />
<rhn:submitted />
- <rl:list width="100%" name="summaryList" styleclass="list"
+ <rl:list name="errataList" styleclass="list"
emptykey="erratalist.jsp.norelevanterrata" alphabarcolumn="advisorySynopsis">
<rl:decorator name="ElaborationDecorator"/>
<rl:decorator name="PageSizeDecorator"/>
@@ -115,39 +113,5 @@
</div>
<rhn:submitted/>
</rl:listset>
- </c:when>
- <c:otherwise>
- <rl:listset name="groupSet" legend="system">
- <rhn:csrf />
- <rl:list dataset="detailsList" width="100%" name="detailsList"
- styleclass="list" emptykey="ssm.operations.actionchaindetails.table.empty">
- <rl:decorator name="PageSizeDecorator"/>
- <rl:column headerkey="systemlist.jsp.system" bound="false" sortattr="advisoryName" sortable="true">
- <a href="/rhn/systems/details/Overview.do?sid=${current.id}">${current.name}</a>
- </rl:column>
- <rl:column headerkey="ssm.overview.errata" bound="false" sortattr="advisoryName" sortable="true">
- <a href="/rhn/systems/details/ErrataList.do?sid=${current.id}">${current.totalErrataCount}</a>
- </rl:column>
- <rl:column headerkey="ssm.overview.packages" bound="false" sortattr="advisoryName" sortable="true">
- <a href="/rhn/systems/details/packages/UpgradableList.do?sid=${current.id}">${current.pendingUpdates}</a>
- </rl:column>
- <rl:column sortable="false" bound="false" headerkey="systemlist.jsp.channel" >
- <%@ include file="/WEB-INF/pages/common/fragments/channel/channel_list_fragment.jspf" %>
- </rl:column>
- <rl:column sortable="false" bound="false" headerkey="systemlist.jsp.entitlement">
- <c:out value="${current.entitlementLevel}" escapeXml="false"/>
- </rl:column>
- </rl:list>
- </rl:listset>
-
- <html:form action="/systems/ssm/ListPatches">
- <rhn:csrf />
- <div class="text-right">
- <hr/>
- <input type="submit" name="back" value="<bean:message key='ssm.errata.serverlist.return'/>" />
- </div>
- </html:form>
- </c:otherwise>
- </c:choose>
</body>
</html>
commit d744f251fd629e81a557109adf8a294be1678901
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Mon Feb 3 17:48:17 2014 +0100
Extracted "list systems in ssm related to errata" into separate action
On the way fixed some problems:
* elaborators were ignored and later was data inefficiently loaded
by other means (problem rooted in ErrataManager);
* localization.
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
index 589a276..db8122a 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
@@ -171,7 +171,7 @@ public class ErrataListAction extends RhnAction implements Listable {
Long.parseLong(
context.getRequest().getParameter(
ErrataListAction.RP_AFFECTED_SYSTEMS)
- )
+ ), null
);
if (systems != null) {
for (int i = 0; i < systems.size(); i++) {
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataSystemsAffectedListAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataSystemsAffectedListAction.java
new file mode 100644
index 0000000..95771c4
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataSystemsAffectedListAction.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.action.ssm;
+
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.struts.RhnAction;
+import com.redhat.rhn.frontend.struts.RhnHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListSessionSetHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
+import com.redhat.rhn.manager.errata.ErrataManager;
+
+/**
+ * List systems affected by errata in SSM.
+ *
+ * @author mkollar
+ */
+public class ErrataSystemsAffectedListAction extends RhnAction implements
+ Listable {
+
+ /** {@inheritDoc} */
+ @Override
+ public ActionForward execute(
+ ActionMapping mapping,
+ ActionForm actionForm,
+ HttpServletRequest request,
+ HttpServletResponse response)
+ throws Exception {
+
+ request.setAttribute("erratum", new RequestContext(request).lookupErratum());
+
+ ListSessionSetHelper helper = new ListSessionSetHelper(this, request);
+ helper.setDataSetName(RequestContext.PAGE_LIST);
+ helper.setListName("systemList");
+ helper.execute();
+
+ return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("rawtypes")
+ public List getResult(RequestContext context) {
+ return ErrataManager.systemsAffectedInSet(context.getCurrentUser(),
+ context.lookupErratum().getId(), null);
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index 328262e..c42b1d1 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -4446,9 +4446,6 @@ value for this entitlement, excluding the default organization's consumption.</s
<trans-unit id="ssm.overview.misc.scap">
<source><a href="/rhn/systems/ssm/audit/ScheduleXccdf.do">Audit</a> systems with OpenSCAP</source>
</trans-unit>
- <trans-unit id="ssm.errata.serverlist.return">
- <source>Back to errata</source>
- </trans-unit>
<trans-unit id="ssm.errata.message.scheduled">
<source>Errata updates <a href="/rhn/schedule/PendingActions.do">scheduled</a> at {0}.</source>
</trans-unit>
@@ -15121,6 +15118,12 @@ any of these revisions. Are you sure you want to do this?</source>
<trans-unit id="ssm.patches.list.summary">
<source>The errata below apply to one or more of your selected systems.</source>
</trans-unit>
+ <trans-unit id="ssm.errata-relevant-systems.title">
+ <source>Systems in System Set Manager Affected By {0} - {1}</source>
+ </trans-unit>
+ <trans-unit id="ssm.errata-relevant-systems.summary">
+ <source>Below is a list of the systems in the system set manager which are affected by this erratum.</source>
+ </trans-unit>
</group>
<trans-unit id="ssm.operations.actionchaindetails.schedulesuccess">
<source>Action chain "{0}" has been successfully scheduled at "{1}".</source>
diff --git a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
index 59e75ed..61d2a2d 100644
--- a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
+++ b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
@@ -783,14 +783,16 @@ public class ErrataManager extends BaseManager {
*
* @param user Logged-in user.
* @param eid Errata ID.
+ * @param pc PageControl
* @return systems Affected by current errata, that are in the set of SSM.
*/
- public static List<SystemOverview> systemsAffectedInSet(User user, Long eid) {
+ public static DataResult<SystemOverview> systemsAffectedInSet(User user, Long eid,
+ PageControl pc) {
Map params = new HashMap();
params.put("eid", eid);
params.put("user_id", user.getId());
- return ModeFactory.getMode("Errata_queries",
- "in_set_and_affected_by_errata").execute(params);
+ return makeDataResult(params, Collections.EMPTY_MAP, pc,
+ ModeFactory.getMode("Errata_queries", "in_set_and_affected_by_errata"));
}
/**
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-systems-affected.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-systems-affected.jsp
new file mode 100644
index 0000000..9a59815
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata-systems-affected.jsp
@@ -0,0 +1,22 @@
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+
+<%@taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
+<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
+<%@taglib uri="http://rhn.redhat.com/tags/list" prefix="rl" %>
+
+<html>
+<body>
+ <%@ include file="/WEB-INF/pages/common/fragments/ssm/header.jspf" %>
+ <h2><bean:message key="ssm.errata-relevant-systems.title" arg0="${erratum.advisoryName}" arg1="${erratum.synopsis}" /></h2>
+ <p class="page-summary"><bean:message key="ssm.errata-relevant-systems.summary" /></p>
+
+ <rl:listset name="systemSet" legend="system">
+ <c:set var="notSelectable" value="True"/>
+ <c:set var="noCsv" value="1" />
+ <c:set var="noAddToSsm" value="1" />
+ <%@ include file="/WEB-INF/pages/common/fragments/systems/system_listdisplay.jspf" %>
+ </rl:listset>
+</body>
+</html>
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
index 2650387..06725f5 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/ssm-errata.jsp
@@ -82,7 +82,7 @@
</rl:column>
<rl:column headerkey="errata.jsp.affected" bound="false" sortattr="affectedSystemCount" sortable="true">
- <a href="/rhn/systems/ssm/ListPatches.do?<%=ErrataListAction.RP_AFFECTED_SYSTEMS%>=${current.id}">${current.affectedSystemCount}</a>
+ <a href="/rhn/systems/ssm/ErrataSystemsAffected.do?eid=${current.id}">${current.affectedSystemCount}</a>
</rl:column>
<rl:column headerkey="erratalist.jsp.updated" bound="false" sortattr="updateDateObj"
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index 084104d..e968d3c 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -3646,6 +3646,17 @@
path="/systems/ssm/ListSystems.do" redirect="true"/>
</action>
+ <action path="/systems/ssm/ErrataSystemsAffected"
+ scope="request"
+ name="SSMPatchListForm"
+ input="/WEB-INF/pages/ssm/systems/ssm-errata-systems-affected.jsp"
+ type="com.redhat.rhn.frontend.action.ssm.ErrataSystemsAffectedListAction"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping">
+ <set-property property="postRequiredIfSubmitted" value="true" />
+ <forward name="default"
+ path="/WEB-INF/pages/ssm/systems/ssm-errata-systems-affected.jsp" />
+ </action>
+
<action path="/systems/ssm/ListPatches"
scope="request"
name="SSMPatchListForm"
commit ea296bfff62fbea288b9d92e8ca477b1c4b9816d
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Mon Feb 3 15:07:10 2014 +0100
Change misleading variable name
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
index c999724..589a276 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
@@ -110,9 +110,9 @@ public class ErrataListAction extends RhnAction implements Listable {
serverIds.add(s.getId());
}
- RhnSet packages = helper.getSet();
- List<Long> errataIds = new ArrayList<Long>(packages.size());
- errataIds.addAll(packages.getElementValues());
+ RhnSet erratas = helper.getSet();
+ List<Long> errataIds = new ArrayList<Long>(erratas.size());
+ errataIds.addAll(erratas.getElementValues());
Date scheduleDate = this.getStrutsDelegate().readDatePicker(
form, "date", DatePicker.YEAR_RANGE_POSITIVE);
commit 84c2de41cad9f805a8aca68f767d54eacf9edbe8
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Fri Jan 31 16:10:52 2014 +0100
Extract actual handling of action into separate method
It will be easier to add confirmation page then.
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
index a8af13c..c999724 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
@@ -46,8 +46,6 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.ActionMessage;
-import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.DynaActionForm;
/**
@@ -81,54 +79,55 @@ public class ErrataListAction extends RhnAction implements Listable {
HttpServletResponse response)
throws Exception {
RequestContext requestContext = new RequestContext(request);
- User user = requestContext.getLoggedInUser();
DynaActionForm form = (DynaActionForm) actionForm;
- ActionMessages actionMessages = new ActionMessages();
-
- String forwardId = RhnHelper.DEFAULT_FORWARD;
ListRhnSetHelper setHelper = this.bindDatasets(request);
if (setHelper.isDispatched()) {
if (requestContext.wasDispatched("errata.jsp.apply")) {
- List<SystemOverview> srv = SystemManager.inSet(user, SetLabels.SYSTEM_LIST);
- List<Long> serverIds = new ArrayList<Long>(srv.size());
- for (SystemOverview s : srv) {
- serverIds.add(s.getId());
- }
-
- RhnSet packages = setHelper.getSet();
- List<Long> errataIds = new ArrayList<Long>(packages.size());
- errataIds.addAll(packages.getElementValues());
-
- Date scheduleDate = this.getStrutsDelegate().readDatePicker(
- form, "date", DatePicker.YEAR_RANGE_POSITIVE);
-
- MessageQueue.publish(new SsmErrataEvent(
- user.getId(),
- scheduleDate,
- errataIds,
- serverIds)
- );
- actionMessages.add(
- ActionMessages.GLOBAL_MESSAGE,
- new ActionMessage("ssm.errata.message.scheduled",
- LocalizationService.getInstance().formatDate(
- scheduleDate, request.getLocale())));
- forwardId = "confirm";
+ return handleConfirm(mapping, form, requestContext, setHelper, request);
}
}
- this.getStrutsDelegate().saveMessages(request, actionMessages);
-
- request.setAttribute("date", this.getStrutsDelegate().prepopulateDatePicker(
- request, form, "date", DatePicker.YEAR_RANGE_POSITIVE));
+ getStrutsDelegate().prepopulateDatePicker(
+ request, form, "date", DatePicker.YEAR_RANGE_POSITIVE);
request.setAttribute("parentUrl", request.getRequestURI());
request.setAttribute(SELECTOR, request.getParameter(SELECTOR));
- return mapping.findForward(forwardId);
+ return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
}
+ private ActionForward handleConfirm(ActionMapping mapping,
+ DynaActionForm form,
+ RequestContext context,
+ ListRhnSetHelper helper,
+ HttpServletRequest request) {
+ User user = context.getLoggedInUser();
+
+ List<SystemOverview> srv = SystemManager.inSet(user, SetLabels.SYSTEM_LIST);
+ List<Long> serverIds = new ArrayList<Long>(srv.size());
+ for (SystemOverview s : srv) {
+ serverIds.add(s.getId());
+ }
+
+ RhnSet packages = helper.getSet();
+ List<Long> errataIds = new ArrayList<Long>(packages.size());
+ errataIds.addAll(packages.getElementValues());
+
+ Date scheduleDate = this.getStrutsDelegate().readDatePicker(
+ form, "date", DatePicker.YEAR_RANGE_POSITIVE);
+
+ MessageQueue.publish(new SsmErrataEvent(
+ user.getId(),
+ scheduleDate,
+ errataIds,
+ serverIds)
+ );
+ createMessage(request, "ssm.errata.message.scheduled",
+ new String[] {LocalizationService.getInstance().formatDate(
+ scheduleDate, request.getLocale())});
+ return mapping.findForward("confirm");
+ }
private ListRhnSetHelper bindDatasets(HttpServletRequest request) {
request.setAttribute(ErrataListAction.MULTIBIND,
commit f0a79aa14f6704d2e5999b5bd91b39de8278c563
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Fri Jan 31 15:25:31 2014 +0100
Use some idioms to improve code readability
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
index a4b18ad..a8af13c 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
@@ -34,13 +34,15 @@ import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
import com.redhat.rhn.manager.errata.ErrataManager;
import com.redhat.rhn.manager.rhnset.RhnSetDecl;
import com.redhat.rhn.manager.system.SystemManager;
+
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.List;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
@@ -90,17 +92,14 @@ public class ErrataListAction extends RhnAction implements Listable {
if (setHelper.isDispatched()) {
if (requestContext.wasDispatched("errata.jsp.apply")) {
List<SystemOverview> srv = SystemManager.inSet(user, SetLabels.SYSTEM_LIST);
- List<Long> serverIds = new ArrayList<Long>();
- for (int i = 0; i < srv.size(); i++) {
- serverIds.add(srv.get(i).getId());
+ List<Long> serverIds = new ArrayList<Long>(srv.size());
+ for (SystemOverview s : srv) {
+ serverIds.add(s.getId());
}
RhnSet packages = setHelper.getSet();
- List<Long> errataIds = new ArrayList<Long>();
- Iterator<Long> iter = packages.getElementValues().iterator();
- while (iter.hasNext()) {
- errataIds.add(iter.next());
- }
+ List<Long> errataIds = new ArrayList<Long>(packages.size());
+ errataIds.addAll(packages.getElementValues());
Date scheduleDate = this.getStrutsDelegate().readDatePicker(
form, "date", DatePicker.YEAR_RANGE_POSITIVE);
commit bb330654b0291cd882f3838f18ec7c86d425ff9e
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Fri Jan 31 14:30:27 2014 +0100
Replace explicit iterator with enhanced for
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
index 7140741..a4b18ad 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/ErrataListAction.java
@@ -183,13 +183,12 @@ public class ErrataListAction extends RhnAction implements Listable {
systemOverview.setChannelId(server.getBaseChannel().getId());
systemOverview.setChannelLabels(server.getBaseChannel().getName());
- List entitlement = new ArrayList();
- for (Iterator<Entitlement> itr = server.getEntitlements().iterator();
- itr.hasNext();) {
- entitlement.add(itr.next().getLabel());
+ List<String> entitlements = new ArrayList<String>();
+ for (Entitlement e : server.getEntitlements()) {
+ entitlements.add(e.getLabel());
}
- systemOverview.setEntitlement(entitlement);
+ systemOverview.setEntitlement(entitlements);
}
}
}
commit 4db14ff8a09d9f2a88bff3f8aa602bee9560e1a2
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Tue Feb 4 16:03:15 2014 +0100
Automatic commit of package [spacewalk-java] release [2.1.143-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 03cf0bb..0660015 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.142
+Version: 2.1.143
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,11 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Tue Feb 04 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.143-1
+- restored Monitoring Scout label
+- removed unnecessary spacing and restored left side labels
+- unify probe detail page look
+
* Tue Feb 04 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.142-1
- swapping struts tag with input html to allow the use of the placeholder
- perform password validation within the java class
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index 07c0635..60eb858 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.142-1 java/
+2.1.143-1 java/
commit ce4bfc6f0705d1fde300d83e51b0db6daf43c29d
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 3 15:32:23 2014 +0100
restored Monitoring Scout label
diff --git a/java/code/webapp/WEB-INF/pages/admin/config/monitoring.jsp b/java/code/webapp/WEB-INF/pages/admin/config/monitoring.jsp
index b2bc502..a6663ca 100644
--- a/java/code/webapp/WEB-INF/pages/admin/config/monitoring.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/config/monitoring.jsp
@@ -18,12 +18,12 @@
method="POST">
<rhn:csrf />
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label" for="is_monitoring_scout">
+ <bean:message key="general.jsp.monitoring_scout"/>
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <label for="is_monitoring_scout" class="control-label">
- <html:checkbox property="is_monitoring_scout" styleId="is_monitoring_scout" />
- <bean:message key="general.jsp.monitoring_scout"/>
- </label>
+ <html:checkbox property="is_monitoring_scout" styleId="is_monitoring_scout" />
</div>
</div>
</div>
commit 41e00b944563fdf9298f7743be940ca9cc743c24
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 3 15:01:05 2014 +0100
removed unnecessary spacing and restored left side labels
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/activationkeys/details.jspf b/java/code/webapp/WEB-INF/pages/common/fragments/activationkeys/details.jspf
index 8715cf6..aef467e 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/activationkeys/details.jspf
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/activationkeys/details.jspf
@@ -16,7 +16,7 @@
<bean:message key="kickstart.activationkeys.jsp.description"/>:
</label>
<div class="col-lg-6">
- <html:text property="description" styleClass="form-control" styleId="description"/><br/>
+ <html:text property="description" styleClass="form-control" styleId="description"/>
<span class="help-block">
<bean:message key="activation-key.jsp.edit-description-tooltip"
arg0 = "${requestScope.blankDescription}"/>
@@ -97,23 +97,26 @@
</div>
<c:if test="${not requestScope.create}">
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label">
+ <bean:message key="activation-key.jsp.enable-config-auto-deploy"/>:
+ </label>
+ <div class="col-lg-6">
<rhn:require acl="token_has_entitlement(provisioning_entitled)"
mixins="com.redhat.rhn.common.security.acl.ActivationKeyAclHandler">
- <label>
+ <div class="checkbox">
<html:checkbox property="autoDeploy" styleId="enable-config-auto-deploy" />
- <bean:message key="activation-key.jsp.enable-config-auto-deploy"/>
- </label>
+ <br/>
+ </div>
<span class="help-block">
<bean:message key="activation-key.jsp.config-auto-deploy-tooltip"/>
</span>
</rhn:require>
<rhn:require acl="not token_has_entitlement(provisioning_entitled)"
mixins="com.redhat.rhn.common.security.acl.ActivationKeyAclHandler">
- <label>
+ <div class="checkbox">
<input type=checkbox disabled=true/>
- <bean:message key="activation-key.jsp.enable-config-auto-deploy"/>
- </label>
+ <br/>
+ </div>
<span class="help-block">
<bean:message key="activation-key.jsp.disabled-config-auto-deploy-tooltip"
arg0="${rhn:localize('provisioning_entitled')}"
@@ -124,10 +127,12 @@
</div>
</c:if>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label">
+ <bean:message key="activation-key.jsp.universal-default"/>:
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <html:checkbox property="universal" styleId="universal" />
- <bean:message key="activation-key.jsp.universal-default"/>
+ <html:checkbox property="universal" styleId="universal" /><br/>
</div>
<span class="help-block">
<rhn:tooltip key="activation-key.jsp.edit.universal-default-tooltip"/>
commit d691ee9b0663f8db8a71ae689a44e83235cb240c
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Tue Feb 4 15:54:02 2014 +0100
unify probe detail page look
diff --git a/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp b/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
index f7db58e..5b62f7b 100644
--- a/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
@@ -36,28 +36,43 @@
</rhn:toolbar>
</c:if>
- <ul class="list-group">
- <li class="list-group-item">
- <strong><bean:message key="probedetails.jsp.probe" /></strong><br/>
- ${probe.description}
- </li>
- <li class="list-group-item">
- <strong><bean:message key="probeedit.jsp.satclusterdesc" /></strong><br/>
- ${probe.satCluster.description}
- </li>
- <li class="list-group-item">
- <strong><bean:message key="probedetails.jsp.status" /></strong><br/>
- <span class=${status_class}>${status}</span>
- </li>
- <li class="list-group-item">
- <strong><bean:message key="probedetails.jsp.last_update" /></strong><br/>
- <fmt:formatDate value="${probe.state.lastCheck}" type="both" dateStyle="short" timeStyle="long"/>
- </li>
- </ul>
-
<html:form action="/systems/details/probes/ProbeDetails"
styleClass="form-horizontal"
method="get">
+
+ <div class="form-group">
+ <label class="col-lg-3 text-right">
+ <bean:message key="probedetails.jsp.probe" />
+ </label>
+ <div class="col-lg-6">
+ ${probe.description}
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-lg-3 text-right">
+ <bean:message key="probeedit.jsp.satclusterdesc" />
+ </label>
+ <div class="col-lg-6">
+ ${probe.satCluster.description}
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-lg-3 text-right">
+ <bean:message key="probedetails.jsp.status" />
+ </label>
+ <div class="col-lg-6">
+ <span class=${status_class}>${status}</span>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-lg-3 text-right">
+ <bean:message key="probedetails.jsp.last_update" />
+ </label>
+ <div class="col-lg-6">
+ <fmt:formatDate value="${probe.state.lastCheck}" type="both" dateStyle="short" timeStyle="long"/>
+ </div>
+ </div>
+
<!-- For some reason we cant render date picker during export. -->
<c:if test="${param.lde != 1}">
<div class="form-group">
@@ -99,7 +114,7 @@
<bean:message key="probedetails.jsp.show_graph" />
</label>
<div class="col-lg-6">
- <html:checkbox property="show_graph" />
+ <span class="checkbox"><html:checkbox property="show_graph" /></span>
</div>
</div>
</c:if>
@@ -108,7 +123,7 @@
<bean:message key="probedetails.jsp.show_event_log" />
</label>
<div class="col-lg-6">
- <html:checkbox property="show_log" />
+ <span class="checkbox"><html:checkbox property="show_log" styleClass="checkbox" /></span>
</div>
</div>
<div class="form-group">
commit 81238218610fd9f1beb137d5c03b49b393c0e741
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Tue Feb 4 14:12:06 2014 +0100
Automatic commit of package [spacewalk-web] release [2.1.54-1].
diff --git a/rel-eng/packages/spacewalk-web b/rel-eng/packages/spacewalk-web
index 4f79da6..58b6d3b 100644
--- a/rel-eng/packages/spacewalk-web
+++ b/rel-eng/packages/spacewalk-web
@@ -1 +1 @@
-2.1.53-1 web/
+2.1.54-1 web/
diff --git a/web/spacewalk-web.spec b/web/spacewalk-web.spec
index 0f3473b..952f244 100644
--- a/web/spacewalk-web.spec
+++ b/web/spacewalk-web.spec
@@ -4,7 +4,7 @@ Name: spacewalk-web
Summary: Spacewalk Web site - Perl modules
Group: Applications/Internet
License: GPLv2
-Version: 2.1.53
+Version: 2.1.54
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk/
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -269,6 +269,9 @@ rm -rf $RPM_BUILD_ROOT
%doc LICENSE
%changelog
+* Tue Feb 04 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.54-1
+- changes in the logic to update the tick icon
+
* Wed Jan 29 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.53-1
- adding caller script and tick icon function
commit 3778a2112c8f60759a7db1b0b3aecad4f8c02bfa
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Tue Feb 4 14:11:35 2014 +0100
Automatic commit of package [spacewalk-java] release [2.1.142-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 7e5bd5a..03cf0bb 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.141
+Version: 2.1.142
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,11 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Tue Feb 04 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.142-1
+- swapping struts tag with input html to allow the use of the placeholder
+- perform password validation within the java class
+- removing obsolete code related to PLACEHOLDER_PASSWORD
+
* Mon Feb 03 2014 Tomas Lestach <tlestach(a)redhat.com> 2.1.141-1
- enable creating externally authenticated users in organization according to
REMOTE_USER_ORGUNIT
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index 1b78093..07c0635 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.141-1 java/
+2.1.142-1 java/
commit fb60ea6bd318fb53811b004f0bcba9dab0a3e5ee
Author: Maximilian Meister <mmeister(a)suse.de>
Date: Tue Feb 4 10:42:50 2014 +0100
changes in the logic to update the tick icon. differentiating between edit user form and create user form.
diff --git a/web/html/javascript/spacewalk-pwstrength-handler.js b/web/html/javascript/spacewalk-pwstrength-handler.js
index 220e107..f9e6eed 100644
--- a/web/html/javascript/spacewalk-pwstrength-handler.js
+++ b/web/html/javascript/spacewalk-pwstrength-handler.js
@@ -8,7 +8,6 @@ function setupPasswordStrengthMeter() {
onKeyUp: function (evt) {
$('input[name="desiredpassword"]').popover('show');
//when there are no errors the popover disappears
- var desiredpassval = $.trim($('input[name="desiredpassword"]').val());
if ($('ul.error-list').is(':empty')) {
$('input[name="desiredpassword"]').popover('destroy');
}
@@ -57,7 +56,9 @@ function setupPasswordStrengthMeter() {
// check if confirm password input field matches with password input field
// swap icons in the input-group-addon
function updateTickIcon() {
- var desiredpassval = $.trim($('input[name="desiredpassword"]').val());
+ var desiredpassVal = $.trim($('input[name="desiredpassword"]').val());
+ var desiredpassConfirmVal = $.trim($('#confirmpass').val());
+ var placeholderAttr = $('input[name="desiredpassword"]').attr('placeholder');
function success(element) {
element.removeClass("fa-times-circle text-danger");
element.addClass("fa-check-circle text-success");
@@ -66,17 +67,31 @@ function updateTickIcon() {
element.removeClass("fa-check-circle text-success");
element.addClass("fa-times-circle text-danger");
}
- if (desiredpassval.length < 5 && $("#desiredtick").hasClass("text-success")) {
- danger($("#desiredtick"));
- }
- else if (desiredpassval.length >= 5 && $("#desiredtick").hasClass("text-danger")) {
+
+ // on the edit user page
+ if ((typeof placeholderAttr !== 'undefined' && placeholderAttr !== false)) {
+ // icons are green
success($("#desiredtick"));
- }
- if ($("#confirmpass").val() == desiredpassval && desiredpassval.length >= 5) {
success($("#confirmtick"));
+ if (desiredpassVal.length > 0 && desiredpassVal.length < 5) {
+ danger($("#desiredtick"));
+ danger($("#confirmtick"));
+ }
+ else if (desiredpassVal != desiredpassConfirmVal) {
+ danger($("#confirmtick"));
+ }
}
- else if ($("#confirmtick").hasClass("text-success")) {
+ // on create user pages
+ else {
+ // icons are red
+ danger($("#desiredtick"));
danger($("#confirmtick"));
+ if (desiredpassVal.length >= 5) {
+ success($("#desiredtick"));
+ }
+ if (desiredpassVal == desiredpassConfirmVal && desiredpassVal.length >= 5) {
+ success($("#confirmtick"));
+ }
}
}
commit ad0ad83eb726c9d46693078f2b0bf417f6bd1d71
Author: Maximilian Meister <mmeister(a)suse.de>
Date: Tue Feb 4 10:41:45 2014 +0100
swapping struts tag with basic input html tag to allow the use of the placeholder attribute
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/user/edit_user_table_rows.jspf b/java/code/webapp/WEB-INF/pages/common/fragments/user/edit_user_table_rows.jspf
index e00b70b..c8ce65e 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/user/edit_user_table_rows.jspf
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/user/edit_user_table_rows.jspf
@@ -48,7 +48,7 @@
<label class="col-lg-3 control-label"><bean:message key="password.displayname"/></label>
<div class="col-lg-6">
<div id="desiredpassword-input-group" class="input-group">
- <html:password property="desiredpassword" styleClass="form-control" maxlength="${passwordLength}"/>
+ <input type="password" name="desiredpassword" class="form-control" size="15" maxlength="${passwordLength}" placeholder="••••••"/>
<span class="input-group-addon">
<i class="fa fa-check-circle text-success fa-1-5x" id="desiredtick"></i>
</span>
@@ -60,7 +60,7 @@
<label class="col-lg-3 control-label"><bean:message key="confirmpass.displayname"/></label>
<div class="col-lg-6">
<div class="input-group">
- <html:password property="desiredpasswordConfirm" styleClass="form-control" onkeyup="updateTickIcon()" maxlength="${passwordLength}" styleId="confirmpass"/>
+ <input id="confirmpass" type="password" name="desiredpasswordConfirm" class="form-control" size="15" maxlength="${passwordLength}" onkeyup="updateTickIcon()" placeholder="••••••"/>
<span class="input-group-addon">
<i class="fa fa-check-circle text-success fa-1-5x" id="confirmtick"></i>
</span>
commit 6b3e7a2152fc0241100f27111a574331f479352d
Author: Maximilian Meister <mmeister(a)suse.de>
Date: Tue Feb 4 10:41:13 2014 +0100
perform password validation within the java class to accept an empty password as no change
diff --git a/java/code/src/com/redhat/rhn/frontend/action/user/UserEditActionHelper.java b/java/code/src/com/redhat/rhn/frontend/action/user/UserEditActionHelper.java
index 3056834..b6660c4 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/user/UserEditActionHelper.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/user/UserEditActionHelper.java
@@ -14,8 +14,11 @@
*/
package com.redhat.rhn.frontend.action.user;
+import java.util.regex.Pattern;
+
import com.redhat.rhn.common.conf.Config;
import com.redhat.rhn.common.conf.ConfigDefaults;
+import com.redhat.rhn.common.conf.UserDefaults;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.struts.RhnAction;
@@ -53,11 +56,26 @@ public abstract class UserEditActionHelper extends RhnAction {
new ActionMessage("error.password_mismatch"));
}
- //Make sure password is not the placeholder
- if (!UserActionHelper.PLACEHOLDER_PASSWORD.equals(
- form.get(UserActionHelper.DESIRED_PASS))) {
+ //Make sure password is not empty
+ if (!pw.isEmpty()) {
+ // Validate the password
+ if (pw.length() < UserDefaults.get().getMinPasswordLength()) {
+ errors.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("error.minpassword",
+ UserDefaults.get().getMinPasswordLength()));
+ }
+ if (Pattern.compile("[\\t\\n]").matcher(pw).find()) {
+ errors.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("error.invalidpasswordcharacters"));
+ }
+ if (pw.length() > UserDefaults.get().getMaxPasswordLength()) {
+ errors.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("error.maxpassword",
+ targetUser.getPassword()));
+ }
+
+ //Set the password only if there are no errors at all
if (errors.isEmpty()) {
- //Set the password only if there are no errors at all
targetUser.setPassword(pw);
}
}
diff --git a/java/code/src/com/redhat/rhn/frontend/action/user/validation/userDetailsForm.xsd b/java/code/src/com/redhat/rhn/frontend/action/user/validation/userDetailsForm.xsd
index eb56b63..c82e50a 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/user/validation/userDetailsForm.xsd
+++ b/java/code/src/com/redhat/rhn/frontend/action/user/validation/userDetailsForm.xsd
@@ -2,18 +2,6 @@
<schema targetNamespace="http://rhn.redhat.com"
xmlns="http://www.w3.org/1999/XMLSchema" xmlns:rhn="http://rhn.redhat.com">
- <attribute name="desiredpassword">
- <simpleType baseType="string">
- <minLength value="5" />
- <maxLength value="64" />
- </simpleType>
- </attribute>
- <attribute name="desiredpasswordConfirm">
- <simpleType baseType="string">
- <minLength value="5" />
- <maxLength value="64" />
- </simpleType>
- </attribute>
<attribute name="firstNames">
<simpleType baseType="string">
<minLength value="1" />
commit 958da4f5dda0a2ea67482abc9cc19a7b951a2338
Author: Maximilian Meister <mmeister(a)suse.de>
Date: Tue Feb 4 10:40:19 2014 +0100
removing obsolete code related to PLACEHOLDER_PASSWORD
diff --git a/java/code/src/com/redhat/rhn/frontend/action/user/UserActionHelper.java b/java/code/src/com/redhat/rhn/frontend/action/user/UserActionHelper.java
index 3ff18e6..1510aa1 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/user/UserActionHelper.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/user/UserActionHelper.java
@@ -32,9 +32,6 @@ public class UserActionHelper {
private UserActionHelper() {
}
- /** placeholder string, package protected; so we don't transmit
- * the actual pw but the form doesn't look empty */
- static final String PLACEHOLDER_PASSWORD = "******";
public static final String DESIRED_PASS = "desiredpassword";
public static final String DESIRED_PASS_CONFIRM = "desiredpasswordConfirm";
diff --git a/java/code/src/com/redhat/rhn/frontend/action/user/UserEditSetupAction.java b/java/code/src/com/redhat/rhn/frontend/action/user/UserEditSetupAction.java
index f56df31..63f3bf5 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/user/UserEditSetupAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/user/UserEditSetupAction.java
@@ -77,10 +77,6 @@ public class UserEditSetupAction extends RhnAction {
form.set("lastName", targetUser.getLastName());
form.set("title", targetUser.getTitle());
form.set("prefix", targetUser.getPrefix());
- form.set(UserActionHelper.DESIRED_PASS,
- UserActionHelper.PLACEHOLDER_PASSWORD);
- form.set(UserActionHelper.DESIRED_PASS_CONFIRM,
- UserActionHelper.PLACEHOLDER_PASSWORD);
request.setAttribute("user", targetUser);
request.setAttribute("mailableAddress", targetUser.getEmail());
commit b2eda942e18d50fefc1ed2d7683567a9318ba529
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Tue Feb 4 10:50:11 2014 +0100
Automatic commit of package [spacewalk-schema] release [2.1.39-1].
diff --git a/rel-eng/packages/spacewalk-schema b/rel-eng/packages/spacewalk-schema
index 58144b9..8dc827e 100644
--- a/rel-eng/packages/spacewalk-schema
+++ b/rel-eng/packages/spacewalk-schema
@@ -1 +1 @@
-2.1.38-1 schema/spacewalk/
+2.1.39-1 schema/spacewalk/
diff --git a/schema/spacewalk/spacewalk-schema.spec b/schema/spacewalk/spacewalk-schema.spec
index 3df51d6..bccf455 100644
--- a/schema/spacewalk/spacewalk-schema.spec
+++ b/schema/spacewalk/spacewalk-schema.spec
@@ -4,7 +4,7 @@ Name: spacewalk-schema
Group: Applications/Internet
Summary: Oracle SQL schema for Spacewalk server
-Version: 2.1.38
+Version: 2.1.39
Release: 1%{?dist}
Source0: %{name}-%{version}.tar.gz
@@ -71,6 +71,9 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/spacewalk-sql*
%changelog
+* Tue Feb 04 2014 Milan Zazrivec <mzazrivec(a)redhat.com> 2.1.39-1
+- upgrade script for Fedora 20 GPG key
+
* Mon Feb 03 2014 Tomas Lestach <tlestach(a)redhat.com> 2.1.38-1
- rename one and add another rhnConfiguration key
- update rhnUserExtGroupMapping triggers
commit 3cdd688b3b46bc6ca0e1c833c5383aba60594476
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Tue Feb 4 10:49:59 2014 +0100
upgrade script for Fedora 20 GPG key
diff --git a/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/047-rhnPackageKey-f20.sql b/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/047-rhnPackageKey-f20.sql
new file mode 100644
index 0000000..013ea13
--- /dev/null
+++ b/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/047-rhnPackageKey-f20.sql
@@ -0,0 +1,6 @@
+insert
+ into rhnPackageKey (id, key_id, key_type_id, provider_id)
+values (sequence_nextval('rhn_pkey_id_seq'),
+ '2eb161fa246110c1',
+ lookup_package_key_type('gpg'),
+ lookup_package_provider('Fedora'));
commit a7846c030ebcc92919417e23a4feb71443b001a1
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Tue Feb 4 09:15:56 2014 +0100
Automatic commit of package [spacewalk-branding] release [2.1.25-1].
diff --git a/branding/spacewalk-branding.spec b/branding/spacewalk-branding.spec
index 48a888d..d3fab4d 100644
--- a/branding/spacewalk-branding.spec
+++ b/branding/spacewalk-branding.spec
@@ -9,7 +9,7 @@
%endif
Name: spacewalk-branding
-Version: 2.1.24
+Version: 2.1.25
Release: 1%{?dist}
Summary: Spacewalk branding data
@@ -86,6 +86,10 @@ rm -rf %{buildroot}
%doc LICENSE
%changelog
+* Tue Feb 04 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.25-1
+- help links are already hidden via spacewalk-help-link class
+- move toolbar items right for all header levels
+
* Fri Jan 31 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.24-1
- add special class to help links
- Revert "bootstrap tuning - style submit buttons"
diff --git a/rel-eng/packages/spacewalk-branding b/rel-eng/packages/spacewalk-branding
index 071fc61..2b73635 100644
--- a/rel-eng/packages/spacewalk-branding
+++ b/rel-eng/packages/spacewalk-branding
@@ -1 +1 @@
-2.1.24-1 branding/
+2.1.25-1 branding/
commit 6209692b62608749b8732def06b318422114a691
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Feb 3 17:52:00 2014 +0100
Automatic commit of package [spacewalk-java] release [2.1.141-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 8676020..7e5bd5a 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.140
+Version: 2.1.141
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,14 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Mon Feb 03 2014 Tomas Lestach <tlestach(a)redhat.com> 2.1.141-1
+- enable creating externally authenticated users in organization according to
+ REMOTE_USER_ORGUNIT
+- do not close last row of tables with two </tr> tags
+- make search work when search form is submitted by enter
+- make ExpansionDecorator work again
+- new icon for item edit
+
* Fri Jan 31 2014 Tomas Lestach <tlestach(a)redhat.com> 2.1.140-1
- allow deleting disabled users
- return default string even if input string is null
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index 66f93be..1b78093 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.140-1 java/
+2.1.141-1 java/
commit 1738f1b647a605693dd6b985c553101c972ec839
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Feb 3 17:51:24 2014 +0100
Automatic commit of package [spacewalk-schema] release [2.1.38-1].
diff --git a/rel-eng/packages/spacewalk-schema b/rel-eng/packages/spacewalk-schema
index 1720fa6..58144b9 100644
--- a/rel-eng/packages/spacewalk-schema
+++ b/rel-eng/packages/spacewalk-schema
@@ -1 +1 @@
-2.1.37-1 schema/spacewalk/
+2.1.38-1 schema/spacewalk/
diff --git a/schema/spacewalk/spacewalk-schema.spec b/schema/spacewalk/spacewalk-schema.spec
index 5c55530..3df51d6 100644
--- a/schema/spacewalk/spacewalk-schema.spec
+++ b/schema/spacewalk/spacewalk-schema.spec
@@ -4,7 +4,7 @@ Name: spacewalk-schema
Group: Applications/Internet
Summary: Oracle SQL schema for Spacewalk server
-Version: 2.1.37
+Version: 2.1.38
Release: 1%{?dist}
Source0: %{name}-%{version}.tar.gz
@@ -71,6 +71,10 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/spacewalk-sql*
%changelog
+* Mon Feb 03 2014 Tomas Lestach <tlestach(a)redhat.com> 2.1.38-1
+- rename one and add another rhnConfiguration key
+- update rhnUserExtGroupMapping triggers
+
* Wed Jan 22 2014 Milan Zazrivec <mzazrivec(a)redhat.com> 2.1.37-1
- Revert "1053591 - refresh_newest_package: lock rhnChannel at the beginning"
- Revert "'is' followed by 'declare' is rarely needed"
commit 772be87a1fc07a5f0234895cc0470770637daf58
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Feb 3 10:32:37 2014 +0100
enable creating externally authenticated users in organization according
to REMOTE_USER_ORGUNIT
diff --git a/java/code/src/com/redhat/rhn/domain/common/SatConfigFactory.java b/java/code/src/com/redhat/rhn/domain/common/SatConfigFactory.java
index 38f36e3..6e58699 100644
--- a/java/code/src/com/redhat/rhn/domain/common/SatConfigFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/common/SatConfigFactory.java
@@ -20,6 +20,8 @@ import com.redhat.rhn.common.db.datasource.SelectMode;
import com.redhat.rhn.common.db.datasource.WriteMode;
import com.redhat.rhn.common.hibernate.HibernateFactory;
+import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import java.util.HashMap;
@@ -35,7 +37,8 @@ public class SatConfigFactory extends HibernateFactory {
private static SatConfigFactory singleton = new SatConfigFactory();
private static Logger log = Logger.getLogger(CommonFactory.class);
- public static final String ORG_ID_FOR_EXT_AUTH = "orgid_for_ext_authentications";
+ public static final String EXT_AUTH_DEFAULT_ORGID = "extauth_default_orgid";
+ public static final String EXT_AUTH_USE_ORGUNIT = "extauth_use_orgunit";
private SatConfigFactory() {
super();
@@ -47,6 +50,15 @@ public class SatConfigFactory extends HibernateFactory {
}
/**
+ * return satellite configuration boolean value for a specified key
+ * @param key key
+ * @return value boolean value
+ */
+ public static boolean getSatConfigBooleanValue(String key) {
+ return BooleanUtils.toBoolean(getSatConfigValue(key));
+ }
+
+ /**
* return satellite configuration long value for a specified key
* @param key key
* @return value long value
@@ -91,13 +103,32 @@ public class SatConfigFactory extends HibernateFactory {
public static void setSatConfigValue(String key, String value) {
Map params = new HashMap();
params.put("key", key);
- params.put("value", value);
+ if (StringUtils.isEmpty(value)) {
+ params.put("value", null);
+ }
+ else {
+ params.put("value", value);
+ }
WriteMode m = ModeFactory.getWriteMode("util_queries",
"set_satconfig_value");
m.executeUpdate(params);
}
/**
+ * set a satellite configuration value for a specified key
+ * @param key key
+ * @param value value
+ */
+ public static void setSatConfigBooleanValue(String key, Boolean value) {
+ if (value == null) {
+ setSatConfigValue(key, Boolean.FALSE.toString());
+ }
+ else {
+ setSatConfigValue(key, value.toString());
+ }
+ }
+
+ /**
* reset a satellite configuration value to a default value for a specified key
* @param key key
*/
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java b/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
index c4ee592..330dd45 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
@@ -83,13 +83,8 @@ public class LoginHelper {
String email = decodeFromIso88591(
(String) request.getAttribute("REMOTE_USER_EMAIL"), null);
- Long defaultOrgId = SatConfigFactory.getSatConfigLongValue(
- SatConfigFactory.ORG_ID_FOR_EXT_AUTH);
-
Set<Role> roles = getRolesFromExtGroups(request);
- log.warn("REMOTE_USER_ORGUNIT: " +
- request.getAttribute("REMOTE_USER_ORGUNIT"));
log.warn("REMOTE_USER_GROUPS: " +
request.getAttribute("REMOTE_USER_GROUPS"));
@@ -114,14 +109,28 @@ public class LoginHelper {
}
}
catch (LookupException le) {
- Org defaultOrg = null;
- if (defaultOrgId != null) {
- defaultOrg = OrgFactory.lookupById(defaultOrgId);
+ Org newUserOrg = null;
+ Boolean useOrgUnit = SatConfigFactory.getSatConfigBooleanValue(
+ SatConfigFactory.EXT_AUTH_USE_ORGUNIT);
+ if (useOrgUnit) {
+ String orgUnitString =
+ (String) request.getAttribute("REMOTE_USER_ORGUNIT");
+ newUserOrg = OrgFactory.lookupByName(orgUnitString);
+ if (newUserOrg == null) {
+ log.error("Cannot find organization with name: " + orgUnitString);
+ }
}
- if (defaultOrg == null) {
- log.error("Cannot find organization with id: " + defaultOrgId);
+ if (newUserOrg == null) {
+ Long defaultOrgId = SatConfigFactory.getSatConfigLongValue(
+ SatConfigFactory.EXT_AUTH_DEFAULT_ORGID);
+ if (defaultOrgId != null) {
+ newUserOrg = OrgFactory.lookupById(defaultOrgId);
+ if (newUserOrg == null) {
+ log.error("Cannot find organization with id: " + defaultOrgId);
+ }
+ }
}
- else {
+ if (newUserOrg != null) {
CreateUserCommand createCmd = new CreateUserCommand();
createCmd.setLogin(remoteUserString);
// set a password, that cannot really be used
@@ -129,15 +138,17 @@ public class LoginHelper {
createCmd.setFirstNames(firstname);
createCmd.setLastName(lastname);
createCmd.setEmail(email);
- createCmd.setOrg(defaultOrg);
+ createCmd.setOrg(newUserOrg);
createCmd.setRoles(roles);
createCmd.validate();
createCmd.storeNewUser();
remoteUser = createCmd.getUser();
log.warn("Externally authenticated login " + remoteUserString +
- " (" + firstname + " " + lastname + ") created.");
+ " (" + firstname + " " + lastname + ") created in " +
+ newUserOrg.getName() + ".");
}
- if (remoteUser.getPassword().equals(DEFAULT_KERB_USER_PASSWORD)) {
+ if (remoteUser != null &&
+ remoteUser.getPassword().equals(DEFAULT_KERB_USER_PASSWORD)) {
messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("message.kerbuserlogged",
new String[] {remoteUserString}));
diff --git a/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtAuthenticationAction.java b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtAuthenticationAction.java
index 7b15191..df7bbd1 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtAuthenticationAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtAuthenticationAction.java
@@ -51,17 +51,18 @@ public class ExtAuthenticationAction extends RhnAction {
RequestContext ctx = new RequestContext(request);
if (ctx.isSubmitted()) {
+ Boolean useOu = (Boolean) daForm.get("use_ou");
+ // store the value
+ SatConfigFactory.setSatConfigBooleanValue(
+ SatConfigFactory.EXT_AUTH_USE_ORGUNIT, useOu);
String toOrgString = daForm.getString("to_org");
- if (!StringUtils.isBlank(toOrgString)) {
+ if (!StringUtils.isEmpty(toOrgString)) {
// just check the org id is valid
OrgFactory.lookupById(Long.parseLong(toOrgString));
}
- else {
- toOrgString = null;
- }
// store the value
- SatConfigFactory.setSatConfigValue(SatConfigFactory.ORG_ID_FOR_EXT_AUTH,
+ SatConfigFactory.setSatConfigValue(SatConfigFactory.EXT_AUTH_DEFAULT_ORGID,
toOrgString);
createSuccessMessage(request, "message.ext_auth_updated", null);
@@ -76,6 +77,11 @@ public class ExtAuthenticationAction extends RhnAction {
private void setupForm(HttpServletRequest request, DynaActionForm form) {
RequestContext ctx = new RequestContext(request);
User user = ctx.getCurrentUser();
+
+ Boolean useOrgUnit = SatConfigFactory.getSatConfigBooleanValue(
+ SatConfigFactory.EXT_AUTH_USE_ORGUNIT);
+ form.set("use_ou", useOrgUnit);
+
DataList<OrgDto> dr = OrgManager.activeOrgs(user);
List <LabelValueBean> orgs = new LinkedList<LabelValueBean>();
@@ -88,7 +94,7 @@ public class ExtAuthenticationAction extends RhnAction {
request.setAttribute("orgs", orgs);
Long actOrgId = SatConfigFactory.getSatConfigLongValue(
- SatConfigFactory.ORG_ID_FOR_EXT_AUTH);
+ SatConfigFactory.EXT_AUTH_DEFAULT_ORGID);
if (actOrgId != null) {
form.set("to_org", actOrgId.toString());
}
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index 64f448c..328262e 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -19901,6 +19901,36 @@ given channel.</source>
<context context-type="sourcefile">/rhn/channels/manage/ConfirmPrivate.do</context>
</context-group>
</trans-unit>
+ <trans-unit id="extauth.org.message">
+ <source>Even externally authenticated users need to be created within @@PRODUCT_NAME@@. You may specify, in what organization new users shall be created. An option is to use the Org. Unit set on IPA server that has to match the organization name. Another option is to set a default organization, where all the newly created users will be created.</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/admin/multiorg/ExternalAuthentication.do</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="extauth.org.useou">
+ <source>Use organization unit name passed from IPA</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/admin/multiorg/ExternalAuthentication.do</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="extauth.org.default">
+ <source>Default organization</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/admin/multiorg/ExternalAuthentication.do</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="extauth.org.default.help">
+ <source>Used in case organization unit name passed from IPA isn't found or is disabled.</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/admin/multiorg/ExternalAuthentication.do</context>
+ </context-group>
+ </trans-unit>
+ <trans-unit id="extauth.user.create">
+ <source>New user creation</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/admin/multiorg/ExternalAuthentication.do</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="bunch.edit.jsp.toolbar">
<source>Bunch {0}</source>
<context-group name="ctx">
diff --git a/java/code/webapp/WEB-INF/pages/admin/multiorg/extauth.jsp b/java/code/webapp/WEB-INF/pages/admin/multiorg/extauth.jsp
index f604b5c..e15f5e5 100644
--- a/java/code/webapp/WEB-INF/pages/admin/multiorg/extauth.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/multiorg/extauth.jsp
@@ -20,30 +20,53 @@
<rhn:dialogmenu mindepth="0" maxdepth="2" definition="/WEB-INF/nav/admin_user.xml" renderer="com.redhat.rhn.frontend.nav.DialognavRenderer" />
+ <p>
+ <bean:message key="extauth.org.message"/>
+ </p>
- <div class="panel-body">
- <html:form method="post" action="/admin/multiorg/ExternalAuthentication.do">
+ <html:form method="post" action="/admin/multiorg/ExternalAuthentication.do" styleClass="form-horizontal">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h2><bean:message key="extauth.user.create"/></h2>
+ </div>
+ <div class="panel-body">
<rhn:csrf />
<html:hidden property="submitted" value="true"/>
- <div class="row-0 form-group">
- <div class="col-md-2">
- <bean:message key="sdc.details.migrate.org"/>
+ <div class="form-group">
+ <div class="col-md-3 control-label">
+ <bean:message key="extauth.org.useou"/>
</div>
- <div class="col-md-3">
+ <div class="col-md-4">
+ <div class="checkbox">
+ <html:checkbox property="use_ou"/>
+ </div>
+ </div>
+ </div>
+ <div class="form-group">
+ <div class="col-md-3 control-label">
+ <bean:message key="extauth.org.default"/>
+ </div>
+ <div class="col-md-4">
<html:select property="to_org" styleClass="form-control">
<html:options collection="orgs"
property="value" labelProperty="label" />
</html:select>
+ <span class="help-block">
+ <bean:message key="extauth.org.default.help" />
+ </span>
</div>
</div>
- <hr/>
- <div class="text-right">
- <html:submit styleClass="btn btn-success">
- <bean:message key="config.update"/>
- </html:submit>
- </div>
- </html:form>
+ </div>
+ </div>
+ <hr/>
+ <div class="form-group">
+ <div class="col-lg-offset-3 col-md-4">
+ <html:submit styleClass="btn btn-success">
+ <bean:message key="config.update"/>
+ </html:submit>
+ </div>
</div>
+ </html:form>
</body>
</html:html>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index 39d6d09..084104d 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -320,6 +320,7 @@
<form-bean name="extAuthForm"
type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm">
<form-property name="to_org" type="java.lang.String"/>
+ <form-property name="use_ou" type="java.lang.Boolean"/>
</form-bean>
<form-bean name="extGroupForm"
type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm">
commit 8c638ed4bc83b62ebe795f8fa174042052829643
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Feb 3 14:07:13 2014 +0100
rename one and add another rhnConfiguration key
diff --git a/schema/spacewalk/common/data/rhnConfiguration.sql b/schema/spacewalk/common/data/rhnConfiguration.sql
index ec7a976..1fe641f 100644
--- a/schema/spacewalk/common/data/rhnConfiguration.sql
+++ b/schema/spacewalk/common/data/rhnConfiguration.sql
@@ -1 +1,2 @@
-INSERT INTO rhnConfiguration (key, description) VALUES ('orgid_for_ext_authentications', 'Organization id, where externally authenticated users will be created.');
+INSERT INTO rhnConfiguration (key, description) VALUES ('extauth_default_orgid', 'Organization id, where externally authenticated users will be created.');
+INSERT INTO rhnConfiguration (key, description, default_value) VALUES ('extauth_use_orgunit', 'Use Org. Unit IPA setting as organization name to create externally authenticated users in.', 'false');
diff --git a/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/042-rhnConfiguration-data.sql b/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/042-rhnConfiguration-data.sql
index ec7a976..1fe641f 100644
--- a/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/042-rhnConfiguration-data.sql
+++ b/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/042-rhnConfiguration-data.sql
@@ -1 +1,2 @@
-INSERT INTO rhnConfiguration (key, description) VALUES ('orgid_for_ext_authentications', 'Organization id, where externally authenticated users will be created.');
+INSERT INTO rhnConfiguration (key, description) VALUES ('extauth_default_orgid', 'Organization id, where externally authenticated users will be created.');
+INSERT INTO rhnConfiguration (key, description, default_value) VALUES ('extauth_use_orgunit', 'Use Org. Unit IPA setting as organization name to create externally authenticated users in.', 'false');
commit 20aae4177697da81775daa215d4aa33f77edd11c
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Mon Feb 3 17:11:29 2014 +0100
do not close last row of tables with two </tr> tags
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
index 32961db..fb046d3 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
@@ -639,7 +639,6 @@ public class ListTag extends BodyTagSupport {
private int doAfterBodyRenderAfterData() throws JspException {
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
ListCommand.AFTER_RENDER);
- ListTagUtil.write(pageContext, "</tr>");
ListTagUtil.write(pageContext, "</tbody>");
return BodyTagSupport.EVAL_BODY_AGAIN;
}
commit 42ad5f83cecc1f04df6604fff464da309886c88b
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Mon Feb 3 16:13:42 2014 +0100
make search work when search form is submitted by enter
add hidden button which is 1st on the page and therefore treated as default by the browser
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
index 30f28e1..32961db 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
@@ -451,6 +451,9 @@ public class ListTag extends BodyTagSupport {
dec.beforeTopPagination();
}
}
+ if (filter != null && manip.getUnfilteredDataSize() != 0) {
+ ListTagUtil.renderFilterSubmit(pageContext, getUniqueName());
+ }
renderTopPaginationControls();
pageContext.popBody();
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
index b6404da..b032e50 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
@@ -694,6 +694,19 @@ public class ListTagUtil {
}
+ /**
+ * Renders the hidden input for filter to work
+ * @param pageContext caller's page context
+ * @param uniqueName name of the list
+ * @throws JspException if something bad happens writing to the page
+ */
+ public static void renderFilterSubmit(PageContext pageContext,
+ String uniqueName) throws JspException {
+ String filterName = makeFilterNameByLabel(uniqueName);
+ String result = (String.format("<input type=\"hidden\" name=\"%s\" ", filterName));
+ ListTagUtil.write(pageContext, result);
+ }
+
private static String makePageLink(HttpServletRequest request,
String listName, String page) {
String url = makeNonPagedLink(request, listName);
commit 7760c859623fa262effcc6aad295f5f5e0383794
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Mon Feb 3 16:20:43 2014 +0100
1043850 - avoid insecure use of /var/tmp
diff --git a/client/rhel/yum-rhn-plugin/yum-rhn-plugin.spec b/client/rhel/yum-rhn-plugin/yum-rhn-plugin.spec
index 188bc90..f879868 100644
--- a/client/rhel/yum-rhn-plugin/yum-rhn-plugin.spec
+++ b/client/rhel/yum-rhn-plugin/yum-rhn-plugin.spec
@@ -49,16 +49,16 @@ export pluginconf='/etc/yum/pluginconf.d/rhnplugin.conf'
if [ $1 -gt 1 ] && [ -f /etc/sysconfig/rhn/systemid ] && [ -f "$pluginconf" ]; then
if grep -q '^[[:space:]]*enabled[[:space:]]*=[[:space:]]*1[[:space:]]*$' \
"$pluginconf"; then
- touch /var/tmp/enable-yum-rhn-plugin
+ echo "1" > /etc/enable-yum-rhn-plugin
fi
fi
%post
# 682820 - re-enable yum-rhn-plugin after package upgrade if the system is already registered
export pluginconf='/etc/yum/pluginconf.d/rhnplugin.conf'
-if [ $1 -gt 1 ] && [ -f "$pluginconf" ] && [ -f "/var/tmp/enable-yum-rhn-plugin" ]; then
+if [ $1 -gt 1 ] && [ -f "$pluginconf" ] && [ -f "/etc/enable-yum-rhn-plugin" ]; then
sed -i '/\[main]/,/^$/{/enabled/s/0/1/}' "$pluginconf"
- rm -f /var/tmp/enable-yum-rhn-plugin
+ rm -f /etc/enable-yum-rhn-plugin
fi
%files -f %{name}.lang
commit c2dfd93413b74413e464fcc5949b6b7c3b90d94a
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Mon Feb 3 15:14:28 2014 +0100
make ExpansionDecorator work again
due to changes in ListTag id of table no longer belongs to table but to some <div> enveloping the table
new id is generated for the the <table> if the ListTag has ExpansionDecorator to make javascript around it work again
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
index a98fc99..30f28e1 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
@@ -36,6 +36,7 @@ import com.redhat.rhn.frontend.context.Context;
import com.redhat.rhn.frontend.html.HtmlTag;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.taglibs.RhnListTagFunctions;
+import com.redhat.rhn.frontend.taglibs.list.decorators.ExpansionDecorator;
import com.redhat.rhn.frontend.taglibs.list.decorators.ListDecorator;
import com.redhat.rhn.frontend.taglibs.list.decorators.PageSizeDecorator;
import com.redhat.rhn.frontend.taglibs.list.helper.ListHelper;
@@ -999,7 +1000,13 @@ public class ListTag extends BodyTagSupport {
}
private void startTable() throws JspException {
- ListTagUtil.write(pageContext, "<table class=\"table table-striped\"");
+ if (hasExpansionDecorator()) {
+ ListTagUtil.write(pageContext, "<table class=\"table table-striped\"" +
+ "id=\"" + this.getStyleId() + "_exp\"");
+ }
+ else {
+ ListTagUtil.write(pageContext, "<table class=\"table table-striped\"");
+ }
if (width != null) {
ListTagUtil.write(pageContext, " width=\"");
@@ -1237,4 +1244,14 @@ public class ListTag extends BodyTagSupport {
public void setReflinkkeyarg0(String refLinkKeyArg0In) {
this.refLinkKeyArg0 = refLinkKeyArg0In;
}
+
+ private boolean hasExpansionDecorator() {
+ for (ListDecorator dec : getDecorators()) {
+ if (dec.getClass().equals(ExpansionDecorator.class)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
}
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/ExpansionDecorator.java b/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/ExpansionDecorator.java
index 9343e30..6cc7e59 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/ExpansionDecorator.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/ExpansionDecorator.java
@@ -63,6 +63,7 @@ public class ExpansionDecorator extends BaseListDecorator {
public void afterList() throws JspException {
ListTag list = getCurrentList();
ListTagUtil.write(pageContext, String.format(LOAD_SCRIPT,
- list.getColumnCount(), list.getStyleId(), listName, listName));
+ list.getColumnCount(), list.getStyleId() + "_exp",
+ listName, listName));
}
}
commit 239d56682d9401376835f0b173d5c193bc490149
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Mon Feb 3 14:50:00 2014 +0100
1060742 - new information icon in gnome3
diff --git a/client/rhel/rhn-client-tools/data/Makefile b/client/rhel/rhn-client-tools/data/Makefile
index 8dfd214..01fedaf 100644
--- a/client/rhel/rhn-client-tools/data/Makefile
+++ b/client/rhel/rhn-client-tools/data/Makefile
@@ -86,6 +86,8 @@ endif
ifeq ($(shell test $(RHEL) -ge 7 -o $(FEDORA) -ge 18 && echo "newerror"), newerror)
sed -i -e "s|gtk-dialog-error|dialog-error|g" \
$(RHNSHARE_DIR)/up2date_client/rh_register.glade
+ sed -i -e "s|gtk-dialog-info|dialog-information|g" \
+ $(RHNSHARE_DIR)/up2date_client/rh_register.glade
endif
# this is lame and should be dealt with in the code
commit 03cb1a20fd696365e6b1f0d6448a26b544f90025
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 3 13:28:27 2014 +0100
new icon for item edit
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
index a997d44..686a31d 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
@@ -115,6 +115,7 @@ public class IconTag extends TagSupport {
icons.put("item-disabled", "fa fa-circle-o text-muted");
icons.put("item-download", "fa fa-download");
icons.put("item-download-csv", "fa spacewalk-icon-download-csv");
+ icons.put("item-edit", "fa fa-edit");
icons.put("item-enabled", "fa fa-check text-success");
icons.put("item-search", "fa fa-eye");
icons.put("item-ssm-add", "fa fa-plus-circle");
diff --git a/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp b/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
index c3804c4..f7db58e 100644
--- a/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
@@ -14,7 +14,7 @@
<c:if test="${is_suite_probe}">
<rhn:toolbar base="h2" icon="header-system"
miscAlt="probedetails.jsp.editsuiteprobe"
- miscIcon="item-clone"
+ miscIcon="item-edit"
miscUrl="/rhn/monitoring/config/ProbeSuiteProbeEdit.do?suite_id=${probe.templateProbe.probeSuite.id}&probe_id=${probe.templateProbe.id}"
miscText="probedetails.jsp.editsuiteprobe"
creationUrl="/rhn/systems/details/probes/ProbeCreate.do?sid=${system.id}"
@@ -27,7 +27,7 @@
deletionUrl="/rhn/systems/details/probes/ProbeDelete.do?probe_id=${probe.id}&sid=${system.id}"
deletionType="probe"
miscAlt="probedetails.jsp.editthisprobe"
- miscIcon="item-clone"
+ miscIcon="item-edit"
miscUrl="ProbeEdit.do?probe_id=${probe.id}&sid=${system.id}"
miscText="probedetails.jsp.editthisprobe"
creationUrl="/rhn/systems/details/probes/ProbeCreate.do?sid=${system.id}"
commit 086334ce2579fc00634e805135b52cf0d46473ed
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 3 12:49:57 2014 +0100
help links are already hidden via spacewalk-help-link class
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index 9307890..4935e58 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -459,10 +459,6 @@ aside .nav > li > a {
/* spacewalk toolbar: contains the H1 of each page + the toolbar */
.spacewalk-toolbar-h1 {
margin-bottom: 1.5em;
- /* we want to hide quesiton mark pointing to satellite docs in spacewalk */
- a .fa-stack {
- .hidden;
- }
}
.spacewalk-toolbar {
commit 845d79295a847d7c388b008b4ba6d54388af38ee
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Mon Feb 3 12:47:09 2014 +0100
move toolbar items right for all header levels
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index ac0b595..9307890 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -463,19 +463,20 @@ aside .nav > li > a {
a .fa-stack {
.hidden;
}
- .spacewalk-toolbar {
- .pull-right;
- padding: .5em 1em;
- a {
- border-right:1px solid @gray-light;
- padding: 0 .5em
- }
- a:hover {
- text-decoration: none;
- }
- a:last-child {
- border-right:0
- }
+}
+
+.spacewalk-toolbar {
+ .pull-right;
+ padding: .5em 1em;
+ a {
+ border-right:1px solid @gray-light;
+ padding: 0 .5em
+ }
+ a:hover {
+ text-decoration: none;
+ }
+ a:last-child {
+ border-right:0
}
}
commit 56879b92491df8ccc517502f49e537b39cd3c26c
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jan 31 16:53:25 2014 +0100
Automatic commit of package [spacewalk-java] release [2.1.140-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 56353e5..8676020 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.139
+Version: 2.1.140
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,18 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Fri Jan 31 2014 Tomas Lestach <tlestach(a)redhat.com> 2.1.140-1
+- allow deleting disabled users
+- return default string even if input string is null
+- move shared methods to loginhelper
+- introduce LoginHelper
+- add externally authenticated user roles according to the external group to
+ roles mapping
+- externally authenticated user does not have to be in the default org
+- add external group delete page
+- add external group edit page
+- add external group to role mapping list page
+
* Fri Jan 31 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.139-1
- add special class to help links
- use consistent set of icons for system status
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index 5f302c9..66f93be 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.139-1 java/
+2.1.140-1 java/
commit b1156c762780b3820eeea5cb0ddc14ed77d47c1a
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jan 31 15:53:10 2014 +0100
allow deleting disabled users
even if it is spacewalk/satellite admin
diff --git a/java/code/src/com/redhat/rhn/manager/user/UserManager.java b/java/code/src/com/redhat/rhn/manager/user/UserManager.java
index bf758fa..7a1e1f0 100644
--- a/java/code/src/com/redhat/rhn/manager/user/UserManager.java
+++ b/java/code/src/com/redhat/rhn/manager/user/UserManager.java
@@ -492,7 +492,7 @@ public class UserManager extends BaseManager {
// Do not allow deletion of the last Satellite Administrator:
User toDelete = UserFactory.lookupById(loggedInUser, targetUid);
- if (toDelete.hasRole(RoleFactory.SAT_ADMIN)) {
+ if (!toDelete.isDisabled() && toDelete.hasRole(RoleFactory.SAT_ADMIN)) {
if (SatManager.getActiveSatAdmins().size() == 1) {
log.warn("Cannot delete the last Satellite Administrator");
throw new DeleteSatAdminException(toDelete);
commit ba5907aa1b955e3c74509707a7c92fd1c61c63cb
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jan 31 15:28:28 2014 +0100
return default string even if input string is null
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java b/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
index f526e70..c4ee592 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
@@ -149,12 +149,14 @@ public class LoginHelper {
private static String decodeFromIso88591(String string, String defaultString) {
try {
- return new String(string.getBytes("ISO8859-1"), "UTF-8");
+ if (string != null) {
+ return new String(string.getBytes("ISO8859-1"), "UTF-8");
+ }
}
catch (UnsupportedEncodingException e) {
log.warn("Unable to decode: " + string);
- return defaultString;
}
+ return defaultString;
}
private static Set<Role> getRolesFromExtGroups(HttpServletRequest requestIn) {
commit 72be4ea24fedac8b6be33666844e8800ae24c8c2
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jan 29 14:51:42 2014 +0100
move shared methods to loginhelper
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginAction.java b/java/code/src/com/redhat/rhn/frontend/action/LoginAction.java
index c9d6e26..e45ed83 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/LoginAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginAction.java
@@ -70,16 +70,24 @@ public class LoginAction extends RhnAction {
return mapping.findForward("failure");
}
- ActionErrors e = new ActionErrors();
- User user = loginUser((String) f.get("username"), (String) f.get("password"),
- request, response, e);
+ ActionMessages messages = new ActionMessages();
+ User user = LoginHelper.checkExternalAuthentication(request, messages, errors);
+ // save stores msgs into the session (works for redirect)
+ saveMessages(request, messages);
+ addErrors(request, errors);
+ errors.clear();
+
+ if (user == null) {
+ user = loginUser((String) f.get("username"), (String) f.get("password"),
+ request, response, errors);
+ }
- if (e.isEmpty()) {
+ if (errors.isEmpty()) {
LoginHelper.successfulLogin(request, response, user);
}
else {
performGracePeriodCheck(request);
- addErrors(request, e);
+ addErrors(request, errors);
ret = mapping.findForward("failure");
}
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java b/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
index 030db3b..f526e70 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
@@ -14,18 +14,33 @@
*/
package com.redhat.rhn.frontend.action;
+import com.redhat.rhn.common.hibernate.LookupException;
import com.redhat.rhn.common.messaging.MessageQueue;
+import com.redhat.rhn.domain.common.SatConfigFactory;
import com.redhat.rhn.domain.org.Org;
+import com.redhat.rhn.domain.org.OrgFactory;
+import com.redhat.rhn.domain.org.usergroup.UserExtGroup;
+import com.redhat.rhn.domain.org.usergroup.UserGroupFactory;
+import com.redhat.rhn.domain.role.Role;
import com.redhat.rhn.domain.user.User;
+import com.redhat.rhn.domain.user.UserFactory;
import com.redhat.rhn.frontend.events.UpdateErrataCacheEvent;
import com.redhat.rhn.frontend.servlets.PxtSessionDelegateFactory;
+import com.redhat.rhn.manager.user.CreateUserCommand;
+import com.redhat.rhn.manager.user.UpdateUserCommand;
import com.redhat.rhn.manager.user.UserManager;
import org.apache.commons.lang.time.StopWatch;
import org.apache.log4j.Logger;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionMessage;
+import org.apache.struts.action.ActionMessages;
import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -39,6 +54,140 @@ import javax.servlet.http.HttpSession;
public class LoginHelper {
private static Logger log = Logger.getLogger(LoginHelper.class);
+ private static final String DEFAULT_KERB_USER_PASSWORD = "0";
+
+ /**
+ * Utility classes can't be instantiated.
+ */
+ private LoginHelper() {
+ }
+
+ /**
+ * check whether we can login an externally authenticated user
+ * @param request request
+ * @param messages messages
+ * @param errors errors
+ * @return user, if externally authenticated
+ */
+ public static User checkExternalAuthentication(HttpServletRequest request,
+ ActionMessages messages,
+ ActionErrors errors) {
+ String remoteUserString = request.getRemoteUser();
+ User remoteUser = null;
+ if (remoteUserString != null) {
+
+ String firstname = decodeFromIso88591(
+ (String) request.getAttribute("REMOTE_USER_FIRSTNAME"), "");
+ String lastname = decodeFromIso88591(
+ (String) request.getAttribute("REMOTE_USER_LASTNAME"), "");
+ String email = decodeFromIso88591(
+ (String) request.getAttribute("REMOTE_USER_EMAIL"), null);
+
+ Long defaultOrgId = SatConfigFactory.getSatConfigLongValue(
+ SatConfigFactory.ORG_ID_FOR_EXT_AUTH);
+
+ Set<Role> roles = getRolesFromExtGroups(request);
+
+ log.warn("REMOTE_USER_ORGUNIT: " +
+ request.getAttribute("REMOTE_USER_ORGUNIT"));
+ log.warn("REMOTE_USER_GROUPS: " +
+ request.getAttribute("REMOTE_USER_GROUPS"));
+
+ try {
+ remoteUser = UserFactory.lookupByLogin(remoteUserString);
+
+ if (remoteUser.isDisabled()) {
+ errors.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("account.user.disabled",
+ new String[] {remoteUserString}));
+ remoteUser = null;
+ }
+ if (remoteUser != null) {
+ UpdateUserCommand updateCmd = new UpdateUserCommand(remoteUser);
+ updateCmd.setFirstNames(firstname);
+ updateCmd.setLastName(lastname);
+ updateCmd.setEmail(email);
+ updateCmd.setRoles(roles);
+ updateCmd.updateUser();
+ log.warn("Externally authenticated login " + remoteUserString +
+ " (" + firstname + " " + lastname + ")");
+ }
+ }
+ catch (LookupException le) {
+ Org defaultOrg = null;
+ if (defaultOrgId != null) {
+ defaultOrg = OrgFactory.lookupById(defaultOrgId);
+ }
+ if (defaultOrg == null) {
+ log.error("Cannot find organization with id: " + defaultOrgId);
+ }
+ else {
+ CreateUserCommand createCmd = new CreateUserCommand();
+ createCmd.setLogin(remoteUserString);
+ // set a password, that cannot really be used
+ createCmd.setRawPassword(DEFAULT_KERB_USER_PASSWORD);
+ createCmd.setFirstNames(firstname);
+ createCmd.setLastName(lastname);
+ createCmd.setEmail(email);
+ createCmd.setOrg(defaultOrg);
+ createCmd.setRoles(roles);
+ createCmd.validate();
+ createCmd.storeNewUser();
+ remoteUser = createCmd.getUser();
+ log.warn("Externally authenticated login " + remoteUserString +
+ " (" + firstname + " " + lastname + ") created.");
+ }
+ if (remoteUser.getPassword().equals(DEFAULT_KERB_USER_PASSWORD)) {
+ messages.add(ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("message.kerbuserlogged",
+ new String[] {remoteUserString}));
+ }
+ }
+ }
+ return remoteUser;
+ }
+
+ private static String decodeFromIso88591(String string, String defaultString) {
+ try {
+ return new String(string.getBytes("ISO8859-1"), "UTF-8");
+ }
+ catch (UnsupportedEncodingException e) {
+ log.warn("Unable to decode: " + string);
+ return defaultString;
+ }
+ }
+
+ private static Set<Role> getRolesFromExtGroups(HttpServletRequest requestIn) {
+ Set<Role> roles = new HashSet<Role>();
+ Long nGroups = null;
+ String nGroupsStr = (String) requestIn.getAttribute("REMOTE_USER_GROUP_N");
+ if (nGroupsStr != null) {
+ try {
+ nGroups = Long.parseLong(nGroupsStr);
+ }
+ catch (NumberFormatException nfe) {
+ // do nothing, nGroups stays null
+ }
+ }
+ if (nGroups == null) {
+ log.warn("REMOTE_USER_GROUP_N not set!");
+ return roles;
+ }
+ for (int i = 1; i <= nGroups; i++) {
+ String extGroupName = (String) requestIn.getAttribute("REMOTE_USER_GROUP_" + i);
+ if (extGroupName == null) {
+ log.warn("REMOTE_USER_GROUP_" + i + " not set!");
+ continue;
+ }
+ UserExtGroup extGroup = UserGroupFactory.lookupExtGroupByLabel(extGroupName);
+ if (extGroup == null) {
+ log.warn("No mapping defined for external group '" + extGroupName + "'.");
+ continue;
+ }
+ roles.addAll(extGroup.getRoles());
+ }
+ return roles;
+ }
/** static method shared by LoginAction and LoginSetupAction
* @param request actual request
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java b/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
index 58c2874..9b5c419 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
@@ -17,35 +17,23 @@ package com.redhat.rhn.frontend.action;
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.hibernate.LookupException;
-import com.redhat.rhn.domain.common.SatConfigFactory;
-import com.redhat.rhn.domain.org.Org;
-import com.redhat.rhn.domain.org.OrgFactory;
-import com.redhat.rhn.domain.org.usergroup.UserExtGroup;
-import com.redhat.rhn.domain.org.usergroup.UserGroupFactory;
-import com.redhat.rhn.domain.role.Role;
import com.redhat.rhn.domain.user.User;
-import com.redhat.rhn.domain.user.UserFactory;
import com.redhat.rhn.frontend.struts.RhnAction;
import com.redhat.rhn.frontend.struts.RhnHelper;
import com.redhat.rhn.manager.acl.AclManager;
import com.redhat.rhn.manager.satellite.CertificateManager;
import com.redhat.rhn.manager.satellite.SystemCommandExecutor;
-import com.redhat.rhn.manager.user.CreateUserCommand;
-import com.redhat.rhn.manager.user.UpdateUserCommand;
import com.redhat.rhn.manager.user.UserManager;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
+import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionMessages;
-import java.io.UnsupportedEncodingException;
import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Set;
-
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@@ -58,7 +46,6 @@ public class LoginSetupAction extends RhnAction {
private static Logger log = Logger.getLogger(LoginSetupAction.class);
public static final String HAS_EXPIRED = "hasExpired";
- private static final String DEFAULT_KERB_USER_PASSWORD = "0";
/** {@inheritDoc} */
public ActionForward execute(ActionMapping mapping,
@@ -116,90 +103,18 @@ public class LoginSetupAction extends RhnAction {
return mapping.findForward("loggedin");
}
- String remoteUserString = request.getRemoteUser();
- if (remoteUserString != null) {
-
- String firstname = decodeFromIso88591(
- (String) request.getAttribute("REMOTE_USER_FIRSTNAME"), "");
- String lastname = decodeFromIso88591(
- (String) request.getAttribute("REMOTE_USER_LASTNAME"), "");
- String email = decodeFromIso88591(
- (String) request.getAttribute("REMOTE_USER_EMAIL"), null);
-
- Long defaultOrgId = SatConfigFactory.getSatConfigLongValue(
- SatConfigFactory.ORG_ID_FOR_EXT_AUTH);
-
- User remoteUser = null;
- Set<Role> roles = getRolesFromExtGroups(request);
-
- log.info("REMOTE_USER_CUSTOM_N: " +
- request.getAttribute("REMOTE_USER_CUSTOM_N"));
- log.info("REMOTE_USER_GECOS: " +
- request.getAttribute("REMOTE_USER_GECOS"));
- log.warn("REMOTE_USER_GROUPS: " +
- request.getAttribute("REMOTE_USER_GROUPS"));
- log.info("REMOTE_USER_GROUP_1: " +
- request.getAttribute("REMOTE_USER_GROUP_1"));
- log.info("REMOTE_USER_GROUP_2: " +
- request.getAttribute("REMOTE_USER_GROUP_2"));
- log.info("REMOTE_USER_GROUP_3: " +
- request.getAttribute("REMOTE_USER_GROUP_3"));
- log.info("REMOTE_USER_GROUP_N: " +
- request.getAttribute("REMOTE_USER_GROUP_N"));
-
- try {
- remoteUser = UserFactory.lookupByLogin(remoteUserString);
-
- if (remoteUser.isDisabled()) {
- createErrorMessage(request, "account.user.disabled", remoteUserString);
- remoteUser = null;
- }
- if (remoteUser != null) {
- UpdateUserCommand updateCmd = new UpdateUserCommand(remoteUser);
- updateCmd.setFirstNames(firstname);
- updateCmd.setLastName(lastname);
- updateCmd.setEmail(email);
- updateCmd.setRoles(roles);
- updateCmd.updateUser();
- log.warn("Externally authenticated login " + remoteUserString +
- " (" + firstname + " " + lastname + ")");
- }
- }
- catch (LookupException le) {
- Org defaultOrg = null;
- if (defaultOrgId != null) {
- defaultOrg = OrgFactory.lookupById(defaultOrgId);
- }
- if (defaultOrg == null) {
- log.error("Cannot find organization with id: " + defaultOrgId);
- }
- else {
- CreateUserCommand createCmd = new CreateUserCommand();
- createCmd.setLogin(remoteUserString);
- // set a password, that cannot really be used
- createCmd.setRawPassword(DEFAULT_KERB_USER_PASSWORD);
- createCmd.setFirstNames(firstname);
- createCmd.setLastName(lastname);
- createCmd.setEmail(email);
- createCmd.setOrg(defaultOrg);
- createCmd.setRoles(roles);
- createCmd.validate();
- createCmd.storeNewUser();
- remoteUser = createCmd.getUser();
- log.warn("Externally authenticated login " + remoteUserString +
- " (" + firstname + " " + lastname + ") created.");
- }
- }
- if (remoteUser != null) {
- if (remoteUser.getPassword().equals(DEFAULT_KERB_USER_PASSWORD)) {
- createMessage(request, "message.kerbuserlogged",
- new String [] {remoteUserString});
- }
- if (LoginHelper.successfulLogin(request, response, remoteUser)) {
- return null;
- }
- return mapping.findForward("loggedin");
+ ActionErrors errors = new ActionErrors();
+ ActionMessages messages = new ActionMessages();
+ User remoteUser =
+ LoginHelper.checkExternalAuthentication(request, messages, errors);
+ // save stores msgs into the session (works for redirect)
+ saveMessages(request, messages);
+ addErrors(request, errors);
+ if (errors.isEmpty() && remoteUser != null) {
+ if (LoginHelper.successfulLogin(request, response, remoteUser)) {
+ return null;
}
+ return mapping.findForward("loggedin");
}
// store url_bounce set by pxt pages
@@ -213,48 +128,6 @@ public class LoginSetupAction extends RhnAction {
return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
}
- private Set<Role> getRolesFromExtGroups(HttpServletRequest requestIn) {
- Set<Role> roles = new HashSet<Role>();
- Long nGroups = null;
- String nGroupsStr = (String) requestIn.getAttribute("REMOTE_USER_GROUP_N");
- if (nGroupsStr != null) {
- try {
- nGroups = Long.parseLong(nGroupsStr);
- }
- catch (NumberFormatException nfe) {
- // do nothing, nGroups stays null
- }
- }
- if (nGroups == null) {
- log.warn("REMOTE_USER_GROUP_N not set!");
- return roles;
- }
- for (int i = 1; i <= nGroups; i++) {
- String extGroupName = (String) requestIn.getAttribute("REMOTE_USER_GROUP_" + i);
- if (extGroupName == null) {
- log.warn("REMOTE_USER_GROUP_" + i + " not set!");
- continue;
- }
- UserExtGroup extGroup = UserGroupFactory.lookupExtGroupByLabel(extGroupName);
- if (extGroup == null) {
- log.warn("No mapping defined for external group '" + extGroupName + "'.");
- continue;
- }
- roles.addAll(extGroup.getRoles());
- }
- return roles;
- }
-
- private String decodeFromIso88591(String string, String defaultString) {
- try {
- return new String(string.getBytes("ISO8859-1"), "UTF-8");
- }
- catch (UnsupportedEncodingException e) {
- log.warn("Unable to decode: " + string);
- return defaultString;
- }
- }
-
private String getRpmSchemaVersion(String schemaName) {
String[] rpmCommand = new String[4];
rpmCommand[0] = "rpm";
commit 2391a243afa6265951f3cedc388cf4d0dd285b9a
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Jan 29 13:28:53 2014 +0100
introduce LoginHelper
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginAction.java b/java/code/src/com/redhat/rhn/frontend/action/LoginAction.java
index ed670ad..c9d6e26 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/LoginAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginAction.java
@@ -14,18 +14,13 @@
*/
package com.redhat.rhn.frontend.action;
-import com.redhat.rhn.common.messaging.MessageQueue;
-import com.redhat.rhn.domain.org.Org;
import com.redhat.rhn.domain.user.User;
-import com.redhat.rhn.frontend.events.UpdateErrataCacheEvent;
-import com.redhat.rhn.frontend.servlets.PxtSessionDelegateFactory;
import com.redhat.rhn.frontend.struts.RhnAction;
import com.redhat.rhn.frontend.struts.RhnValidationHelper;
import com.redhat.rhn.manager.satellite.CertificateManager;
import com.redhat.rhn.manager.user.UserManager;
import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.time.StopWatch;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
@@ -35,13 +30,9 @@ import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.DynaActionForm;
-import java.io.IOException;
-import java.util.Date;
-
import javax.security.auth.login.LoginException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
/**
* LoginAction
@@ -84,7 +75,7 @@ public class LoginAction extends RhnAction {
request, response, e);
if (e.isEmpty()) {
- successfulLogin(request, response, user);
+ LoginHelper.successfulLogin(request, response, user);
}
else {
performGracePeriodCheck(request);
@@ -95,42 +86,6 @@ public class LoginAction extends RhnAction {
return ret;
}
- /** static method shared by LoginAction and LoginSetupAction
- * @param request actual request
- * @param response actual reponse
- * @param user logged in user
- * @return returns true, if redirect
- */
- public static boolean successfulLogin(HttpServletRequest request,
- HttpServletResponse response, User user) {
- // set last logged in
- user.setLastLoggedIn(new Date());
- UserManager.storeUser(user);
- // update session with actual user
- PxtSessionDelegateFactory.getInstance().newPxtSessionDelegate().
- updateWebUserId(request, response, user.getId());
-
- publishUpdateErrataCacheEvent(user.getOrg());
- // redirect, if url_bounce set
- HttpSession ws = request.getSession(false);
- if (ws != null) {
- String urlBounce = LoginAction.updateUrlBounce(
- (String) ws.getAttribute("url_bounce"),
- (String) ws.getAttribute("request_method"));
- try {
- if (urlBounce != null) {
- log.info("redirect: " + urlBounce);
- response.sendRedirect(urlBounce);
- return true;
- }
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- }
- return false;
- }
-
/**
* update url_bounce
* @param urlBounce url_bounce
@@ -156,28 +111,6 @@ public class LoginAction extends RhnAction {
}
/**
- * @param orgIn
- */
- private static void publishUpdateErrataCacheEvent(Org orgIn) {
- StopWatch sw = new StopWatch();
- if (log.isDebugEnabled()) {
- log.debug("Updating errata cache");
- sw.start();
- }
-
- UpdateErrataCacheEvent uece = new
- UpdateErrataCacheEvent(UpdateErrataCacheEvent.TYPE_ORG);
- uece.setOrgId(orgIn.getId());
- MessageQueue.publish(uece);
-
- if (log.isDebugEnabled()) {
- sw.stop();
- log.debug("Finished Updating errata cache. Took [" +
- sw.getTime() + "]");
- }
- }
-
- /**
* Log a user into the site and create the user's session.
* @param username User's login name.
* @param password User's unencrypted password.
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java b/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
new file mode 100644
index 0000000..030db3b
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginHelper.java
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.action;
+
+import com.redhat.rhn.common.messaging.MessageQueue;
+import com.redhat.rhn.domain.org.Org;
+import com.redhat.rhn.domain.user.User;
+import com.redhat.rhn.frontend.events.UpdateErrataCacheEvent;
+import com.redhat.rhn.frontend.servlets.PxtSessionDelegateFactory;
+import com.redhat.rhn.manager.user.UserManager;
+
+import org.apache.commons.lang.time.StopWatch;
+import org.apache.log4j.Logger;
+
+import java.io.IOException;
+import java.util.Date;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+
+/**
+ * LoginHelper
+ * @version $Rev$
+ */
+public class LoginHelper {
+
+ private static Logger log = Logger.getLogger(LoginHelper.class);
+
+ /** static method shared by LoginAction and LoginSetupAction
+ * @param request actual request
+ * @param response actual reponse
+ * @param user logged in user
+ * @return returns true, if redirect
+ */
+ public static boolean successfulLogin(HttpServletRequest request,
+ HttpServletResponse response, User user) {
+ // set last logged in
+ user.setLastLoggedIn(new Date());
+ UserManager.storeUser(user);
+ // update session with actual user
+ PxtSessionDelegateFactory.getInstance().newPxtSessionDelegate().
+ updateWebUserId(request, response, user.getId());
+
+ LoginHelper.publishUpdateErrataCacheEvent(user.getOrg());
+ // redirect, if url_bounce set
+ HttpSession ws = request.getSession(false);
+ if (ws != null) {
+ String urlBounce = LoginAction.updateUrlBounce(
+ (String) ws.getAttribute("url_bounce"),
+ (String) ws.getAttribute("request_method"));
+ try {
+ if (urlBounce != null) {
+ log.info("redirect: " + urlBounce);
+ response.sendRedirect(urlBounce);
+ return true;
+ }
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @param orgIn
+ */
+ private static void publishUpdateErrataCacheEvent(Org orgIn) {
+ StopWatch sw = new StopWatch();
+ if (log.isDebugEnabled()) {
+ log.debug("Updating errata cache");
+ sw.start();
+ }
+
+ UpdateErrataCacheEvent uece = new
+ UpdateErrataCacheEvent(UpdateErrataCacheEvent.TYPE_ORG);
+ uece.setOrgId(orgIn.getId());
+ MessageQueue.publish(uece);
+
+ if (log.isDebugEnabled()) {
+ sw.stop();
+ log.debug("Finished Updating errata cache. Took [" +
+ sw.getTime() + "]");
+ }
+ }
+
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java b/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
index 85f7fac..58c2874 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
@@ -195,7 +195,7 @@ public class LoginSetupAction extends RhnAction {
createMessage(request, "message.kerbuserlogged",
new String [] {remoteUserString});
}
- if (LoginAction.successfulLogin(request, response, remoteUser)) {
+ if (LoginHelper.successfulLogin(request, response, remoteUser)) {
return null;
}
return mapping.findForward("loggedin");
commit bdfbbf8d5290262cb13a78cf52243e8db33ee25a
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Tue Jan 28 18:34:34 2014 +0100
add externally authenticated user roles according to the external group
to roles mapping
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java b/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
index d10a382..85f7fac 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
@@ -21,6 +21,9 @@ import com.redhat.rhn.common.hibernate.LookupException;
import com.redhat.rhn.domain.common.SatConfigFactory;
import com.redhat.rhn.domain.org.Org;
import com.redhat.rhn.domain.org.OrgFactory;
+import com.redhat.rhn.domain.org.usergroup.UserExtGroup;
+import com.redhat.rhn.domain.org.usergroup.UserGroupFactory;
+import com.redhat.rhn.domain.role.Role;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.domain.user.UserFactory;
import com.redhat.rhn.frontend.struts.RhnAction;
@@ -40,6 +43,8 @@ import org.apache.struts.action.ActionMapping;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -125,15 +130,25 @@ public class LoginSetupAction extends RhnAction {
SatConfigFactory.ORG_ID_FOR_EXT_AUTH);
User remoteUser = null;
- try {
- log.info("REMOTE_USER_CUSTOM_N: " +
- request.getAttribute("REMOTE_USER_CUSTOM_N"));
- log.info("REMOTE_USER_GECOS: " +
- request.getAttribute("REMOTE_USER_GECOS"));
- log.info("REMOTE_USER_GROUPS: " +
- request.getAttribute("REMOTE_USER_GROUPS"));
+ Set<Role> roles = getRolesFromExtGroups(request);
+
+ log.info("REMOTE_USER_CUSTOM_N: " +
+ request.getAttribute("REMOTE_USER_CUSTOM_N"));
+ log.info("REMOTE_USER_GECOS: " +
+ request.getAttribute("REMOTE_USER_GECOS"));
+ log.warn("REMOTE_USER_GROUPS: " +
+ request.getAttribute("REMOTE_USER_GROUPS"));
+ log.info("REMOTE_USER_GROUP_1: " +
+ request.getAttribute("REMOTE_USER_GROUP_1"));
+ log.info("REMOTE_USER_GROUP_2: " +
+ request.getAttribute("REMOTE_USER_GROUP_2"));
+ log.info("REMOTE_USER_GROUP_3: " +
+ request.getAttribute("REMOTE_USER_GROUP_3"));
+ log.info("REMOTE_USER_GROUP_N: " +
+ request.getAttribute("REMOTE_USER_GROUP_N"));
- remoteUser = UserFactory.lookupByLogin(remoteUserString);
+ try {
+ remoteUser = UserFactory.lookupByLogin(remoteUserString);
if (remoteUser.isDisabled()) {
createErrorMessage(request, "account.user.disabled", remoteUserString);
@@ -144,6 +159,7 @@ public class LoginSetupAction extends RhnAction {
updateCmd.setFirstNames(firstname);
updateCmd.setLastName(lastname);
updateCmd.setEmail(email);
+ updateCmd.setRoles(roles);
updateCmd.updateUser();
log.warn("Externally authenticated login " + remoteUserString +
" (" + firstname + " " + lastname + ")");
@@ -166,6 +182,7 @@ public class LoginSetupAction extends RhnAction {
createCmd.setLastName(lastname);
createCmd.setEmail(email);
createCmd.setOrg(defaultOrg);
+ createCmd.setRoles(roles);
createCmd.validate();
createCmd.storeNewUser();
remoteUser = createCmd.getUser();
@@ -196,6 +213,38 @@ public class LoginSetupAction extends RhnAction {
return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
}
+ private Set<Role> getRolesFromExtGroups(HttpServletRequest requestIn) {
+ Set<Role> roles = new HashSet<Role>();
+ Long nGroups = null;
+ String nGroupsStr = (String) requestIn.getAttribute("REMOTE_USER_GROUP_N");
+ if (nGroupsStr != null) {
+ try {
+ nGroups = Long.parseLong(nGroupsStr);
+ }
+ catch (NumberFormatException nfe) {
+ // do nothing, nGroups stays null
+ }
+ }
+ if (nGroups == null) {
+ log.warn("REMOTE_USER_GROUP_N not set!");
+ return roles;
+ }
+ for (int i = 1; i <= nGroups; i++) {
+ String extGroupName = (String) requestIn.getAttribute("REMOTE_USER_GROUP_" + i);
+ if (extGroupName == null) {
+ log.warn("REMOTE_USER_GROUP_" + i + " not set!");
+ continue;
+ }
+ UserExtGroup extGroup = UserGroupFactory.lookupExtGroupByLabel(extGroupName);
+ if (extGroup == null) {
+ log.warn("No mapping defined for external group '" + extGroupName + "'.");
+ continue;
+ }
+ roles.addAll(extGroup.getRoles());
+ }
+ return roles;
+ }
+
private String decodeFromIso88591(String string, String defaultString) {
try {
return new String(string.getBytes("ISO8859-1"), "UTF-8");
diff --git a/java/code/src/com/redhat/rhn/manager/user/CreateUserCommand.java b/java/code/src/com/redhat/rhn/manager/user/CreateUserCommand.java
index 5db4bb9..4a41dc4 100644
--- a/java/code/src/com/redhat/rhn/manager/user/CreateUserCommand.java
+++ b/java/code/src/com/redhat/rhn/manager/user/CreateUserCommand.java
@@ -21,6 +21,7 @@ import com.redhat.rhn.common.messaging.MessageQueue;
import com.redhat.rhn.common.validator.ParsedConstraint;
import com.redhat.rhn.common.validator.ValidatorError;
import com.redhat.rhn.domain.org.Org;
+import com.redhat.rhn.domain.role.Role;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.user.Address;
import com.redhat.rhn.domain.user.User;
@@ -31,6 +32,7 @@ import org.apache.commons.lang.StringUtils;
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
import java.util.SortedSet;
import java.util.regex.Pattern;
@@ -48,6 +50,7 @@ public class CreateUserCommand {
private Address addr;
private boolean makeOrgAdmin;
private boolean makeSatAdmin;
+ private Set<Role> roles;
private List<ValidatorError> errors;
private List<ValidatorError> passwordErrors;
@@ -136,6 +139,11 @@ public class CreateUserCommand {
user.addRole(RoleFactory.SAT_ADMIN);
}
user.setUsePamAuthentication(usePam); //set it back
+ if (roles != null) {
+ for (Role role : roles) {
+ user.addRole(role);
+ }
+ }
UserManager.storeUser(user); //save the user via hibernate
}
@@ -380,4 +388,20 @@ public class CreateUserCommand {
public void setMakeSatAdmin(boolean val) {
this.makeSatAdmin = val;
}
+
+
+ /**
+ * @return Returns the roles.
+ */
+ public Set<Role> getRoles() {
+ return roles;
+ }
+
+
+ /**
+ * @param rolesIn The roles to set.
+ */
+ public void setRoles(Set<Role> rolesIn) {
+ roles = rolesIn;
+ }
}
diff --git a/java/code/src/com/redhat/rhn/manager/user/UpdateUserCommand.java b/java/code/src/com/redhat/rhn/manager/user/UpdateUserCommand.java
index cf53600..1f704da 100644
--- a/java/code/src/com/redhat/rhn/manager/user/UpdateUserCommand.java
+++ b/java/code/src/com/redhat/rhn/manager/user/UpdateUserCommand.java
@@ -16,6 +16,7 @@ package com.redhat.rhn.manager.user;
import com.redhat.rhn.common.conf.UserDefaults;
import com.redhat.rhn.common.localization.LocalizationService;
+import com.redhat.rhn.domain.role.Role;
import com.redhat.rhn.domain.user.User;
import org.apache.commons.lang.StringUtils;
@@ -23,6 +24,7 @@ import org.apache.commons.lang.StringUtils;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.Set;
import java.util.regex.Pattern;
import javax.mail.internet.AddressException;
@@ -46,7 +48,10 @@ public class UpdateUserCommand {
private boolean prefixChanged = false;
private boolean firstNamesChanged = false;
private boolean lastNameChanged = false;
+ private boolean rolesChanged = false;
private boolean needsUpdate = false;
+ private Set<Role> roles;
+
/**
* Constructor
@@ -112,6 +117,12 @@ public class UpdateUserCommand {
if (unencryptedPasswordChanged) {
user.setPassword(unencryptedPassword);
}
+
+ if (rolesChanged) {
+ for (Role role : roles) {
+ user.addRole(role);
+ }
+ }
}
/**
@@ -238,4 +249,24 @@ public class UpdateUserCommand {
lastName = lastNameIn;
}
}
+
+
+ /**
+ * @return Returns the roles.
+ */
+ public Set<Role> getRoles() {
+ return roles;
+ }
+
+
+ /**
+ * @param rolesIn The roles to set.
+ */
+ public void setRoles(Set<Role> rolesIn) {
+ if (!rolesIn.equals(user.getRoles())) {
+ rolesChanged = true;
+ needsUpdate = true;
+ roles = rolesIn;
+ }
+ }
}
commit e7539b9ac6032e96eb37b5d080c01347ee7633ec
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Tue Jan 28 18:04:15 2014 +0100
externally authenticated user does not have to be in the default org
diff --git a/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java b/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
index f2725f4..d10a382 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/LoginSetupAction.java
@@ -139,10 +139,6 @@ public class LoginSetupAction extends RhnAction {
createErrorMessage(request, "account.user.disabled", remoteUserString);
remoteUser = null;
}
- else if (!remoteUser.getOrg().getId().equals(defaultOrgId)) {
- createErrorMessage(request, "account.user.wrong_org", remoteUserString);
- remoteUser = null;
- }
if (remoteUser != null) {
UpdateUserCommand updateCmd = new UpdateUserCommand(remoteUser);
updateCmd.setFirstNames(firstname);
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
index bc37a07..7680b42 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
@@ -994,12 +994,6 @@
<context context-type="sourcefile">Login or Logout</context>
</context-group>
</trans-unit>
- <trans-unit id="account.user.wrong_org">
- <source>Account {0} isn't available in the organization configured for external authenticated users.</source>
- <context-group name="ctx">
- <context context-type="sourcefile">Login or Logout</context>
- </context-group>
- </trans-unit>
<trans-unit id="user.enable">
<source>Reactivated user <strong>{0}</strong>.</source>
<context-group name="ctx">
commit cc1064c9ea693987af2466c2d1961f9479febcd7
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jan 24 18:05:27 2014 +0100
add external group delete page
diff --git a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml
index a036076..9ab249a 100644
--- a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml
+++ b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml
@@ -17,9 +17,9 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<property name="modified" column="modified" type="timestamp"
insert="false" update="false" />
- <set name="roles" lazy="true" table="rhnUserExtGroupMapping" cascade="all">
+ <set name="roles" lazy="true" table="rhnUserExtGroupMapping" outer-join="false">
<key column="ext_group_id"/>
- <many-to-many class="com.redhat.rhn.domain.role.RoleImpl" column="int_group_type_id"/>
+ <many-to-many class="com.redhat.rhn.domain.role.RoleImpl" column="int_group_type_id" outer-join="false"/>
</set>
</class>
diff --git a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java
index 299fced..cb259f4 100644
--- a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java
@@ -114,6 +114,14 @@ public class UserGroupFactory extends HibernateFactory {
}
/**
+ * delete UserExtGroup object
+ * @param extGroup external group
+ */
+ public static void delete(UserExtGroup extGroup) {
+ singleton.removeObject(extGroup);
+ }
+
+ /**
* lookup function to search for external groups
* @param labelIn external group label
* @return external group object
diff --git a/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDeleteAction.java b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDeleteAction.java
new file mode 100644
index 0000000..e0170c3
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDeleteAction.java
@@ -0,0 +1,58 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.action.multiorg;
+
+import com.redhat.rhn.domain.org.usergroup.UserExtGroup;
+import com.redhat.rhn.domain.org.usergroup.UserGroupFactory;
+import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.struts.RhnAction;
+import com.redhat.rhn.frontend.struts.RhnHelper;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * ExtGroupDeleteAction
+ * @version $Rev$
+ */
+public class ExtGroupDeleteAction extends RhnAction {
+
+ /** {@inheritDoc} */
+ @Override
+ public ActionForward execute(ActionMapping mapping, ActionForm formIn,
+ HttpServletRequest request, HttpServletResponse response) {
+
+ RequestContext ctx = new RequestContext(request);
+ Long gid = ctx.getRequiredParamAsLong("gid");
+ UserExtGroup extGroup = UserGroupFactory.lookupExtGroupById(gid);
+ ctx.copyParamToAttributes("gid");
+ request.setAttribute("group", extGroup);
+
+ if (ctx.isSubmitted()) {
+ String label = extGroup.getLabel();
+ UserGroupFactory.delete(extGroup);
+ createSuccessMessage(request, "message.extgroup.deleted", label);
+ return mapping.findForward("success");
+ }
+
+ return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
+ }
+
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDetailAction.java b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDetailAction.java
index 61879e3..3dbd79d 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDetailAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDetailAction.java
@@ -88,19 +88,20 @@ public class ExtGroupDetailAction extends RhnAction {
if (extGroup == null) {
extGroup = new UserExtGroup();
}
- else {
- if (!label.equals(extGroup.getLabel())) {
- if (UserGroupFactory.lookupExtGroupByLabel(label) != null) {
- createErrorMessage(request, "extgrouplabel.already.exists", label);
- setupRoles(request, user, extGroup);
- return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
- }
+
+ if (!label.equals(extGroup.getLabel())) {
+ if (UserGroupFactory.lookupExtGroupByLabel(label) != null) {
+ createErrorMessage(request, "extgrouplabel.already.exists", label);
+ setupRoles(request, user, extGroup);
+ return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
}
- extGroup.setLabel(label);
- extGroup.setRoles(roles);
- UserGroupFactory.save(extGroup);
}
+ extGroup.setLabel(label);
+ extGroup.setRoles(roles);
+ UserGroupFactory.save(extGroup);
+
+
if (gid == null) {
createSuccessMessage(request, "message.extgroup.created", label);
}
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
index 606565e..bc37a07 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
@@ -6838,6 +6838,9 @@ Follow this url to see the full list of inactive systems:
<trans-unit id="message.extgroup.updated">
<source>External Authentication Group '{0}' was successfully updated.</source>
</trans-unit>
+ <trans-unit id="message.extgroup.deleted">
+ <source>External Authentication Group '{0}' was successfully deleted.</source>
+ </trans-unit>
<trans-unit id="extgrouplabel.already.exists">
<source>External Authentication Group name '{0}' is already used. Please choose another one.</source>
</trans-unit>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index 655b5a2..64f448c 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -8435,7 +8435,10 @@ Please note that some manual configuration of these scripts may still be require
<source>Update External Group - {0}</source>
</trans-unit>
<trans-unit id="extgroup.jsp.delete">
- <source>Delete External Group</source>
+ <source>Delete External Group - {0}</source>
+ </trans-unit>
+ <trans-unit id="extgroup.jsp.delete.summary">
+ <source>Following External Group will be deleted.</source>
</trans-unit>
<trans-unit id="distchannelmap.jsp.create">
<source>Create New Distribution Channel Map</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/struts/RequestContext.java b/java/code/src/com/redhat/rhn/frontend/struts/RequestContext.java
index 2c72311..a2258f2 100644
--- a/java/code/src/com/redhat/rhn/frontend/struts/RequestContext.java
+++ b/java/code/src/com/redhat/rhn/frontend/struts/RequestContext.java
@@ -494,6 +494,22 @@ public class RequestContext {
}
/**
+ * Get the parameter <code>paramName</code> from the request
+ * A BadParameterException is thrown if the
+ * parameter is not present in the request or is empty
+ * @param paramName the name of the parameter
+ * @return the parameter value converted to a <code>Long</code>
+ */
+ public Long getRequiredParamAsLong(String paramName) {
+ Long p = getParamAsLong(paramName);
+ if (p == null) {
+ throw new BadParameterException("The parameter " + paramName +
+ " is required.");
+ }
+ return p;
+ }
+
+ /**
* If this current Request includes a parameter to indicate the User is attempting
* to produce an export of viewable data then return true.
*
diff --git a/java/code/webapp/WEB-INF/pages/admin/multiorg/extgroup_delete.jsp b/java/code/webapp/WEB-INF/pages/admin/multiorg/extgroup_delete.jsp
new file mode 100644
index 0000000..a163a4d
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/admin/multiorg/extgroup_delete.jsp
@@ -0,0 +1,54 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
+<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
+
+<html:html >
+<body>
+ <rhn:toolbar base="h1" icon="header-channel-mapping" iconAlt="info.alt.img">
+ <bean:message key="extgroup.jsp.delete" arg0="${group.label}"/>
+ </rhn:toolbar>
+
+ <rhn:dialogmenu mindepth="0" maxdepth="2" definition="/WEB-INF/nav/admin_user.xml" renderer="com.redhat.rhn.frontend.nav.DialognavRenderer" />
+
+ <div class="page-summary">
+ <p><bean:message key="extgroup.jsp.delete.summary"/></p>
+ </div>
+
+ <html:form method="post" action="/admin/multiorg/ExtGroupDelete.do?gid=${gid}" styleClass="form-horizontal">
+ <rhn:csrf />
+ <rhn:submitted/>
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h2><bean:message key="extgroup.jsp.header"/></h2>
+ </div>
+ <div class="panel-body">
+ <div class="form-group">
+ <label class="col-lg-3 control-label">
+ <bean:message key="extgrouplist.jsp.name"/>
+ </label>
+ <div class="col-lg-6">
+ <c:out value="${group.label}" />
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-lg-3 control-label">
+ <bean:message key="userdetails.jsp.roles"/>
+ </label>
+ <div class="col-lg-6">
+ <c:out value="${group.roleNames}" />
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div class="form-group">
+ <div class="col-lg-offset-3 col-lg-6">
+ <html:submit><bean:message key="extgroup.jsp.delete"/></html:submit>
+ <html:hidden property="gid" value="${gid}" />
+ </div>
+ </div>
+ </html:form>
+
+</body>
+</html:html>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index cf94883..39d6d09 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -328,6 +328,10 @@
<form-property name="role_org_admin" type="java.lang.Boolean"/>
<form-property name="selected_regular_roles" type="java.lang.String"/>
</form-bean>
+ <form-bean name="extGroupDeleteForm"
+ type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm">
+ <form-property name="submitted" type="java.lang.Boolean"/>
+ </form-bean>
<form-bean name="packageSearchForm"
type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm">
<form-property name="search_string" type="java.lang.String"/>
@@ -5720,6 +5724,19 @@
path="/admin/multiorg/ExtAuthRoleMapping.do" redirect="true" />
</action>
+ <action path="/admin/multiorg/ExtGroupDelete"
+ scope="request"
+ name="extGroupDeleteForm"
+ input="/WEB-INF/pages/admin/multiorg/extgroup_delete.jsp"
+ type="com.redhat.rhn.frontend.action.multiorg.ExtGroupDeleteAction"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping">
+ <set-property property="postRequiredIfSubmitted" value="true" />
+ <set-property property="acls" value="user_role(satellite_admin)"/>
+ <forward name="default" path="/WEB-INF/pages/admin/multiorg/extgroup_delete.jsp" />
+ <forward name="success"
+ path="/admin/multiorg/ExtAuthRoleMapping.do" redirect="true" />
+ </action>
+
<action path="/multiorg/channels/OrgList"
scope="request"
input="/WEB-INF/pages/multiorg/channels/orglist.jsp"
commit 4ac5c9db50165a208fdc48c1467e445166702c0b
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Jan 20 15:35:03 2014 +0100
add external group edit page
diff --git a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml
index 811cd03..a036076 100644
--- a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml
+++ b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml
@@ -24,7 +24,15 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
</class>
<query name="UserExtGroup.listAll">
- <![CDATA[FROM com.redhat.rhn.domain.org.usergroup.UserExtGroup]]>
+ <![CDATA[FROM com.redhat.rhn.domain.org.usergroup.UserExtGroup ORDER BY label]]>
+ </query>
+
+ <query name="UserExtGroup.lookupById">
+ <![CDATA[FROM com.redhat.rhn.domain.org.usergroup.UserExtGroup WHERE id = :gid]]>
+ </query>
+
+ <query name="UserExtGroup.lookupByLabel">
+ <![CDATA[FROM com.redhat.rhn.domain.org.usergroup.UserExtGroup WHERE label = :label]]>
</query>
</hibernate-mapping>
diff --git a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java
index da1d790..299fced 100644
--- a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java
@@ -21,10 +21,12 @@ import com.redhat.rhn.domain.org.Org;
import com.redhat.rhn.domain.role.Role;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.user.User;
+
import org.apache.log4j.Logger;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
* UserGroupFactory - the singleton class used to fetch and store
@@ -90,5 +92,37 @@ public class UserGroupFactory extends HibernateFactory {
return singleton.listObjectsByNamedQuery(
"UserExtGroup.listAll", new HashMap());
}
+
+ /**
+ * lookup function to search for external groups
+ * @param gidIn external group id
+ * @return external group object
+ */
+ public static UserExtGroup lookupExtGroupById(Long gidIn) {
+ Map<String, Long> params = new HashMap();
+ params.put("gid", gidIn);
+ return (UserExtGroup) singleton.lookupObjectByNamedQuery(
+ "UserExtGroup.lookupById", params);
+ }
+
+ /**
+ * save UserExtGroup object
+ * @param extGroup external group
+ */
+ public static void save(UserExtGroup extGroup) {
+ singleton.saveObject(extGroup);
+ }
+
+ /**
+ * lookup function to search for external groups
+ * @param labelIn external group label
+ * @return external group object
+ */
+ public static UserExtGroup lookupExtGroupByLabel(String labelIn) {
+ Map<String, String> params = new HashMap();
+ params.put("label", labelIn);
+ return (UserExtGroup) singleton.lookupObjectByNamedQuery(
+ "UserExtGroup.lookupByLabel", params);
+ }
}
diff --git a/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDetailAction.java b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDetailAction.java
new file mode 100644
index 0000000..61879e3
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtGroupDetailAction.java
@@ -0,0 +1,163 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.action.multiorg;
+
+import com.redhat.rhn.common.localization.LocalizationService;
+import com.redhat.rhn.domain.org.usergroup.UserExtGroup;
+import com.redhat.rhn.domain.org.usergroup.UserGroupFactory;
+import com.redhat.rhn.domain.role.Role;
+import com.redhat.rhn.domain.role.RoleFactory;
+import com.redhat.rhn.domain.user.User;
+import com.redhat.rhn.domain.user.UserFactory;
+import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.struts.RhnAction;
+import com.redhat.rhn.frontend.struts.RhnHelper;
+import com.redhat.rhn.frontend.struts.SelectableLabelValueBean;
+
+import org.apache.commons.lang.BooleanUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.DynaActionForm;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * ExtGroupDetailAction
+ * @version $Rev$
+ */
+public class ExtGroupDetailAction extends RhnAction {
+
+ /** {@inheritDoc} */
+ @Override
+ public ActionForward execute(ActionMapping mapping, ActionForm formIn,
+ HttpServletRequest request, HttpServletResponse response) {
+ RequestContext ctx = new RequestContext(request);
+ User user = ctx.getCurrentUser();
+
+ Long gid = ctx.getParamAsLong("gid");
+ UserExtGroup extGroup = null;
+ if (gid != null) {
+ ctx.copyParamToAttributes("gid");
+ extGroup = UserGroupFactory.lookupExtGroupById(gid);
+ request.setAttribute("group", extGroup);
+ }
+
+ if (ctx.isSubmitted()) {
+ DynaActionForm form = (DynaActionForm)formIn;
+ String label = (String) form.get("extGroupLabel");
+ Boolean satAdm = (Boolean) form.get("role_satellite_admin");
+ Boolean orgAdm = (Boolean) form.get("role_org_admin");
+ String selectedRoles = (String) form.get("selected_regular_roles");
+
+ Set<Role> roles = new HashSet<Role>();
+ if (BooleanUtils.isTrue(satAdm)) {
+ roles.add(RoleFactory.SAT_ADMIN);
+ }
+ if (BooleanUtils.isTrue(orgAdm)) {
+ roles.add(RoleFactory.ORG_ADMIN);
+ }
+ else {
+ for (String roleString : selectedRoles.split(" ")) {
+ if (!StringUtils.isEmpty(roleString)) {
+ roles.add(RoleFactory.lookupByLabel(roleString));
+ }
+ }
+ }
+
+ if (extGroup == null) {
+ extGroup = new UserExtGroup();
+ }
+ else {
+ if (!label.equals(extGroup.getLabel())) {
+ if (UserGroupFactory.lookupExtGroupByLabel(label) != null) {
+ createErrorMessage(request, "extgrouplabel.already.exists", label);
+ setupRoles(request, user, extGroup);
+ return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
+ }
+ }
+ extGroup.setLabel(label);
+ extGroup.setRoles(roles);
+ UserGroupFactory.save(extGroup);
+ }
+
+ if (gid == null) {
+ createSuccessMessage(request, "message.extgroup.created", label);
+ }
+ else {
+ createSuccessMessage(request, "message.extgroup.updated", label);
+ }
+ return mapping.findForward("success");
+ }
+
+ // not submitted
+ setupRoles(request, user, extGroup);
+ return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
+ }
+
+ /**
+ * setup external group roles
+ * @param request request
+ * @param user logged in user
+ * @param extGroup external group
+ */
+ public void setupRoles(HttpServletRequest request, User user,
+ UserExtGroup extGroup) {
+ List<SelectableLabelValueBean> adminRoles =
+ new ArrayList<SelectableLabelValueBean>();
+ List<SelectableLabelValueBean> regularRoles =
+ new ArrayList<SelectableLabelValueBean>();
+
+ for (Role role : user.getOrg().getRoles()) {
+ String label = role.getLabel();
+ if (UserFactory.IMPLIEDROLES.contains(role)) {
+ // channel, config, system group, activation key, monitoring admin
+ boolean hasOrgAdmin = extGroup == null ? false :
+ extGroup.getRoles().contains((RoleFactory.ORG_ADMIN));
+ SelectableLabelValueBean bean = new SelectableLabelValueBean(
+ LocalizationService.getInstance().getMessage(label),
+ label,
+ hasOrgAdmin ||
+ (extGroup == null ? false : extGroup.getRoles().contains(role)),
+ hasOrgAdmin && UserFactory.IMPLIEDROLES.contains(role));
+ regularRoles.add(bean);
+ }
+ else {
+ // org and satellite admin
+ boolean hasSatAdmin = extGroup == null ? false :
+ extGroup.getRoles().contains((RoleFactory.SAT_ADMIN));
+ SelectableLabelValueBean bean = new SelectableLabelValueBean(
+ LocalizationService.getInstance().getMessage(label),
+ label,
+ extGroup == null ? false : extGroup.getRoles().contains(role),
+ false);
+ adminRoles .add(bean);
+ }
+ }
+
+ request.setAttribute("adminRoles", adminRoles);
+ request.setAttribute("regularRoles", regularRoles);
+ request.setAttribute("orgAdmin", extGroup == null ? false :
+ extGroup.getRoles().contains(RoleFactory.ORG_ADMIN));
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
index 4bbb091..606565e 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
@@ -6830,10 +6830,16 @@ Follow this url to see the full list of inactive systems:
</context-group>
</trans-unit>
<trans-unit id="message.ext_auth_updated">
- <source>External Authentication was successfully updated.</source>
- <context-group name="ctx">
- <context context-type="sourcefile">/rhn/admin/multiorg/OrgDetails</context>
- </context-group>
+ <source>External Authentication settings were successfully updated.</source>
+ </trans-unit>
+ <trans-unit id="message.extgroup.created">
+ <source>External Authentication Group '{0}' was successfully created.</source>
+ </trans-unit>
+ <trans-unit id="message.extgroup.updated">
+ <source>External Authentication Group '{0}' was successfully updated.</source>
+ </trans-unit>
+ <trans-unit id="extgrouplabel.already.exists">
+ <source>External Authentication Group name '{0}' is already used. Please choose another one.</source>
</trans-unit>
<trans-unit id="message.org_name_updated">
<source>Organization {0} was successfully updated.</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index 71081ac..655b5a2 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -68,6 +68,12 @@
</group>
<!-- Generic buttons. The intent is that these can be reused across multiple pages.-->
<group>
+ <trans-unit id="button.create">
+ <source>Create</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/profiles/Details</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="button.update">
<source>Update</source>
<context-group name="ctx">
@@ -8410,6 +8416,27 @@ Please note that some manual configuration of these scripts may still be require
<trans-unit id="org.specific">
<source>Organization Specific</source>
</trans-unit>
+ <trans-unit id="extgroup.jsp.header">
+ <source>External Group to Roles Mapping</source>
+ </trans-unit>
+ <trans-unit id="extgroups.jsp.header">
+ <source>External Groups</source>
+ </trans-unit>
+ <trans-unit id="extgroups.jsp.summary">
+ <source>Externally authenticated users may have set external (e.g. LDAP) groups. According to these groups the user will get assigned additional @@PRODUCT_NAME@@ roles.</source>
+ </trans-unit>
+ <trans-unit id="extgroup.jsp.summary">
+ <source>Define what @@PRODUCT_NAME@@ roles shall be assigned to externally authenticated users with specified group set.</source>
+ </trans-unit>
+ <trans-unit id="extgroup.jsp.create">
+ <source>Create New External Group</source>
+ </trans-unit>
+ <trans-unit id="extgroup.jsp.update">
+ <source>Update External Group - {0}</source>
+ </trans-unit>
+ <trans-unit id="extgroup.jsp.delete">
+ <source>Delete External Group</source>
+ </trans-unit>
<trans-unit id="distchannelmap.jsp.create">
<source>Create New Distribution Channel Map</source>
</trans-unit>
diff --git a/java/code/src/com/redhat/rhn/frontend/struts/RequestContext.java b/java/code/src/com/redhat/rhn/frontend/struts/RequestContext.java
index f907af9..2c72311 100644
--- a/java/code/src/com/redhat/rhn/frontend/struts/RequestContext.java
+++ b/java/code/src/com/redhat/rhn/frontend/struts/RequestContext.java
@@ -629,7 +629,7 @@ public class RequestContext {
String param = req.getParameter(paramId);
if (param != null) {
- req.setAttribute(paramId, req.getParameter(paramId));
+ req.setAttribute(paramId, param);
}
}
diff --git a/java/code/src/com/redhat/rhn/frontend/struts/SelectableLabelValueBean.java b/java/code/src/com/redhat/rhn/frontend/struts/SelectableLabelValueBean.java
new file mode 100644
index 0000000..8f735f6
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/struts/SelectableLabelValueBean.java
@@ -0,0 +1,81 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.struts;
+
+
+/**
+ * SelectableLabelValueBean
+ * @version $Rev$
+ */
+public class SelectableLabelValueBean extends SelectableAdapter {
+
+ private String label;
+ private String value;
+
+ /**
+ * @param labelIn label
+ * @param valueIn value
+ * @param selectedIn selected property
+ * @param disabledIn disabled property
+ *
+ */
+ public SelectableLabelValueBean(String labelIn, String valueIn, boolean selectedIn,
+ boolean disabledIn) {
+ label = labelIn;
+ value = valueIn;
+ setSelected(selectedIn);
+ setDisabled(disabledIn);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getSelectionKey() {
+ return label;
+ }
+
+
+ /**
+ * @return Returns the label.
+ */
+ public String getLabel() {
+ return label;
+ }
+
+
+ /**
+ * @param labelIn The label to set.
+ */
+ public void setLabel(String labelIn) {
+ label = labelIn;
+ }
+
+
+ /**
+ * @return Returns the value.
+ */
+ public String getValue() {
+ return value;
+ }
+
+
+ /**
+ * @param valueIn The value to set.
+ */
+ public void setValue(String valueIn) {
+ value = valueIn;
+ }
+}
diff --git a/java/code/webapp/WEB-INF/nav/admin_user.xml b/java/code/webapp/WEB-INF/nav/admin_user.xml
index 312119b..637c9b7 100644
--- a/java/code/webapp/WEB-INF/nav/admin_user.xml
+++ b/java/code/webapp/WEB-INF/nav/admin_user.xml
@@ -11,6 +11,7 @@
</rhn-tab>
<rhn-tab name="Group Role Mapping" acl="user_role(satellite_admin)">
<rhn-tab-url>/rhn/admin/multiorg/ExtAuthRoleMapping.do</rhn-tab-url>
+ <rhn-tab-url>/rhn/admin/multiorg/ExtGroupDetails.do</rhn-tab-url>
</rhn-tab>
</rhn-tab>
</rhn-navi-tree>
diff --git a/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml b/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
index cd3bb57..6c92a3e 100644
--- a/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
+++ b/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
@@ -287,6 +287,7 @@
<rhn-tab name="External Authentication" acl="user_role(satellite_admin)">
<rhn-tab-url>/rhn/admin/multiorg/ExternalAuthentication.do</rhn-tab-url>
<rhn-tab-url>/rhn/admin/multiorg/ExtAuthRoleMapping.do</rhn-tab-url>
+ <rhn-tab-url>/rhn/admin/multiorg/ExtGroupDetails.do</rhn-tab-url>
</rhn-tab>
</rhn-tab>
diff --git a/java/code/webapp/WEB-INF/pages/admin/multiorg/extauthroles.jsp b/java/code/webapp/WEB-INF/pages/admin/multiorg/extauthroles.jsp
index 706f0bd..c41e4fe 100644
--- a/java/code/webapp/WEB-INF/pages/admin/multiorg/extauthroles.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/multiorg/extauthroles.jsp
@@ -22,7 +22,7 @@
<h4><bean:message key="extgroup.jsp.header"/></h4>
</div>
<div class="panel-body">
- <p><bean:message key="extgroup.jsp.summary"/></p>
+ <p><bean:message key="extgroups.jsp.summary"/></p>
</div>
<rl:listset name="groupRolesSet">
@@ -38,7 +38,7 @@
headerkey="extgrouplist.jsp.name"
attr="label"
filterattr="label">
- <c:out value="<a href=\"/rhn/admin/multiorg/ExtGroupDetails.do?uid=${current.id}\">${current.label}</a>" escapeXml="false" />
+ <c:out value="<a href=\"/rhn/admin/multiorg/ExtGroupDetails.do?gid=${current.id}\">${current.label}</a>" escapeXml="false" />
</rl:column>
<rl:column attr="roleNames"
diff --git a/java/code/webapp/WEB-INF/pages/admin/multiorg/extgroup_detail.jsp b/java/code/webapp/WEB-INF/pages/admin/multiorg/extgroup_detail.jsp
new file mode 100644
index 0000000..3710abf
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/admin/multiorg/extgroup_detail.jsp
@@ -0,0 +1,122 @@
+<%@ taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
+<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
+<%@ taglib uri="http://rhn.redhat.com/tags/list" prefix="rl" %>
+
+<html:html >
+ <head>
+ <script language="javascript" type="text/javascript">
+ function toggle_checkboxes() {
+ org_checkbox = document.getElementById('role_org_admin');
+ sat_checkbox = document.getElementById('role_satellite_admin');
+ role_checkboxes = document.getElementsByName('regular_role');
+ for (var i = 0, n = role_checkboxes.length; i < n; i++) {
+ if (org_checkbox.checked) {
+ role_checkboxes[i].checked = org_checkbox.checked;
+ }
+ role_checkboxes[i].disabled = org_checkbox.checked;
+ }
+ }
+
+ function collect_regular_roles() {
+ selected = document.getElementById('selected_regular_roles');
+ role_checkboxes = document.getElementsByName('regular_role');
+ selected.value = '';
+ for (var i = 0, n = role_checkboxes.length; i < n; i++) {
+ if (role_checkboxes[i].checked) {
+ selected.value += role_checkboxes[i].id + ' ';
+ }
+ }
+ }
+ </script>
+ </head>
+ <body onLoad="toggle_checkboxes()">
+
+ <c:choose>
+ <c:when test="${empty gid}">
+ <rhn:toolbar base="h1" icon="header-channel-mapping" iconAlt="info.alt.img">
+ <bean:message key="extgroup.jsp.create"/>
+ </rhn:toolbar>
+ </c:when>
+ <c:otherwise>
+ <rhn:toolbar base="h1" icon="header-channel-mapping" iconAlt="info.alt.img"
+ deletionUrl="ExtGroupDelete.do?gid=${gid}"
+ deletionType="extgroup">
+ <bean:message key="extgroup.jsp.update" arg0="${group.label}"/>
+ </rhn:toolbar>
+ </c:otherwise>
+ </c:choose>
+
+ <rhn:dialogmenu mindepth="0" maxdepth="2" definition="/WEB-INF/nav/admin_user.xml" renderer="com.redhat.rhn.frontend.nav.DialognavRenderer" />
+
+ <div class="page-summary">
+ <p><bean:message key="extgroups.jsp.summary"/></p>
+ <p><bean:message key="extgroup.jsp.summary"/></p>
+ </div>
+ <div class="panel-heading">
+ <h4><bean:message key="extgroup.jsp.header"/></h4>
+ </div>
+
+ <form method="post" action="/rhn/admin/multiorg/ExtGroupDetails.do?gid=${gid}" class="form-horizontal" onSubmit="collect_regular_roles()">
+ <rhn:submitted/>
+ <rhn:csrf />
+ <div class="form-group">
+ <label class="col-lg-3 control-label"><bean:message key="extgrouplist.jsp.name"/>:</label>
+ <div class="col-lg-6">
+ <input type="text" class="form-control" name="extGroupLabel" value="${group.label}" />
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-lg-3 control-label"><bean:message key="userdetails.jsp.adminRoles"/>:</label>
+ <div class="col-lg-6">
+ <c:forEach items="${adminRoles}" var="role">
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" id="role_${role.value}" name="role_${role.value}" onchange="toggle_checkboxes()"
+ <c:if test="${role.selected}">checked="true"</c:if>
+ <c:if test="${role.disabled}">disabled="true"</c:if>
+ />
+ ${role.label}
+ </label>
+ </div>
+ </c:forEach>
+ </div>
+ </div>
+ <div class="form-group">
+ <label class="col-lg-3 control-label">
+ <bean:message key="userdetails.jsp.roles"/>:
+ </label>
+ <div class="col-lg-6">
+ <c:forEach items="${regularRoles}" var="role">
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="regular_role" id="${role.value}"
+ <c:if test="${role.selected}">checked="true"</c:if>
+ <c:if test="${role.disabled}">disabled="true"</c:if>
+ />
+ ${role.label}
+ </label>
+ </div>
+ </c:forEach>
+ </div>
+ </div>
+ <input type="hidden" id="selected_regular_roles" name="selected_regular_roles"/>
+
+ <div class="form-group">
+ <div class="col-lg-offset-3 col-lg-6">
+ <button type="submit" class="btn btn-success">
+ <c:choose>
+ <c:when test="${empty gid}">
+ <bean:message key="button.create"/>
+ </c:when>
+ <c:otherwise>
+ <bean:message key="button.update"/>
+ </c:otherwise>
+ </c:choose>
+ </button>
+ </div>
+ </div>
+ </form>
+ </body>
+</html:html>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index 6eb9fb3..cf94883 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -321,6 +321,13 @@
type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm">
<form-property name="to_org" type="java.lang.String"/>
</form-bean>
+ <form-bean name="extGroupForm"
+ type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm">
+ <form-property name="extGroupLabel" type="java.lang.String"/>
+ <form-property name="role_satellite_admin" type="java.lang.Boolean"/>
+ <form-property name="role_org_admin" type="java.lang.Boolean"/>
+ <form-property name="selected_regular_roles" type="java.lang.String"/>
+ </form-bean>
<form-bean name="packageSearchForm"
type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm">
<form-property name="search_string" type="java.lang.String"/>
@@ -5700,6 +5707,19 @@
path="/admin/multiorg/EExtAuthRoleMapping.do" redirect="true" />
</action>
+ <action path="/admin/multiorg/ExtGroupDetails"
+ scope="request"
+ name="extGroupForm"
+ input="/WEB-INF/pages/admin/multiorg/extgroup_detail.jsp"
+ type="com.redhat.rhn.frontend.action.multiorg.ExtGroupDetailAction"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping">
+ <set-property property="postRequiredIfSubmitted" value="true" />
+ <set-property property="acls" value="user_role(satellite_admin)"/>
+ <forward name="default" path="/WEB-INF/pages/admin/multiorg/extgroup_detail.jsp" />
+ <forward name="success"
+ path="/admin/multiorg/ExtAuthRoleMapping.do" redirect="true" />
+ </action>
+
<action path="/multiorg/channels/OrgList"
scope="request"
input="/WEB-INF/pages/multiorg/channels/orglist.jsp"
commit c4b226d75f6d29913f01f360df13189d5e1865d9
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Jan 23 11:21:47 2014 +0100
update rhnUserExtGroupMapping triggers
diff --git a/schema/spacewalk/oracle/triggers/rhnUserExtGroupMapping.sql b/schema/spacewalk/oracle/triggers/rhnUserExtGroupMapping.sql
index a448299..ca31c86 100644
--- a/schema/spacewalk/oracle/triggers/rhnUserExtGroupMapping.sql
+++ b/schema/spacewalk/oracle/triggers/rhnUserExtGroupMapping.sql
@@ -18,6 +18,9 @@ rhn_userextgrmap_mod_trig
before insert or update on rhnUserExtGroupMapping
for each row
begin
+ if :new.id is null then
+ select rhn_userextgroupmap_seq.nextval into :new.id from dual;
+ end if;
:new.modified := current_timestamp;
end;
/
diff --git a/schema/spacewalk/postgres/triggers/rhnUserExtGroupMapping.sql b/schema/spacewalk/postgres/triggers/rhnUserExtGroupMapping.sql
index 0d4cff9..f6b2557 100644
--- a/schema/spacewalk/postgres/triggers/rhnUserExtGroupMapping.sql
+++ b/schema/spacewalk/postgres/triggers/rhnUserExtGroupMapping.sql
@@ -1,4 +1,4 @@
--- oracle equivalent source sha1 7209f810f513f6a5c97bd1ec2ddd7af1199f61b1
+-- oracle equivalent source sha1 5e09b4fcc80f2925fe93e38e362990e809398e7b
--
-- Copyright (c) 2014 Red Hat, Inc.
--
@@ -17,6 +17,9 @@
create or replace function rhn_userextgrmap_mod_trig_fun() returns trigger as
$$
begin
+ if new.id is null then
+ new.id := nextval('rhn_userextgroupmap_seq');
+ end if;
new.modified := current_timestamp;
return new;
end;
diff --git a/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.oracle b/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.oracle
index a448299..4caa914 100644
--- a/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.oracle
+++ b/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.oracle
@@ -18,6 +18,9 @@ rhn_userextgrmap_mod_trig
before insert or update on rhnUserExtGroupMapping
for each row
begin
+ if :new.id is null then
+ select rhn_userextgroupmap_seq.nextval into :new.id from dual;
+ end if;
:new.modified := current_timestamp;
end;
/
diff --git a/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.postgresql b/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.postgresql
index 0d4cff9..b11f9d4 100644
--- a/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.postgresql
+++ b/schema/spacewalk/upgrade/spacewalk-schema-2.0-to-spacewalk-schema-2.1/046-rhnUserExtGroupMapping-trigger.sql.postgresql
@@ -1,4 +1,4 @@
--- oracle equivalent source sha1 7209f810f513f6a5c97bd1ec2ddd7af1199f61b1
+-- oracle equivalent source sha1 d32daad719c4e7a830430dbcfc6aaf215268d579
--
-- Copyright (c) 2014 Red Hat, Inc.
--
@@ -17,6 +17,9 @@
create or replace function rhn_userextgrmap_mod_trig_fun() returns trigger as
$$
begin
+ if new.id is null then
+ new.id := nextval('rhn_userextgroupmap_seq');
+ end if;
new.modified := current_timestamp;
return new;
end;
commit 5e34de91a26553543ba26df63e1b473d146486a2
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Jan 17 11:03:25 2014 +0100
add external group to role mapping list page
diff --git a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml
new file mode 100644
index 0000000..811cd03
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.hbm.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE hibernate-mapping
+PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+"classpath://org/hibernate/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+ <class name="com.redhat.rhn.domain.org.usergroup.UserExtGroup"
+ table="rhnUserExtGroup">
+ <id name="id" type="long" column="id">
+ <meta attribute="scope-set">protected</meta>
+ <generator class="sequence">
+ <param name="sequence">rhn_userextgroup_seq</param>
+ </generator>
+ </id>
+ <property name="label" column="label" type="string" length="512" />
+ <property name="created" column="created" type="timestamp"
+ insert="false" update="false" />
+ <property name="modified" column="modified" type="timestamp"
+ insert="false" update="false" />
+
+ <set name="roles" lazy="true" table="rhnUserExtGroupMapping" cascade="all">
+ <key column="ext_group_id"/>
+ <many-to-many class="com.redhat.rhn.domain.role.RoleImpl" column="int_group_type_id"/>
+ </set>
+ </class>
+
+ <query name="UserExtGroup.listAll">
+ <![CDATA[FROM com.redhat.rhn.domain.org.usergroup.UserExtGroup]]>
+ </query>
+
+</hibernate-mapping>
diff --git a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.java b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.java
new file mode 100644
index 0000000..98dd16c
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserExtGroup.java
@@ -0,0 +1,113 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.domain.org.usergroup;
+
+import com.redhat.rhn.domain.BaseDomainHelper;
+import com.redhat.rhn.domain.role.Role;
+
+import java.util.HashSet;
+import java.util.Set;
+
+
+/**
+ * UserExtGroup
+ * @version $Rev$
+ */
+public class UserExtGroup extends BaseDomainHelper implements Comparable {
+
+ private Long id;
+ private String label;
+
+ private Set<Role> roles;
+
+ /**
+ *
+ */
+ public UserExtGroup() {
+ // TODO Auto-generated constructor stub
+ }
+
+ /**
+ * @return Returns the id.
+ */
+ public Long getId() {
+ return id;
+ }
+
+ /**
+ * @param idIn The id to set.
+ */
+ public void setId(Long idIn) {
+ id = idIn;
+ }
+
+ /**
+ * @return Returns the label.
+ */
+ public String getLabel() {
+ return label;
+ }
+
+ /**
+ * @param labelIn The label to set.
+ */
+ public void setLabel(String labelIn) {
+ label = labelIn;
+ }
+
+ /**
+ * @return Returns the roles.
+ */
+ public Set<Role> getRoles() {
+ if (roles == null) {
+ return new HashSet<Role>();
+ }
+ return roles;
+ }
+
+ /**
+ * @param rolesIn The roles to set.
+ */
+ public void setRoles(Set<Role> rolesIn) {
+ roles = rolesIn;
+ }
+
+ /**
+ * Return roleName string
+ * similar to coalesce(rhn_user.role_names(u.id), '(normal user)') as role_names
+ * @return roleNames string
+ */
+ public String getRoleNames() {
+ String roleNames = null;
+ for (Role role : roles) {
+ roleNames = (roleNames == null) ? role.getName() :
+ roleNames + ", " + role.getName();
+ }
+ if (roleNames == null) {
+ return "(normal user)";
+ }
+ return roleNames;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public int compareTo(Object objectIn) {
+ if (objectIn == null || objectIn instanceof UserExtGroup) {
+ return 0;
+ }
+ return id.compareTo(((UserExtGroup) objectIn).getId());
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java
index 314b956..da1d790 100644
--- a/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/org/usergroup/UserGroupFactory.java
@@ -16,11 +16,16 @@ package com.redhat.rhn.domain.org.usergroup;
import com.redhat.rhn.common.hibernate.HibernateFactory;
import com.redhat.rhn.common.localization.LocalizationService;
+import com.redhat.rhn.common.security.PermissionException;
import com.redhat.rhn.domain.org.Org;
import com.redhat.rhn.domain.role.Role;
-
+import com.redhat.rhn.domain.role.RoleFactory;
+import com.redhat.rhn.domain.user.User;
import org.apache.log4j.Logger;
+import java.util.HashMap;
+import java.util.List;
+
/**
* UserGroupFactory - the singleton class used to fetch and store
* com.redhat.rhn.domain.org.usergroup.UserGroup objects from the
@@ -29,6 +34,7 @@ import org.apache.log4j.Logger;
*/
public class UserGroupFactory extends HibernateFactory {
+ private static UserGroupFactory singleton = new UserGroupFactory();
private static Logger log = Logger.getLogger(UserGroupFactory.class);
private UserGroupFactory() {
@@ -70,5 +76,19 @@ public class UserGroupFactory extends HibernateFactory {
retval.setRole(role);
return retval;
}
+
+ /**
+ * Returns the complete list of UserExtGroup
+ * @param user needs to be satellite admin
+ * @return UserExtGroup list
+ */
+ public static List<UserExtGroup> listExtAuthGroups(User user) {
+ if (!user.getRoles().contains(RoleFactory.SAT_ADMIN)) {
+ throw new PermissionException("Satellite admin role required " +
+ "to access extauth groups");
+ }
+ return singleton.listObjectsByNamedQuery(
+ "UserExtGroup.listAll", new HashMap());
+ }
}
diff --git a/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtAuthRoleMappingAction.java b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtAuthRoleMappingAction.java
new file mode 100644
index 0000000..9f61a7a
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/action/multiorg/ExtAuthRoleMappingAction.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.action.multiorg;
+
+import com.redhat.rhn.domain.org.usergroup.UserGroupFactory;
+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.taglibs.list.helper.ListSessionSetHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.DynaActionForm;
+
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * ExtAuthRoleMappingAction
+ * @version $Rev$
+ */
+public class ExtAuthRoleMappingAction extends RhnAction implements Listable {
+
+ /** {@inheritDoc} */
+ @Override
+ public ActionForward execute(ActionMapping mapping, ActionForm formIn,
+ HttpServletRequest request, HttpServletResponse response) {
+ DynaActionForm daForm = (DynaActionForm) formIn;
+ RequestContext ctx = new RequestContext(request);
+
+ ListSessionSetHelper helper = new ListSessionSetHelper(this, request);
+ helper.execute();
+ return mapping.findForward("default");
+ }
+
+ /**
+ * ${@inheritDoc}
+ */
+ public List getResult(RequestContext contextIn) {
+ User user = contextIn.getLoggedInUser();
+ return UserGroupFactory.listExtAuthGroups(user);
+ }
+
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
index 82cff7e..4bbb091 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
@@ -2349,6 +2349,12 @@ available for this kickstart profile to function properly.
<context context-type="sourcefile">/rhn/systems/SystemGroupList</context>
</context-group>
</trans-unit>
+ <trans-unit id="toolbar.create.extgroup">
+ <source>create new external group</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/systems/SystemGroupList</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="toolbar.create.probe">
<source>create new probe</source>
<context-group name="ctx">
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index b8626cf..71081ac 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -1657,6 +1657,12 @@ button below, and <b>will be unable to log back in</b>.</source>
<context context-type="sourcefile">/rhn/users/ActiveList</context>
</context-group>
</trans-unit>
+ <trans-unit id="extauth.jsp.noGroups">
+ <source>No external groups.</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/users/ActiveList</context>
+ </context-group>
+ </trans-unit>
<!-- disabledlist.jsp -->
<trans-unit id="disabledlist.jsp.title">
<source>Deactivated Users</source>
@@ -5093,6 +5099,12 @@ value for this entitlement, excluding the default organization's consumption.</s
<context context-type="sourcefile">/rhn/systems/SystemGroupList</context>
</context-group>
</trans-unit>
+ <trans-unit id="extgrouplist.jsp.name">
+ <source>External Group Name</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">/rhn/systems/SystemGroupList</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="grouplist.jsp.status">
<source>Updates</source>
<context-group name="ctx">
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
index 68e1856..84b9aed 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/nav/StringResource_en_US.xml
@@ -587,6 +587,12 @@
<context context-type="sourcefile">Navigation Menu</context>
</context-group>
</trans-unit>
+ <trans-unit id="Group Role Mapping">
+ <source>Group Role Mapping</source>
+ <context-group name="ctx">
+ <context context-type="sourcefile">Navigation Menu</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="Master Setup">
<source>Master Setup</source>
<context-group name="ctx">
diff --git a/java/code/webapp/WEB-INF/nav/admin_user.xml b/java/code/webapp/WEB-INF/nav/admin_user.xml
index 2c0df16..312119b 100644
--- a/java/code/webapp/WEB-INF/nav/admin_user.xml
+++ b/java/code/webapp/WEB-INF/nav/admin_user.xml
@@ -1,9 +1,16 @@
<?xml version="1.0"?>
-<rhn-navi-tree label="admin_user" invisible="1" formvar="uid" title-depth="1">
+<rhn-navi-tree label="admin_user" invisible="1" title-depth="1">
<rhn-tab name="Users" acl="user_role(satellite_admin)">
<rhn-tab-url>/rhn/admin/multiorg/Users.do</rhn-tab-url>
</rhn-tab>
<rhn-tab name="External Authentication" acl="user_role(satellite_admin)">
<rhn-tab-url>/rhn/admin/multiorg/ExternalAuthentication.do</rhn-tab-url>
+ <rhn-tab-url>/rhn/admin/multiorg/ExtAuthRoleMapping.do</rhn-tab-url>
+ <rhn-tab name="Configuration" acl="user_role(satellite_admin)">
+ <rhn-tab-url>/rhn/admin/multiorg/ExternalAuthentication.do</rhn-tab-url>
+ </rhn-tab>
+ <rhn-tab name="Group Role Mapping" acl="user_role(satellite_admin)">
+ <rhn-tab-url>/rhn/admin/multiorg/ExtAuthRoleMapping.do</rhn-tab-url>
+ </rhn-tab>
</rhn-tab>
</rhn-navi-tree>
diff --git a/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml b/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
index 862de23..cd3bb57 100644
--- a/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
+++ b/java/code/webapp/WEB-INF/nav/sitenav-authenticated.xml
@@ -286,6 +286,7 @@
<rhn-tab-url>/rhn/admin/multiorg/SatRoleConfirm.do</rhn-tab-url>
<rhn-tab name="External Authentication" acl="user_role(satellite_admin)">
<rhn-tab-url>/rhn/admin/multiorg/ExternalAuthentication.do</rhn-tab-url>
+ <rhn-tab-url>/rhn/admin/multiorg/ExtAuthRoleMapping.do</rhn-tab-url>
</rhn-tab>
</rhn-tab>
diff --git a/java/code/webapp/WEB-INF/pages/admin/multiorg/extauth.jsp b/java/code/webapp/WEB-INF/pages/admin/multiorg/extauth.jsp
index da68d57..f604b5c 100644
--- a/java/code/webapp/WEB-INF/pages/admin/multiorg/extauth.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/multiorg/extauth.jsp
@@ -5,20 +5,12 @@
<html:html>
<head>
- <script language="javascript" type="text/javascript">
-function modifyUploadCheckbox(checkbox) {
- if (checkbox.checked == false) {
- document.getElementById("crashfile_upload_enabled").disabled = true;
- } else {
- document.getElementById("crashfile_upload_enabled").disabled = false;
- }
-}
- </script>
+ <meta name="page-decorator" content="none" />
</head>
<body>
<rhn:toolbar base="h1" icon="header-organisation"
miscUrl="${url}"
- miscAcl="user_role(org_admin)"
+ miscAcl="user_role(sat_admin)"
miscText="${text}"
miscImg="${img}"
miscAlt="${text}"
@@ -26,7 +18,7 @@ function modifyUploadCheckbox(checkbox) {
<bean:message key="org.allusers.title1" />
</rhn:toolbar>
- <rhn:dialogmenu mindepth="0" maxdepth="1" definition="/WEB-INF/nav/admin_user.xml" renderer="com.redhat.rhn.frontend.nav.DialognavRenderer" />
+ <rhn:dialogmenu mindepth="0" maxdepth="2" definition="/WEB-INF/nav/admin_user.xml" renderer="com.redhat.rhn.frontend.nav.DialognavRenderer" />
<div class="panel-body">
diff --git a/java/code/webapp/WEB-INF/pages/admin/multiorg/extauthroles.jsp b/java/code/webapp/WEB-INF/pages/admin/multiorg/extauthroles.jsp
new file mode 100644
index 0000000..706f0bd
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/admin/multiorg/extauthroles.jsp
@@ -0,0 +1,52 @@
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@ taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@ taglib uri="http://rhn.redhat.com/tags/list" prefix="rl" %>
+<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
+<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
+
+<html:html>
+ <head>
+ <meta name="page-decorator" content="none" />
+ </head>
+ <body>
+ <rhn:toolbar base="h1" icon="header-organisation"
+ creationUrl="ExtGroupDetails.do"
+ creationType="extgroup"
+ iconAlt="info.alt.img">
+ <bean:message key="org.allusers.title1" />
+ </rhn:toolbar>
+
+ <rhn:dialogmenu mindepth="0" maxdepth="2" definition="/WEB-INF/nav/admin_user.xml" renderer="com.redhat.rhn.frontend.nav.DialognavRenderer" />
+
+<div class="panel-heading">
+ <h4><bean:message key="extgroup.jsp.header"/></h4>
+</div>
+<div class="panel-body">
+ <p><bean:message key="extgroup.jsp.summary"/></p>
+</div>
+
+<rl:listset name="groupRolesSet">
+<rhn:csrf />
+<rhn:submitted />
+
+ <rl:list width="100%"
+ styleclass="list"
+ emptykey="extauth.jsp.noGroups" >
+
+ <rl:column bound="false"
+ sortable="true"
+ headerkey="extgrouplist.jsp.name"
+ attr="label"
+ filterattr="label">
+ <c:out value="<a href=\"/rhn/admin/multiorg/ExtGroupDetails.do?uid=${current.id}\">${current.label}</a>" escapeXml="false" />
+ </rl:column>
+
+ <rl:column attr="roleNames"
+ bound="true"
+ headerkey="userdetails.jsp.roles" />
+ </rl:list>
+</rl:listset>
+
+
+</body>
+</html:html>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index 99e9d59..6eb9fb3 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -5686,8 +5686,18 @@
<forward name="default" path="/WEB-INF/pages/admin/multiorg/extauth.jsp" />
<forward name="success"
path="/admin/multiorg/ExternalAuthentication.do" redirect="true" />
- <forward name="error"
- path="/WEB-INF/pages/admin/multiorg/extauth.jsp" />
+ </action>
+
+ <action path="/admin/multiorg/ExtAuthRoleMapping"
+ scope="request"
+ input="/WEB-INF/pages/admin/multiorg/extauthroles.jsp"
+ type="com.redhat.rhn.frontend.action.multiorg.ExtAuthRoleMappingAction"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping">
+ <set-property property="postRequiredIfSubmitted" value="true" />
+ <set-property property="acls" value="user_role(satellite_admin)"/>
+ <forward name="default" path="/WEB-INF/pages/admin/multiorg/extauthroles.jsp" />
+ <forward name="success"
+ path="/admin/multiorg/EExtAuthRoleMapping.do" redirect="true" />
</action>
<action path="/multiorg/channels/OrgList"
commit f998f4429047ea0b89597298653472f9dc28b687
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 31 16:14:11 2014 +0100
Automatic commit of package [spacewalk-branding] release [2.1.24-1].
diff --git a/branding/spacewalk-branding.spec b/branding/spacewalk-branding.spec
index ee2fae1..48a888d 100644
--- a/branding/spacewalk-branding.spec
+++ b/branding/spacewalk-branding.spec
@@ -9,7 +9,7 @@
%endif
Name: spacewalk-branding
-Version: 2.1.23
+Version: 2.1.24
Release: 1%{?dist}
Summary: Spacewalk branding data
@@ -86,6 +86,13 @@ rm -rf %{buildroot}
%doc LICENSE
%changelog
+* Fri Jan 31 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.24-1
+- add special class to help links
+- Revert "bootstrap tuning - style submit buttons"
+- style table for system comparsion
+- update copyright year in perl footer
+- highlight column by which is list sorted and hovered row
+
* Wed Jan 29 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.23-1
- add sort order icons and alphaResult icon
- adding custom styles
diff --git a/rel-eng/packages/spacewalk-branding b/rel-eng/packages/spacewalk-branding
index edda7f2..071fc61 100644
--- a/rel-eng/packages/spacewalk-branding
+++ b/rel-eng/packages/spacewalk-branding
@@ -1 +1 @@
-2.1.23-1 branding/
+2.1.24-1 branding/
commit a4be2dfdb420970efa53c558700ec4193bac5ff5
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 31 16:13:43 2014 +0100
Automatic commit of package [spacewalk-java] release [2.1.139-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index a2f9e79..56353e5 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.138
+Version: 2.1.139
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,10 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Fri Jan 31 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.139-1
+- add special class to help links
+- use consistent set of icons for system status
+
* Fri Jan 31 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.138-1
- reuse IconTag for help links, item search and pagination icons
- re-style kickstart creation wizard, 1st form
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index f87e58b..5f302c9 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.138-1 java/
+2.1.139-1 java/
commit 8dcd62bef32745e7f7386a6dee93c442b054ec28
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 31 15:46:35 2014 +0100
add special class to help links
so we can easily hide them in spacewalk
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index b7434cf..ac0b595 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -424,17 +424,8 @@ aside .nav > li > a {
}
/* question symbol for help pop up*/
-h1 .fa-stack .fa-question {
- font-size: .6em;
-}
-h1 .fa-stack {
- width: 1em;
- height: 1em;
- line-height: .7em;
-}
-.fa-stack .fa-circle {
- font-size: .7em;
- color: @spacewalk-blue;
+.spacewalk-help-link {
+ vertical-align: top;
}
// Panels: reseting default margins and paddings in H tags
@@ -719,7 +710,10 @@ ul.nav.nav-tabs:last-child {
text-decoration: underline;
}
-.fa-question-circle {
+/* help links are hidden in spacewalk
+ * remove this if your product support local help pages
+ */
+.spacewalk-help-link {
display: none;
}
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
index daa6224..a997d44 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
@@ -75,7 +75,7 @@ public class IconTag extends TagSupport {
icons.put("header-file", "fa fa-file-text-o");
icons.put("header-folder", "fa fa-folder-open-o");
icons.put("header-globe", "fa fa-globe");
- icons.put("header-help", "fa fa-question-circle");
+ icons.put("header-help", "fa fa-question-circle spacewalk-help-link");
icons.put("header-info", "fa fa-info-circle");
icons.put("header-kickstart", "fa fa-rocket");
icons.put("header-list", "fa fa-list");
commit 3c15b918e17790ac0c9e1cb71f7f8079f8f0088c
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 31 15:24:37 2014 +0100
use consistent set of icons for system status
similar to original set look & feel
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
index c73b4d8..daa6224 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
@@ -139,12 +139,12 @@ public class IconTag extends TagSupport {
icons.put("sort-up", "fa fa-arrow-circle-up");
icons.put("system-crit", "fa fa-exclamation-circle fa-1-5x text-danger");
icons.put("system-kickstarting", "fa fa-rocket fa-1-5x");
- icons.put("system-locked", "fa fa-1-5x spacewalk-icon-locked-system");
+ icons.put("system-locked", "fa fa-lock fa-1-5x");
icons.put("system-ok", "fa fa-check-circle fa-1-5x text-success");
icons.put("system-physical", "fa fa-desktop fa-1-5x");
icons.put("system-reboot", "fa fa-refresh");
- icons.put("system-unentitled", "fa fa-1-5x spacewalk-icon-unentitled");
- icons.put("system-unknown", "fa fa-1-5x spacewalk-icon-unknown-system");
+ icons.put("system-unentitled", "fa fa-times-circle fa-1-5x");
+ icons.put("system-unknown", "fa fa-question-circle fa-1-5x");
icons.put("system-virt-guest", "fa fa-1-5x spacewalk-icon-virtual-guest");
icons.put("system-virt-host", "fa fa-1-5x spacewalk-icon-virtual-host");
icons.put("system-warn", "fa fa-exclamation-triangle fa-1-5x text-warning");
commit 8c68787e75fc4f9398c406a1cefd9ca9fc4871f4
Author: Silvio Moioli <smoioli(a)suse.de>
Date: Fri Jan 31 15:28:15 2014 +0100
Revert "bootstrap tuning - style submit buttons"
Buttons should not be styled in a uniform way - depending on relative
importance wrt other buttons in the same page, potentially negative
effects, etc. they should be given appropriate classes.
Please use class="btn btn-<stylename>" or equivalent declaration on all
(submit) buttons, according to style names described in:
http://getbootstrap.com/css/#buttons
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index 0fd5603..b7434cf 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -119,11 +119,6 @@ p {
transition: width 2s, height 2s, transform 2s;
-webkit-transition: width 2s, height 2s, -webkit-transform 2s;
}
-
- input[type="submit"] {
- .btn;
- .btn-default;
- }
}
/* fixing the footer to the bottom */
commit c55bc93f02dd4f001821d91f29e01b0d79b72712
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 31 14:58:20 2014 +0100
Automatic commit of package [spacewalk-backend] release [2.1.47-1].
diff --git a/backend/spacewalk-backend.spec b/backend/spacewalk-backend.spec
index 3ada77f..5eb9f0a 100644
--- a/backend/spacewalk-backend.spec
+++ b/backend/spacewalk-backend.spec
@@ -11,7 +11,7 @@ Name: spacewalk-backend
Summary: Common programs needed to be installed on the Spacewalk servers/proxies
Group: Applications/Internet
License: GPLv2
-Version: 2.1.46
+Version: 2.1.47
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -628,6 +628,10 @@ rm -f %{rhnconf}/rhnSecret.py*
%{pythonrhnroot}/satellite_tools/exporter/xmlWriter.py*
%changelog
+* Fri Jan 31 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.47-1
+- 1058431 - don't remove files referenced from other distributions/trees
+- 1058431 - propagate --skip-kickstart-trees to delete_channels()
+
* Wed Jan 29 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.46-1
- fixed man page for spacewalk-remove-channel
- added option to skip kickstart trees removal
diff --git a/rel-eng/packages/spacewalk-backend b/rel-eng/packages/spacewalk-backend
index 2c4c8c1..8b88e28 100644
--- a/rel-eng/packages/spacewalk-backend
+++ b/rel-eng/packages/spacewalk-backend
@@ -1 +1 @@
-2.1.46-1 backend/
+2.1.47-1 backend/
commit 8eedd31b92166c53b622a76f252cf307c757d451
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 31 14:53:43 2014 +0100
1058431 - don't remove files referenced from other distributions/trees
diff --git a/backend/satellite_tools/spacewalk-remove-channel b/backend/satellite_tools/spacewalk-remove-channel
index f36a71d..3ca931d 100755
--- a/backend/satellite_tools/spacewalk-remove-channel
+++ b/backend/satellite_tools/spacewalk-remove-channel
@@ -551,16 +551,23 @@ def _get_package_paths(package_ids, sources=0):
def _delete_ks_files(channel_labels):
sql = """
select kt.base_path
- from rhnChannel c
- left join rhnKickstartableTree kt on c.id = kt.channel_id
- where c.label in (%s);
+ from rhnChannel c
+ join rhnKickstartableTree kt on c.id = kt.channel_id
+ where c.label in (%s) and not exists (
+ select 1
+ from rhnKickstartableTree ktx
+ join rhnChannel cx on cx.id = ktx.channel_id
+ where replace(ktx.base_path, :mnt_point, '') =
+ replace(kt.base_path, :mnt_point, '')
+ and cx.label not in (%s));
"""
params, bind_params = _bind_many(channel_labels)
+ params['mnt_point'] = CFG.MOUNT_POINT + '/'
bind_params = string.join(bind_params, ', ')
- h = rhnSQL.prepare(sql % (bind_params))
+ h = rhnSQL.prepare(sql % (bind_params, bind_params))
h.execute(**params)
- list = h.fetchall_dict()
+ list = h.fetchall_dict() or []
for map in list:
path = os.path.join(CFG.MOUNT_POINT, str(map['base_path']))
commit 2938b15e4612600dd25424839402e6d69f9d278f
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 31 14:52:28 2014 +0100
1058431 - propagate --skip-kickstart-trees to delete_channels()
diff --git a/backend/satellite_tools/spacewalk-remove-channel b/backend/satellite_tools/spacewalk-remove-channel
index 5e0a1c8..f36a71d 100755
--- a/backend/satellite_tools/spacewalk-remove-channel
+++ b/backend/satellite_tools/spacewalk-remove-channel
@@ -148,7 +148,8 @@ def main():
try:
delete_channels(channels.keys(), force=options.force,
justdb=options.justdb, skip_packages=options.skip_packages,
- skip_channels=options.skip_channels)
+ skip_channels=options.skip_channels,
+ skip_kickstart_trees=options.skip_kickstart_trees)
except:
rhnSQL.rollback()
raise
@@ -285,7 +286,8 @@ def __listChannels():
return labels, parents
-def delete_channels(channelLabels, force=0, justdb=0, skip_packages=0, skip_channels=0):
+def delete_channels(channelLabels, force=0, justdb=0, skip_packages=0, skip_channels=0,
+ skip_kickstart_trees=0):
# Get the package ids
if not channelLabels:
return
commit 7dfe4825d362f3ce0123274ad031abb49c22f57a
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Fri Jan 31 10:42:20 2014 +0100
Automatic commit of package [spacewalk-java] release [2.1.138-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index fc43375..a2f9e79 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.137
+Version: 2.1.138
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,10 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Fri Jan 31 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.138-1
+- reuse IconTag for help links, item search and pagination icons
+- re-style kickstart creation wizard, 1st form
+
* Thu Jan 30 2014 Stephen Herr <sherr(a)redhat.com> 2.1.137-1
- 1059910 - create api for channel errata syncing, have clone-by-date call it
- fix style on kickstart profile creation wizard + use rhn:toolbar
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index bf1e5c2..f87e58b 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.137-1 java/
+2.1.138-1 java/
commit 6f9b196626cc91ed455ee02c905d8c9f3e272551
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Jan 30 13:59:27 2014 +0100
no need to set parent and context for icons
diff --git a/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java b/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java
index 09729a3..ea9cf61 100644
--- a/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigChannelTag.java
@@ -116,8 +116,6 @@ public class ConfigChannelTag extends TagSupport {
private String writeIcon() throws JspException {
IconTag i = new IconTag();
- i.setParent(getParent());
- i.setPageContext(pageContext);
if (type.equals("central") || type.equals("global")) {
i.setType("header-channel-configuration");
}
diff --git a/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigFileTag.java b/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigFileTag.java
index 2207c16..7cc95dc 100644
--- a/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigFileTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/configuration/tags/ConfigFileTag.java
@@ -134,8 +134,6 @@ public class ConfigFileTag extends TagSupport {
private String writeIcon() throws JspException {
IconTag i = new IconTag();
- i.setParent(getParent());
- i.setPageContext(pageContext);
if ("dir".equalsIgnoreCase(type) || "directory".equalsIgnoreCase(type) ||
"folder".equalsIgnoreCase(type)) {
i.setType("file-directory");
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
index 927e472..c4dfb25 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
@@ -458,15 +458,11 @@ public class ListDisplayTag extends ListDisplayTagBase {
if (request.getQueryString() != null) {
page.append("&" + request.getQueryString());
}
- IconTag i = new IconTag();
- i.setParent(getParent());
- i.setPageContext(pageContext);
- i.setType("item-download-csv");
+ IconTag i = new IconTag("item-download-csv");
out.println("<div class=\"spacewalk-csv-download\"><a href=\"" + page +
- "\">" + i.renderStartTag() +
+ "\">" + i.render() +
LocalizationService.getInstance().getMessage("listdisplay.csv") +
"</a></div>");
- i.release();
}
private void renderBoundsVariables(Writer out) throws IOException {
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/ToolbarTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/ToolbarTag.java
index c73d7a4..b8afaee 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/ToolbarTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/ToolbarTag.java
@@ -575,12 +575,8 @@ public class ToolbarTag extends TagSupport {
private String renderIcon() {
if (assertNotEmpty(getIcon())) {
- IconTag i = new IconTag();
- i.setPageContext(pageContext);
- i.setParent(getParent());
- i.setType(getIcon());
- String result = i.renderStartTag();
- i.release();
+ IconTag i = new IconTag(getIcon());
+ String result = i.render();
return result;
}
return "";
@@ -664,13 +660,8 @@ public class ToolbarTag extends TagSupport {
}
if (assertNotEmpty(iconName)) {
- IconTag i = new IconTag();
- i.setPageContext(pageContext);
- i.setParent(getParent());
- i.setType(iconName);
- i.setTitle(alt);
- a.addBody(i.renderStartTag());
- i.release();
+ IconTag i = new IconTag(iconName, alt);
+ a.addBody(i.render());
}
a.addBody(text);
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
index 6d7ef13..ccc04a8 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
@@ -197,15 +197,11 @@ public class CSVTag extends BodyTagSupport {
private void renderExport() throws JspException {
StringBuffer page = new StringBuffer(CSV_DOWNLOAD_URI);
page.append("?" + makeCSVRequestParams());
- IconTag i = new IconTag();
- i.setParent(getParent());
- i.setPageContext(pageContext);
- i.setType("item-download-csv");
+ IconTag i = new IconTag("item-download-csv");
String exportLink = new String("<div class=\"spacewalk-csv-download\"><a href=\"" +
- page + "\">" + i.renderStartTag() +
+ page + "\">" + i.render() +
LocalizationService.getInstance().getMessage(
"listdisplay.csv") + "</a></div>");
- i.release();
ListTagUtil.write(pageContext, exportLink);
}
commit ab6f0342eca1dfd00f6c8a5a0f8f83fd6e45728b
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Jan 30 15:54:09 2014 +0100
reuse IconTag for help links
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/ToolbarTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/ToolbarTag.java
index 3eb21ec..c73d7a4 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/ToolbarTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/ToolbarTag.java
@@ -551,11 +551,9 @@ public class ToolbarTag extends TagSupport {
tag.setAttribute("href", getHelpUrl());
tag.setAttribute("target", "_blank");
- HtmlTag help = new HtmlTag("i");
- help.setAttribute("class", "fa fa-question-circle");
+ IconTag help = new IconTag("header-help");
- tag.addBody(help.renderOpenTag());
- tag.addBody(help.renderCloseTag());
+ tag.addBody(help.render());
return tag.render();
}
return "";
commit 10c6e8385704a17dc64b34dd473aa438dc2899f9
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Jan 30 15:52:21 2014 +0100
reuse IconTag for item search
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
index 712aca8..c73b4d8 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
@@ -116,6 +116,7 @@ public class IconTag extends TagSupport {
icons.put("item-download", "fa fa-download");
icons.put("item-download-csv", "fa spacewalk-icon-download-csv");
icons.put("item-enabled", "fa fa-check text-success");
+ icons.put("item-search", "fa fa-eye");
icons.put("item-ssm-add", "fa fa-plus-circle");
icons.put("item-ssm-del", "fa fa-minus-circle");
icons.put("item-upload", "fa fa-upload");
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTagBase.java b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTagBase.java
index d164204..b1bd702 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTagBase.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTagBase.java
@@ -331,10 +331,8 @@ public class ListDisplayTagBase extends BodyTagSupport {
btn.setAttribute("name", FILTER_DISPATCH);
btn.setAttribute("value", ls.getMessage(RequestContext.FILTER_KEY));
- HtmlTag icon = new HtmlTag("i");
- icon.setAttribute("class", "fa fa-eye");
- icon.addBody(" ");
- btn.addBody(icon);
+ IconTag icon = new IconTag("item-search");
+ btn.addBody(icon.render());
btnSpan.addBody(btn);
commit 4210f72a0673bb3648439a80ad8735e9bfcb305e
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Jan 30 15:44:28 2014 +0100
reuse IconTag for pagination icons
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
index 06a113b..712aca8 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
@@ -128,6 +128,10 @@ public class IconTag extends TagSupport {
icons.put("monitoring-warn",
"fa fa-1-5x spacewalk-icon-monitoring-warning text-warning");
icons.put("nav-bullet", "fa fa-caret-right");
+ icons.put("nav-page-first", "fa fa-angle-double-left");
+ icons.put("nav-page-last", "fa fa-angle-double-right");
+ icons.put("nav-page-next", "fa fa-angle-right");
+ icons.put("nav-page-prev", "fa fa-angle-left");
icons.put("nav-right", "fa fa-arrow-right");
icons.put("nav-up", "fa fa-caret-up");
icons.put("sort-down", "fa fa-arrow-circle-down");
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
index c7998a2..927e472 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
@@ -590,13 +590,13 @@ public class ListDisplayTag extends ListDisplayTagBase {
if (canGoForward || canGoBack) {
out.append(renderPaginationButton(FIRST,
- "fa-angle-double-left", " |< ", canGoBack));
- out.append(renderPaginationButton(PREV, "fa-angle-left",
+ "nav-page-first", " |< ", canGoBack));
+ out.append(renderPaginationButton(PREV, "nav-page-prev",
" < ", canGoBack));
- out.append(renderPaginationButton(NEXT, "fa-angle-right",
+ out.append(renderPaginationButton(NEXT, "nav-page-next",
" > ", canGoForward));
out.append(renderPaginationButton(LAST,
- "fa-angle-double-right", " >| ", canGoForward));
+ "nav-page-last", " >| ", canGoForward));
}
out.append("</div>\n");
}
@@ -606,10 +606,8 @@ public class ListDisplayTag extends ListDisplayTagBase {
HtmlTag ret = new HtmlTag("button");
ret.setAttribute("name", name);
String styleClass = "btn btn-default btn-xs";
- HtmlTag iconTag = new HtmlTag("i");
- iconTag.setAttribute("class", "fa " + icon);
- iconTag.addBody("");
- ret.addBody(iconTag);
+ IconTag iconTag = new IconTag(icon);
+ ret.addBody(iconTag.render());
if (!active) {
styleClass += " disabled";
commit 118d0217d84cd41523ea271f7c0c0b5eceedd428
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Thu Jan 30 15:36:27 2014 +0100
reuse IconTag to render icons
fixing
self-closing i-tags are not allowed
diff --git a/java/code/src/com/redhat/rhn/frontend/action/systems/SystemListHelper.java b/java/code/src/com/redhat/rhn/frontend/action/systems/SystemListHelper.java
index c26a84a..17262bb 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/systems/SystemListHelper.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/systems/SystemListHelper.java
@@ -22,6 +22,7 @@ import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.SystemCurrency;
import com.redhat.rhn.frontend.dto.SystemOverview;
import com.redhat.rhn.frontend.html.HtmlTag;
+import com.redhat.rhn.frontend.taglibs.IconTag;
import com.redhat.rhn.manager.system.SystemManager;
/**
@@ -55,16 +56,14 @@ public class SystemListHelper {
*/
public static void setSystemStatusDisplay(User user, SystemOverview next,
boolean makeLinks) {
-
- String message;
HtmlTag url = new HtmlTag("a");
- HtmlTag i = new HtmlTag("i");
+ IconTag i = new IconTag();
+
LocalizationService ls = LocalizationService.getInstance();
if (next.getEntitlement() == null ||
next.getEntitlement().isEmpty()) {
- message = ls.getMessage("systemlist.jsp.unentitled");
- i.setAttribute("class", "spacewalk-icon-unknown-system");
- i.setAttribute("title", message);
+ i.setType("system-unknown");
+ i.setTitle("systemlist.jsp.unentitled");
if (user.hasRole(RoleFactory.ORG_ADMIN)) {
url.setAttribute("href", "/rhn/systems/details/Edit.do?sid=" +
next.getId());
@@ -74,9 +73,8 @@ public class SystemListHelper {
//status = "awol";
url.setAttribute("href",
"/rhn/help/reference/en-US/s1-sm-systems.jsp");
- message = ls.getMessage("systemlist.jsp.notcheckingin");
- i.setAttribute("class", "spacewalk-icon-unknown-system");
- i.setAttribute("title", message);
+ i.setType("system-unknown");
+ i.setTitle("systemlist.jsp.notcheckingin");
if (makeLinks) {
makeLinks = ConfigDefaults.get().isDocAvailable();
}
@@ -87,9 +85,8 @@ public class SystemListHelper {
url.setAttribute("href",
"/rhn/systems/details/kickstart/SessionStatus.do?sid=" +
next.getId());
- message = ls.getMessage("systemlist.jsp.kickstart");
- i.setAttribute("class", "fa fa-rocket");
- i.setAttribute("title", message);
+ i.setType("system-kickstarting");
+ i.setTitle("systemlist.jsp.kickstart");
}
else if (next.getEnhancementErrata() + next.getBugErrata() +
next.getSecurityErrata() > 0 &&
@@ -99,18 +96,16 @@ public class SystemListHelper {
url.setAttribute("href",
"/network/systems/details/history/pending.pxt?sid=" +
next.getId());
- message = ls.getMessage("systemlist.jsp.updatesscheduled");
- i.setAttribute("class", "fa fa-clock-o");
- i.setAttribute("title", message);
+ i.setType("action-pending");
+ i.setTitle("systemlist.jsp.updatesscheduled");
}
else if (SystemManager.countActions(new Long(next.getId().longValue())) > 0) {
//status = "actions scheduled";
url.setAttribute("href",
"/network/systems/details/history/pending.pxt?sid=" +
next.getId());
- message = ls.getMessage("systemlist.jsp.actionsscheduled");
- i.setAttribute("class", "fa fa-clock-o");
- i.setAttribute("title", message);
+ i.setType("action-pending");
+ i.setTitle("systemlist.jsp.actionsscheduled");
}
else if ((next.getEnhancementErrata() + next.getBugErrata() +
next.getSecurityErrata()) == 0 &&
@@ -119,10 +114,8 @@ public class SystemListHelper {
new Long(next.getId().longValue())) == 0) {
//status = "up2date";
- message = ls.getMessage("systemlist.jsp.up2date");
- i.setAttribute("class", "fa fa-check-circle fa-1-5x text-success");
- i.setAttribute("title", message);
- //i.setAttribute("alt", message);
+ i.setType("system-ok");
+ i.setTitle("systemlist.jsp.up2date");
}
else if (next.getSecurityErrata().intValue() > 0) {
//status = "critical";
@@ -130,25 +123,22 @@ public class SystemListHelper {
"/rhn/systems/details/ErrataList.do?sid=" +
next.getId() + "&type=" +
LocalizationService.getInstance().getMessage(ErrataSetupAction.SECUR));
- message = ls.getMessage("systemlist.jsp.critical");
- i.setAttribute("class", "fa fa-exclamation-circle fa-1-5x text-danger");
- i.setAttribute("title", message);
+ i.setType("system-crit");
+ i.setTitle("systemlist.jsp.critical");
}
else if (next.getOutdatedPackages().intValue() > 0) {
//status = "updates";
url.setAttribute("href",
"/rhn/systems/details/packages/UpgradableList.do?sid=" +
next.getId());
- message = ls.getMessage("systemlist.jsp.updates");
- i.setAttribute("class", "fa fa-exclamation-triangle fa-1-5x text-warning");
- i.setAttribute("title", message);
+ i.setType("system-warn");
+ i.setTitle("systemlist.jsp.updates");
}
- url.addBody(i.renderOpenTag());
- url.addBody(i.renderCloseTag());
String statusDisplay;
if (makeLinks) {
+ url.addBody(i.render());
statusDisplay = url.render();
}
else {
@@ -157,19 +147,16 @@ public class SystemListHelper {
if (next.getLocked().intValue() == 1) {
HtmlTag lockedUrl = new HtmlTag("a");
- HtmlTag lockedIcon = new HtmlTag("i");
//status = "locked";
lockedUrl.setAttribute("href",
"/rhn/help/reference/en-US/s1-sm-systems.jsp");
- message = ls.getMessage("systemlist.jsp.locked");
- lockedIcon.setAttribute("class", "fa spacewalk-icon-locked-system");
- lockedIcon.setAttribute("title", message);
+ IconTag lockedIcon = new IconTag("system-locked", "systemlist.jsp.locked");
if (makeLinks) {
makeLinks = ConfigDefaults.get().isDocAvailable();
}
if (makeLinks) {
- lockedUrl.addBody(lockedIcon);
+ lockedUrl.addBody(lockedIcon.render());
statusDisplay = statusDisplay + lockedUrl.render();
}
else {
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
index f3a8c69..06a113b 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/IconTag.java
@@ -147,11 +147,28 @@ public class IconTag extends TagSupport {
/**
* Constructor for Icon tag.
+ * @param typeIn the type of the icon
+ * @param titleIn the title of the icon
*/
- public IconTag() {
+ public IconTag(String typeIn, String titleIn) {
super();
- type = null;
- title = null;
+ type = typeIn;
+ title = titleIn;
+ }
+
+ /**
+ * Constructor for Icon tag.
+ * @param typeIn the type of the icon
+ */
+ public IconTag(String typeIn) {
+ this(typeIn, (String) null);
+ }
+
+ /**
+ * Constructor for Icon tag.
+ */
+ public IconTag() {
+ this((String) null, (String) null);
}
/**
@@ -190,6 +207,16 @@ public class IconTag extends TagSupport {
* Return just the HTML
* @return String that contains generated HTML
*/
+ public String render() {
+ String result = renderStartTag();
+ release();
+ return result;
+ }
+
+ /**
+ * Return just the HTML
+ * @return String that contains generated HTML
+ */
public String renderStartTag() {
if (!icons.containsKey(type)) {
throw new IllegalArgumentException("Unknown icon type: \"" + type + "\".");
commit 65f9943e56c5d614476cdab07133c0a0f10d8f18
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Fri Jan 31 09:27:31 2014 +0100
re-style kickstart creation wizard, 1st form
diff --git a/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/third.jsp b/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/third.jsp
index bfa2b87..eb86648 100644
--- a/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/third.jsp
+++ b/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/third.jsp
@@ -46,27 +46,35 @@ function movePrevious() {
<html:hidden property="defaultDownload" />
<html:hidden property="userDefinedDownload" />
<html:hidden property="kstreeUpdateType" />
- <h1><bean:message key="kickstart.jsp.create.wizard.step.three"/></h1>
- <table class="details" width="80%">
- <tr>
- <td colspan="2"><bean:message key="kickstart.jsp.create.wizard.third.heading1" /></td>
- </tr>
- <tr>
- <th width="14%"><rhn:required-field key="kickstart.root.password.jsp.label"/>:</th>
- <td><html:password property="rootPassword" /></td>
- </tr>
- <tr>
- <th width="14%"><rhn:required-field key="kickstart.root.password.verify.jsp.label"/>:</th>
- <td valign="bottom"><html:password property="rootPasswordConfirm" /></td>
- </tr>
- <tr>
- <td colspan="2" align="right">
- <input type="button" value="<bean:message key='wizard.jsp.previous.step'/>" onclick="movePrevious();" />
-
- <input type="submit" value="<bean:message key='wizard.jsp.finish.step'/>" onclick="moveNext();" />
- </td>
- </tr>
- </table>
+ <rhn:toolbar base="h1" icon="header-kickstart"><bean:message key="kickstart.jsp.create.wizard.step.three"/></rhn:toolbar>
+ <p><bean:message key="kickstart.jsp.create.wizard.third.heading1" /></p>
+ <div class="panel panel-default">
+ <ul class="list-group">
+ <div class="row">
+ <div class="col-sm-2">
+ <rhn:required-field key="kickstart.root.password.jsp.label"/>:
+ </div>
+ <div class="col-sm-10">
+ <html:password property="rootPassword" />
+ </div>
+ </div>
+ </ul>
+ <ul class="list-group">
+ <div class="row">
+ <div class="col-sm-2">
+ <rhn:required-field key="kickstart.root.password.verify.jsp.label"/>:
+ </div>
+ <div class="col-sm-10">
+ <html:password property="rootPasswordConfirm" />
+ </div>
+ </div>
+ </ul>
+ </div>
+ <div align="right">
+ <input type="button" value="<bean:message key='wizard.jsp.previous.step'/>" onclick="movePrevious();" class="btn btn-default" />
+
+ <input type="submit" value="<bean:message key='wizard.jsp.finish.step'/>" onclick="moveNext();" class="btn btn-default" />
+ </div>
</html:form>
</html>
</div>
commit 04d9dccaedf8aa2998125e93969262ab73e58126
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Fri Jan 31 09:06:18 2014 +0100
re-style kickstart creation wizard, 1st form
diff --git a/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/first.jsp b/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/first.jsp
index 2cf0c32..6d484eb 100644
--- a/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/first.jsp
+++ b/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/first.jsp
@@ -65,81 +65,86 @@ function clickNewestTree() {
<rhn:toolbar base="h1" icon="header-kickstart"><bean:message key="kickstart.jsp.create.wizard.step.one"/></rhn:toolbar>
<p><bean:message key="kickstart.jsp.create.wizard.first.heading1" /></p>
- <div class="form-group">
- <label class="col-lg-3 control-label">
- <rhn:required-field key="kickstart.jsp.create.wizard.kickstart.profile.label"/>:
- </label>
- <div class="col-lg-6">
- <html:text property="kickstartLabel" size="40" maxlength="80" styleClass="form-control"/>
- </div>
+ <div class="panel panel-default">
+ <ul class="list-group">
+ <div class="row">
+ <div class="col-sm-2">
+ <rhn:required-field key="kickstart.jsp.create.wizard.kickstart.profile.label"/>:
+ </div>
+ <div class="col-sm-10">
+ <html:text property="kickstartLabel" size="40" maxlength="80" styleClass="form-control"/>
+ </div>
</div>
-
- <div class="form-group">
- <label class="col-lg-3 control-label">
- <rhn:required-field key="softwareedit.jsp.basechannel"/>:
- </label>
- <div class="col-lg-6">
- <c:choose>
- <c:when test="${nochannels == null}">
- <html:select property="currentChannelId" onchange="refresh();" styleClass="form-control">
- <html:optionsCollection property="channels" label="name" value="id" />
- </html:select>
- </c:when>
- <c:otherwise>
- <b><bean:message key="tree-form.jspf.nochannels" /></b>
- </c:otherwise>
- </c:choose>
- </div>
- </div>
-
- <div class="form-group">
- <label class="col-lg-3 control-label">
- <rhn:required-field key="kickstart.jsp.create.wizard.kstree.label"/>:
- </label>
- <div class="col-lg-6">
- <c:choose>
- <c:when test="${notrees == null}">
- <html:select property="kstreeId">
- <html:optionsCollection property="kstrees" label="label" value="id" />
- </html:select>
- <c:if test="${redHatTreesAvailable != null}">
- <br />
- <label>
- <input type="checkbox" name="useNewestRHTree" value="0"
- onclick="toggleKSTree(this); clickNewestRHTree()" />
- <bean:message key="kickstart.jsp.create.wizard.kstree.always_new_RH"/>
- </label>
- </c:if>
- <br />
- <label>
- <input type="checkbox" name="useNewestTree" value="0"
- onclick="toggleKSTree(this); clickNewestTree()" />
- <bean:message key="kickstart.jsp.create.wizard.kstree.always_new"/>
- </label>
- </c:when>
- <c:otherwise>
- <b><bean:message key="kickstart.edit.software.notrees.jsp" /></b>
- </c:otherwise>
- </c:choose>
- </div>
+ </ul>
+ <ul class="list-group">
+ <div class="row">
+ <div class="col-sm-2">
+ <rhn:required-field key="softwareedit.jsp.basechannel"/>:
+ </div>
+ <div class="col-sm-10">
+ <c:choose>
+ <c:when test="${nochannels == null}">
+ <html:select property="currentChannelId" onchange="refresh();" styleClass="form-control">
+ <html:optionsCollection property="channels" label="name" value="id" />
+ </html:select>
+ </c:when>
+ <c:otherwise>
+ <b><bean:message key="tree-form.jspf.nochannels" /></b>
+ </c:otherwise>
+ </c:choose>
+ </div>
</div>
-
- <div class="form-group">
- <label class="col-lg-3 control-label">
- <bean:message key="kickstart.jsp.create.wizard.virtualization.label" />
- </label>
- <div class="col-lg-6">
- <html:select property="virtualizationTypeLabel" styleClass="form-control">
- <html:optionsCollection property="virtualizationTypes" label="formattedName" value="label" />
+ </ul>
+ <ul class="list-group">
+ <div class="row">
+ <div class="col-sm-2">
+ <rhn:required-field key="kickstart.jsp.create.wizard.kstree.label"/>:
+ </div>
+ <div class="col-sm-10">
+ <c:choose>
+ <c:when test="${notrees == null}">
+ <html:select property="kstreeId" styleClass="form-control">
+ <html:optionsCollection property="kstrees" label="label" value="id" />
</html:select>
- </div>
+ <c:if test="${redHatTreesAvailable != null}">
+ <br />
+ <label>
+ <input type="checkbox" name="useNewestRHTree" value="0"
+ onclick="toggleKSTree(this); clickNewestRHTree()" />
+ <bean:message key="kickstart.jsp.create.wizard.kstree.always_new_RH"/>
+ </label>
+ </c:if>
+ <br />
+ <label>
+ <input type="checkbox" name="useNewestTree" value="0"
+ onclick="toggleKSTree(this); clickNewestTree()" />
+ <bean:message key="kickstart.jsp.create.wizard.kstree.always_new"/>
+ </label>
+ </c:when>
+ <c:otherwise>
+ <b><bean:message key="kickstart.edit.software.notrees.jsp" /></b>
+ </c:otherwise>
+ </c:choose>
+ </div>
</div>
-
- <div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <input type="button" value="<bean:message key='wizard.jsp.next.step'/>" onclick="moveNext();" class="btn btn-default"/>
- </div>
+ </ul>
+ <ul class="list-group">
+ <div class="row">
+ <div class="col-sm-2">
+ <bean:message key="kickstart.jsp.create.wizard.virtualization.label" />
+ </div>
+ <div class="col-sm-10">
+ <html:select property="virtualizationTypeLabel" styleClass="form-control">
+ <html:optionsCollection property="virtualizationTypes" label="formattedName" value="label" />
+ </html:select>
+ </div>
</div>
+ </ul>
+ </div>
+
+ <div align="right">
+ <input type="button" value="<bean:message key='wizard.jsp.next.step'/>" onclick="moveNext();" class="btn btn-default"/>
+ </div>
</html:form>
</body>
</html:html>
commit 79f1fa5c6a8ea3090b39562dbf43392227d983f1
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Fri Jan 31 09:06:04 2014 +0100
fix checkstyle
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
index b2d5de7..953a10f 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
@@ -131,7 +131,7 @@ public class ChannelSoftwareHandler extends BaseHandler {
User user = getLoggedInUser(sessionKey);
Channel channel = lookupChannelByLabel(user, channelLabel);
- return ChannelManager.listErrataNeedingResync(channel, user);
+ return ChannelManager.listErrataNeedingResync(channel, user);
}
/**
commit 0aa2ed99cc98f183ae558cb13c3e44a368c931e3
Author: Stephen Herr <sherr(a)redhat.com>
Date: Thu Jan 30 17:51:02 2014 -0500
Automatic commit of package [spacewalk-java] release [2.1.137-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 48d4757..fc43375 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.136
+Version: 2.1.137
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,14 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Thu Jan 30 2014 Stephen Herr <sherr(a)redhat.com> 2.1.137-1
+- 1059910 - create api for channel errata syncing, have clone-by-date call it
+- fix style on kickstart profile creation wizard + use rhn:toolbar
+- use rhn:toolbar for page headers
+- update copyright year in page footer in java
+- Removing unaesthetic spaces around dots in IPv4 address
+- Small code cleanup
+
* Thu Jan 30 2014 Matej Kollar <mkollar(a)redhat.com> 2.1.136-1
- Fixed ssm reboot scheduling.
- Sometimes we don't want "add to ssm" option...
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index 1c41b95..bf1e5c2 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.136-1 java/
+2.1.137-1 java/
commit 27a394670e132cc1282baecc936d5bad3bf76933
Author: Stephen Herr <sherr(a)redhat.com>
Date: Thu Jan 30 17:50:11 2014 -0500
Automatic commit of package [spacewalk-utils] release [2.1.27-1].
diff --git a/rel-eng/packages/spacewalk-utils b/rel-eng/packages/spacewalk-utils
index c38810d..d98be26 100644
--- a/rel-eng/packages/spacewalk-utils
+++ b/rel-eng/packages/spacewalk-utils
@@ -1 +1 @@
-2.1.26-1 utils/
+2.1.27-1 utils/
diff --git a/utils/spacewalk-utils.spec b/utils/spacewalk-utils.spec
index 678837b..88bb248 100644
--- a/utils/spacewalk-utils.spec
+++ b/utils/spacewalk-utils.spec
@@ -1,7 +1,7 @@
%define rhnroot %{_prefix}/share/rhn
Name: spacewalk-utils
-Version: 2.1.26
+Version: 2.1.27
Release: 1%{?dist}
Summary: Utilities that may be run against a Spacewalk server.
@@ -91,6 +91,9 @@ spacewalk-pylint $RPM_BUILD_ROOT%{rhnroot}
%changelog
+* Thu Jan 30 2014 Stephen Herr <sherr(a)redhat.com> 2.1.27-1
+- 1059910 - create api for channel errata syncing, have clone-by-date call it
+
* Wed Jan 29 2014 Tomas Kasparek <tkasparek(a)redhat.com> 2.1.26-1
- adding postgresql92-postgresql to possible db service names
commit f0da6be14e30c2570301c0692217171fad1ac690
Author: Stephen Herr <sherr(a)redhat.com>
Date: Thu Jan 30 17:49:51 2014 -0500
1059910 - create api for channel errata syncing, have clone-by-date call it
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml
index dc41206..f858e4c 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Errata_queries.xml
@@ -1296,6 +1296,39 @@ WHERE C.package_id IS NULL
</query>
</mode>
+<mode name="list_packages_needing_sync" class="com.redhat.rhn.frontend.dto.PackageOverview">
+ <query params="ocid, cid">
+SELECT p.id, pn.name AS package_name,
+ pn.name || '-' || evr_t_as_vre_simple(pevr.evr) || '.' || pa.label AS nvrea,
+ p.summary
+FROM
+(
+ SELECT
+ oep.package_id, ec.id AS clone_errata_id
+ FROM rhnChannelPackage ocp
+ JOIN rhnChannelErrata oce ON oce.channel_id = ocp.channel_id
+ JOIN rhnErrataPackage oep ON oep.errata_id = oce.errata_id
+ AND oep.package_id = ocp.package_id
+ JOIN rhnErrataCloned ec ON ec.original_id = oep.errata_id
+WHERE ocp.channel_id = :ocid
+) O
+LEFT JOIN (
+ SELECT
+ cep.package_id, cep.errata_id
+ FROM rhnChannelPackage ccp
+ JOIN rhnChannelErrata cce ON cce.channel_id = ccp.channel_id
+ JOIN rhnErrataPackage cep ON cep.errata_id = cce.errata_id
+ AND cep.package_id = ccp.package_id
+WHERE ccp.channel_id = :cid
+) C ON C.errata_id = O.clone_errata_id AND C.package_id = O.package_id
+JOIN rhnPackage p ON p.id = O.package_id
+JOIN rhnPackageName pn ON pn.id = p.name_id
+JOIN rhnPackageEVR pevr ON pevr.id = p.evr_id
+JOIN rhnPackageArch pa ON pa.id = p.package_arch_id
+WHERE C.package_id IS NULL
+ </query>
+</mode>
+
<mode name="list_packages_needing_sync_from_set" class="com.redhat.rhn.frontend.dto.PackageOverview">
<query params="set_label, ocid, cid">
SELECT p.id, pn.name AS package_name,
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
index abdeb26..b2d5de7 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
@@ -30,6 +30,7 @@ import com.redhat.rhn.domain.channel.ContentSource;
import com.redhat.rhn.domain.channel.ContentSourceFilter;
import com.redhat.rhn.domain.channel.InvalidChannelRoleException;
import com.redhat.rhn.domain.channel.NewChannelHelper;
+import com.redhat.rhn.domain.errata.impl.PublishedClonedErrata;
import com.redhat.rhn.domain.errata.Errata;
import com.redhat.rhn.domain.errata.ErrataFactory;
import com.redhat.rhn.domain.org.Org;
@@ -41,6 +42,7 @@ import com.redhat.rhn.domain.server.Server;
import com.redhat.rhn.domain.server.ServerFactory;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.ErrataOverview;
+import com.redhat.rhn.frontend.dto.PackageOverview;
import com.redhat.rhn.frontend.events.UpdateErrataCacheEvent;
import com.redhat.rhn.frontend.xmlrpc.BaseHandler;
import com.redhat.rhn.frontend.xmlrpc.DuplicateChannelLabelException;
@@ -99,6 +101,103 @@ public class ChannelSoftwareHandler extends BaseHandler {
private static Logger log = Logger.getLogger(ChannelSoftwareHandler.class);
/**
+ * If you have satellite-synced a new channel then Red Hat Errata
+ * will have been updated with the packages that are in the newly synced
+ * channel. A cloned erratum will not have been automatically updated
+ * however. If you cloned a channel that includes those cloned errata and
+ * should include the new packages, they will not be included when they
+ * should. This method lists the errata that will be updated if you run the
+ * syncErrata method.
+ * @param sessionKey WebSession containing User information.
+ * @param channelLabel Label of cloned channel to check
+ * @return List of errata that are missing packages
+ *
+ * @xmlrpc.doc If you have satellite-synced a new channel then Red Hat
+ * Errata will have been updated with the packages that are in the newly
+ * synced channel. A cloned erratum will not have been automatically updated
+ * however. If you cloned a channel that includes those cloned errata and
+ * should include the new packages, they will not be included when they
+ * should. This method lists the errata that will be updated if you run the
+ * syncErrata method.
+ * @xmlrpc.param #session_key()
+ * @xmlrpc.param #param_desc("string", "channelLabel", "channel to update")
+ * @xmlrpc.returntype
+ * #array()
+ * $ErrataOverviewSerializer
+ * #array_end()
+ */
+ public List<ErrataOverview> listErrataNeedingSync(String sessionKey,
+ String channelLabel) {
+ User user = getLoggedInUser(sessionKey);
+ Channel channel = lookupChannelByLabel(user, channelLabel);
+
+ return ChannelManager.listErrataNeedingResync(channel, user);
+ }
+
+ /**
+ * If you have satellite-synced a new channel then Red Hat Errata
+ * will have been updated with the packages that are in the newly synced
+ * channel. A cloned erratum will not have been automatically updated
+ * however. If you cloned a channel that includes those cloned errata and
+ * should include the new packages, they will not be included when they
+ * should. This method updates all the errata in the given cloned channel
+ * with packages that have recently been added, and ensures that all the
+ * packages you expect are in the channel.
+ * @param sessionKey WebSession containing User information.
+ * @param channelLabel Label of cloned channel to update
+ * @return Returns 1 if successfull, FaultException otherwise
+ * @throws NoSuchChannelException thrown if no channel is found.
+ *
+ * @xmlrpc.doc If you have satellite-synced a new channel then Red Hat
+ * Errata will have been updated with the packages that are in the newly
+ * synced channel. A cloned erratum will not have been automatically updated
+ * however. If you cloned a channel that includes those cloned errata and
+ * should include the new packages, they will not be included when they
+ * should. This method updates all the errata in the given cloned channel
+ * with packages that have recently been added, and ensures that all the
+ * packages you expect are in the channel.
+ * @xmlrpc.param #session_key()
+ * @xmlrpc.param #param_desc("string", "channelLabel", "channel to update")
+ * @xmlrpc.returntype #return_int_success()
+ */
+ public Integer syncErrata(String sessionKey, String channelLabel) {
+ User user = getLoggedInUser(sessionKey);
+ Channel channel = lookupChannelByLabel(user, channelLabel);
+ //Verify permissions
+ if (!(UserManager.verifyChannelAdmin(user, channel) ||
+ user.hasRole(RoleFactory.CHANNEL_ADMIN))) {
+ throw new PermissionCheckFailureException();
+ }
+
+ List<ErrataOverview> errata = ChannelManager.listErrataNeedingResync(channel, user);
+ List<Long> eids = new ArrayList<Long>();
+ for (ErrataOverview e : errata) {
+ eids.add(e.getId());
+ }
+
+ List<PackageOverview> packages = ChannelManager
+ .listErrataPackagesForResync(channel, user);
+ List<Long> pids = new ArrayList<Long>();
+ for (PackageOverview p : packages) {
+ pids.add(p.getId());
+ }
+
+ ChannelEditor.getInstance().addPackages(user, channel, pids);
+
+ for (Long eid : eids) {
+ Errata e = ErrataManager.lookupErrata(eid, user);
+ if (e.isPublished() && e.isCloned()) {
+ ErrataFactory.syncErrataDetails((PublishedClonedErrata) e);
+ }
+ else {
+ log.fatal("Tried to sync errata with id " + eid +
+ " But it was not published or was not cloned");
+ }
+ }
+ return 1;
+ }
+
+ /**
* Lists the packages with the latest version (including release and epoch)
* for the unique package names
* @param sessionKey WebSession containing User information.
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 658f41f..025d880 100644
--- a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
+++ b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
@@ -2584,6 +2584,28 @@ public class ChannelManager extends BaseManager {
* List errata packages that need to be resynced
* @param c the channel to look for packages in
* @param user the user doing it
+ * @return the list of PackageOverview objects
+ */
+ public static List listErrataPackagesForResync(Channel c, User user) {
+ if (!user.hasRole(RoleFactory.CHANNEL_ADMIN)) {
+ throw new PermissionException(RoleFactory.CHANNEL_ADMIN);
+ }
+
+ if (c.isCloned()) {
+ Map params = new HashMap();
+ params.put("cid", c.getId());
+ params.put("ocid", c.getOriginal().getId());
+ SelectMode m = ModeFactory.getMode("Errata_queries",
+ "list_packages_needing_sync");
+ return m.execute(params);
+ }
+ return Collections.EMPTY_LIST;
+ }
+
+ /**
+ * List errata packages that need to be resynced
+ * @param c the channel to look for packages in
+ * @param user the user doing it
* @param setLabel the set of errata to base the package off of
* @return the list of PackageOverview objects
*/
diff --git a/utils/cloneByDate.py b/utils/cloneByDate.py
index b199a38..588a1da 100644
--- a/utils/cloneByDate.py
+++ b/utils/cloneByDate.py
@@ -145,12 +145,13 @@ def main(options):
options.to_date, options.blacklist,
options.removelist, options.background,
options.security_only, options.use_update_date,
- options.parents)
+ options.no_errata_sync, options.parents)
else:
tree_cloner = ChannelTreeCloner(channel_list, xmlrpc, db,
options.to_date, options.blacklist,
options.removelist, options.background,
- options.security_only,options.use_update_date)
+ options.security_only,options.use_update_date,
+ options.no_errata_sync)
cloners.append(tree_cloner)
needed_channels += tree_cloner.needing_create().values()
@@ -202,8 +203,8 @@ class ChannelTreeCloner:
"""
# pylint: disable=R0902
def __init__(self, channels, remote_api, db_api, to_date, blacklist,
- removelist, detached,
- security_only, use_update_date, parents = None):
+ removelist, detached, security_only, use_update_date,
+ no_errata_sync, parents = None):
self.remote_api = remote_api
self.db_api = db_api
self.channel_map = channels
@@ -223,13 +224,15 @@ class ChannelTreeCloner:
self.detached = detached
self.security_only = security_only
self.use_update_date = use_update_date
+ self.no_errata_sync = no_errata_sync
self.validate_source_channels()
for from_label in self.ordered_labels():
to_label = self.channel_map[from_label]
cloner = ChannelCloner(from_label, to_label, self.to_date,
self.remote_api, self.db_api, self.detached,
- self.security_only,self.use_update_date)
+ self.security_only, self.use_update_date,
+ self.no_errata_sync)
self.cloners.append(cloner)
@@ -427,7 +430,7 @@ class ChannelTreeCloner:
class ChannelCloner:
# pylint: disable=R0902
def __init__(self, from_label, to_label, to_date, remote_api, db_api,
- detached, security_only, use_update_date):
+ detached, security_only, use_update_date, no_errata_sync):
self.remote_api = remote_api
self.db_api = db_api
self.from_label = from_label
@@ -441,6 +444,7 @@ class ChannelCloner:
self.detached = detached
self.security_only = security_only
self.use_update_date = use_update_date
+ self.no_errata_sync = no_errata_sync
def dest_label(self):
@@ -547,6 +551,12 @@ class ChannelCloner:
self.reset_new_pkgs()
pb.printComplete()
+ if not self.no_errata_sync:
+ log_clean(0, "")
+ log_clean(0, "Synchronizing Errata in %s with originals"
+ % self.to_label)
+ self.remote_api.sync_errata(self.to_label)
+
def get_errata(self):
""" Returns tuple of all available for cloning, and what falls in the date range"""
available_errata = self.db_api.applicable_errata(self.from_label, self.to_label)
@@ -674,6 +684,10 @@ class RemoteApi:
self.auth_check()
self.client.errata.cloneAsOriginalAsync(self.auth_token, to_label, errata_list)
+ def sync_errata(self, to_label):
+ self.auth_check()
+ self.client.channel.software.syncErrata(self.auth_token, to_label)
+
def get_details(self, label):
self.auth_check()
try:
diff --git a/utils/spacewalk-clone-by-date b/utils/spacewalk-clone-by-date
index dd48729..862e9c6 100755
--- a/utils/spacewalk-clone-by-date
+++ b/utils/spacewalk-clone-by-date
@@ -43,6 +43,7 @@ SAMPLE_CONFIG = """
"skip_depsolve":false,
"security_only":false,
"use_update_date":false,
+ "no_errata_sync":false,
"blacklist": {
"ALL":["sendmail"],
"my-rhel5-x86_64-clone":["emacs"],
@@ -87,7 +88,7 @@ def merge_config(options):
# add it to options
overwrite = ["username", "password", "blacklist", "removelist", "channels",
"server", "assumeyes", "to_date", "skip_depsolve",
- "security_only", "use_update_date"]
+ "security_only", "use_update_date", "no_errata_sync"]
for key in overwrite:
if config.has_key(key) and not getattr(options, key):
setattr(options, key, config[key])
@@ -156,6 +157,7 @@ def parse_args():
+ "original parent and destination parent of child "
+ "channels cloned this session.")
parser.add_option("-z", "--use-update-date", dest="use_update_date", action='store_true', help="While cloning errata by date, clone all errata that have last been updated on or before the date provided by to_date. If omitted will use issue date of errata (default).")
+ parser.add_option("-n", "--no-errata-sync", dest="no_errata_sync", action='store_true', help="Do not automatically sychronize the package list of cloned errata with their originals. This may make spacewalk-clone-by-date have unexpected results if the original errata have been updated (e.g.: syncing another architecture for a channel) since the cloned errata were created. If omitted we will synchronize the cloned errata with the originals to ensure the expected packages are included (default).")
(options, args) = parser.parse_args()
diff --git a/utils/spacewalk-clone-by-date.sgml b/utils/spacewalk-clone-by-date.sgml
index f2fbf8f..45452b9 100644
--- a/utils/spacewalk-clone-by-date.sgml
+++ b/utils/spacewalk-clone-by-date.sgml
@@ -71,6 +71,9 @@ Utility for cloning errata by date.
<arg>-g</arg><arg>--background</arg>
</cmdsynopsis>
<cmdsynopsis>
+ <arg>-n</arg><arg>--no-errata-sync</arg>
+ </cmdsynopsis>
+ <cmdsynopsis>
<arg>-h</arg><arg>--help</arg>
</cmdsynopsis>
<cmdsynopsis>
@@ -210,6 +213,15 @@ Utility for cloning errata by date.
</listitem>
</varlistentry>
<varlistentry>
+ <term>-n --no-errata-sync</term>
+ <listitem>
+ <para>Do not automatically sychronize the package list of cloned errata with their originals. This may make spacewalk-clone-by-date have unexpected results if the original errata have been updated (e.g.: syncing another architecture for a channel) since the cloned errata were created. If omitted we will synchronize the cloned errata with the originals to ensure the expected packages are included (default).
+ </para>
+ <para>Errata clones do not necessarily get out-of-sync by satellite-syncing new architectures of existing channels. Another example would be if the errata contains some packages in one channel (say the base channel) and additional packages in another channel (say a child channel). Or it may be due to simply adding or removing packages from a custom errata that you have already created a clone of. Since cloned errata are not automatically updated when the original errata are, over time they may become out-of-sync are require synchronization in order for associating the cloned errata with a cloned channel to have the normally expected effect.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
<term>-a <replaceable>SRC_PARENT DEST_PARENT</replaceable>, --parents=<replaceable>SRC_PARENT DEST_PARENT</replaceable></term>
<listitem>
<para>Space separated list of source parent channel and destination parent channel. These channels are used for resolving dependencies and cloning the children, but will not be cloned themselves. Both channels specified here must already exist. There is no way to specify this option through the config channel, you must simply re-list the parent src:dest channels as part of the list to clone. Spacewalk-clone-by-date will detect that the dest parent channel already exists and will not try to re-create it.</para>
commit bf1531f1e10ff6e1e3ece3ed95b11ee793b07fd1
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Thu Jan 30 13:58:17 2014 +0100
fix style on kickstart profile creation wizard + use rhn:toolbar
diff --git a/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/second.jsp b/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/second.jsp
index a17a601..66adf2c 100644
--- a/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/second.jsp
+++ b/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/second.jsp
@@ -60,31 +60,35 @@ function movePrevious() {
<html:hidden property="virtualizationTypeLabel" />
<html:hidden property="kstreeId" />
<html:hidden property="kstreeUpdateType" />
- <h1><bean:message key="kickstart.jsp.create.wizard.step.two"/></h1>
- <table class="details" width="80%">
- <tr>
- <td colspan="2"><bean:message key="kickstart.jsp.create.wizard.second.heading1" /></td>
- </tr>
- <tr>
- <th width="10%"><bean:message key="kickstart.jsp.create.wizard.default.download.location.label" />:</th>
- <td>
- <html:radio styleId="wizard-defaultdownloadon" property="defaultDownload" value="true" onclick="disableCtl('wizard-userdefdload');"><bean:write name="kickstartCreateWizardForm" property="defaultDownloadLocation" /></html:radio>
- </td>
- </tr>
- <tr>
- <th width="10%"><bean:message key="kickstart.jsp.create.wizard.custom.download.location.label" />:</th>
- <td>
- <html:radio styleId="wizard-defaultdownloadoff" property="defaultDownload" value="false" onclick="enableCtl('wizard-userdefdload');"><html:text property="userDefinedDownload" styleId="wizard-userdefdload" size="50" maxlength="512" /></html:radio>
- </td>
- </tr>
- <tr>
- <td colspan="2" align="right">
- <input type="button" value="<bean:message key='wizard.jsp.previous.step'/>" onclick="movePrevious();" />
-
- <input type="button" value="<bean:message key='wizard.jsp.next.step'/>" onclick="moveNext();" />
- </td>
- </tr>
- </table>
+ <rhn:toolbar base="h1" icon="header-kickstart"><bean:message key="kickstart.jsp.create.wizard.step.two"/></rhn:toolbar>
+ <p><bean:message key="kickstart.jsp.create.wizard.second.heading1" /></p>
+ <div class="panel panel-default">
+ <ul class="list-group">
+ <div class="row">
+ <div class="col-sm-2">
+ <bean:message key="kickstart.jsp.create.wizard.default.download.location.label" />:
+ </div>
+ <div class="col-sm-10">
+ <html:radio styleId="wizard-defaultdownloadon" property="defaultDownload" value="true" onclick="disableCtl('wizard-userdefdload');"><bean:write name="kickstartCreateWizardForm" property="defaultDownloadLocation" /></html:radio>
+ </div>
+ </div>
+ </ul>
+ <ul class="list-group">
+ <div class="row">
+ <div class="col-sm-2">
+ <bean:message key="kickstart.jsp.create.wizard.custom.download.location.label" />:
+ </div>
+ <div class="col-sm-10">
+ <html:radio styleId="wizard-defaultdownloadoff" property="defaultDownload" value="false" onclick="enableCtl('wizard-userdefdload');"><html:text property="userDefinedDownload" styleId="wizard-userdefdload" size="50" maxlength="512" /></html:radio>
+ </div>
+ </div>
+ </ul>
+ </div>
+ <div align="right">
+ <input type="button" value="<bean:message key='wizard.jsp.previous.step'/>" onclick="movePrevious();" class="btn btn-default"/>
+
+ <input type="button" value="<bean:message key='wizard.jsp.next.step'/>" onclick="moveNext();" class="btn btn-default"/>
+ </div>
</html:form>
</div>
</body>
commit 806f73dfbc0bb398f0ddac90376a6771fadff28b
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Thu Jan 30 13:53:13 2014 +0100
use rhn:toolbar for page headers
diff --git a/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/first.jsp b/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/first.jsp
index c19a181..2cf0c32 100644
--- a/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/first.jsp
+++ b/java/code/webapp/WEB-INF/pages/kickstart/wizard/profile/first.jsp
@@ -62,7 +62,7 @@ function clickNewestTree() {
<html:hidden property="wizardStep" styleId="wizard-curstep" />
<html:hidden property="nextStep" styleId="wizard-nextstep" />
<html:hidden property="previousChannelId" />
- <h1><bean:message key="kickstart.jsp.create.wizard.step.one"/></h1>
+ <rhn:toolbar base="h1" icon="header-kickstart"><bean:message key="kickstart.jsp.create.wizard.step.one"/></rhn:toolbar>
<p><bean:message key="kickstart.jsp.create.wizard.first.heading1" /></p>
<div class="form-group">
commit 87773fd4aac0de1e7ce54f59d76eb2a11ff597e6
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Thu Jan 30 11:53:48 2014 +0100
style table for system comparsion
diff --git a/branding/css/spacewalk-tables.less b/branding/css/spacewalk-tables.less
index 256674d..68359fd 100644
--- a/branding/css/spacewalk-tables.less
+++ b/branding/css/spacewalk-tables.less
@@ -130,3 +130,21 @@ background-color: darken(#d9edf7, 3%) !important;
background-color: darken(#d9edf7, 13%) !important;
}
+.compare-list {
+ .border-rounded(0, 0, 3px, 3p);
+ border: 1px solid #DDDDDD;
+ width: 100%;
+}
+
+.compare-list th {
+ padding: 10px 0px 10px 10px;
+}
+
+.compare-list input[type="submit"] {
+ margin: 5px 0px 5px 15px;
+}
+
+.compare-list td:first-child {
+ background-color: #e2e2e2 !important;
+ border-right: 1px solid #DDDDDD;
+}
commit 6686534ce4e311ec7f591c9371896ed7994a816e
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Thu Jan 30 10:27:43 2014 +0100
update copyright year in perl footer
diff --git a/branding/templates/footer.pxt b/branding/templates/footer.pxt
index 413e695..4120e31 100644
--- a/branding/templates/footer.pxt
+++ b/branding/templates/footer.pxt
@@ -3,7 +3,7 @@
<pxt-passthrough>
<pxt-use class="Sniglets::Users" />
<div>
- Copyright © 2002‒13 Red Hat, Inc. All rights reserved.
+ Copyright © 2002‒14 Red Hat, Inc. All rights reserved.
<a href="https://www.redhat.com/legal/privacy_statement.html">Privacy statement</a>
: <a href="http://www.redhat.com/legal/legal_statement.html">Legal statement</a>
: <a href="http://www.redhat.com/">redhat.com</a>
commit 4fc6d6256b7bc099320e7a77ca5b6affe34e9bbf
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Thu Jan 30 10:10:34 2014 +0100
update copyright year in page footer in java
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_bn_IN.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_bn_IN.xml
index 4bea1a3..5ec40f0 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_bn_IN.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_bn_IN.xml
@@ -1272,7 +1272,7 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_de.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_de.xml
index a329e12..8f1351c 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_de.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_de.xml
@@ -1354,11 +1354,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. Alle Rechte vorbehalten.</target>
+ <target>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. Alle Rechte vorbehalten.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index ba6a15c..b8626cf 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -1150,7 +1150,7 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_es.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_es.xml
index 33e214e..52c2a6a 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_es.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_es.xml
@@ -1354,11 +1354,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. Todos los derechos reservados.</target>
+ <target>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. Todos los derechos reservados.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_fr.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_fr.xml
index acd0eec..631e71b 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_fr.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_fr.xml
@@ -1354,11 +1354,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. Tous droits réservés.</target>
+ <target>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. Tous droits réservés.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_gu.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_gu.xml
index 2b94d70..7fc60a9 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_gu.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_gu.xml
@@ -1272,11 +1272,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</target>
+ <target>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_hi.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_hi.xml
index 3386f1a..aa7b874 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_hi.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_hi.xml
@@ -1272,11 +1272,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>कॉपीराइट &#169; 2002&#x2012;13 Red Hat, Inc. सर्वाधिकार सुरक्षित.</target>
+ <target>कॉपीराइट &#169; 2002&#x2012;14 Red Hat, Inc. सर्वाधिकार सुरक्षित.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_it.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_it.xml
index 6ef9427..d527162 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_it.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_it.xml
@@ -1354,11 +1354,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. Tutti i diritti riservati.</target>
+ <target>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. Tutti i diritti riservati.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ja.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ja.xml
index b33f579..1e3e9f0 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ja.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ja.xml
@@ -1355,11 +1355,11 @@ Satellite の 組織管理者でないとユーザーを削除できません。
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</target>
+ <target>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ko.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ko.xml
index a506314..ee1eaef 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ko.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ko.xml
@@ -1354,11 +1354,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</target>
+ <target>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pa.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pa.xml
index b5cf842..60dd4e6 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pa.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pa.xml
@@ -1272,11 +1272,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>ਕਾਪੀਰਾਈਟ &#169; 2002&#x2012;13 Red Hat, Inc. ਸਭ ਹੱਕ ਰਾਖਵੇਂ ਹਨ।</target>
+ <target>ਕਾਪੀਰਾਈਟ &#169; 2002&#x2012;14 Red Hat, Inc. ਸਭ ਹੱਕ ਰਾਖਵੇਂ ਹਨ।</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pt_BR.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pt_BR.xml
index 369e88b..8737d43 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pt_BR.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_pt_BR.xml
@@ -1354,11 +1354,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</target>
+ <target>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ru.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ru.xml
index b8d4578..1dedf1d 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ru.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ru.xml
@@ -1354,11 +1354,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>&#169; 2002&#x2012;13 Red Hat, Inc. Все права защищены.</target>
+ <target>&#169; 2002&#x2012;14 Red Hat, Inc. Все права защищены.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ta.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ta.xml
index a4795d5..55fa52d 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ta.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_ta.xml
@@ -1272,11 +1272,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>பதிப்புரிமை &#169; 2002&#x2012;13 Red Hat, Inc. அனைத்து உரிமைகளும் உள்ளடக்கியது.</target>
+ <target>பதிப்புரிமை &#169; 2002&#x2012;14 Red Hat, Inc. அனைத்து உரிமைகளும் உள்ளடக்கியது.</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_CN.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_CN.xml
index bd71e62..b930b6d 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_CN.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_CN.xml
@@ -1354,11 +1354,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>版权 &#169; 2002&#x2012;13 红帽公司版权所有。</target>
+ <target>版权 &#169; 2002&#x2012;14 红帽公司版权所有。</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_TW.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_TW.xml
index fc7b64d..af0be3a 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_TW.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_zh_TW.xml
@@ -1354,11 +1354,11 @@
</trans-unit>
<!-- footer.jsp -->
<trans-unit id="footer.jsp.copyright">
- <source>Copyright &#169; 2002&#x2012;13 Red Hat, Inc. All rights reserved.</source>
+ <source>Copyright &#169; 2002&#x2012;14 Red Hat, Inc. All rights reserved.</source>
<context-group name="ctx">
<context context-type="sourcefile">./includes/footer.jsp</context>
</context-group>
- <target>版權所有 &#169; 2002&#x2012;13 Red Hat, Inc. 保留所有權利。</target>
+ <target>版權所有 &#169; 2002&#x2012;14 Red Hat, Inc. 保留所有權利。</target>
</trans-unit>
<trans-unit id="footer.jsp.legalStatement">
<source>Legal statement</source>
commit c250967cff752b0a26261bce76df14ee1deffc2c
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Thu Jan 30 07:50:09 2014 +0100
Removing unaesthetic spaces around dots in IPv4 address
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/kickstart/ipranges.jspf b/java/code/webapp/WEB-INF/pages/common/fragments/kickstart/ipranges.jspf
index a82ba54..c8cd917 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/kickstart/ipranges.jspf
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/kickstart/ipranges.jspf
@@ -54,7 +54,7 @@
</div>
</div>
</c:forEach>
-
+
<rhn:csrf />
<div class="form-group">
<div class="row">
@@ -62,30 +62,21 @@
<bean:message key="kickstartips.jsp.label" />:
</label>
<fieldset class="col-md-8">
-
- <html:text styleClass="input-ip-range" property="octet1a" maxlength="3" size="3" />
- <span class="dot-ip-range">.</span>
-
- <html:text styleClass="input-ip-range" property="octet1b" maxlength="3" size="3" />
- <span class="dot-ip-range">.</span>
-
- <html:text styleClass="input-ip-range" property="octet1c" maxlength="3" size="3" />
- <span class="dot-ip-range">.</span>
-
- <html:text styleClass="input-ip-range" property="octet1d" maxlength="3" size="3" />
- <span class="dash-ip-range"> - </span>
-
- <html:text styleClass="input-ip-range" property="octet2a" maxlength="3" size="3" />
- <span class="dot-ip-range">.</span>
-
- <html:text styleClass="input-ip-range" property="octet2b" maxlength="3" size="3" />
- <span class="dot-ip-range">.</span>
-
- <html:text styleClass="input-ip-range" property="octet2c" maxlength="3" size="3" />
- <span class="dot-ip-range">.</span>
-
- <html:text styleClass="input-ip-range" property="octet2d" maxlength="3" size="3" />
-
+ <html:text styleClass="input-ip-range" property="octet1a" maxlength="3" size="3"
+ /><span class="dot-ip-range">.</span
+ ><html:text styleClass="input-ip-range" property="octet1b" maxlength="3" size="3"
+ /><span class="dot-ip-range">.</span
+ ><html:text styleClass="input-ip-range" property="octet1c" maxlength="3" size="3"
+ /><span class="dot-ip-range">.</span
+ ><html:text styleClass="input-ip-range" property="octet1d" maxlength="3" size="3"
+ /><span class="dash-ip-range"> - </span
+ ><html:text styleClass="input-ip-range" property="octet2a" maxlength="3" size="3"
+ /><span class="dot-ip-range">.</span
+ ><html:text styleClass="input-ip-range" property="octet2b" maxlength="3" size="3"
+ /><span class="dot-ip-range">.</span
+ ><html:text styleClass="input-ip-range" property="octet2c" maxlength="3" size="3"
+ /><span class="dot-ip-range">.</span
+ ><html:text styleClass="input-ip-range" property="octet2d" maxlength="3" size="3" />
</fieldset>
</div>
</div>
@@ -102,4 +93,4 @@
</html:form>
</div>
-</div>
\ No newline at end of file
+</div>
commit 9d2c3f347a9f6e1daa6653d9668ae754431d6387
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Thu Jan 30 07:42:09 2014 +0100
Small code cleanup
diff --git a/java/code/src/com/redhat/rhn/frontend/action/groups/BaseListAction.java b/java/code/src/com/redhat/rhn/frontend/action/groups/BaseListAction.java
index 1a9493d..8684a73 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/groups/BaseListAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/groups/BaseListAction.java
@@ -62,6 +62,7 @@ public abstract class BaseListAction extends RhnAction implements Listable {
}
/** {@inheritDoc} */
+ @Override
public ActionForward execute(ActionMapping mapping,
ActionForm formIn,
HttpServletRequest request,
@@ -80,14 +81,11 @@ public abstract class BaseListAction extends RhnAction implements Listable {
return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
}
- protected ActionForward handleDispatch(
+ protected abstract ActionForward handleDispatch(
ListSessionSetHelper helper,
ActionMapping mapping,
ActionForm formIn, HttpServletRequest request,
- HttpServletResponse response) {
-
- return null;
- }
+ HttpServletResponse response);
protected void processHelper(ListSessionSetHelper helper) {
helper.setDataSetName(getDataSetName());
commit 13bbe68fa8e90d1eb4506ee38e4e73b5fbc62885
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Thu Jan 30 07:11:10 2014 +0100
Automatic commit of package [spacewalk-java] release [2.1.136-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index b6f3906..48d4757 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -28,7 +28,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 2.1.135
+Version: 2.1.136
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -801,6 +801,16 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Thu Jan 30 2014 Matej Kollar <mkollar(a)redhat.com> 2.1.136-1
+- Fixed ssm reboot scheduling.
+- Sometimes we don't want "add to ssm" option...
+- add message about system lock/unlock into ssm index
+- use icon for locked system
+- 1009396 - escape system name for ssm lock/unlock page
+- add defaultsort for extra packages page
+- add defaultSort for packages list/remove
+- add defaultSort to package list
+
* Tue Jan 28 2014 Stephen Herr <sherr(a)redhat.com> 2.1.135-1
- 1058761 - Update RHEL 7 VM memory requirements to 1024 MB
- rendering the password strength meter
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index a8d0866..1c41b95 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-2.1.135-1 java/
+2.1.136-1 java/
commit eea3c6320bfc3dae8532844a7c0e71dcc5712c39
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Thu Jan 30 07:04:49 2014 +0100
Fixed ssm reboot scheduling.
Recent rewrite to Java missed several things that are now fied:
* Added some localization strings (instead of reuse of unrelated
* ones).
* Addec confirmation page.
* Fixed scheduling so date in the future can be used.
* Minor style usability issues.
Additionally code was simplified, mostly due to
split to two pages and usage of ListSessionSetHelper.
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java
index c8f81c7..31b1722 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java
@@ -15,33 +15,25 @@
package com.redhat.rhn.frontend.action.ssm;
-import com.redhat.rhn.common.db.datasource.DataResult;
-import com.redhat.rhn.common.messaging.MessageQueue;
-import com.redhat.rhn.common.util.DatePicker;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.frontend.dto.SystemOverview;
-import com.redhat.rhn.frontend.events.SsmSystemRebootEvent;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.RhnHelper;
import com.redhat.rhn.frontend.struts.RhnListAction;
-import com.redhat.rhn.frontend.struts.RhnListSetHelper;
-import com.redhat.rhn.frontend.taglibs.list.ListTagHelper;
-import com.redhat.rhn.frontend.taglibs.list.TagHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListSessionSetHelper;
import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
import com.redhat.rhn.manager.rhnset.RhnSetDecl;
+import com.redhat.rhn.manager.rhnset.RhnSetManager;
import com.redhat.rhn.manager.system.SystemManager;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.apache.struts.action.ActionErrors;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.action.ActionForward;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.ActionMessage;
-import org.apache.struts.action.ActionMessages;
-import org.apache.struts.action.DynaActionForm;
/**
@@ -53,95 +45,54 @@ public class RebootSystemAction
extends RhnListAction
implements Listable {
- /**
- * {@inheritDoc}
- */
+ /** {@inheritDoc} */
+ @Override
public ActionForward execute(ActionMapping mapping,
- ActionForm actionForm,
- HttpServletRequest request,
- HttpServletResponse response) {
- RequestContext context = new RequestContext(request);
- List result = this.getResult(context);
- DynaActionForm form = (DynaActionForm) actionForm;
- RhnSet set = RhnSetDecl.SSM_SYSTEMS_REBOOT.get(context.getCurrentUser());
- RhnListSetHelper helper = new RhnListSetHelper(request);
- String forwardPageId = RhnHelper.DEFAULT_FORWARD;
- ActionMessages actionMessages = new ActionMessages();
- ActionErrors actionErrors = new ActionErrors();
-
- if (ListTagHelper.getListAction("systemList", request) != null) {
- helper.execute(set, "systemList", result);
+ ActionForm formIn,
+ HttpServletRequest request,
+ HttpServletResponse response) {
+
+ ListSessionSetHelper helper = new ListSessionSetHelper(this, request);
+ helper.setDataSetName(RequestContext.PAGE_LIST);
+ helper.setListName("systemList");
+ helper.execute();
+
+ if (helper.isDispatched()) {
+ ActionForward forward =
+ handleDispatch(helper, mapping, request);
+ return forward;
}
+ return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
+ }
- if (!set.isEmpty()) {
- helper.syncSelections(set, result);
- ListTagHelper.setSelectedAmount("systemList", set.size(), request);
- }
-
- request.setAttribute(RequestContext.PAGE_LIST, result);
- ListTagHelper.bindSetDeclTo("systemList",
- RhnSetDecl.SSM_SYSTEMS_REBOOT,
- request);
- request.setAttribute(RequestContext.PAGE_LIST, result);
- request.setAttribute(ListTagHelper.PARENT_URL, request.getRequestURI());
- TagHelper.bindElaboratorTo("systemList",
- ((DataResult) result).getElaborator(),
- request);
-
- if ((request.getParameter("dispatch") != null) &&
- (context.wasDispatched("installconfirm.jsp.confirm"))) {
- List<Long> serverIdsToReboot = new ArrayList<Long>();
- Iterator<Long> sysIds = set.getElementValues().iterator();
- while (sysIds.hasNext()) {
- serverIdsToReboot.add(sysIds.next());
- }
-
- if (!serverIdsToReboot.isEmpty()) {
- // Make an event
- MessageQueue.publish(new SsmSystemRebootEvent(
- context.getLoggedInUser().getId(),
- this.getStrutsDelegate().readDatePicker(form,
- "date",
- DatePicker.YEAR_RANGE_POSITIVE),
- serverIdsToReboot));
- actionMessages.add(
- ActionMessages.GLOBAL_MESSAGE,
- new ActionMessage("ssm.misc.reboot.message.success.default"));
+ private ActionForward handleDispatch(
+ ListSessionSetHelper helper,
+ ActionMapping mapping,
+ HttpServletRequest request) {
- // Clear the selection from the form
- set.clear();
- RhnSetDecl.SSM_SYSTEMS_REBOOT.clear(context.getLoggedInUser());
+ RequestContext context = new RequestContext(request);
+ RhnSet set = RhnSetDecl.SSM_SYSTEMS_REBOOT.get(context.getCurrentUser());
- forwardPageId = "confirm";
- }
- else {
- actionErrors.add(
- ActionMessages.GLOBAL_MESSAGE,
- new ActionMessage("ssm.misc.reboot.message.error.noselect"));
- }
+ set.clear();
+ for (String item : helper.getSet()) {
+ set.addElement(item);
}
-
- request.setAttribute("date", this.getStrutsDelegate().prepopulateDatePicker(
- request, form, "date", DatePicker.YEAR_RANGE_POSITIVE));
-
- this.getStrutsDelegate().saveMessages(request, actionMessages);
- this.getStrutsDelegate().saveMessages(request, actionErrors);
-
- return mapping.findForward(forwardPageId);
+ RhnSetManager.store(set);
+ return mapping.findForward("confirm");
}
-
/**
* Get the dataset result.
*
* @param context Request context.
* @return List of SystemOverview objects.
*/
+ @SuppressWarnings("rawtypes")
public List getResult(RequestContext context) {
List<SystemOverview> systems = SystemManager.inSet(context.getCurrentUser(),
- RhnSetDecl.SYSTEMS.getLabel());
- for (Iterator<SystemOverview> itr = systems.iterator(); itr.hasNext();) {
- itr.next().setSelectable(1);
+ RhnSetDecl.SYSTEMS.getLabel());
+ for (SystemOverview systemOverview : systems) {
+ systemOverview.setSelectable(1);
}
return systems;
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java
new file mode 100644
index 0000000..141f74d
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java
@@ -0,0 +1,115 @@
+/**
+ * Copyright (c) 2014 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.frontend.action.ssm;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.DynaActionForm;
+
+import com.redhat.rhn.common.localization.LocalizationService;
+import com.redhat.rhn.common.messaging.MessageQueue;
+import com.redhat.rhn.common.util.DatePicker;
+import com.redhat.rhn.domain.rhnset.RhnSet;
+import com.redhat.rhn.frontend.events.SsmSystemRebootEvent;
+import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.struts.RhnAction;
+import com.redhat.rhn.frontend.struts.RhnHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.ListRhnSetHelper;
+import com.redhat.rhn.frontend.taglibs.list.helper.Listable;
+import com.redhat.rhn.manager.rhnset.RhnSetDecl;
+import com.redhat.rhn.manager.rhnset.RhnSetManager;
+import com.redhat.rhn.manager.system.SystemManager;
+
+/**
+ * Confirm reboot of given systems
+ */
+public class RebootSystemConfirmAction extends RhnAction implements Listable {
+
+ /** {@inheritDoc} */
+ @Override
+ public ActionForward execute(ActionMapping mapping,
+ ActionForm formIn,
+ HttpServletRequest request,
+ HttpServletResponse response) {
+
+
+ ListRhnSetHelper helper = new ListRhnSetHelper(this, request, getSetDecl());
+ helper.setWillClearSet(false);
+ helper.setDataSetName(RequestContext.PAGE_LIST);
+ helper.setListName("systemList");
+ helper.execute();
+ if (helper.isDispatched()) {
+ return handleDispatch(mapping, (DynaActionForm) formIn, request);
+ }
+
+ getStrutsDelegate().prepopulateDatePicker(request,
+ (DynaActionForm) formIn, "date", DatePicker.YEAR_RANGE_POSITIVE);
+
+ return mapping.findForward(RhnHelper.DEFAULT_FORWARD);
+ }
+
+ /** {@inheritDoc} */
+ protected RhnSetDecl getSetDecl() {
+ return RhnSetDecl.SSM_SYSTEMS_REBOOT;
+ }
+
+ private ActionForward handleDispatch(
+ ActionMapping mapping,
+ DynaActionForm formIn,
+ HttpServletRequest request) {
+
+ RequestContext context = new RequestContext(request);
+ RhnSet set = getSetDecl().get(context.getCurrentUser());
+ List<Long> systemsToReboot = new ArrayList<Long>();
+ systemsToReboot.addAll(set.getElementValues());
+
+ Date earliest = getStrutsDelegate().readDatePicker(formIn,
+ "date", DatePicker.YEAR_RANGE_POSITIVE);
+
+ MessageQueue.publish(new SsmSystemRebootEvent(
+ context.getLoggedInUser().getId(),
+ earliest, systemsToReboot));
+
+ int n = set.size();
+ if (n == 1) {
+ createSuccessMessage(request, "ssm.misc.reboot.message.success.singular",
+ LocalizationService.getInstance().formatNumber(new Integer(n)));
+ }
+ else {
+ createSuccessMessage(request, "ssm.misc.reboot.message.success.plural",
+ LocalizationService.getInstance().formatNumber(new Integer(n)));
+ }
+
+ set.clear();
+ RhnSetManager.store(set);
+
+ return mapping.findForward("confirm");
+ }
+
+ /** {@inheritDoc} */
+ @SuppressWarnings("rawtypes")
+ public List getResult(RequestContext context) {
+ return SystemManager.inSet(context.getCurrentUser(),
+ getSetDecl().getLabel());
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index 21618c6..ba6a15c 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -4658,12 +4658,21 @@ value for this entitlement, excluding the default organization's consumption.</s
<trans-unit id="ssm.misc.reboot.operationname">
<source>Schedule Systems Reboot</source>
</trans-unit>
- <trans-unit id="ssm.misc.reboot.message.success.default">
- <source>Systems reboot has been scheduled.</source>
+ <trans-unit id="ssm.misc.reboot.message.success.singular">
+ <source>{0} system reboot has been scheduled.</source>
+ </trans-unit>
+ <trans-unit id="ssm.misc.reboot.message.success.plural">
+ <source>{0} systems reboot has been scheduled.</source>
</trans-unit>
<trans-unit id="ssm.misc.reboot.message.error.noselect">
<source>Please select at least one system for reboot.</source>
</trans-unit>
+ <trans-unit id="ssm.misc.reboot.no-system">
+ <source>There are no selected systems.</source>
+ </trans-unit>
+ <trans-unit id="ssm.misc.reboot.confirm">
+ <source>Confirm</source>
+ </trans-unit>
<trans-unit id="ssm.misc.lockunlock.tabtitle">
<source>Lock/Unlock</source>
</trans-unit>
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/misc/reboot-system-confirm.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/misc/reboot-system-confirm.jsp
new file mode 100644
index 0000000..95d1b38
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/misc/reboot-system-confirm.jsp
@@ -0,0 +1,34 @@
+<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
+<%@taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@taglib uri="http://rhn.redhat.com/tags/list" prefix="rl" %>
+<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
+<%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
+
+<html>
+<body>
+<%@ include file="/WEB-INF/pages/common/fragments/ssm/header.jspf" %>
+
+following systems will get rebooted...
+<rl:listset name="systemListSet">
+ <c:set var="notSelectable" value="True"/>
+ <c:set var="noCsv" value="1" />
+ <c:set var="noAddToSsm" value="1" />
+ <%@ include file="/WEB-INF/pages/common/fragments/systems/system_listdisplay.jspf" %>
+ <hr />
+
+ <div style="text-align: center">
+ <bean:message key="scheduleremote.jsp.nosoonerthan" />
+ <jsp:include page="/WEB-INF/pages/common/fragments/date-picker.jsp">
+ <jsp:param name="widget" value="date" />
+ </jsp:include>
+ </div>
+ <rhn:submitted />
+ <div class="text-right">
+ <html:submit property="dispatch">
+ <bean:message key="ssm.misc.reboot.confirm" />
+ </html:submit>
+ </div>
+
+</rl:listset>
+</body>
+</html>
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/misc/reboot-system.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/misc/reboot-system.jsp
index b74ff4e..243c74a 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/systems/misc/reboot-system.jsp
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/misc/reboot-system.jsp
@@ -3,7 +3,6 @@
Created on : Jul 16, 2013, 2:35:54 PM
Author : Bo Maryniuk <bo(a)suse.de>
--%>
-
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
@@ -12,10 +11,6 @@
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@taglib uri="http://rhn.redhat.com/tags/list" prefix="rl" %>
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
- "http://www.w3.org/TR/html4/loose.dtd">
-
-
<html>
<body>
<%@ include file="/WEB-INF/pages/common/fragments/ssm/header.jspf" %>
@@ -23,24 +18,14 @@
<p><bean:message key="ssm.misc.reboot.summary" /></p>
<rl:listset name="systemsListSet" legend="system">
- <c:set var="noCsv" value="1"/>
+ <c:set var="noCsv" value="1" />
+ <c:set var="noAddToSsm" value="1" />
<%@ include file="/WEB-INF/pages/common/fragments/systems/system_listdisplay.jspf" %>
+ <hr />
<div class="text-right">
- <div align="left">
- <p><bean:message key="installconfirm.jsp.widgetsummary"/></p>
- <table class="details" align="center">
- <tr>
- <th><label for="radio_use_date_than"><bean:message key="confirm.jsp.than"/></label></th>
- <td>
- <jsp:include page="/WEB-INF/pages/common/fragments/date-picker.jsp">
- <jsp:param name="widget" value="date"/>
- </jsp:include>
- </td>
- </tr>
- </table>
- </div>
- <hr/>
- <input type="submit" name="dispatch" value='<bean:message key="installconfirm.jsp.confirm"/>'/>
+ <html:submit property="dispatch">
+ <bean:message key="ssm.misc.reboot.operationname" />
+ </html:submit>
</div>
</rl:listset>
</body>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index f7d358c..99e9d59 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -1132,6 +1132,17 @@
<form-property name="submitted" type="java.lang.Boolean"/>
</form-bean>
+ <form-bean name="ssmRebootForm"
+ type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm" >
+ <form-property name="submitted" type="java.lang.Boolean"/>
+ <form-property name="date_year" type="java.lang.Integer"/>
+ <form-property name="date_month" type="java.lang.Integer"/>
+ <form-property name="date_day" type="java.lang.Integer"/>
+ <form-property name="date_hour" type="java.lang.Integer"/>
+ <form-property name="date_minute" type="java.lang.Integer"/>
+ <form-property name="date_am_pm" type="java.lang.Integer"/>
+ </form-bean>
+
<form-bean name="ssmMigrateForm"
type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm" >
<form-property name="org" type="java.lang.String"/>
@@ -5257,12 +5268,28 @@
scope="request"
input="/WEB-INF/pages/ssm/systems/misc/reboot-system.jsp"
type="com.redhat.rhn.frontend.action.ssm.RebootSystemAction"
- name="ssmPreferencesForm"
+ name="ssmRebootForm"
className="com.redhat.rhn.frontend.struts.RhnActionMapping">
- <forward name="confirm"
- path="/WEB-INF/pages/ssm/systems/misc/index.jsp" />
+ <set-property property="postRequiredIfSubmitted" value="true" />
<forward name="default"
path="/WEB-INF/pages/ssm/systems/misc/reboot-system.jsp" />
+ <forward name="confirm"
+ path="/systems/ssm/misc/RebootSystemConfirm.do"
+ redirect="true" />
+ </action>
+
+ <action path="/systems/ssm/misc/RebootSystemConfirm"
+ scope="request"
+ input="/WEB-INF/pages/ssm/systems/misc/reboot-system-confirm.jsp"
+ type="com.redhat.rhn.frontend.action.ssm.RebootSystemConfirmAction"
+ name="ssmRebootForm"
+ className="com.redhat.rhn.frontend.struts.RhnActionMapping">
+ <set-property property="postRequiredIfSubmitted" value="true" />
+ <forward name="default"
+ path="/WEB-INF/pages/ssm/systems/misc/reboot-system-confirm.jsp" />
+ <forward name="confirm"
+ path="/systems/ssm/misc/RebootSystem.do"
+ redirect="true" />
</action>
<action path="/systems/ssm/misc/Index"
commit 4b79a4145751a85b90715ae6a01e677ae301aa5b
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Thu Jan 30 07:03:27 2014 +0100
Sometimes we don't want "add to ssm" option...
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/systems/system_listdisplay.jspf b/java/code/webapp/WEB-INF/pages/common/fragments/systems/system_listdisplay.jspf
index 8c6907b..e9c8ff8 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/systems/system_listdisplay.jspf
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/systems/system_listdisplay.jspf
@@ -23,7 +23,9 @@
<rl:decorator name="ElaborationDecorator"/>
<rl:decorator name="SystemIconDecorator"/>
<rl:decorator name="PageSizeDecorator"/>
- <rl:decorator name="AddToSsmDecorator" />
+ <c:if test = "${empty noAddToSsm}">
+ <rl:decorator name="AddToSsmDecorator" />
+ </c:if>
<c:if test = "${empty notSelectable}">
<rl:decorator name="SelectableDecorator"/>
commit 914e1a37930c12f7b1492318cd0a2cfb66267401
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 16:15:04 2014 +0100
fixed typo
diff --git a/backend/satellite_tools/spacewalk-remove-channel b/backend/satellite_tools/spacewalk-remove-channel
index 13e005a..5e0a1c8 100755
--- a/backend/satellite_tools/spacewalk-remove-channel
+++ b/backend/satellite_tools/spacewalk-remove-channel
@@ -546,7 +546,7 @@ def _get_package_paths(package_ids, sources=0):
return pdict.keys()
-def _delete_ks_files(channel_lables):
+def _delete_ks_files(channel_labels):
sql = """
select kt.base_path
from rhnChannel c
@@ -554,7 +554,7 @@ def _delete_ks_files(channel_lables):
where c.label in (%s);
"""
- params, bind_params = _bind_many(channel_lables)
+ params, bind_params = _bind_many(channel_labels)
bind_params = string.join(bind_params, ', ')
h = rhnSQL.prepare(sql % (bind_params))
h.execute(**params)
commit bf393594abbb14cc56e1af8f278f6b165462014e
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 14:55:03 2014 +0100
Automatic commit of package [spacewalk-backend] release [2.1.46-1].
diff --git a/backend/spacewalk-backend.spec b/backend/spacewalk-backend.spec
index 3a936ae..3ada77f 100644
--- a/backend/spacewalk-backend.spec
+++ b/backend/spacewalk-backend.spec
@@ -11,7 +11,7 @@ Name: spacewalk-backend
Summary: Common programs needed to be installed on the Spacewalk servers/proxies
Group: Applications/Internet
License: GPLv2
-Version: 2.1.45
+Version: 2.1.46
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -628,6 +628,11 @@ rm -f %{rhnconf}/rhnSecret.py*
%{pythonrhnroot}/satellite_tools/exporter/xmlWriter.py*
%changelog
+* Wed Jan 29 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.46-1
+- fixed man page for spacewalk-remove-channel
+- added option to skip kickstart trees removal
+- 1058431 - sw-remove-channel does not rm ks trees.
+
* Fri Jan 24 2014 Stephen Herr <sherr(a)redhat.com> 2.1.45-1
- 1051658 - Fixing InvalidPackageError when importing from channel dump
diff --git a/rel-eng/packages/spacewalk-backend b/rel-eng/packages/spacewalk-backend
index 1cf6e81..2c4c8c1 100644
--- a/rel-eng/packages/spacewalk-backend
+++ b/rel-eng/packages/spacewalk-backend
@@ -1 +1 @@
-2.1.45-1 backend/
+2.1.46-1 backend/
commit 603d6cb64063e781b431c170316c07772f104639
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 14:47:03 2014 +0100
fixed man page for spacewalk-remove-channel
diff --git a/backend/satellite_tools/spacewalk-remove-channel.sgml b/backend/satellite_tools/spacewalk-remove-channel.sgml
index c8b6716..30376cc 100644
--- a/backend/satellite_tools/spacewalk-remove-channel.sgml
+++ b/backend/satellite_tools/spacewalk-remove-channel.sgml
@@ -98,6 +98,18 @@ Removes a channel from an Red Hat Satellite or Spacewalk server.
<para>Do not remove the package metadata or the files from the filesystem.</para>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>--skip-kickstart-trees</term>
+ <listitem>
+ <para>Do not remove kickstart trees from the filesystem.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>--skip-channels</term>
+ <listitem>
+ <para>Remove only packages from channel not the channel itself.</para>
+ </listitem>
+ </varlistentry>
</variablelist>
</RefSect1>
commit 67ea5b347b76294b9d12f6cc9566666168a74b79
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 14:46:18 2014 +0100
added option to skip kickstart trees removal
diff --git a/backend/satellite_tools/spacewalk-remove-channel b/backend/satellite_tools/spacewalk-remove-channel
index 1b9216c..13e005a 100755
--- a/backend/satellite_tools/spacewalk-remove-channel
+++ b/backend/satellite_tools/spacewalk-remove-channel
@@ -49,6 +49,8 @@ options_table = [
help="Remove the channel packages from any other channels too (Not Recommended)"),
Option("-p", "--skip-packages", action="store_true",
help="Do not remove package metadata or packages from the filesystem (Not Recommended)"),
+ Option( "--skip-kickstart-trees", action="store_true",
+ help="Do not remove kickstart trees from the filesystem (Not Recommended)."),
Option( "--skip-channels", action="store_true",
help="Remove only packages from channel not the channel itself."),
]
@@ -297,7 +299,8 @@ def delete_channels(channelLabels, force=0, justdb=0, skip_packages=0, skip_chan
_delete_srpms(srpms_ids)
_delete_rpms(rpms_ids)
- _delete_ks_files(channelLabels)
+ if not skip_kickstart_trees:
+ _delete_ks_files(channelLabels)
if not justdb and not skip_packages:
_delete_files(rpms_paths + srpms_paths)
commit 82d723ab7e3168c8cfb04c009eff170746a901ff
Author: Dimitar Yordanov <dyordano(a)redhat.com>
Date: Mon Jan 27 20:09:53 2014 +0100
1058431 - sw-remove-channel does not rm ks trees.
diff --git a/backend/satellite_tools/spacewalk-remove-channel b/backend/satellite_tools/spacewalk-remove-channel
index 3ce75be..1b9216c 100755
--- a/backend/satellite_tools/spacewalk-remove-channel
+++ b/backend/satellite_tools/spacewalk-remove-channel
@@ -297,9 +297,12 @@ def delete_channels(channelLabels, force=0, justdb=0, skip_packages=0, skip_chan
_delete_srpms(srpms_ids)
_delete_rpms(rpms_ids)
+ _delete_ks_files(channelLabels)
+
if not justdb and not skip_packages:
_delete_files(rpms_paths + srpms_paths)
+
# Get the channel ids
h = rhnSQL.prepare("""
select id, parent_channel
@@ -540,6 +543,26 @@ def _get_package_paths(package_ids, sources=0):
return pdict.keys()
+def _delete_ks_files(channel_lables):
+ sql = """
+ select kt.base_path
+ from rhnChannel c
+ left join rhnKickstartableTree kt on c.id = kt.channel_id
+ where c.label in (%s);
+ """
+
+ params, bind_params = _bind_many(channel_lables)
+ bind_params = string.join(bind_params, ', ')
+ h = rhnSQL.prepare(sql % (bind_params))
+ h.execute(**params)
+ list = h.fetchall_dict()
+
+ for map in list:
+ path = os.path.join(CFG.MOUNT_POINT, str(map['base_path']))
+ if not os.path.exists(path):
+ log_debug(1, "Not removing %s: no such file" % path)
+ continue
+ shutil.rmtree(path)
def releaseLOCK():
commit 6d41f5c545a1eae3be8b950638cba3c573f046ae
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 14:39:17 2014 +0100
removed trailing spaces
diff --git a/backend/satellite_tools/spacewalk-remove-channel b/backend/satellite_tools/spacewalk-remove-channel
index f3b5d2e..3ce75be 100755
--- a/backend/satellite_tools/spacewalk-remove-channel
+++ b/backend/satellite_tools/spacewalk-remove-channel
@@ -11,10 +11,10 @@
# FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
# along with this software; if not, see
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
-#
+#
# Red Hat trademarks are not licensed under GPLv2. No permission is
# granted to use or replicate Red Hat trademarks that are incorporated
-# in this software or its documentation.
+# in this software or its documentation.
#
import sys
@@ -35,11 +35,11 @@ from spacewalk.server import rhnSQL
from spacewalk.server.rhnPackage import unlink_package_file
options_table = [
- Option("-v", "--verbose", action="count",
+ Option("-v", "--verbose", action="count",
help="Increase verbosity"),
Option("-l", "--list", action="store_true",
help="List defined channels and exit"),
- Option("-c", "--channel", action="append",
+ Option("-c", "--channel", action="append",
help="Delete this channel (can be present multiple times)"),
Option("-u", "--unsubscribe", action="store_true",
help="Unsubscribe systems registered to the specified channels"),
@@ -157,7 +157,7 @@ def main():
def __serverCheck(labels, unsubscribe):
sql = """
select distinct S.org_id, S.id, S.name
- from rhnChannel c inner join
+ from rhnChannel c inner join
rhnServerChannel sc on c.id = sc.channel_id inner join
rhnServer s on s.id = sc.server_id
where c.label in (%s)
@@ -187,13 +187,13 @@ def __serverCheck(labels, unsubscribe):
print str(map['id']).ljust(14),
print(map['name'])
- return len(list)
+ return len(list)
def __unsubscribeServers(labels):
sql = """
select distinct sc.server_id as server_id, C.id as channel_id, c.parent_channel, c.label
- from rhnChannel c inner join
+ from rhnChannel c inner join
rhnServerChannel sc on c.id = sc.channel_id
where c.label in (%s) order by C.parent_channel
"""
@@ -231,7 +231,7 @@ def __unsubscribeServers(labels):
def __kickstartCheck(labels):
sql = """
select K.org_id, K.label
- from rhnKSData K inner join
+ from rhnKSData K inner join
rhnKickstartDefaults KD on KD.kickstart_id = K.id inner join
rhnKickstartableTree KT on KT.id = KD.kstree_id inner join
rhnChannel c on c.id = KT.channel_id
@@ -250,7 +250,7 @@ def __kickstartCheck(labels):
"Please remove these or change their associated base channel.\n")
print('org_id'.ljust(8)),
print('label')
- print("-"*20)
+ print("-"*20)
for map in list:
print str(map['org_id']).ljust(8),
print(map['label'])
@@ -260,7 +260,7 @@ def __kickstartCheck(labels):
def __listChannels():
sql = """
- select c1.label, c2.label parent_channel
+ select c1.label, c2.label parent_channel
from rhnChannel c1 left outer join rhnChannel c2 on c1.parent_channel = c2.id
order by c2.label desc, c1.label asc
"""
@@ -286,7 +286,7 @@ def __listChannels():
def delete_channels(channelLabels, force=0, justdb=0, skip_packages=0, skip_channels=0):
# Get the package ids
if not channelLabels:
- return
+ return
rpms_ids = list_packages(channelLabels, force=force, sources=0)
rpms_paths = _get_package_paths(rpms_ids, sources=0)
@@ -302,9 +302,9 @@ def delete_channels(channelLabels, force=0, justdb=0, skip_packages=0, skip_chan
# Get the channel ids
h = rhnSQL.prepare("""
- select id, parent_channel
- from rhnChannel
- where label = :label
+ select id, parent_channel
+ from rhnChannel
+ where label = :label
order by parent_channel""")
channel_ids = []
for label in channelLabels:
@@ -327,7 +327,7 @@ def delete_channels(channelLabels, force=0, justdb=0, skip_packages=0, skip_chan
]
query = """
delete from %(table_2)s where %(link_field)s in (
- select id
+ select id
from %(table_1)s
where %(channel_field)s = :channel_id
)
@@ -459,7 +459,7 @@ def _delete_srpms(srcPackageIds):
def _delete_rpms(packageIds):
if not packageIds:
return
- group = 300
+ group = 300
toDel = packageIds[:]
print "Deleting package metadata (" + str(len(toDel)) + "):"
pb = ProgressBar(prompt='Removing: ', endTag=' - complete',
@@ -476,14 +476,14 @@ def _delete_rpms(packageIds):
def _delete_rpm_group(packageIds):
references = [
- 'rhnChannelPackage',
- 'rhnErrataPackage',
- 'rhnErrataPackageTMP',
- 'rhnPackageChangelogRec',
- 'rhnPackageConflicts',
- 'rhnPackageFile',
- 'rhnPackageObsoletes',
- 'rhnPackageProvides',
+ 'rhnChannelPackage',
+ 'rhnErrataPackage',
+ 'rhnErrataPackageTMP',
+ 'rhnPackageChangelogRec',
+ 'rhnPackageConflicts',
+ 'rhnPackageFile',
+ 'rhnPackageObsoletes',
+ 'rhnPackageProvides',
'rhnPackageRequires',
'rhnPackageRecommends',
'rhnPackageSuggests',
commit 544ddbcc6e773ce9e5126f1c19e81a55bfe3b6e0
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Jan 29 14:30:48 2014 +0100
add message about system lock/unlock into ssm index
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index 6b09a0e..21618c6 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -4428,6 +4428,9 @@ value for this entitlement, excluding the default organization's consumption.</s
<trans-unit id="ssm.overview.misc.migrate">
<source><a href="/rhn/systems/ssm/MigrateSystems.do">Migrate</a> systems to another organization</source>
</trans-unit>
+ <trans-unit id="ssm.overview.misc.lock">
+ <source><a href="/rhn/systems/ssm/misc/LockUnlockSystem.do">Lock/unlock</a> systems</source>
+ </trans-unit>
<trans-unit id="ssm.overview.misc.scap">
<source><a href="/rhn/systems/ssm/audit/ScheduleXccdf.do">Audit</a> systems with OpenSCAP</source>
</trans-unit>
diff --git a/java/code/webapp/WEB-INF/pages/ssm/ssmindex.jsp b/java/code/webapp/WEB-INF/pages/ssm/ssmindex.jsp
index dbadd5a..fdb9dfb 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/ssmindex.jsp
+++ b/java/code/webapp/WEB-INF/pages/ssm/ssmindex.jsp
@@ -141,6 +141,7 @@
<li><bean:message key="ssm.overview.misc.delete"/></li>
<li><bean:message key="ssm.overview.misc.reboot"/></li>
<li><bean:message key="ssm.overview.misc.migrate"/></li>
+ <li><bean:message key="ssm.overview.misc.lock"/></li>
<li><bean:message key="ssm.overview.misc.scap"/></li>
</ul>
</div>
commit 6dd90bcd6aaf4286fe0c54c53d36ab7fe5c5f050
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Jan 29 14:22:30 2014 +0100
use icon for locked system
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/misc/lock-unlock-system.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/misc/lock-unlock-system.jsp
index b2103f6..d8ec9a6 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/systems/misc/lock-unlock-system.jsp
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/misc/lock-unlock-system.jsp
@@ -50,7 +50,7 @@
<rl:column headerkey="systemlist.jsp.system" bound="false" sortattr="name" sortable="true">
<c:choose>
<c:when test="${current.locked > 0}">
- <rhn:icon type="errata-security" />
+ <rhn:icon type="system-locked" />
<a href="/rhn/systems/details/Overview.do?sid=${current.id}">${fn:escapeXml(current.name)}</a>
</c:when>
<c:otherwise>
commit d23d20b69bdcf786e44d43508c424258e3082e4d
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Jan 29 14:13:52 2014 +0100
1009396 - escape system name for ssm lock/unlock page
diff --git a/java/code/webapp/WEB-INF/pages/ssm/systems/misc/lock-unlock-system.jsp b/java/code/webapp/WEB-INF/pages/ssm/systems/misc/lock-unlock-system.jsp
index d6d70f9..b2103f6 100644
--- a/java/code/webapp/WEB-INF/pages/ssm/systems/misc/lock-unlock-system.jsp
+++ b/java/code/webapp/WEB-INF/pages/ssm/systems/misc/lock-unlock-system.jsp
@@ -11,6 +11,7 @@
<%@taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@taglib uri="http://rhn.redhat.com/tags/list" prefix="rl" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
@@ -50,7 +51,7 @@
<c:choose>
<c:when test="${current.locked > 0}">
<rhn:icon type="errata-security" />
- <a href="/rhn/systems/details/Overview.do?sid=${current.id}">${current.name}</a>
+ <a href="/rhn/systems/details/Overview.do?sid=${current.id}">${fn:escapeXml(current.name)}</a>
</c:when>
<c:otherwise>
<%@ include file="/WEB-INF/pages/common/fragments/systems/system_list_fragment.jspf" %>
commit 958efe564f7119cd3ea4d473059244d3319ea69c
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Jan 29 13:34:46 2014 +0100
highlight column by which is list sorted and hovered row
diff --git a/branding/css/spacewalk-tables.less b/branding/css/spacewalk-tables.less
index a2d0525..256674d 100644
--- a/branding/css/spacewalk-tables.less
+++ b/branding/css/spacewalk-tables.less
@@ -105,3 +105,28 @@ th.descSort a:after {
content: " \f161";
font-family: 'FontAwesome';
}
+
+.list-row-even td.sortedCol {
+ background-color: #d9edf7;
+}
+
+.list-row-odd td.sortedCol {
+background-color: darken(#d9edf7, 3%) !important;
+}
+
+.list-row-even:hover td {
+ background-color: darken(@gray-lighter, 10%);
+}
+
+.list-row-odd:hover td {
+ background-color: darken(@gray-lighter, 13%) !important;
+}
+
+.list-row-even:hover td.sortedCol {
+ background-color: darken(#d9edf7, 10%) !important;
+}
+
+.list-row-odd:hover td.sortedCol {
+ background-color: darken(#d9edf7, 13%) !important;
+}
+
commit 6dab3cdec7e8888eca6db5db47a68317fc20fda5
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 13:30:57 2014 +0100
Automatic commit of package [spacewalk-setup] release [2.1.13-1].
diff --git a/rel-eng/packages/spacewalk-setup b/rel-eng/packages/spacewalk-setup
index d52e2bb..20b5986 100644
--- a/rel-eng/packages/spacewalk-setup
+++ b/rel-eng/packages/spacewalk-setup
@@ -1 +1 @@
-2.1.12-1 spacewalk/setup/
+2.1.13-1 spacewalk/setup/
diff --git a/spacewalk/setup/spacewalk-setup.spec b/spacewalk/setup/spacewalk-setup.spec
index 6d3839c..de3c12a 100644
--- a/spacewalk/setup/spacewalk-setup.spec
+++ b/spacewalk/setup/spacewalk-setup.spec
@@ -1,7 +1,7 @@
%{!?fedora: %global sbinpath /sbin}%{?fedora: %global sbinpath %{_sbindir}}
Name: spacewalk-setup
-Version: 2.1.12
+Version: 2.1.13
Release: 1%{?dist}
Summary: Initial setup tools for Red Hat Spacewalk
@@ -113,6 +113,10 @@ rm -rf %{buildroot}
%doc LICENSE
%changelog
+* Wed Jan 29 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.13-1
+- fixed typo in library path
+- tomcat on RHEL5 and RHEL6 needs more parameters
+
* Mon Jan 27 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.12-1
- preserve standard library path
commit 3bc61de014701ca17d2bce76c653c44019ded895
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 13:01:20 2014 +0100
fixed typo in library path
diff --git a/spacewalk/setup/bin/spacewalk-setup-tomcat b/spacewalk/setup/bin/spacewalk-setup-tomcat
index 572d3b1..c8820c7 100755
--- a/spacewalk/setup/bin/spacewalk-setup-tomcat
+++ b/spacewalk/setup/bin/spacewalk-setup-tomcat
@@ -58,7 +58,7 @@ sub ld_library_path {
if (-r ORACLE_LDCONF) {
open F, '<', ORACLE_LDCONF
or die "Error reading [" + ORACLE_LDCONF + "]: $!\n";
- $ret = ' -Djava.library.path=\${system_property:java.library.path}' . <F>;
+ $ret = ' -Djava.library.path=\${system_property:java.library.path}:' . <F>;
chomp($ret);
close(F);
}
commit d5df95c25fe06bf9572a71255f20bf6e89aefa03
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 11:58:36 2014 +0100
tomcat on RHEL5 and RHEL6 needs more parameters
fixing
Exception in thread "com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" java.lang.UnsatisfiedLinkError: no ocijdbc11 in java.library.path
diff --git a/spacewalk/setup/bin/spacewalk-setup-tomcat b/spacewalk/setup/bin/spacewalk-setup-tomcat
index d170d30..572d3b1 100755
--- a/spacewalk/setup/bin/spacewalk-setup-tomcat
+++ b/spacewalk/setup/bin/spacewalk-setup-tomcat
@@ -27,9 +27,10 @@ sub java_opts {
if (-r TOMCAT_JAVA_OPTS) {
open F, '<', TOMCAT_JAVA_OPTS
or die "Error reading [" + TOMCAT_JAVA_OPTS + "]: $!\n";
- $ret = <F>;
- close(F);
+ $ret = join("", <F>);
chomp($ret);
+ $ret =~ s/\n/ /gm;
+ close(F);
$ret .= ld_library_path();
$ret = qq{JAVA_OPTS="$ret"\n};
}
diff --git a/spacewalk/setup/share/tomcat.1 b/spacewalk/setup/share/tomcat.1
index cab7fe0..82f4733 100644
--- a/spacewalk/setup/share/tomcat.1
+++ b/spacewalk/setup/share/tomcat.1
@@ -1,2 +1,2 @@
-^JAVA_OPTS="(\$JAVA_OPTS )?-ea -Xms256m -Xmx256m -Djava.awt.headless=true -Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser -Dorg.apache.tomcat.util.http.Parameters.MAX_COUNT=1024 -XX:MaxNewSize=256 -XX:-UseConcMarkSweepGC( -Dnet.sf.ehcache.skipUpdateCheck=true)?( -Djava.library.path=\S+)?"\n
+^JAVA_OPTS="(\$JAVA_OPTS )?-ea -Xms256m -Xmx256m -Djava.awt.headless=true -Dorg.xml.sax.driver=org.apache.xerces.parsers.SAXParser -Dorg.apache.tomcat.util.http.Parameters.MAX_COUNT=1024 -XX:MaxNewSize=256 -XX:-UseConcMarkSweepGC( -Dnet.sf.ehcache.skipUpdateCheck=true)?( -Dcatalina.ext.dirs=\S+)?( -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory)?( -Djava.library.path=\S+)?"\n
@JAVA_OPTS@
diff --git a/spacewalk/setup/share/tomcat.java_opts.rhel5 b/spacewalk/setup/share/tomcat.java_opts.rhel5
new file mode 100644
index 0000000..e438b83
--- /dev/null
+++ b/spacewalk/setup/share/tomcat.java_opts.rhel5
@@ -0,0 +1 @@
+-Dcatalina.ext.dirs=/usr/share/tomcat5/shared/lib:/usr/share/tomcat5/common/lib -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory
diff --git a/spacewalk/setup/share/tomcat.java_opts.rhel6 b/spacewalk/setup/share/tomcat.java_opts.rhel6
new file mode 100644
index 0000000..efdab61
--- /dev/null
+++ b/spacewalk/setup/share/tomcat.java_opts.rhel6
@@ -0,0 +1 @@
+-Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory
diff --git a/spacewalk/setup/spacewalk-setup.spec b/spacewalk/setup/spacewalk-setup.spec
index a93e66f..6d3839c 100644
--- a/spacewalk/setup/spacewalk-setup.spec
+++ b/spacewalk/setup/spacewalk-setup.spec
@@ -51,6 +51,14 @@ rm -rf %{buildroot}
make pure_install PERL_INSTALL_ROOT=%{buildroot}
find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
find %{buildroot} -type d -depth -exec rmdir {} 2>/dev/null ';'
+%if 0%{?rhel} == 5
+cat share/tomcat.java_opts.rhel5 >>share/tomcat.java_opts
+%endif
+%if 0%{?rhel} == 6
+cat share/tomcat.java_opts.rhel6 >>share/tomcat.java_opts
+%endif
+rm -f share/tomcat.java_opts.*
+
chmod -R u+w %{buildroot}/*
install -d -m 755 %{buildroot}/%{_datadir}/spacewalk/setup/
install -m 0755 share/embedded_diskspace_check.py %{buildroot}/%{_datadir}/spacewalk/setup/
commit 6b9e9a0cd424941fd412a9f42ba903c7244023e2
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Jan 29 11:27:12 2014 +0100
Automatic commit of package [spacewalk-utils] release [2.1.26-1].
diff --git a/rel-eng/packages/spacewalk-utils b/rel-eng/packages/spacewalk-utils
index fc065d6..c38810d 100644
--- a/rel-eng/packages/spacewalk-utils
+++ b/rel-eng/packages/spacewalk-utils
@@ -1 +1 @@
-2.1.25-1 utils/
+2.1.26-1 utils/
diff --git a/utils/spacewalk-utils.spec b/utils/spacewalk-utils.spec
index c719894..678837b 100644
--- a/utils/spacewalk-utils.spec
+++ b/utils/spacewalk-utils.spec
@@ -1,7 +1,7 @@
%define rhnroot %{_prefix}/share/rhn
Name: spacewalk-utils
-Version: 2.1.25
+Version: 2.1.26
Release: 1%{?dist}
Summary: Utilities that may be run against a Spacewalk server.
@@ -91,6 +91,9 @@ spacewalk-pylint $RPM_BUILD_ROOT%{rhnroot}
%changelog
+* Wed Jan 29 2014 Tomas Kasparek <tkasparek(a)redhat.com> 2.1.26-1
+- adding postgresql92-postgresql to possible db service names
+
* Thu Jan 16 2014 Matej Kollar <mkollar(a)redhat.com> 2.1.25-1
- Changed gpg keys so they match reality.
- Removing unsupported Fedora 17
commit 1e1655f5a3540ece5e71699669388305053768ed
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 11:20:56 2014 +0100
Automatic commit of package [spacewalk-branding] release [2.1.23-1].
diff --git a/branding/spacewalk-branding.spec b/branding/spacewalk-branding.spec
index e88e862..ee2fae1 100644
--- a/branding/spacewalk-branding.spec
+++ b/branding/spacewalk-branding.spec
@@ -9,7 +9,7 @@
%endif
Name: spacewalk-branding
-Version: 2.1.22
+Version: 2.1.23
Release: 1%{?dist}
Summary: Spacewalk branding data
@@ -86,6 +86,11 @@ rm -rf %{buildroot}
%doc LICENSE
%changelog
+* Wed Jan 29 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.23-1
+- add sort order icons and alphaResult icon
+- adding custom styles
+- removing old spacewalk css
+
* Mon Jan 27 2014 Matej Kollar <mkollar(a)redhat.com> 2.1.22-1
- New less file added to style Inputs. New less file added for the minor fixes
of TB3 for spacewalk layout
diff --git a/rel-eng/packages/spacewalk-branding b/rel-eng/packages/spacewalk-branding
index 1fa0045..edda7f2 100644
--- a/rel-eng/packages/spacewalk-branding
+++ b/rel-eng/packages/spacewalk-branding
@@ -1 +1 @@
-2.1.22-1 branding/
+2.1.23-1 branding/
commit 78fdcdb410638102acaccff00a2a4b1d30f0af82
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 11:19:36 2014 +0100
Automatic commit of package [spacewalk-web] release [2.1.53-1].
diff --git a/rel-eng/packages/spacewalk-web b/rel-eng/packages/spacewalk-web
index 386a2f2..4f79da6 100644
--- a/rel-eng/packages/spacewalk-web
+++ b/rel-eng/packages/spacewalk-web
@@ -1 +1 @@
-2.1.52-1 web/
+2.1.53-1 web/
diff --git a/web/spacewalk-web.spec b/web/spacewalk-web.spec
index 8f9e87f..0f3473b 100644
--- a/web/spacewalk-web.spec
+++ b/web/spacewalk-web.spec
@@ -4,7 +4,7 @@ Name: spacewalk-web
Summary: Spacewalk Web site - Perl modules
Group: Applications/Internet
License: GPLv2
-Version: 2.1.52
+Version: 2.1.53
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk/
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -269,6 +269,9 @@ rm -rf $RPM_BUILD_ROOT
%doc LICENSE
%changelog
+* Wed Jan 29 2014 Michael Mraka <michael.mraka(a)redhat.com> 2.1.53-1
+- adding caller script and tick icon function
+
* Mon Jan 27 2014 Matej Kollar <mkollar(a)redhat.com> 2.1.52-1
- Fixed unstyled form in PXT page: SSM/Groups
- Fixed unstyled form in PXT page: SSM/Provisioning/TagSystems
commit 6d2bf6fd0863379e1ae2e959ba06f7dd288f2683
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Jan 29 11:09:51 2014 +0100
promote pwstrength-bootstrap to yum repo
diff --git a/rel-eng/comps/comps-spacewalk-server-fedora17.xml b/rel-eng/comps/comps-spacewalk-server-fedora17.xml
index af65715..b8a1374 100644
--- a/rel-eng/comps/comps-spacewalk-server-fedora17.xml
+++ b/rel-eng/comps/comps-spacewalk-server-fedora17.xml
@@ -63,6 +63,7 @@
<packagereq type="default">perl-Satcon</packagereq>
<packagereq type="default">ProgAGoGo</packagereq>
<packagereq type="default">python-gzipstream</packagereq>
+ <packagereq type="default">pwstrength-bootstrap</packagereq>
<packagereq type="default">quartz</packagereq>
<packagereq type="default">quartz-oracle</packagereq>
<packagereq type="default">redstone-xmlrpc</packagereq>
diff --git a/rel-eng/comps/comps-spacewalk-server-fedora18.xml b/rel-eng/comps/comps-spacewalk-server-fedora18.xml
index a1aa191..1579c14 100644
--- a/rel-eng/comps/comps-spacewalk-server-fedora18.xml
+++ b/rel-eng/comps/comps-spacewalk-server-fedora18.xml
@@ -64,6 +64,7 @@
<packagereq type="default">perl-Satcon</packagereq>
<packagereq type="default">ProgAGoGo</packagereq>
<packagereq type="default">python-gzipstream</packagereq>
+ <packagereq type="default">pwstrength-bootstrap</packagereq>
<packagereq type="default">quartz</packagereq>
<packagereq type="default">quartz-oracle</packagereq>
<packagereq type="default">redstone-xmlrpc</packagereq>
diff --git a/rel-eng/comps/comps-spacewalk-server-fedora19.xml b/rel-eng/comps/comps-spacewalk-server-fedora19.xml
index b825be2..1be8f3a 100644
--- a/rel-eng/comps/comps-spacewalk-server-fedora19.xml
+++ b/rel-eng/comps/comps-spacewalk-server-fedora19.xml
@@ -64,6 +64,7 @@
<packagereq type="default">perl-Satcon</packagereq>
<packagereq type="default">ProgAGoGo</packagereq>
<packagereq type="default">python-gzipstream</packagereq>
+ <packagereq type="default">pwstrength-bootstrap</packagereq>
<packagereq type="default">quartz</packagereq>
<packagereq type="default">quartz-oracle</packagereq>
<packagereq type="default">redstone-xmlrpc</packagereq>
diff --git a/rel-eng/comps/comps-spacewalk-server-fedora20.xml b/rel-eng/comps/comps-spacewalk-server-fedora20.xml
index b825be2..1be8f3a 100644
--- a/rel-eng/comps/comps-spacewalk-server-fedora20.xml
+++ b/rel-eng/comps/comps-spacewalk-server-fedora20.xml
@@ -64,6 +64,7 @@
<packagereq type="default">perl-Satcon</packagereq>
<packagereq type="default">ProgAGoGo</packagereq>
<packagereq type="default">python-gzipstream</packagereq>
+ <packagereq type="default">pwstrength-bootstrap</packagereq>
<packagereq type="default">quartz</packagereq>
<packagereq type="default">quartz-oracle</packagereq>
<packagereq type="default">redstone-xmlrpc</packagereq>
diff --git a/rel-eng/comps/comps-spacewalk-server-rhel5.xml b/rel-eng/comps/comps-spacewalk-server-rhel5.xml
index 7eda09b..90f25ea 100644
--- a/rel-eng/comps/comps-spacewalk-server-rhel5.xml
+++ b/rel-eng/comps/comps-spacewalk-server-rhel5.xml
@@ -104,6 +104,7 @@
<packagereq type="default">perl-Satcon</packagereq>
<packagereq type="default">ProgAGoGo</packagereq>
<packagereq type="default">python-gzipstream</packagereq>
+ <packagereq type="default">pwstrength-bootstrap</packagereq>
<packagereq type="default">quartz</packagereq>
<packagereq type="default">quartz-oracle</packagereq>
<packagereq type="default">redstone-xmlrpc</packagereq>
diff --git a/rel-eng/comps/comps-spacewalk-server-rhel6.xml b/rel-eng/comps/comps-spacewalk-server-rhel6.xml
index d0cacad..caef27f 100644
--- a/rel-eng/comps/comps-spacewalk-server-rhel6.xml
+++ b/rel-eng/comps/comps-spacewalk-server-rhel6.xml
@@ -66,6 +66,7 @@
<packagereq type="default">perl-Satcon</packagereq>
<packagereq type="default">ProgAGoGo</packagereq>
<packagereq type="default">python-gzipstream</packagereq>
+ <packagereq type="default">pwstrength-bootstrap</packagereq>
<packagereq type="default">quartz</packagereq>
<packagereq type="default">quartz-oracle</packagereq>
<packagereq type="default">redstone-xmlrpc</packagereq>
commit d9323108a1d8070623003f1966ee3616b219ff71
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Jan 29 10:12:55 2014 +0100
add defaultsort for extra packages page
diff --git a/java/code/webapp/WEB-INF/pages/systems/details/packages/extra-packages-list.jsp b/java/code/webapp/WEB-INF/pages/systems/details/packages/extra-packages-list.jsp
index ebdf872..9d0bd54 100644
--- a/java/code/webapp/WEB-INF/pages/systems/details/packages/extra-packages-list.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/details/packages/extra-packages-list.jsp
@@ -46,7 +46,8 @@
bound="false"
sortattr="nvre"
sortable="true"
- filterattr="nvre">${current.nvre}</rl:column>
+ filterattr="nvre"
+ defaultsort="asc">${current.nvre}</rl:column>
<rl:column headerkey="packagelist.jsp.packagearch"
bound="false">
<c:choose>
commit 7349b8e52fa3af74b2db515aee805c0b1caca3f0
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Jan 29 10:05:20 2014 +0100
add defaultSort for packages list/remove
diff --git a/java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jsp b/java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jsp
index c6b5c42..2849975 100644
--- a/java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jsp
@@ -51,7 +51,7 @@
<rl:column headerkey="packagelist.jsp.packagename" bound="false"
sortattr="nvre"
- sortable="true" filterattr="nvre">
+ sortable="true" filterattr="nvre" defaultsort="asc">
<c:choose>
<c:when test="${not empty current.packageId}">
<a href="/rhn/software/packages/Details.do?sid=${param.sid}&id_combo=${current.idCombo}">
commit 6cae8d26e671f24a4cb0ab68e5b576a3a9019259
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Jan 29 09:53:20 2014 +0100
add defaultSort to package list
diff --git a/java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jspf b/java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jspf
index 097b322..b268d0e 100644
--- a/java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jspf
+++ b/java/code/webapp/WEB-INF/pages/systems/details/packages/packagelist.jspf
@@ -46,7 +46,7 @@
<rl:column headerkey="packagelist.jsp.packagename" bound="false"
sortattr="nvre"
- sortable="true" filterattr="nvre" styleclass="${nameStyle}">
+ sortable="true" filterattr="nvre" styleclass="${nameStyle}" defaultsort="asc">
<c:choose>
<c:when test="${not checkPackageId or not empty current.packageId}">
<a href="/rhn/software/packages/Details.do?sid=${param.sid}&id_combo=${current.idCombo}">
10 years, 2 months
8 commits - branding/css branding/spacewalk-branding.spec java/code
by Michael Mraka
branding/css/spacewalk-fixes.less | 8 +
branding/css/spacewalk-theme.less | 6 +
branding/spacewalk-branding.spec | 1
java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp | 36 +++---
java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp | 8 -
java/code/webapp/WEB-INF/pages/admin/config/general.jsp | 54 +++++-----
java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf | 8 +
java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf | 14 +-
java/code/webapp/WEB-INF/pages/systems/probes/details.jsp | 16 +-
9 files changed, 92 insertions(+), 59 deletions(-)
New commits:
commit dd2a83ecf1ba8e980f29cbd0284ab161c3a2da0f
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 14:10:15 2014 +0100
fixed detail probe page alignment
diff --git a/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp b/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
index 5b62f7b..02829a1 100644
--- a/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/probes/details.jsp
@@ -41,34 +41,34 @@
method="get">
<div class="form-group">
- <label class="col-lg-3 text-right">
+ <label class="col-lg-3 control-label">
<bean:message key="probedetails.jsp.probe" />
</label>
- <div class="col-lg-6">
+ <div class="col-lg-6 text">
${probe.description}
</div>
</div>
<div class="form-group">
- <label class="col-lg-3 text-right">
+ <label class="col-lg-3 control-label">
<bean:message key="probeedit.jsp.satclusterdesc" />
</label>
- <div class="col-lg-6">
+ <div class="col-lg-6 text">
${probe.satCluster.description}
</div>
</div>
<div class="form-group">
- <label class="col-lg-3 text-right">
+ <label class="col-lg-3 control-label">
<bean:message key="probedetails.jsp.status" />
</label>
- <div class="col-lg-6">
+ <div class="col-lg-6 text">
<span class=${status_class}>${status}</span>
</div>
</div>
<div class="form-group">
- <label class="col-lg-3 text-right">
+ <label class="col-lg-3 control-label">
<bean:message key="probedetails.jsp.last_update" />
</label>
- <div class="col-lg-6">
+ <div class="col-lg-6 text">
<fmt:formatDate value="${probe.state.lastCheck}" type="both" dateStyle="short" timeStyle="long"/>
</div>
</div>
commit aa18a436ec205731ab0f2f5be3b7145d0787280e
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 14:01:10 2014 +0100
fixed create probe page aligning
diff --git a/branding/css/spacewalk-fixes.less b/branding/css/spacewalk-fixes.less
index 5f2e885..d65e452 100644
--- a/branding/css/spacewalk-fixes.less
+++ b/branding/css/spacewalk-fixes.less
@@ -5,4 +5,10 @@
margin-right: 0;
margin-left: 0;
}
-}
\ No newline at end of file
+}
+
+.form-horizontal .text {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px;
+}
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf b/java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf
index 6197d99..c31b16f 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/probes/create-form-body.jspf
@@ -68,7 +68,9 @@ function refreshNotifFields() {
<bean:message key="probeedit.jsp.commandrequirements" />
</label>
<div class="col-lg-6">
+ <div class="text">
<bean:message key="${command.systemRequirements}"/>
+ </div>
</div>
</div>
</c:if>
@@ -78,7 +80,9 @@ function refreshNotifFields() {
<label class="col-lg-3 control-label">
<bean:message key="probeedit.jsp.versionsupport" />
</label>
- <div class="col-lg-6">${command.versionSupport}</div>
+ <div class="col-lg-6">
+ <div class="text">${command.versionSupport}</div>
+ </div>
</div>
</c:if>
@@ -96,7 +100,9 @@ function refreshNotifFields() {
<bean:message key="probeedit.jsp.notification" />
</label>
<div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox onclick="refreshNotifFields()" property="notification" styleId="notif"/>
+ </div>
</div>
</div>
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf b/java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf
index a63ebfc..eba0d79 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/probes/render-param-value-list.jspf
@@ -4,15 +4,21 @@
<div class="form-group">
<label class="col-lg-3 control-label">
<c:if test="${not empty field.label}">
- <bean:message key="${field.label}" />
- <c:if test="${field.mandatory}"><span class="required-form-field">*</span></c:if>:
+ <c:choose>
+ <c:when test="${field.mandatory}">
+ <rhn:required-field key="${field.label}"/>:
+ </c:when>
+ <c:otherwise>
+ <bean:message key="${field.label}" />
+ </c:otherwise>
+ </c:choose>
</c:if>
</label>
<c:choose>
<c:when test="${empty field.threshold}">
</c:when>
<c:otherwise>
- <div class="col-lg-2"><bean:message key="${field.threshold}"/></div>
+ <div class="col-lg-2 text"><bean:message key="${field.threshold}"/></div>
</c:otherwise>
</c:choose>
<c:choose>
@@ -37,7 +43,7 @@
</c:when>
</c:choose>
<c:if test="${not empty field.unit}">
- <label class="col-lg-2"><bean:message key="${field.unit}"/></label>
+ <span class="col-lg-2 text"><bean:message key="${field.unit}"/></span>
</c:if>
</div>
</c:forEach>
commit d1c932658a9bf85f8c3a0a9d1ecd88ac1a0b620b
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 14:00:08 2014 +0100
required field marker used to be red
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index 4935e58..82f2902 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -714,3 +714,9 @@ ul.nav.nav-tabs:last-child {
display: none;
}
+/* required field marker */
+.required-form-field {
+ font-weight: bold;
+ color: #c00;
+
+}
commit 3f34bb9d1d472a34237f1a64c1c53bc0a151a0e0
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 10:15:40 2014 +0100
password meter needs pwstrength-bootstrap
diff --git a/branding/spacewalk-branding.spec b/branding/spacewalk-branding.spec
index d3fab4d..c3f8ed6 100644
--- a/branding/spacewalk-branding.spec
+++ b/branding/spacewalk-branding.spec
@@ -27,6 +27,7 @@ Requires: httpd
Requires: bootstrap <= 3.0.0
Requires: font-awesome >= 4.0.0
Requires: roboto >= 1.2
+Requires: pwstrength-bootstrap
%description
Spacewalk specific branding, CSS, and images.
commit c09f0afc753435684362a88fc41d00272767e3d7
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 09:58:10 2014 +0100
unify cobbler page with other tabs
diff --git a/java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp b/java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp
index 7f13047..3b9b57f 100644
--- a/java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/config/cobbler.jsp
@@ -25,11 +25,11 @@
</div>
<div class="panel-body">
<form action="/rhn/admin/config/Cobbler.do" method="POST">
- <div class="row">
- <div class="col-md-2 text-right">
+ <div class="form-group">
+ <label class="col-lg-3 control-label">
<bean:message key="cobbler.jsp.sync"/>
- </div>
- <div class="col-md-10">
+ </label>
+ <div class="col-lg-6">
<input type="submit" class="btn btn-default" name="cobbler_sync" value="${rhn:localize('update')}" />
<rhn:csrf />
<rhn:submitted/>
commit 687420345840c74b5e366814d8040ecd749f7159
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 09:35:55 2014 +0100
moved labels back
diff --git a/java/code/webapp/WEB-INF/pages/admin/config/general.jsp b/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
index 2e23f29..b17f7d4 100644
--- a/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
@@ -90,35 +90,43 @@
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label for="ssl_available">
+ <label class="col-lg-3 control-label" for="web|ssl_available">
+ <bean:message key="general.jsp.defaultTo_ssl"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox property="web|ssl_available" styleId="ssl_available" />
- <bean:message key="general.jsp.defaultTo_ssl"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label for="solaris">
+ <label class="col-lg-3 control-label" for="web|enable_solaris_support">
+ <bean:message key="general.jsp.solaris"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox property="web|enable_solaris_support" styleId="solaris" />
- <bean:message key="general.jsp.solaris"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label for="disconnected">
+ <label class="col-lg-3 control-label" for="disconnected">
+ <bean:message key="general.jsp.disconnected"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox property="disconnected" styleId="disconnected" />
- <bean:message key="general.jsp.disconnected"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
- <label for="is_monitoring_backend">
+ <label class="col-lg-3 control-label" for="web|is_monitoring_backend">
+ <bean:message key="general.jsp.monitoring_backend"/>
+ </label>
+ <div class="col-lg-6">
+ <div class="checkbox">
<html:checkbox property="web|is_monitoring_backend" styleId="is_monitoring_backend" />
- <bean:message key="general.jsp.monitoring_backend"/>
- </label>
+ </div>
</div>
</div>
<div class="form-group">
commit aa3b948a2c6497617afb1dfc0fb7b39cf066b70a
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 09:47:02 2014 +0100
removed colons to unify page with other tabs
diff --git a/java/code/webapp/WEB-INF/pages/admin/config/general.jsp b/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
index 2532a86..2e23f29 100644
--- a/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/config/general.jsp
@@ -21,7 +21,7 @@
<rhn:csrf />
<div class="form-group">
<label for="admin_email" class="col-lg-3 control-label">
- <rhn:required-field key="general.jsp.admin_email"/>:
+ <rhn:required-field key="general.jsp.admin_email"/>
</label>
<div class="col-lg-6">
<html:text property="traceback_mail"
@@ -31,7 +31,7 @@
</div>
<div class="form-group">
<label for="hostname" class="col-lg-3 control-label">
- <rhn:required-field key="general.jsp.hostname"/>:
+ <rhn:required-field key="general.jsp.hostname"/>
</label>
<div class="col-lg-6">
<html:text property="server|jabber_server"
@@ -41,7 +41,7 @@
</div>
<div class="form-group">
<label for="proxy" class="col-lg-3 control-label">
- <bean:message key="general.jsp.proxy"/>:
+ <bean:message key="general.jsp.proxy"/>
</label>
<div class="col-lg-6">
<html:text property="server|satellite|http_proxy"
@@ -51,7 +51,7 @@
</div>
<div class="form-group">
<label for="proxy_user" class="col-lg-3 control-label">
- <bean:message key="general.jsp.proxy_username"/>:
+ <bean:message key="general.jsp.proxy_username"/>
</label>
<div class="col-lg-6">
<html:text property="server|satellite|http_proxy_username"
@@ -61,7 +61,7 @@
</div>
<div class="form-group">
<label for="proxy_password" class="col-lg-3 control-label">
- <bean:message key="general.jsp.proxy_password"/>:
+ <bean:message key="general.jsp.proxy_password"/>
</label>
<div class="col-lg-6">
<html:password property="server|satellite|http_proxy_password"
@@ -71,7 +71,7 @@
</div>
<div class="form-group">
<label for="proxy_password_confirm" class="col-lg-3 control-label">
- <bean:message key="general.jsp.proxy_password_confirm"/>:
+ <bean:message key="general.jsp.proxy_password_confirm"/>
</label>
<div class="col-lg-6">
<html:password property="server|satellite|http_proxy_password_confirm"
@@ -81,7 +81,7 @@
</div>
<div class="form-group">
<label for="mount_point" class="col-lg-3 control-label">
- <bean:message key="general.jsp.mount_point"/>:
+ <bean:message key="general.jsp.mount_point"/>
</label>
<div class="col-lg-6">
<html:text property="mount_point" size="32"
commit 67e36f40bc8fe9d3ba0c0e9843c663311d46d946
Author: Michael Mraka <michael.mraka(a)redhat.com>
Date: Wed Feb 5 09:35:55 2014 +0100
moved labels back
diff --git a/java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp b/java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp
index da55096..78c1a9e 100644
--- a/java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp
+++ b/java/code/webapp/WEB-INF/pages/admin/config/bootstrap.jsp
@@ -21,7 +21,7 @@
<rhn:csrf />
<div class="form-group">
<label for="hostname" class="col-lg-3 control-label">
- <rhn:required-field key="bootstrap.jsp.hostname"/>:
+ <rhn:required-field key="bootstrap.jsp.hostname"/>
</label>
<div class="col-lg-6">
<html:text size="32" property="hostname" styleId="hostname" styleClass="form-control" />
@@ -29,49 +29,49 @@
</div>
<div class="form-group">
<label class="col-lg-3 control-label" for="ssl-cert">
- <rhn:required-field key="bootstrap.jsp.ssl-cert"/>:
+ <rhn:required-field key="bootstrap.jsp.ssl-cert"/>
</label>
<div class="col-lg-6">
<html:text size="32" property="ssl-cert" styleId="ssl-cert" styleClass="form-control" />
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label" for="ssl">
+ <bean:message key="bootstrap.jsp.ssl"/>
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <label>
<html:checkbox property="ssl" styleId="ssl" />
- <bean:message key="bootstrap.jsp.ssl"/>
- </label>
</div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label" for="gpg">
+ <bean:message key="bootstrap.jsp.gpg"/>
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <label>
<html:checkbox property="gpg" styleId="gpg" />
- <bean:message key="bootstrap.jsp.gpg"/>
- </label>
</div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label" for="allow-config-actions">
+ <bean:message key="bootstrap.jsp.allow-config-actions"/>
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <label>
<html:checkbox property="allow-config-actions" styleId="allow-config-actions"/>
- <bean:message key="bootstrap.jsp.allow-config-actions"/>
- </label>
</div>
</div>
</div>
<div class="form-group">
- <div class="col-lg-offset-3 col-lg-6">
+ <label class="col-lg-3 control-label" for="allow-remote-commands">
+ <bean:message key="bootstrap.jsp.allow-remote-commands"/>
+ </label>
+ <div class="col-lg-6">
<div class="checkbox">
- <label>
<html:checkbox property="allow-remote-commands" styleId="allow-remote-commands" />
- <bean:message key="bootstrap.jsp.allow-remote-commands"/>
- </label>
</div>
</div>
</div>
10 years, 2 months
2 commits - branding/css java/code
by Tomáš Kašpárek
branding/css/spacewalk-theme.less | 3 ---
java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp | 4 ++--
2 files changed, 2 insertions(+), 5 deletions(-)
New commits:
commit 39d33b026e6dec0b33fbe0204c62b66d6dcfc807
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Feb 5 14:48:59 2014 +0100
use already defined class
diff --git a/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp b/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
index 8c88288..ecbd3dd 100644
--- a/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
@@ -107,7 +107,7 @@
</c:if>
</c:if>
<div class="form-group">
- <html:submit property="dispatch" styleClass="form-horizontal float-right">
+ <html:submit property="dispatch" styleClass="form-horizontal pull-right">
<bean:message key="sdc.channels.edit.update_sub"/>
</html:submit>
</div>
@@ -165,7 +165,7 @@
<bean:message key="sdc.channels.edit.fastrackBetaWarning"/>
</span>
</div>
- <html:submit property="dispatch" styleClass="btn btn-success float-right">
+ <html:submit property="dispatch" styleClass="btn btn-success pull-right">
<bean:message key="sdc.channels.edit.confirm_update_base"/>
</html:submit>
</rhn:require>
commit 5850113adbd573077e4e2326d736176a9780b2f4
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Feb 5 14:47:58 2014 +0100
Revert "add style for displaying buttons on right"
This reverts commit d2e845fc14618436e22004f7561395fb781a2938.
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index fb9b21b..4935e58 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -714,6 +714,3 @@ ul.nav.nav-tabs:last-child {
display: none;
}
-.float-right {
- float: right;
-}
10 years, 2 months
2 commits - branding/css java/code
by Tomáš Kašpárek
branding/css/spacewalk-theme.less | 3 +
java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp | 27 +++++-----------
2 files changed, 12 insertions(+), 18 deletions(-)
New commits:
commit d2e845fc14618436e22004f7561395fb781a2938
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Feb 5 13:50:40 2014 +0100
add style for displaying buttons on right
diff --git a/branding/css/spacewalk-theme.less b/branding/css/spacewalk-theme.less
index 4935e58..fb9b21b 100644
--- a/branding/css/spacewalk-theme.less
+++ b/branding/css/spacewalk-theme.less
@@ -714,3 +714,6 @@ ul.nav.nav-tabs:last-child {
display: none;
}
+.float-right {
+ float: right;
+}
commit b8469267d50096d7d2133094024ee25ccc4894ba
Author: Tomas Kasparek <tkasparek(a)redhat.com>
Date: Wed Feb 5 10:35:00 2014 +0100
de-uglify system - software channels page
diff --git a/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp b/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
index 8a981f1..8c88288 100644
--- a/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/sdc/channels.jsp
@@ -18,19 +18,16 @@
<c:choose>
<c:when test="${system.baseChannel == null}">
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
<div class="alert alert-warning">
<bean:message key="sdc.channels.edit.nobasechannel"/>
</div>
- </div>
</div>
</c:when>
<c:otherwise>
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
<ul class="list-group">
<li class="list-group-item">
- <a class="btn btn-info" href="/rhn/channels/ChannelDetail.do?cid=${system.baseChannel.id}">${system.baseChannel.name}</a>
+ <a href="/rhn/channels/ChannelDetail.do?cid=${system.baseChannel.id}">${system.baseChannel.name}</a>
<ul>
<c:forEach items="${avail_child_channels}" var="channel">
<c:choose>
@@ -48,7 +45,7 @@
<c:if test="${not channel.subscribed}">
<input ${disabledChannel} name="child_channel" value="${channel.id}" type="checkbox" id="unchecked">
</c:if>
- <a class="btn btn-info" href="/rhn/channels/ChannelDetail.do?cid=${channel.id}">${channel.name}</a>
+ <a href="/rhn/channels/ChannelDetail.do?cid=${channel.id}">${channel.name}</a>
<c:if test="${system.virtualGuest}">
<c:if test="${not channel.freeForGuests}">
<span class="asterisk">* </span>
@@ -86,40 +83,33 @@
</ul>
</li>
</ul>
- </div>
</div>
</c:otherwise>
</c:choose>
<c:if test="${pageScope.display_asterisk}">
<c:if test="${not empty system.virtualInstance.hostSystem.id}">
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
- <span class="asterisk">* </span>
<span class="help-block">
+ <span class="asterisk">* </span>
<bean:message key="sdc.channels.edit.virtsubwarning"
arg0="${system.virtualInstance.hostSystem.id}"
arg1="${system.virtualInstance.hostSystem.name}"/>
</span>
- </div>
</div>
</c:if>
<c:if test="${empty system.virtualInstance.hostSystem.id}">
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
- <span class="asterisk">* </span>
<span class="help-block">
+ <span class="asterisk">* </span>
<bean:message key="sdc.channels.edit.virtsubwarning_nohost"/>
</span>
- </div>
</div>
</c:if>
</c:if>
<div class="form-group">
- <div class="col-md-offset-3 col-md-6">
- <html:submit property="dispatch" styleClass="form-horizontal">
+ <html:submit property="dispatch" styleClass="form-horizontal float-right">
<bean:message key="sdc.channels.edit.update_sub"/>
</html:submit>
- </div>
</div>
<rhn:require acl="not system_is_proxy(); not system_is_satellite()" mixins="com.redhat.rhn.common.security.acl.SystemAclHandler">
@@ -168,15 +158,16 @@
</optgroup>
</c:if>
</select>
+ </div>
+ </div>
+ <div class="form-group">
<span class="help-block">
<bean:message key="sdc.channels.edit.fastrackBetaWarning"/>
</span>
</div>
- <div class="col-md-offset-3 col-md-6">
- <html:submit property="dispatch" styleClass="btn btn-success">
+ <html:submit property="dispatch" styleClass="btn btn-success float-right">
<bean:message key="sdc.channels.edit.confirm_update_base"/>
</html:submit>
- </div>
</rhn:require>
</html:form>
</body>
10 years, 2 months
java/code
by mkollar
java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java | 5 ++---
java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java | 7 ++++---
2 files changed, 6 insertions(+), 6 deletions(-)
New commits:
commit 3275714f3c93b9aa0388e8859b62c390d589dde4
Author: Matej Kollar <mkollar(a)redhat.com>
Date: Wed Feb 5 13:37:28 2014 +0100
Use generified Listable
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java
index 31b1722..ddc0a29 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemAction.java
@@ -43,7 +43,7 @@ import com.redhat.rhn.manager.system.SystemManager;
*/
public class RebootSystemAction
extends RhnListAction
- implements Listable {
+ implements Listable<SystemOverview> {
/** {@inheritDoc} */
@Override
@@ -87,8 +87,7 @@ public class RebootSystemAction
* @param context Request context.
* @return List of SystemOverview objects.
*/
- @SuppressWarnings("rawtypes")
- public List getResult(RequestContext context) {
+ public List<SystemOverview> getResult(RequestContext context) {
List<SystemOverview> systems = SystemManager.inSet(context.getCurrentUser(),
RhnSetDecl.SYSTEMS.getLabel());
for (SystemOverview systemOverview : systems) {
diff --git a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java
index 141f74d..39bdb3e 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/ssm/RebootSystemConfirmAction.java
@@ -30,6 +30,7 @@ import com.redhat.rhn.common.localization.LocalizationService;
import com.redhat.rhn.common.messaging.MessageQueue;
import com.redhat.rhn.common.util.DatePicker;
import com.redhat.rhn.domain.rhnset.RhnSet;
+import com.redhat.rhn.frontend.dto.SystemOverview;
import com.redhat.rhn.frontend.events.SsmSystemRebootEvent;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.RhnAction;
@@ -43,7 +44,8 @@ import com.redhat.rhn.manager.system.SystemManager;
/**
* Confirm reboot of given systems
*/
-public class RebootSystemConfirmAction extends RhnAction implements Listable {
+public class RebootSystemConfirmAction extends RhnAction
+ implements Listable<SystemOverview> {
/** {@inheritDoc} */
@Override
@@ -107,8 +109,7 @@ public class RebootSystemConfirmAction extends RhnAction implements Listable {
}
/** {@inheritDoc} */
- @SuppressWarnings("rawtypes")
- public List getResult(RequestContext context) {
+ public List<SystemOverview> getResult(RequestContext context) {
return SystemManager.inSet(context.getCurrentUser(),
getSetDecl().getLabel());
}
10 years, 2 months