Revision: 3442
Author: ferguson.sebastian
Date: Wed Apr 7 14:53:55 2010
Log: Fixed a bug that would disable security panels when they should have
been enabled.
http://code.google.com/p/power-architect/source/detail?r=3442
Modified:
/trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectFrame.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/PrivilegesEditorPanel.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/ProjectSecurityPanel.java
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/SecurityPanel.java
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectFrame.java
Tue Apr 6 15:57:06 2010
+++ /trunk/src/main/java/ca/sqlpower/architect/swingui/ArchitectFrame.java
Wed Apr 7 14:53:55 2010
@@ -353,7 +353,7 @@
((ArchitectClientSideSession) ((ArchitectSwingSessionImpl)
session).getDelegateSession()).getSystemSession().getUpdater().setPromptSession(session);
ProjectSecurityPanel spm = new
ProjectSecurityPanel(((ArchitectClientSideSession)
((ArchitectSwingSessionImpl)
session).getDelegateSession()).getSystemWorkspace(),
- session.getWorkspace(),
ArchitectProject.class.getName(), ((ArchitectClientSideSession)
((ArchitectSwingSessionImpl)
session).getDelegateSession()).getProjectLocation().getServiceInfo().getUsername(),
d, closeAction);
+ session.getWorkspace(), ArchitectProject.class,
((ArchitectClientSideSession) ((ArchitectSwingSessionImpl)
session).getDelegateSession()).getProjectLocation().getServiceInfo().getUsername(),
d, closeAction);
d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
d.setContentPane(spm.getPanel());
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/PrivilegesEditorPanel.java
Tue Apr 6 11:05:39 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/PrivilegesEditorPanel.java
Wed Apr 7 14:53:55 2010
@@ -218,7 +218,7 @@
for (Group g : securityWorkspace.getChildren(Group.class)) {
for (GroupMember gm : g.getChildren(GroupMember.class)) {
- if (gm.getUser().getUUID().equals(user.getUsername())) {
+ if (gm.getUser().getUUID().equals(user.getUUID())) {
for (Grant gr : g.getChildren(Grant.class)) {
grantsForUser.add(gr);
}
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/ProjectSecurityPanel.java
Wed Apr 7 13:56:01 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/ProjectSecurityPanel.java
Wed Apr 7 14:53:55 2010
@@ -77,7 +77,7 @@
private final Action closeAction;
private final ArchitectProject securityWorkspace;
private final SPObject subject;
- private final String type;
+ private final Class type;
private final String username;
@@ -88,7 +88,7 @@
private final Dialog d;
- public ProjectSecurityPanel(ArchitectProject securityWorkspace,
SPObject subject, String type, String username, Dialog d, Action
closeAction) {
+ public ProjectSecurityPanel(ArchitectProject securityWorkspace,
SPObject subject, Class type, String username, Dialog d, Action
closeAction) {
this.securityWorkspace = securityWorkspace;
this.subject = subject;
this.type = type;
@@ -96,7 +96,7 @@
this.closeAction = closeAction;
this.d = d;
- panelLabel = new JLabel("Permissions for '" + (subject != null?
subject.getName() : type.substring(type.lastIndexOf(".") + 1)) + "'");
+ panelLabel = new JLabel("Permissions for '" + (subject != null?
subject.getName() : type.getSimpleName()) + "'");
panelLabel.setFont(new Font(panelLabel.getFont().getFontName(),
Font.BOLD, panelLabel.getFont().getSize() + 1));
panel = new JPanel();
@@ -190,7 +190,7 @@
for (Group g : securityWorkspace.getChildren(Group.class)) {
for (GroupMember gm : g.getChildren(GroupMember.class)) {
- if (gm.getUser().getUUID().equals(user.getUsername())) {
+ if (gm.getUser().getUUID().equals(user.getUUID())) {
for (Grant gr : g.getChildren(Grant.class)) {
grantsForUser.add(gr);
}
@@ -201,13 +201,13 @@
boolean disable = true;
for (Grant g : grantsForUser) {
if ((g.getSubject() != null && subject != null &&
g.getSubject().equals(subject.getUUID()))
- || (g.getType() != null && g.getType().equals(type))) {
+ || (g.getType() != null &&
g.getType().equals(type.getName()))) {
if (g.isGrantPrivilege()) {
disable = false;
}
}
}
-
+
if (disable) {
for (Component [] componentArray : userModel.getComponents()) {
for (Component component : componentArray) {
@@ -297,7 +297,7 @@
for (SPObject object :
securityWorkspace.getChildren(groupOrUserClass)) {
for (Grant grant : object.getChildren(Grant.class)) {
- if (grant.getType() != null &&
grant.getType().equals(type)) {
+ if (grant.getType() != null &&
grant.getType().equals(type.getName())) {
globalGrants.put(object, grant);
}
if (subject != null) {
@@ -368,7 +368,7 @@
obj.addChild(new Grant(subject.getUUID(),
null, false, false, false, false, false),
obj.getChildren(Grant.class).size());
} else {
- obj.addChild(new Grant(null, type, false,
false, false, false, false),
+ obj.addChild(new Grant(null,
type.getName(), false, false, false, false, false),
obj.getChildren(Grant.class).size());
}
}
@@ -387,8 +387,8 @@
if (subject != null) {
for (final SPObject object : objectsWithSpecificGrants) {
// can pass in null, it will just be empty
- final PrivilegesEditorPanel specific = new
PrivilegesEditorPanel(specificGrants.get(object), object,
subject.getUUID(), ArchitectProject.class.getName(), username,
securityWorkspace);
- final PrivilegesEditorPanel global = new
PrivilegesEditorPanel(globalGrants.get(object), object, subject.getUUID(),
ArchitectProject.class.getName(), username, securityWorkspace);
+ final PrivilegesEditorPanel specific = new
PrivilegesEditorPanel(specificGrants.get(object), object,
subject.getUUID(), type.getName(), username, securityWorkspace);
+ final PrivilegesEditorPanel global = new
PrivilegesEditorPanel(globalGrants.get(object), object, subject.getUUID(),
type.getName(), username, securityWorkspace);
panels.add(specific);
panels.add(global);
@@ -442,7 +442,7 @@
} else {
for (final SPObject object : objectsWithGlobalGrants) {
// can pass in null, it will just be empty
- final PrivilegesEditorPanel global = new
PrivilegesEditorPanel(globalGrants.get(object), object, null, type,
username, securityWorkspace);
+ final PrivilegesEditorPanel global = new
PrivilegesEditorPanel(globalGrants.get(object), object, null,
type.getName(), username, securityWorkspace);
panels.add(global);
=======================================
---
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/SecurityPanel.java
Wed Apr 7 13:56:01 2010
+++
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/SecurityPanel.java
Wed Apr 7 14:53:55 2010
@@ -418,8 +418,8 @@
}
};
- ProjectSecurityPanel spm = new
ProjectSecurityPanel(securityWorkspace,
- object, objectClass.getName(), username, d,
closeAction);
+ ProjectSecurityPanel spm = new ProjectSecurityPanel(
+ securityWorkspace, object, objectClass, username, d,
closeAction);
d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
d.setContentPane(spm.getPanel());
--
To unsubscribe, reply using "remove me" as the subject.