Revision: 3873
Author: [email protected]
Date: Thu Aug 12 08:18:05 2010
Log: FIXED - bug 2950: Non Admin user systems admins have funcitonality greyed out
http://trillian.sqlpower.ca/bugzilla/show_bug.cgi?id=2950

Fixed a bug in how the security panels were checking group membership. Through a fluke, it worked for admin, but not for any other user. Also cleaned up some usage of grants.
http://code.google.com/p/power-architect/source/detail?r=3873

Modified:
/trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/GroupEditorPanel.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/UserEditorPanel.java

=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/GroupEditorPanel.java Wed Aug 4 11:55:58 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/GroupEditorPanel.java Thu Aug 12 08:18:05 2010
@@ -363,7 +363,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);
                     }
@@ -374,8 +374,8 @@
         boolean disableModifyGroup = true;

         for (Grant g : grantsForUser) {
- if ((g.getSubject() != null && g.getSubject().equals(group.getUUID())) - || (g.getType() != null && g.getType().equals(Group.class.getName()))) { + if ((!g.isSystemLevel() && g.getSubject().equals(group.getUUID())) + || (g.isSystemLevel() && g.getType().equals(Group.class.getName()))) {
                 if (g.isModifyPrivilege()) {
                     disableModifyGroup = false;
                 }
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/PrivilegesEditorPanel.java Fri Jul 30 08:32:41 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/PrivilegesEditorPanel.java Thu Aug 12 08:18:05 2010
@@ -262,8 +262,8 @@
         boolean disable = true;

         for (Grant g : grantsForUser) {
-            if ((g.getSubject() != null && g.getSubject().equals(subject))
-                    || (g.getType() != null && g.getType().equals(type))) {
+            if ((!g.isSystemLevel() && g.getSubject().equals(subject))
+                    || (g.isSystemLevel() && g.getType().equals(type))) {
                 if (g.isGrantPrivilege()) {
                     disable = false;
                 }
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/ProjectSecurityPanel.java Thu Aug 5 13:08:01 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/ProjectSecurityPanel.java Thu Aug 12 08:18:05 2010
@@ -218,8 +218,8 @@

         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.getName()))) { + if ((!g.isSystemLevel() && subject != null && g.getSubject().equals(subject.getUUID())) + || (g.isSystemLevel() && g.getType().equals(type.getName()))) {
                 if (g.isGrantPrivilege()) {
                     disable = false;
                 }
@@ -320,11 +320,11 @@

for (SPObject object : securityWorkspace.getChildren(groupOrUserClass)) {
                 for (Grant grant : object.getChildren(Grant.class)) {
- if (grant.getType() != null && grant.getType().equals(type.getName())) { + if (grant.isSystemLevel() && grant.getType().equals(type.getName())) {
                         globalGrants.put(object, grant);
                     }
                     if (subject != null) {
- if (grant.getSubject() != null && grant.getSubject().equals(subject.getUUID())) { + if (!grant.isSystemLevel() && grant.getSubject().equals(subject.getUUID())) {
                             specificGrants.put(object, grant);
                         }
                     }
=======================================
--- /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/UserEditorPanel.java Wed Aug 4 11:55:58 2010 +++ /trunk/src/main/java/ca/sqlpower/architect/swingui/enterprise/UserEditorPanel.java Thu Aug 12 08:18:05 2010
@@ -463,7 +463,7 @@

         for (Group g : securityWorkspace.getChildren(Group.class)) {
             for (GroupMember gm : g.getChildren(GroupMember.class)) {
- if (gm.getUser().getUUID().equals(creatingUser.getUsername())) { + if (gm.getUser().getUUID().equals(creatingUser.getUUID())) {
                     for (Grant gr : g.getChildren(Grant.class)) {
                         grantsForUser.add(gr);
                     }
@@ -479,14 +479,14 @@
         }

         for (Grant g : grantsForUser) {
- if ((g.getSubject() != null && g.getSubject().equals(user.getUUID())) - || (g.getType() != null && g.getType().equals(User.class.getName()))) { + if ((!g.isSystemLevel() && g.getSubject().equals(user.getUUID())) + || (g.isSystemLevel() && g.getType().equals(User.class.getName()))) {
                 if (g.isModifyPrivilege()) {
                     disableModifyUser = false;
                 }
             }

- if (g.getType() != null && g.getType().equals(Group.class.getName())) { + if (g.isSystemLevel() && g.getType().equals(Group.class.getName())) {
                 if (g.isModifyPrivilege()) {
                     disableModifyGroups = false;
                 }

Reply via email to