<?php // // Copyright (C) 2004-2010 by Autodesk, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of version 2.1 of the GNU Lesser // General Public License as published by the Free Software Foundation. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // try { include 'resizableadmin.php'; LoadSessionVars(); // Did the user logout? CheckForLogout(); // Are we cancelling? If so, there is nothing to do. CheckForCancel( 'groupmanagement.php' ); // Define local vars $menuCategory = GROUP_MANAGEMENT_MENU_ITEM; $menuItem = EDIT_GROUP_MENU_ITEM; $pageTitle = EDIT_GROUP_TITLE; $helpPage = 'HelpDocs/adding_users_to_groups.htm'; $pageName = 'EditGroupPage'; $formName = 'EditGroupForm'; $homePage = 'groupmanagement.php'; $selectedGroupID = 'SelectedGroup'; $description = ""; $descriptionID = 'description'; $usersSelected = array(); $usersSelectedID = 'usersSelected'; $usersNotSelected = array(); $usersNotSelectedID = 'usersNotSelected'; $errorMsg = ""; $confirmationMsg = ""; // Is this our first time here? if ( FirstTimeHere( $pageName ) ) { // Was the selected group passed in the URL? if ( array_key_exists( $selectedGroupID, $_GET ) ) $selectedGroup = $_GET[ $selectedGroupID ]; // Get info for selected user $selectedGroupData = GetDataForGroup( $selectedGroup, true ); if ( $selectedGroupData == NULL ) throw new Exception ( sprintf( $errNotFound, $selectedGroup ) ); $description = $selectedGroupData->description; CopyArray( $selectedGroupData->users, $usersSelected ); $allUsers = GetUsers(); $usersNotSelected = array_diff( $allUsers, $usersSelected ); } // The save button was hit. else { // Get submitted data if ( array_key_exists( $selectedGroupID, $_POST ) ) $selectedGroup = $_POST[ $selectedGroupID ]; if ( array_key_exists( $descriptionID, $_POST ) ) $description = $_POST[ $descriptionID ]; if ( array_key_exists( $usersSelectedID, $_POST ) ) $usersSelected = $_POST[ $usersSelectedID ]; if ( array_key_exists( $usersNotSelectedID, $_POST ) ) $usersNotSelected = $_POST[ $usersNotSelectedID ]; // Update parameters of group. $site->UpdateGroup( $selectedGroup, "", $description ); // Create MgStringCollection with just one group to update members of group. $groupToUpdate = new MgStringCollection(); $groupToUpdate->Add( $selectedGroup ); // Get old list of users for group $oldUserList = GetUserMembers( $selectedGroup ); // Find users to delete from group. $revokeList = array_diff( $oldUserList, $usersSelected ); if ( !empty( $revokeList ) ) { $usersToDelete = new MgStringCollection(); foreach ( $revokeList as $userToDelete ) $usersToDelete->Add( $userToDelete ); $site->RevokeGroupMembershipsFromUsers( $groupToUpdate, $usersToDelete ); } // Find users to add to group. $grantList = array_diff( $usersSelected, $oldUserList ); if ( !empty( $grantList ) ) { $usersToAdd = new MgStringCollection(); foreach ( $grantList as $userToAdd ) $usersToAdd->Add( $userToAdd ); $site->GrantGroupMembershipsToUsers( $groupToUpdate, $usersToAdd ); } // Everything is OK. $confirmationMsg = sprintf( $confSuccessfulUpdate, $selectedGroup ); SaveSessionVars(); header( 'Location: groupmanagement.php?'.strip_tags(SID) ); exit(); } } catch ( MgException $e ) { CheckForFatalMgException( $e ); $errorMsg = $e->GetExceptionMessage(); } catch ( Exception $e ) { $errorMsg = $e->getMessage(); } ?> <!-- PAGE DEFINITION --> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <?php OutputHeader( $pageTitle ); ?> <body> <table cellspacing="0" cellpadding="0" border="0" class="main"> <tr> <?php DisplaySiteHeader( false, true, true, true, $formName, $homePage ); ?> </tr> <tr> <?php DisplayLefthandSash( $menuItem ); ?> <!-- Contents Area --> <?php BeginContentArea( $formName ); ?> <?php DeclareHiddenVars( $pageName ); DisplayTitleBar( $pageTitle, $helpPage ); DisplaySaveCancelBar(); DisplayConfirmationMsg( $confirmationMsg ); DisplayErrorMsg( $errorMsg ); ?> <!-- Input Area --> <table border="0" cellspacing="0" class="inputForm"> <tr> <td class="editGroupInputLabel">Group name :</td> <td class="inputFormValue"><input class="inputFormValue" disabled name="<?php echo $selectedGroupID?>" type="text" value="<?php echo $selectedGroup?>" size="60"></td> </tr> <tr> <td class="editGroupInputLabel">Description:</td> <td class="inputFormValue"><textarea class="inputFormValue" name="<?php echo $descriptionID?>" cols="60"><?php echo $description?></textarea></td> </tr> </table> <!-- User Area --> <?php $control = new AddRemoveControlRecord(); $control->leadInStr = 'Members'; $control->col1Name = $usersNotSelectedID.'[]'; $control->col3Name = $usersSelectedID.'[]'; $control->col1Heading = 'Available users'; $control->col3Heading = 'Users in this group'; $control->col1List = $usersNotSelected; $control->col3List = $usersSelected; $control->enabled = true; $control->size = 10; DisplayAddRemoveControl( $control ); ?> <?php DisplaySaveCancelBar(); EndContentArea( true, $formName, $descriptionID ); ?> <!-- End of Contents Area --> </tr> </table> </body> </html>