java/code/src/com/redhat/rhn/frontend/xmlrpc/PermissionCheckFailureException.java
| 10 ++++++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/channel/software/ChannelSoftwareHandler.java
| 2 +-
java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java
| 7 ++++---
3 files changed, 15 insertions(+), 4 deletions(-)
New commits:
commit 422e43146ee29c4afaeb20819fee2ce1ce124d71
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Fri Mar 11 10:38:56 2011 +0100
644880 - fix permission check to packages
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/PermissionCheckFailureException.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/PermissionCheckFailureException.java
index 1bed558..017b901 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/PermissionCheckFailureException.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/PermissionCheckFailureException.java
@@ -94,6 +94,16 @@ public class PermissionCheckFailureException extends FaultException {
"perform this action for system id[" + server.getId() +
"]");
// begin member variable initialization
}
+
+ /**
+ * Contructor
+ * @param message use it as exception message
+ */
+ public PermissionCheckFailureException(String message) {
+ super(-23, "permissionCheckFailure" , message);
+ }
+
+
/////////////////////////
// Getters/Setters
/////////////////////////
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 7f0a7d1..6863d6e 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
@@ -1125,7 +1125,7 @@ public class ChannelSoftwareHandler extends BaseHandler {
ChannelEditor.getInstance().addPackages(loggedInUser, channel,
longPackageIds);
}
catch (PermissionException e) {
- throw new PermissionCheckFailureException();
+ throw new PermissionCheckFailureException(e.getMessage());
}
catch (LookupException le) {
//This shouldn't happen, but if it does, it is because one of the
packages
diff --git a/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java
b/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java
index 5bc0e60..b217d17 100644
--- a/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java
+++ b/java/code/src/com/redhat/rhn/manager/rhnpackage/PackageManager.java
@@ -1376,8 +1376,9 @@ public class PackageManager extends BaseManager {
*/
public static void verifyPackagesChannelArchCompatAndOrgAccess(
User user, Channel channel, List<Long> packageIds, boolean
checkArchCompat) {
+ Long orgId = user.getOrg().getId();
DataResult dr = PackageFactory.getPackagesChannelArchCompatAndOrgAccess(
- user.getOrg().getId(), channel.getId(), packageIds);
+ orgId, channel.getId(), packageIds);
List<Long> archNonCompat = new ArrayList<Long>();
List<Long> orgNoAccess = new ArrayList<Long>();
for (Iterator i = dr.iterator(); i.hasNext();) {
@@ -1385,10 +1386,10 @@ public class PackageManager extends BaseManager {
if (m.get("package_arch_id") == null) {
archNonCompat.add((Long)m.get("id"));
}
- if (m.get("org_package") == null &&
+ if (m.get("org_package") != orgId &&
m.get("org_access") == null &&
m.get("shared_access") == null) {
- archNonCompat.add((Long)m.get("id"));
+ orgNoAccess.add((Long)m.get("id"));
}
}
if (!orgNoAccess.isEmpty()) {
Show replies by date