Andrew Bogott has submitted this change and it was merged.

Change subject: Sudo policy for service groups
......................................................................


Sudo policy for service groups

Change-Id: I0cda7c4f32709c8c7bf6ac38eadd0d1d39b19767
---
M nova/OpenStackNovaServiceGroup.php
M special/SpecialNovaSudoer.php
2 files changed, 31 insertions(+), 1 deletion(-)

Approvals:
  Ryan Lane: Looks good to me, approved
  Andrew Bogott: Verified
  coren: Looks good to me, but someone else must approve
  jenkins-bot: Checked



diff --git a/nova/OpenStackNovaServiceGroup.php 
b/nova/OpenStackNovaServiceGroup.php
index cd2bdd3..e9858c4 100644
--- a/nova/OpenStackNovaServiceGroup.php
+++ b/nova/OpenStackNovaServiceGroup.php
@@ -259,6 +259,20 @@
                        return null;
                }
 
+               # Create Sudo policy so that members of this group can chmod 
files
+               if ( OpenStackNovaSudoer::createSudoer( $groupName . '-chmod',
+                               $project->projectname,
+                               array( $groupName ),
+                               array( 'ALL' ),
+                               array( 'chown -R ' . $groupName . ':' . 
$groupName . ' ' . $homeDir ),
+                               array( '!authenticate' ) ) ) {
+                       $wgAuth->printDebug( "Successfully created chmod sudo 
policy for $groupName",
+                               NONSENSITIVE );
+               } else {
+                       $wgAuth->printDebug( "Failed to  creat chmod sudo 
policy for $groupName",
+                               NONSENSITIVE );
+               }
+
                return $newGroup;
        }
 
diff --git a/special/SpecialNovaSudoer.php b/special/SpecialNovaSudoer.php
index 28dbaad..b43e9b5 100644
--- a/special/SpecialNovaSudoer.php
+++ b/special/SpecialNovaSudoer.php
@@ -398,6 +398,12 @@
                        $userNames = array();
                        $projectmembers = $project->getMembers();
                        $sudoUsers = $sudoer->getSudoerUsers();
+                       # Add service users.  These aren't editable.
+                       foreach ( $project->serviceGroups as $servicegroup ) {
+                               if ( in_array( $servicegroup->groupName, 
$sudoUsers ) ) {
+                                       $userNames[] = $servicegroup->groupName;
+                               }
+                       }
                        foreach ( $projectmembers as $member ) {
                                $user = new OpenStackNovaUser( $member );
                                if ( in_array( $user->getUid(), $sudoUsers ) ) {
@@ -551,7 +557,17 @@
                        } else {
                                $options[] = '!authenticate';
                        }
-                       $success = $sudoer->modifySudoer( 
$this->removeALLFromUserKeys($formData['users']), $formData['hosts'], 
$commands, $options );
+
+                       # Make sure we aren't pulling service users out of the 
list.
+                       $users = 
$this->removeALLFromUserKeys($formData['users']);
+                       $project = OpenStackNovaProject::getProjectByName( 
$formData['project'] );
+                       foreach ( $this->project->serviceGroups as 
$servicegroup ) {
+                               if ( in_array( $servicegroup->groupName, 
$sudoer->getSudoerUsers() ) ) {
+                                       $users[] = $servicegroup->groupName;
+                               }
+                       }
+
+                       $success = $sudoer->modifySudoer( $users, 
$formData['hosts'], $commands, $options );
                        if ( ! $success ) {
                                $this->getOutput()->addWikiMsg( 
'openstackmanager-modifysudoerfailed' );
                                return true;

-- 
To view, visit https://gerrit.wikimedia.org/r/56523
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I0cda7c4f32709c8c7bf6ac38eadd0d1d39b19767
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/OpenStackManager
Gerrit-Branch: master
Gerrit-Owner: Andrew Bogott <[email protected]>
Gerrit-Reviewer: Andrew Bogott <[email protected]>
Gerrit-Reviewer: Ryan Lane <[email protected]>
Gerrit-Reviewer: coren <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to