Martin Peřina has uploaded a new change for review.

Change subject: tools: Fixes adding superuser permissions
......................................................................

tools: Fixes adding superuser permissions

Fixes adding superuser permissions when adding or editing a domain.

Change-Id: Ib96e77abf446e93a1bce85eecbcbff9591a6a64f
Bug-Url: https://bugzilla.redhat.com/1020172
Signed-off-by: Martin Perina <[email protected]>
---
M 
backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
1 file changed, 16 insertions(+), 30 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/01/20801/1

diff --git 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
index 5263723..7019b4f 100644
--- 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
+++ 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/domains/ManageDomains.java
@@ -491,6 +491,7 @@
                 new DomainsConfigurationEntry(currentDomains, 
DOMAIN_SEPERATOR, null);
 
         String domainName = 
parser.getArg(Arguments.domain.toString()).toLowerCase();
+        String userName = parser.getArg(Arguments.user.toString());
         if (domainNameEntry.doesDomainExist(domainName)) {
             throw new 
ManageDomainsResult(ManageDomainsResultEnum.DOMAIN_ALREADY_EXISTS_IN_CONFIGURATION,
 domainName);
         }
@@ -520,7 +521,7 @@
                 new DomainsConfigurationEntry(currentLDAPProviderTypes, 
DOMAIN_SEPERATOR, VALUE_SEPERATOR);
 
         LdapProviderType ldapProviderType = getLdapProviderType(parser);
-        adUserNameEntry.setValueForDomain(domainName, 
parser.getArg(Arguments.user.toString()));
+        adUserNameEntry.setValueForDomain(domainName, userName);
         adUserPasswordEntry.setValueForDomain(domainName, 
getPasswordInput(parser));
         authModeEntry.setValueForDomain(domainName, authMode);
         ldapProviderTypesEntry.setValueForDomain(domainName, 
ldapProviderType.name());
@@ -547,7 +548,7 @@
                 false,
                 ldapServers);
 
-        handleAddPermissions(domainName, adUserNameEntry, adUserIdEntry);
+        handleAddPermissions(domainName, userName, 
adUserIdEntry.getValueForDomain(domainName));
 
         // Update the configuration
         setConfigurationEntries(domainNameEntry,
@@ -567,27 +568,19 @@
         System.out.println(SERVICE_RESTART_MESSAGE);
     }
 
-    private void handleAddPermissions(String domainName, 
DomainsConfigurationEntry adUserNameEntry, DomainsConfigurationEntry 
adUserIdEntry) {
+    private void handleAddPermissions(String domainName, String userName, 
String userId) {
         if (addPermissions) {
-            updatePermissionsTable(adUserNameEntry, adUserIdEntry);
+            updatePermissionsTable(userName, domainName, userId);
         } else
-        if (!userHasPermissions(adUserNameEntry, adUserIdEntry)) {
+        if (!userHasPermissions(userName, domainName)) {
             
System.out.println(String.format(INFO_ABOUT_NOT_ADDING_PERMISSIONS, 
domainName));
         }
     }
 
-    private ManageDomainsResult 
updatePermissionsTable(DomainsConfigurationEntry adUserNameEntry,
-            DomainsConfigurationEntry adUseridEntry) {
+    private ManageDomainsResult updatePermissionsTable(String userName, String 
domainName,
+            String adUserId) {
         try {
-            Set<Entry<String, String>> userNameValues = 
adUserNameEntry.getValues();
-
-            for (Entry<String, String> currUserEntry : userNameValues) {
-                String currDomain = currUserEntry.getKey();
-                String currUser = currUserEntry.getValue();
-                String guid = adUseridEntry.getValueForDomain(currDomain);
-
-                daoImpl.updatePermissionsTable(guid, currUser, currDomain);
-            }
+            daoImpl.updatePermissionsTable(adUserId, userName, domainName);
             return OK_RESULT;
         } catch (SQLException e) {
             return new 
ManageDomainsResult(ManageDomainsResultEnum.FAILURE_WHILE_APPLYING_CHANGES_IN_DATABASE,
@@ -595,21 +588,14 @@
         }
     }
 
-    private boolean userHasPermissions(DomainsConfigurationEntry 
adUserNameEntry,
-        DomainsConfigurationEntry adUseridEntry) {
+    private boolean userHasPermissions(String userName, String domainName) {
+        boolean result = false;
         try {
-            Set<Entry<String, String>> userNameValues = 
adUserNameEntry.getValues();
-            for (Entry<String, String> currUserEntry : userNameValues) {
-                String currDomain = currUserEntry.getKey();
-                String currUser = currUserEntry.getValue();
-                if (daoImpl.getUserHasPermissions(currUser, currDomain)) {
-                    return true;
-                }
-            }
-        } catch (SQLException e) {
-            log.error(e);
+            result = daoImpl.getUserHasPermissions(userName, domainName);
+        } catch (SQLException ex) {
+            log.error("Error testing user permissions", ex);
         }
-        return false;
+        return result;
     }
 
     public void editDomain(CLIParser parser) throws ManageDomainsResult {
@@ -681,7 +667,7 @@
                 false,
                 ldapServers);
 
-        handleAddPermissions(domainName, adUserNameEntry, adUserIdEntry);
+        handleAddPermissions(domainName, userName, 
adUserIdEntry.getValueForDomain(domainName));
 
         setConfigurationEntries(domainNameEntry,
                 adUserNameEntry,


-- 
To view, visit http://gerrit.ovirt.org/20801
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib96e77abf446e93a1bce85eecbcbff9591a6a64f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Martin Peřina <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to