From c83988d5ac6cf994d6875066f769a763804d5dde Mon Sep 17 00:00:00 2001 From: Andrea Adamczyk Date: Mon, 27 May 2019 16:00:45 -0400 Subject: [PATCH] PMC-815 --- config/deprecatedFiles.lst | 1 + .../engine/bin/tasks/CliWorkspacesTest.php | 137 ++++++++++++++++++ workflow/engine/bin/tasks/cliWorkspaces.php | 25 ++++ .../engine/methods/users/data_usersList.php | 67 --------- 4 files changed, 163 insertions(+), 67 deletions(-) create mode 100644 tests/unit/workflow/engine/bin/tasks/CliWorkspacesTest.php delete mode 100644 workflow/engine/methods/users/data_usersList.php diff --git a/config/deprecatedFiles.lst b/config/deprecatedFiles.lst index 43cb64059..87b738b31 100644 --- a/config/deprecatedFiles.lst +++ b/config/deprecatedFiles.lst @@ -70,6 +70,7 @@ workflow/engine/methods/setup/jasper.php workflow/engine/methods/setup/webServices.php workflow/engine/methods/setup/webServicesAjax.php workflow/engine/methods/setup/webServicesList.php +workflow/engine/methods/users/data_usersList.php workflow/engine/plugins/openFlash.php workflow/engine/plugins/openFlash/chart-data.php workflow/engine/plugins/openFlash/chart.php diff --git a/tests/unit/workflow/engine/bin/tasks/CliWorkspacesTest.php b/tests/unit/workflow/engine/bin/tasks/CliWorkspacesTest.php new file mode 100644 index 000000000..061f78549 --- /dev/null +++ b/tests/unit/workflow/engine/bin/tasks/CliWorkspacesTest.php @@ -0,0 +1,137 @@ +assertTrue(file_exists(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php')); + + $path = PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/'; + + if (getmyuid() == fileowner($path)) { + if (substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php'), + 1, 2) == 'rw' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/'), 2, 1) == 'w' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/'), 3, 1) == 'x' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/'), 3, 1) == 'x' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/'), 3, 1) == 'x' + ) { + remove_deprecated_files(); + } else { + dd("Could not delete the file. Please, make sure the file have write permission for the direct parent directory and + execute permission for all parent directories."); + } + } else { + if (getmygid() == filegroup($path)) { + if (substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php'), + 4, 2) == 'rw' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/'), 5, + 1) == 'w' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/'), 6, 1) == 'x' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/'), 6, 1) == 'x' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/'), 6, 1) == 'x' + ) { + remove_deprecated_files(); + } else { + dd("Could not delete the file. Please, make sure the file have write permission for the direct parent directory and + execute permission for all parent directories."); + } + + } else { + if (substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php'), + 7, 2) == 'rw' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/'), 8, + 1) == 'w' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/'), 9, 1) == 'x' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/engine/'), 9, 1) == 'x' && + substr($this->getPermissions(PATH_TRUNK . PATH_SEP . 'workflow/'), 9, 1) == 'x' + ) { + remove_deprecated_files(); + } else { + dd("Could not delete the file. Please, make sure the file have write permission for the direct parent directory and + execute permission for all parent directories."); + } + } + } + + // This assert the data_usersList.php does not exist anymore + $this->assertFalse(file_exists(PATH_TRUNK . PATH_SEP . 'workflow/engine/methods/users/data_usersList.php')); + } + + /** + * Get the permissions of a file or directory + * + * @param string $path + * @return string + */ + public function getPermissions($path) + { + $per = fileperms($path); + switch ($per & 0xF000) { + case 0xC000: // socket + $permissions = 's'; + break; + case 0xA000: // symbolic link + $permissions = 'l'; + break; + case 0x8000: // regular + $permissions = '-'; + break; + case 0x6000: // block special + $permissions = 'b'; + break; + case 0x4000: // directory + $permissions = 'd'; + break; + case 0x2000: // character special + $permissions = 'c'; + break; + case 0x1000: // FIFO pipe + $permissions = 'p'; + break; + default: // unknown + $permissions = 'u'; + } + + // Owner + $permissions .= (($per & 0x0100) ? 'r' : '-'); + $permissions .= (($per & 0x0080) ? 'w' : '-'); + $permissions .= (($per & 0x0040) ? + (($per & 0x0800) ? 's' : 'x') : + (($per & 0x0800) ? 'S' : '-')); + + // Group + $permissions .= (($per & 0x0020) ? 'r' : '-'); + $permissions .= (($per & 0x0010) ? 'w' : '-'); + $permissions .= (($per & 0x0008) ? + (($per & 0x0400) ? 's' : 'x') : + (($per & 0x0400) ? 'S' : '-')); + + // Others + $permissions .= (($per & 0x0004) ? 'r' : '-'); + $permissions .= (($per & 0x0002) ? 'w' : '-'); + $permissions .= (($per & 0x0001) ? + (($per & 0x0200) ? 't' : 'x') : + (($per & 0x0200) ? 'T' : '-')); + + return $permissions; + } +} \ No newline at end of file diff --git a/workflow/engine/bin/tasks/cliWorkspaces.php b/workflow/engine/bin/tasks/cliWorkspaces.php index b6bb6cba4..7455ee574 100644 --- a/workflow/engine/bin/tasks/cliWorkspaces.php +++ b/workflow/engine/bin/tasks/cliWorkspaces.php @@ -362,6 +362,16 @@ EOT CLI::taskArg('workspace'); CLI::taskRun("run_sync_forms_with_info_from_input_documents"); +/** + * Remove the deprecated files + */ +CLI::taskName('remove-unused-files'); +CLI::taskDescription(<<removeDeprecatedFiles(); + CLI::logging("<*> The deprecated files has been removed. \n"); +} diff --git a/workflow/engine/methods/users/data_usersList.php b/workflow/engine/methods/users/data_usersList.php deleted file mode 100644 index d651a9933..000000000 --- a/workflow/engine/methods/users/data_usersList.php +++ /dev/null @@ -1,67 +0,0 @@ -. - * - * For more information, contact Colosa Inc, 2566 Le Jeune Rd., - * Coral Gables, FL, 33134, USA, or email info@colosa.com. - */ - -isset( $_POST['textFilter'] ) ? $filter = $_POST['textFilter'] : $filter = ''; - -$sDelimiter = DBAdapter::getStringDelimiter(); - -$oCriteria = new Criteria( 'workflow' ); -$oCriteria->addSelectColumn( UsersPeer::USR_UID ); - -$sDataBase = 'database_' . strtolower( DB_ADAPTER ); -if (G::LoadSystemExist( $sDataBase )) { - $oDataBase = new database(); - $oCriteria->addAsColumn( 'USR_COMPLETENAME', $oDataBase->concatString( "USR_LASTNAME", "' '", "USR_FIRSTNAME" ) ); - //$oCriteria->addAsColumn('USR_PHOTO', $oDataBase->concatString("'".PATH_IMAGES_ENVIRONMENT_USERS."'", "USR_UID","'.gif'")); -} - -$oCriteria->addSelectColumn( UsersPeer::USR_USERNAME ); -$oCriteria->addSelectColumn( UsersPeer::USR_EMAIL ); -$oCriteria->addSelectColumn( UsersPeer::USR_ROLE ); -$oCriteria->addSelectColumn( UsersPeer::USR_DUE_DATE ); -//$oCriteria->addAsColumn('USR_VIEW', $sDelimiter . G::LoadTranslation('ID_DETAIL') . $sDelimiter); -//$oCriteria->addAsColumn('USR_EDIT', $sDelimiter . G::LoadTranslation('ID_EDIT') . $sDelimiter); -//$oCriteria->addAsColumn('USR_DELETE', $sDelimiter . G::LoadTranslation('ID_DELETE') . $sDelimiter); -//$oCriteria->addAsColumn('USR_AUTH', $sDelimiter . G::LoadTranslation('ID_AUTHENTICATION') . $sDelimiter); -//$oCriteria->addAsColumn('USR_REASSIGN', $sDelimiter . G::LoadTranslation('ID_REASSIGN_CASES') . $sDelimiter); -$oCriteria->add( UsersPeer::USR_STATUS, array ('CLOSED' -), Criteria::NOT_IN ); - -if ($filter != '') { - $cc = $oCriteria->getNewCriterion( UsersPeer::USR_USERNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_FIRSTNAME, '%' . $filter . '%', Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( UsersPeer::USR_LASTNAME, '%' . $filter . '%', Criteria::LIKE ) ) ); - $oCriteria->add( $cc ); - //echo $oCriteria->toString(); -} - -$rs = UsersPeer::DoSelectRS( $oCriteria, Propel::getDbConnection('workflow_ro') ); -$rs->setFetchmode( ResultSet::FETCHMODE_ASSOC ); - -$rows = Array (); -while ($rs->next()) { - $rows[] = $rs->getRow(); - // if (!file_exists($aux['USR_PHOTO'])) $aux['USR_PHOTO'] = 'public_html/images/user.gif'; - // $rows[] = $aux; -} -echo '{users: ' . G::json_encode( $rows ) . '}'; -