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.

Reply via email to