<?php // // Copyright (C) 2004-2011 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? CheckForCancel( 'userrolemanagement.php' ); // Are we switching to another page? CheckForPageSwitch(); // Define Local Vars $menuCategory = ASSIGN_ROLES_MENU_ITEM; $menuItem = ASSIGN_ROLES_MENU_ITEM; $pageTitle = ASSIGN_ROLES_TITLE; $helpPage = 'HelpDocs/managing_roles.htm'; $pageName = 'UserRoleManagementPage'; $formName = 'UserRoleManagementForm'; $homePage = NULL; $selectedUserID = 'SelectedUser'; $highlightedUser = NULL; $adminOnID = 'AdminOn'; $adminOnList = array(); $authorOnID = 'AuthorOn'; $authorOnList = array(); $userUpdateID = 'UsersToUpdate'; $userUpdateList = array(); $userRolesTable = array(); $confirmationMsg = ""; $errorMsg = ""; $pageSize = 25; $firstPageIndex = -1; $lastPageIndex = -1; $currPage = 1; $users = array(); $userCount = 0; $sortDirection= DEFAULT_SORT_DIRECTION; $sortDirectionID = SORT_DIRECTION_ID; $sortColumn = NAME_SORT_COLUMN; $sortColumnID = SORT_COLUMN_ID; // Get submitted data if ( !FirstTimeHere( $pageName ) ) { $userUpdateList = array_key_exists( $userUpdateID, $_POST ) ? $_POST[ $userUpdateID ] : array(); $adminOnList = array_key_exists( $adminOnID, $_POST ) ? $_POST[ $adminOnID ] : array(); $authorOnList = array_key_exists( $authorOnID, $_POST ) ? $_POST[ $authorOnID ] : array(); } if ( array_key_exists( $sortDirectionID, $_GET ) ) $sortDirection = $_GET[$sortDirectionID]; else if ( array_key_exists( $sortDirectionID, $_POST ) ) $sortDirection = $_POST[$sortDirectionID]; SetUserSortDirection( $sortDirection ); if ( array_key_exists( $sortColumnID, $_GET ) ) $sortColumn = $_GET[$sortColumnID]; else if ( array_key_exists( $sortColumnID, $_POST ) ) $sortColumn = $_POST[$sortColumnID]; SetUserSortColumn( $sortColumn ); if ( array_key_exists( $selectedUserID, $_GET ) ) $highlightedUser = $_GET[$selectedUserID]; // Save data, if requested. if ( CheckForSaveData() ) { // Update admin role. $usersToGrant = new MgStringCollection(); $usersToRevoke = new MgStringCollection(); $roleToUpdate = new MgStringCollection(); $roleToUpdate->Add( ADMIN_ROLE ); foreach( $userUpdateList as $userID ) { if ( in_array( $userID, $adminOnList ) ) $usersToGrant->Add( $userID ) ; else $usersToRevoke->Add( $userID ); } $site->GrantRoleMembershipsToUsers( $roleToUpdate, $usersToGrant ); $site->RevokeRoleMembershipsFromUsers( $roleToUpdate, $usersToRevoke ); $confirmationMsg = $confSuccessfulRoleUpdate; // Update author role. $usersToGrant->Clear(); $usersToRevoke->Clear(); $roleToUpdate->SetItem( 0, AUTHOR_ROLE ); foreach( $userUpdateList as $userID ) { if ( in_array( $userID, $authorOnList ) ) $usersToGrant->Add( $userID ) ; else $usersToRevoke->Add( $userID ); } $site->GrantRoleMembershipsToUsers( $roleToUpdate, $usersToGrant ); $site->RevokeRoleMembershipsFromUsers( $roleToUpdate, $usersToRevoke ); $confirmationMsg = $confSuccessfulRoleUpdate; } } catch ( MgException $e ) { CheckForFatalMgException( $e ); $errorMsg = $e->GetExceptionMessage(); } catch ( Exception $e ) { $errorMsg = $e->getMessage(); } // Load the display table. try { $users = GetUsers(); $userCount = sizeof( $users ); $currPage = GetPageNumber( $users, $selectedUser, $pageSize ); GetPageRange( $currPage, $userCount, $pageSize, $firstPageIndex, $lastPageIndex ); LoadUserRolesTable( $userRolesTable, $firstPageIndex, $lastPageIndex ); if ( !array_key_exists( $selectedUser, $userRolesTable ) && $userCount > 0 ) $selectedUser = $users[ $firstPageIndex ]; // If not our first time here, use the submitted data if ( !FirstTimeHere( $pageName ) ) { foreach ( $userRolesTable as $userID => $val ) { if ( in_array( $userID, $userUpdateList ) ) { $val->adminOn = in_array( $userID, $adminOnList ) ? true : false; $val->authorOn = in_array( $userID, $authorOnList ) ? true : false; } } } } catch ( MgException $e ) { CheckForFatalMgException( $e ); if ( empty( $errorMsg ) ) $errorMsg = $e->GetExceptionMessage(); } catch ( Exception $e ) { if ( empty( $errorMsg ) ) $errorMsg = $e->getMessage(); } ?> <!-- PAGE DEFINITION --><!-- 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 ); DisplayTitleBar( $pageTitle, $helpPage ); ?> <input type="hidden" name="<?php echo TABLE_PAGE_ID?>" value="<?php echo $currPage?>"> <input type="hidden" name="<?php echo $sortColumnID?>" value="<?php echo $sortColumn?>"> <input type="hidden" name="<?php echo $sortDirectionID?>" value="<?php echo $sortDirection?>"> <!-- Tabs --> <table cellspacing="0" cellpadding="0" class="TabTable"> <tr> <td class="SelectedTab">Users</td> <td class="DeselectedTab"><a href="grouprolemanagement.php">Groups</a></td> <td class="NoTabs"> </td> </tr> <tr> <td class="TabTableBody" colspan="3"> <!-- Spacing --> <br> <?php DeclareHiddenVars( $pageName ); DisplaySaveCancelBar(); DisplayConfirmationMsg( $confirmationMsg ); DisplayErrorMsg( $errorMsg ); DisplayPaginationControl( $currPage, $userCount, $pageSize, 'userrolemanagement.php', $sortColumn, $sortDirection ); // Toolbar $buttons = array(); $button = new ToolbarButtonRecord(); $button->label = "Edit Roles"; $button->icon = "images/edit.gif"; $button->action = "SetElementValue('".NEXT_PAGE_ID."', 'assignroles.php' );"; $buttons[0] = $button; DisplayToolbar( $buttons, $formName ); ?> <!-- Role Table--> <table border="0" cellspacing="2" cellpadding="2" class="dataTable"> <?php $nameSortIconStr = ( $sortColumn === NAME_SORT_COLUMN ) ? ' <img src="'.GetSortIcon( $sortDirection ).'">' : ''; $idSortIconStr = ( $sortColumn === ID_SORT_COLUMN ) ? ' <img src="'.GetSortIcon( $sortDirection ).'">' : ''; $sortDirectionStr = "SetElementValue( '".$sortDirectionID."', '".GetSortDirection( $sortDirection )."' );"; $sortByNameStr = "SetElementValue( '".$sortColumnID."', '".NAME_SORT_COLUMN."');"; $sortByIDStr = "SetElementValue( '".$sortColumnID."', '".ID_SORT_COLUMN."');"; ?> <tr> <td class="dataHeader"><a href="#" onClick="<?php echo $sortDirectionStr.$sortByNameStr?>SubmitForm('<?php echo $formName?>');">User Name<?php echo $nameSortIconStr?></a></td> <td class="dataHeader"><a href="#" onClick="<?php echo $sortDirectionStr.$sortByIDStr?>SubmitForm('<?php echo $formName?>');">User ID<?php echo $idSortIconStr?></a></td> <td class="dataHeader" align="center" colspan="2">Administrator Role</td> <td class="dataHeader" align="center" colspan="2">Map Author Role</td> </tr> <tr> <td class="TableSubHeading"> </td> <td class="TableSubHeading"> </td> <td class="TableSubHeading">User Level</td> <td class="TableSubHeading">Group Level</td> <td class="TableSubHeading">User Level</td> <td class="TableSubHeading">Group Level</td> </tr> <?php foreach ( $userRolesTable as $key => $val ) { CreateListOfGroupHyperlinksForTable( $val->adminFromGroups, $numAdminGroups, $adminGroupList ); CreateListOfGroupHyperlinksForTable( $val->authorFromGroups, $numAuthorGroups, $authorGroupList ); $tdClass = ($key === $highlightedUser) ? 'highlightedDataCell' : 'dataCell'; ?> <tr> <td class="<?php echo $tdClass ?>"><a href="edituser.php?<?php echo $selectedUserID?>=<?php echo $key?>"><?php echo $val->name; ?></a></td> <td class="<?php echo $tdClass ?>"><input type="hidden" name="<?php echo $userUpdateID.'[]'?>" value="<?php echo $key?>" ><?php echo $key ?></td> <td class="<?php echo $tdClass ?>" align="center"><input name="<?php echo $adminOnID.'[]'; ?>" type="checkbox" value="<?php echo $key ?>" <?php if ($val->adminOn) { echo 'checked="checked"'; }?>></td> <td class="<?php echo $tdClass ?>"><input type="checkbox" disabled <?php if ($numAdminGroups>0) { echo 'checked="checked"'; }?>><?php echo $adminGroupList; ?></td> <td class="<?php echo $tdClass ?>" align="center"><input name="<?php echo $authorOnID.'[]'; ?>" type="checkbox" value="<?php echo $key ?>" <?php if ($val->authorOn) { echo 'checked="checked"'; }?>></td> <td class="<?php echo $tdClass ?>"><input type="checkbox" disabled <?php if ($numAuthorGroups>0) { echo 'checked="checked"'; }?>><?php echo $authorGroupList; ?></td> </tr> <?php } ?> </table> <?php DisplayPaginationControl( $currPage, $userCount, $pageSize, 'userrolemanagement.php', $sortColumn, $sortDirection ); DisplaySaveCancelBar(); ?> </td> </tr> </table> <?php EndContentArea( true, $formName, "" );?> <!-- End of Contents Area --> </tr> </table> </body> </html>